We update each country's data about once a month. This page explains how to check the date of the data you are reading, and what changes between updates.
updated_at is the date of a dataset's data in a country. GET /v1/catalog/gb returns it for every dataset, with its number of records.
Request
curl -H "X-Application-Id: YOUR_APP_ID" -H "X-Api-Key: YOUR_APP_KEY" \
"https://data.traveltimeapp.com/v1/catalog/gb"Response
{
"country": { "id": "gb", "name": "United Kingdom", "…": "…" },
"results": [
{
"id": "places",
"countries": {
"gb": { "available": true, "updated_at": "2026-10-18", "records": 4710961, "…": "…" }
},
"…": "…"
},
{
"id": "transit-stations",
"countries": {
"gb": { "available": true, "updated_at": "2026-10-17", "records": 326290, "…": "…" }
},
"…": "…"
},
"… 8 more datasets"
],
"…": "…"
}Each dataset has its own updated_at. It is null when there is no date, as for a dataset the country does not have: treat it as unknown. On one place, updated_at is the date Foursquare last refreshed its record. A place Foursquare does not list gets its last OpenStreetMap edit, a place only a public register lists gets the date we loaded it, and a place only Overture or TravelTime lists gets null. The rest of the response is on Catalog and categories.
We update each country about once a month. An update replaces a dataset whole, so you never see part old and part new data. Between updates the data does not change, so the same request returns the same response.
- Places. New places appear and closed places go. The number of places moves by about 0.5% to 2% a month. A place's
listed_by,verifiedandverified_bycan change when a source or register adds or drops it. A place listed by two sources can become a one-source place, which can take it out of the Places routes. See Places. - Public transport. Station counts rarely change. A new line or station shows up in the update after it opens. Frequencies change when seasonal timetables start.
- Open spaces. Their outlines change slowly.
Place ids are assigned at each update. Do not store a place id across updates. Store the name and coordinate instead, or look the place up again when the places dataset's updated_at moves.
Public transport ids stay the same across updates. A link to a station or a line keeps working. Boundary ids (gb-camden) are made from names, so they stay the same while the boundaries and their names do. Open space ids come from Overture, so they stay the same for as long as Overture keeps them.
We recommend you key a cache of each dataset on its own updated_at. Read it once and keep it. Refresh your cache when a later GET /v1/catalog/gb response shows a new value. Do not poll for it. It changes about once a month.
The data routes and GET /v1/catalog/{country} send no Cache-Control and no ETag, so cache their responses at your own TTL. GET /v1/categories and GET /v1/catalog are fresh for 1 hour; GET /v1/catalog also sets a weak ETag.
If you show the data to your users, show its date too. updated_at is the date to show.