Yearly totals
GET
/v1/annual/{year}Each country's total for a finished year: twelve months or four quarters summed where every one is held, else its yearly figure, with the change on the year before. Largest first.
On every plan, Free includedKey requiredJSON or CSVCached until the next release
Parameters
| Name | Type | Description |
|---|---|---|
| yearrequired | integer path | A finished calendar year e.g. 2025 |
| limitoptional | integer query | Rows per page, 1 to 1000 e.g. 100 |
| cursoroptional | string query | The next value from the previous page |
Request
# Every country's total for a year
curl "https://api.tourismapi.com/v1/annual/2025" \
-H "X-API-Key: $TOURISM_API_KEY"const res = await fetch("https://api.tourismapi.com/v1/annual/2025", {
headers: { "X-API-Key": process.env.TOURISM_API_KEY }
});
if (!res.ok) throw new Error(`Tourism API ${res.status}`);
const { meta, data } = await res.json();
console.log(meta.data_as_of, data);import os, requests
r = requests.get(
"https://api.tourismapi.com/v1/annual/2025",
headers={"X-API-Key": os.environ["TOURISM_API_KEY"]},
timeout=10,
)
r.raise_for_status()
body = r.json()
print(body["meta"]["data_as_of"], body["data"])$ch = curl_init("https://api.tourismapi.com/v1/annual/2025");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["X-API-Key: " . getenv("TOURISM_API_KEY")],
]);
$body = json_decode(curl_exec($ch), true);
print_r($body["data"]);
Example response
{
"meta": {
"request_id": "req_cc6acfd1cf",
"data_as_of": "2026-10-21T17:42:33Z",
"count": 102,
"year": 2025,
"basis": "twelve months or four quarters summed where every one is held, else the country's yearly figure",
"order": "largest first",
"monthly": "the months behind each total come with the paid plans: https://tourismapi.com/pricing"
},
"data": [
{
"iso": "ES",
"name": "Spain",
"measure": "arrivals",
"unit": "arrivals",
"total": 118327077,
"change_pct": 1.9,
"basis": "twelve months"
},
{
"iso": "IT",
"name": "Italy",
"measure": "arrivals",
"unit": "arrivals",
"total": 87897260,
"change_pct": 18.9,
"basis": "twelve months"
},
{
"iso": "US",
"name": "United States",
"measure": "arrivals",
"unit": "arrivals",
"total": 68287793,
"change_pct": -5.5,
"basis": "twelve months"
}
]
}Response fields
| Field | Type | Example |
|---|---|---|
| iso | string | ES |
| name | string | Spain |
| measure | string | arrivals |
| unit | string | arrivals |
| total | number | 118327077 |
| change_pct | number | 1.9 |
| basis | string | twelve months |