Changelog
GET
/v1/changelogAdditions, changes and retirements, dated, so integrations never break unannounced.
On every plan, Free includedKey requiredJSON or CSVCached until the next release
Parameters
| Name | Type | Description |
|---|---|---|
| sinceoptional | datetime query | Only changes after this UTC time e.g. 2026-10-01T00:00:00Z |
Request
# Changes to the API and its coverage
curl "https://api.tourismapi.com/v1/changelog" \
-H "X-API-Key: $TOURISM_API_KEY"const res = await fetch("https://api.tourismapi.com/v1/changelog", {
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/changelog",
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/changelog");
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_e206208610",
"data_as_of": "2026-10-20T04:48:24Z",
"count": 8
},
"data": [
{
"date": "2026-10-14",
"change": "Data gaps for every country, month by month, free: /v1/gaps"
},
{
"date": "2026-10-14",
"change": "Country briefs and rivals: /v1/countries/{iso}/brief and /v1/countries/{iso}/rivals"
},
{
"date": "2026-10-14",
"change": "Jet fuel and crude oil by month from 1990, with an index against 2019: /v1/fuel and /v1/fuel/latest"
}
]
}Response fields
| Field | Type | Example |
|---|---|---|
| date | string | 2026-10-14 |
| change | string | Data gaps for every country, month by month, free: /v1/gaps |