Получаю data is invalid

Подскажите пожалуйста что я делаю не так, почему получаю Data is invalid?

import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:90.0) Gecko/20100101 Firefox/90.0',
    'Content-Type': 'application/json'
}

param = {
    "modelName": "Address",
    "calledMethod": "getCities",
    "methodProperties": {
        "Ref": "ebc0eda9-93ec-11e3-b441-0050568002cf"
        },
    "apiKey": api
}


r = requests.post('http://api.novaposhta.ua/v2.0/json', data=param, headers=headers)

print(r.content)

Ответ

'{"success":false,"data":[],"errors":["Data is invalid"],"translatedErrors":[],"warnings":[],"info":[],"messageCodes":[],"errorCodes":[],"warningCodes":[],"infoCodes":[]}'


Ответы (1 шт):

Автор решения: gil9red

Посмотрел в API и там в URL указывается еще /Address/getCities (еще лучше использовать параметр json= для отправки json):

import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:90.0) Gecko/20100101 Firefox/90.0',
}

param = {
    "modelName": "Address",
    "calledMethod": "getCities",
    "methodProperties": {
        "Ref": "ebc0eda9-93ec-11e3-b441-0050568002cf"
    },
    "apiKey": api
}

r = requests.post('http://api.novaposhta.ua/v2.0/json/Address/getCities', json=param, headers=headers)
print(r.content)
→ Ссылка