What is held
GET
/v1/coverage/matrixEvery country against arrivals, nights, spend, departures, occupancy and capacity: the first and latest period held in each, the frequencies and how many series. The figures themselves come with the paid plans.
On every plan, Free includedKey requiredJSON or CSVCached until the next release
Parameters
| Name | Type | Description |
|---|---|---|
| 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 against every measure
curl "https://api.tourismapi.com/v1/coverage/matrix" \
-H "X-API-Key: $TOURISM_API_KEY"const res = await fetch("https://api.tourismapi.com/v1/coverage/matrix", {
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/coverage/matrix",
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/coverage/matrix");
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_819fdf9e27",
"data_as_of": "2026-10-21T17:42:32Z",
"count": 214,
"measures": [
"arrivals",
"nights",
"spend",
"departures",
"occupancy",
"capacity"
],
"cell": "first and latest period held, the frequencies (M monthly, Q quarterly, A yearly) and how many series; null when nothing is held",
"figures": "the figures themselves come with the paid plans: https://tourismapi.com/pricing"
},
"data": [
{
"iso": "AF",
"name": "Afghanistan",
"region": "Middle East and Africa",
"arrivals": null,
"nights": null,
"spend": {
"first": "1979",
"latest": "2021-Q1",
"frequencies": [
"Q",
"A"
],
"series": 12
},
"departures": null,
"occupancy": null,
"capacity": null
},
{
"iso": "AL",
"name": "Albania",
"region": "Europe",
"arrivals": {
"first": "2017-06",
"latest": "2026-07",
"frequencies": [
"M",
"A"
],
"series": 106
},
"nights": {
"first": "2017-06",
"latest": "2026-07",
"frequencies": [
"M",
"A"
],
"series": 141
},
"spend": {
"first": "1980",
"latest": "2026-Q2",
"frequencies": [
"Q",
"A"
],
"series": 827
},
"departures": {
"first": "2017",
"latest": "2020",
"frequencies": [
"A"
],
"series": 209
},
"occupancy": {
"first": "2017-06",
"latest": "2026-07",
"frequencies": [
"M"
],
"series": 2
},
"capacity": null
},
{
"iso": "DZ",
"name": "Algeria",
"region": "Middle East and Africa",
"arrivals": null,
"nights": null,
"spend": {
"first": "1977",
"latest": "2026-Q1",
"frequencies": [
"Q",
"A"
],
"series": 12
},
"departures": null,
"occupancy": null,
"capacity": null
}
]
}Response fields
| Field | Type | Example |
|---|---|---|
| iso | string | AF |
| name | string | Afghanistan |
| region | string | Middle East and Africa |
| arrivals | null | null |
| nights | null | null |
| spend | object | object |
| departures | null | null |
| occupancy | null | null |
| capacity | null | null |