For journalists

Report London numbers with the source line already attached.

Compare the same official measure across wards or postcode districts, retrieve the underlying monthly series and inspect individual HM Land Registry transactions without building a new data pipeline for every story.

Three useful tools

  • GET /v1/wards?borough=hackney and the London district table put comparable places on one documented basis.
  • get_history returns an explicit monthly series and the true loaded coverage bounds rather than silently clipping dates.
  • GET /v1/property-sales/{postcode} returns registered Price Paid transactions plus factual count, median and quartiles.

Worked example: Hackney ward crime

Pull every Hackney ward, use the published Census denominator and then retrieve the 24-month recorded-crime series for the ward code you are reporting. The REST response’s sources array is the attribution line.

GET https://api.civicdata.co.uk/v1/wards?borough=hackney
GET https://api.civicdata.co.uk/v1/history/crime/E05009376?from=2024-08-01&to=2026-07-31

npx civicdata wards --borough hackney
npx civicdata history crime E05009376 --from 2024-08-01 --to 2026-07-31

MCP prompt form:

Use list_geography_profiles for Hackney wards, then call get_history
for crime on ward E05009376 from 2024-08-01 to 2026-07-31.
Return the sources array and geographic basis with every number.

What Civic does not do

It does not label an area safe or unsafe, rank wards, infer causation, estimate a property value or turn incomplete periods into a trend. Recorded crime is returned at its real source geography and Price Paid records are completed registrations that may be revised.