What it is like to live here: noise, air quality, flood risk, crime, deprivation and broadband, per hexagon, per boundary, or in total.
Questions this page answers
- How noisy is this street?
- Is this home in a flood zone?
- What is the crime rate around this home?
Every JSON answer names its sources once, in sources, per layer (a list when it drew on several), with the vintage in the id where the source has one (defra_noise_2022_r4, police_uk_2026_08). A layer that does not reach a hexagon is null there and named in missing. /v1/catalog/gb carries updated_at, the date the data was last loaded, and each layer's sources per country.
Required authentication header. The same application id as the TravelTime API.
Required authentication header.
GET /v1/neighbourhood/cellsSix blocks per hexagon (noise, air quality, flood, crime, deprivation, broadband), or totals over what you send: one row per boundary with group_by=borough, one row for everything with group_by=all. Resolution 9 only; a group_by=all total also takes coarser ids. POST /v1/neighbourhood/cells takes the same fields as JSON, for long cell lists (Long requests).
Road noise, air quality, flood zone, crime rate, deprivation decile and gigabit broadband for each of the 39 hexagons around King's Cross.
Request
curl -H "X-Application-Id: YOUR_APP_ID" -H "X-Api-Key: YOUR_APP_KEY" \
"https://data.traveltimeapp.com/v1/neighbourhood/cells?bbox=51.522,-0.140,51.538,-0.110"Shade = noise.max_lden_db59.5 dB83 dB39 hexagons; a hexagon opens its row.
| Hexagoncell | Loudest noisenoise.max_lden_db | Noise road ldennoise.road_lden_db | Air quality no2air_quality.no2_ugm3 | Map |
|---|---|---|---|---|
| 89194ad3643ffff | 82.3 dB | 60.7 dB | 26.3 µg/m³ | |
| 89194ad364bffff | 78.4 dB | 58.1 dB | 27.5 µg/m³ | |
| 89194ad364fffff | 73.8 dB | 56 dB | 29.9 µg/m³ | |
| 89194ad365bffff | 60.9 dB | 52.7 dB | 27.5 µg/m³ | |
| 89194ad366bffff | 77.4 dB | 64.1 dB | 29.9 µg/m³ |
5 of 39 shown · the other 34 are in the response, all 39 in the playground
Response
{
"resolution": 9,
"results": [
{
"cell": "89194ad3643ffff",
"noise": {
"max_lden_db": 82.3,
"road_lden_db": 60.7
},
"air_quality": {
"no2_ugm3": 26.3,
"pm25_ugm3": 10.1
},
"flood": {
"zone": 1
},
"crime": {
"per_1000": 317.2
},
"deprivation": {
"by_nation": {
"england": {
"population_share_by_decile": {
"4": 1
}
}
}
},
"broadband": {
"gigabit_share": 0.918
}
},
"… 38 more rows"
],
"next_cursor": null,
"sources": {
"noise": "defra_noise_2022_r4",
"air_quality": "defra_pcm_2024",
"flood": "ea_flood_map_for_planning",
"crime": "police_uk_2026_08",
"deprivation": "mhclg_iod_2025_eng",
"broadband": "ofcom_cn_2026_01+perf_2025_07"
}
}Give a point, get the one hexagon holding it. No need to work out the hexagon yourself.
Request
curl -H "X-Application-Id: YOUR_APP_ID" -H "X-Api-Key: YOUR_APP_KEY" \
"https://data.traveltimeapp.com/v1/neighbourhood/cells?at=51.5307,-0.1238"Shade = noise.max_lden_db79.2 dB79.2 dB1 hexagon; it opens its row.
| Hexagoncell | Loudest noisenoise.max_lden_db | Noise road ldennoise.road_lden_db | Air quality no2air_quality.no2_ugm3 | Map |
|---|---|---|---|---|
| 89195da4d8fffff | 79.2 dB | 66.7 dB | 27.5 µg/m³ |
All 1 shown
Response
{
"resolution": 9,
"results": [
{
"cell": "89195da4d8fffff",
"noise": {
"max_lden_db": 79.2,
"road_lden_db": 66.7
},
"air_quality": {
"no2_ugm3": 27.5,
"pm25_ugm3": 10.1
},
"flood": {
"zone": 1
},
"crime": {
"per_1000": 1592.2
},
"deprivation": {
"by_nation": {
"england": {
"population_share_by_decile": {
"4": 1
}
}
}
},
"broadband": {
"gigabit_share": 0.911
}
}
],
"next_cursor": null,
"sources": {
"noise": "defra_noise_2022_r4",
"air_quality": "defra_pcm_2024",
"flood": "ea_flood_map_for_planning",
"crime": "police_uk_2026_08",
"deprivation": "mhclg_iod_2025_eng",
"broadband": "ofcom_cn_2026_01+perf_2025_07"
}
}Just the noise block, so the answer stays small; sources names only what came back. layer=noise,flood takes two.
Request
curl -H "X-Application-Id: YOUR_APP_ID" -H "X-Api-Key: YOUR_APP_KEY" \
"https://data.traveltimeapp.com/v1/neighbourhood/cells?bbox=51.522,-0.140,51.538,-0.110&layer=noise"Shade = noise.max_lden_db59.5 dB83 dB39 hexagons; a hexagon opens its row.
| Hexagoncell | Loudest noisenoise.max_lden_db | Noise road ldennoise.road_lden_db | Map |
|---|---|---|---|
| 89194ad3643ffff | 82.3 dB | 60.7 dB | |
| 89194ad364bffff | 78.4 dB | 58.1 dB | |
| 89194ad364fffff | 73.8 dB | 56 dB | |
| 89194ad365bffff | 60.9 dB | 52.7 dB | |
| 89194ad366bffff | 77.4 dB | 64.1 dB |
5 of 39 shown · the other 34 are in the response, all 39 in the playground
Response
{
"resolution": 9,
"results": [
{
"cell": "89194ad3643ffff",
"noise": {
"max_lden_db": 82.3,
"road_lden_db": 60.7
}
},
"… 38 more rows"
],
"next_cursor": null,
"sources": {
"noise": "defra_noise_2022_r4"
}
}Everything we know about hexagons you choose, in the order sent.
Request
curl -H "X-Application-Id: YOUR_APP_ID" -H "X-Api-Key: YOUR_APP_KEY" \
"https://data.traveltimeapp.com/v1/neighbourhood/cells?cells=89195da4d03ffff,89195da4d07ffff,89195da4d0bffff,89195da4d0fffff,89195da4d13ffff,89195da4d17ffff,89195da4d1bffff"Shade = noise.max_lden_db59.5 dB83 dB7 hexagons; a hexagon opens its row.
| Hexagoncell | Loudest noisenoise.max_lden_db | Noise road ldennoise.road_lden_db | Air quality no2air_quality.no2_ugm3 | Map |
|---|---|---|---|---|
| 89195da4d03ffff | 81.3 dB | 61.3 dB | 31.5 µg/m³ | |
| 89195da4d07ffff | 79.4 dB | 61.5 dB | 31.5 µg/m³ | |
| 89195da4d0bffff | 71.7 dB | 57 dB | 31.5 µg/m³ | |
| 89195da4d0fffff | 81.7 dB | 64.3 dB | 31.5 µg/m³ | |
| 89195da4d13ffff | 59.5 dB | 51.6 dB | 26.5 µg/m³ |
5 of 7 shown · the other 2 are in the response, all 7 in the playground
Response
{
"resolution": 9,
"results": [
{
"cell": "89195da4d03ffff",
"noise": {
"max_lden_db": 81.3,
"road_lden_db": 61.3
},
"air_quality": {
"no2_ugm3": 31.5,
"pm25_ugm3": 10.3
},
"flood": {
"zone": 1
},
"crime": {
"per_1000": 202.7
},
"deprivation": {
"by_nation": {
"england": {
"population_share_by_decile": {
"2": 1
}
}
}
},
"broadband": {
"gigabit_share": 1
}
},
"… 6 more rows"
],
"next_cursor": null,
"sources": {
"noise": "defra_noise_2022_r4",
"air_quality": "defra_pcm_2024",
"flood": "ea_flood_map_for_planning",
"crime": "police_uk_2026_08",
"deprivation": "mhclg_iod_2025_eng",
"broadband": "ofcom_cn_2026_01+perf_2025_07"
}
}Camden's 233 hexagons, from GET /v1/boundaries/gb-camden?include=cells, as one row: population-weighted noise, air quality, crime rate and gigabit share, the worst flood zone, and the share of people in each deprivation decile, one set per nation. The body is elided here.
Request
curl -X POST -H "X-Application-Id: YOUR_APP_ID" -H "X-Api-Key: YOUR_APP_KEY" -H "Content-Type: application/json" \
-d '{"cells": ["89194ad324bffff", "89194ad3253ffff", "… 231 more"], "group_by": "all"}' \
"https://data.traveltimeapp.com/v1/neighbourhood/cells"Response
{
"results": [
{
"cell_count": 233,
"noise": { "max_lden_db": 73.5, "road_lden_db": 55.0 },
"air_quality": { "no2_ugm3": 23.9, "pm25_ugm3": 9.6 },
"flood": { "zone": 1 },
"crime": { "per_1000": 235.5 },
"deprivation": {
"by_nation": {
"england": {
"population_share_by_decile": {
"1": 0.04,
"2": 0.178,
"3": 0.216,
"4": 0.113,
"5": 0.078,
"6": 0.127,
"7": 0.051,
"8": 0.09,
"9": 0.096,
"10": 0.011
}
}
}
},
"broadband": { "gigabit_share": 0.962 }
}
],
"next_cursor": null,
"rollup": {
"cell_count": "sum",
"noise.max_lden_db": "population_weighted_mean",
"noise.road_lden_db": "population_weighted_mean",
"air_quality.no2_ugm3": "population_weighted_mean",
"air_quality.pm25_ugm3": "population_weighted_mean",
"flood.zone": "max",
"crime.per_1000": "population_weighted_mean",
"deprivation.by_nation": "per_nation_population_share",
"broadband.gigabit_share": "population_weighted_mean"
},
"sources": { "noise": "defra_noise_2022_r4", "…": "…" }
}| Parameter | Type | Default | What it does | Example |
|---|---|---|---|---|
layer | layer names, comma-separated | all six | Only these blocks: noise, air_quality, flood, crime, deprivation, broadband. | layer=noise,flood |
Also takes Where: near, radius_m, bbox, cells, at · Per-hexagon routes: group_by · Paging: limit, cursor · Output: format · Long requests: the POST body.
Each row: cell (or cell_count in totals, and boundary with group_by=<type>) and one block per layer:
noise:max_lden_dbandroad_lden_db, in dB Lden.air_quality:no2_ugm3andpm25_ugm3, in µg/m³.flood:zone, 1 (low risk) to 3 (high).crime:per_1000, crimes per 1,000 people.deprivation:by_nation, one entry per nation holdingpopulation_share_by_decile, the share of people (0–1) in each deprivation decile.broadband:gigabit_share, 0–1.
What counts as noisy or polluted: the WHO guidelines are 53 dB Lden for road traffic, 10 µg/m³ for NO₂ and 5 µg/m³ for PM2.5.
A layer that does not reach the hexagon is null, and missing lists it with the reason outside_source_coverage, or no_residents on a total where it reaches only hexagons nobody lives in. Rollup: population_weighted_mean for dB, µg/m³, per_1000 and gigabit_share; max for flood.zone; per_nation_population_share for deprivation.
Errors
| Code | HTTP | When |
|---|---|---|
invalid_layer | 400 | Not one of the six layers; allowed lists them. |
… and every Where, Per-hexagon routes and Paging code.
Request
curl -H "X-Application-Id: YOUR_APP_ID" -H "X-Api-Key: YOUR_APP_KEY" \
"https://data.traveltimeapp.com/v1/neighbourhood/cells?bbox=51.522,-0.140,51.538,-0.110"Shade = noise.max_lden_db59.5 dB83 dB39 hexagons; a hexagon opens its row.
| Hexagoncell | Loudest noisenoise.max_lden_db | Noise road ldennoise.road_lden_db | Air quality no2air_quality.no2_ugm3 | Map |
|---|---|---|---|---|
| 89194ad3643ffff | 82.3 dB | 60.7 dB | 26.3 µg/m³ | |
| 89194ad364bffff | 78.4 dB | 58.1 dB | 27.5 µg/m³ | |
| 89194ad364fffff | 73.8 dB | 56 dB | 29.9 µg/m³ | |
| 89194ad365bffff | 60.9 dB | 52.7 dB | 27.5 µg/m³ | |
| 89194ad366bffff | 77.4 dB | 64.1 dB | 29.9 µg/m³ |
5 of 39 shown · the other 34 are in the response, all 39 in the playground
Response
{
"resolution": 9,
"results": [
{
"cell": "89194ad3643ffff",
"noise": {
"max_lden_db": 82.3,
"road_lden_db": 60.7
},
"air_quality": {
"no2_ugm3": 26.3,
"pm25_ugm3": 10.1
},
"flood": {
"zone": 1
},
"crime": {
"per_1000": 317.2
},
"deprivation": {
"by_nation": {
"england": {
"population_share_by_decile": {
"4": 1
}
}
}
},
"broadband": {
"gigabit_share": 0.918
}
},
"… 38 more rows"
],
"next_cursor": null,
"sources": {
"noise": "defra_noise_2022_r4",
"air_quality": "defra_pcm_2024",
"flood": "ea_flood_map_for_planning",
"crime": "police_uk_2026_08",
"deprivation": "mhclg_iod_2025_eng",
"broadband": "ofcom_cn_2026_01+perf_2025_07"
}
}