Added
- New POST /v1/air-quality/query endpoint returns air-quality cells for one or more areas. A single request accepts up to 10 area filters of type
point,postcode,outcode,boundingBox,polygonormultipolygon, OR-combined and deduplicated byairQualityId. - Each cell carries
summary(score,band,worstPollutant), per-pollutantpollutants, AQMA / vehicle-emission-zonezonesandprovenance. The premiumroadProximityandinstallationsattributes require theair-quality:premiumpermission. - Requests support
filters(band,dominantSource,insideAqma,insideVehicleEmissionZone,scoreMin/scoreMax),sort,attributessparse field selection,limit/offsetpagination and an optionalsnapshotIdpin. - The safety API gains GET /v1/safety/crime/category-stats for per-point monthly crime category counts within a radius.
- New crime-data catalogue endpoints GET /v1/safety/catalog (availability by country) and GET /v1/safety/catalog/{country} (catalogue entries for a single country).
- New GET /v1/safety/geography/metrics returns aggregated crime metrics for one or more
geographicCodes(LSOA / ward / authority) across explicitperiodsor astartDate/endDaterange, with optionalmergeAreasaggregation and amonthslookback time-series. - Added GET /v1/safety/health service health check.
Changed
- The buildings API (GET /v1/buildings/{buildingId}, POST /v1/buildings/query, POST /v1/buildings/aggregate, POST /v1/buildings/by-ids, GET /v1/buildings/by-point, GET /v1/buildings/by-uprn/{uprn}) now enforces field-level access control on requested
attributes. - Source-identifying attributes
sources,dataSourcesand_provenancenow require thesourceDatapermission; the structural attributesstructure,construction,roof,basement,footprintandpartsrequireosNgdAccess. Callers without these permissions have the affected fields stripped from responses.
Affected endpoints
- POST /v1/air-quality/query
- GET /v1/safety/crime/category-stats
- GET /v1/safety/catalog
- GET /v1/safety/catalog/{country}
- GET /v1/safety/geography/metrics
- GET /v1/safety/health
- GET /v1/buildings/{buildingId}
- POST /v1/buildings/query
- POST /v1/buildings/aggregate
- POST /v1/buildings/by-ids
- GET /v1/buildings/by-point
- GET /v1/buildings/by-uprn/{uprn}