Quickstart
This guide shows you how to get an API key and make your first two requests. The first request returns places near a point. The second lists the countries and datasets you can query.
1. Get an API key
Go to /signup and enter your email. We email you a confirmation link. Press it and
we show your key, starting with poi_live_, on screen, then email you a copy. The Data API is
in beta. It is included with a TravelTime licence at no extra cost.
If you lose the key, sign up again with the same email. We email a new confirmation link. Pressing it revokes the old key and shows the new one.
2. Set your key
Every example in these docs uses these two variables.
bash
export POI_BASE="https://beta.poi.traveltimeapp.com"
export POI_API_KEY="poi_live_..."3. Find places near a point
GET /v1/pois/near returns places within a radius of a coordinate. This request returns
five cafés within 500 m of Trafalgar Square.
bash
curl -H "Authorization: Bearer $POI_API_KEY" \
"$POI_BASE/v1/pois/near?country=GB&lat=51.5074&lng=-0.1278&radius_m=500&category=cafe&limit=5"The response is a GeoJSON FeatureCollection with one feature per place. This is the first
feature. The other four are left out here.
json
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-0.1283878240546413, 51.507489560811194]
},
"properties": {
"id": "1103445f-0836-4b1c-a70d-59c73c7938cc",
"name": "Caffè Nero",
"brand": "Caffè Nero",
"category": "cafe",
"categories": ["cafe", "restaurant"],
"categories_detail": ["cafe", "coffee_shop", "restaurant"],
"category_groups": ["food_and_drink"],
"sources": ["foursquare", "osm", "overture"],
"source_count": 3,
"verified": true,
"verified_by": [
{
"name": "Food Hygiene Rating Scheme (FHRS)",
"record_id": "502341",
"record_name": "Caffè Nero",
"matched_on": "name and location",
"name_match": "identical",
"distance_m": 12.4
}
],
"closed": null,
"pt_station_stable_id": null,
"date_refreshed": "2026-08-07T00:00:00Z",
"address_country": "GB",
"address_postcode": "WC2N 5DS",
"address_street": "60-61 Trafalgar Sq",
"address_city": "London",
"distance_m": 41.9
}
}
]
}How to read it:
name,brandandcategorysay what the place is.category_groupsgives the group, herefood_and_drink.source_countis how many independent apps and maps list the place.verifiedistruebecause an official register confirms it, andverified_bynames the register. How a place is verified explains both.distance_mis the distance from your coordinate in metres. Results are ordered by distance.
A 401 means the key is missing, malformed or revoked. Check POI_API_KEY and the Bearer
prefix.
4. Check which countries and datasets are available
GET /v1/catalog lists every country the Data API covers, the datasets each one has, and
the date of its data.
bash
curl -H "Authorization: Bearer $POI_API_KEY" \
"$POI_BASE/v1/catalog"The response has one entry in countries per country. This is the entry for the United
Kingdom.
json
{
"code": "GB",
"name": "United Kingdom",
"tier": "A",
"bbox": [-8.65, 49.84, 1.77, 60.86],
"last_refreshed": "2026-09-13T11:42:22+00:00",
"layers": {
"places": {
"available": true,
"sources": ["fsq", "osm", "overture"]
},
"gov_registers": {
"available": true,
"sources": [
"fhrs",
"cqc",
"nhs",
"gias",
"gb_care_inspectorate",
"gb_scotland_schools",
"gb_wales_schools",
"ni_de_schools",
"gb_active_places",
"gb_courts",
"gb_fire_stations",
"gb_police_stations",
"gb_libraries",
"gb_sport_wales_leisure_centres",
"gb_sport_wales_agp",
"gb_sport_wales_grass_pitches",
"gb_cadw_listed_buildings",
"gb_spatial_hub",
"ni_bso_gp",
"ni_bso_dental",
"ni_bso_pharmacy",
"ni_rqia"
]
},
"land_cover": {
"available": true,
"sources": ["overture"]
},
"divisions": {
"available": true,
"sources": ["osm"]
},
"population": {
"available": true,
"sources": ["kontur", "worldpop"]
},
"census": {
"available": true,
"sources": ["census_gb"]
},
"transport": {
"available": true,
"sources": ["traveltime_pt"]
},
"environment": {
"available": true,
"sources": [
"env_gb_imd",
"env_gb_crime",
"env_gb_air",
"env_gb_broadband",
"env_gb_flood",
"env_gb_noise"
]
}
}
}last_refreshed is the date of the country's data. layers says which datasets the country
has and which sources feed each one. See what's available in each country
shows the same information as a table.
Next steps
- Query by coordinate, H3 cell or geohash: the three ways to query, and when to use each.
- Use with the TravelTime API: get the data inside a travel time.
- Points of interest: what a place record contains and how we match sources.
- API reference: every endpoint and parameter.