Area data

Road Safety API

Reported road collisions near a location over the last 5 years, by severity and year, with traffic volume at the nearest Department for Transport count point.

Endpoints

Each call costs 1 credit. Requests that return an error are not charged.

Billing details in the response

Successful chargeable JSON responses include a top-level billing object. The endpoint examples on this page focus on the endpoint-specific data, so this repeated block may not be shown in every example.

"billing": {
  "mode": "prepaid",
  "creditsCharged": 1,
  "creditsRemaining": 1999,
  "creditsRefreshAt": "2026-08-14T09:30:00.000Z"
}
Field or headerMeaning
billing.creditsCharged
X-Credits-Charged
Credits charged by this call. Failed and non-chargeable calls return 0 in the header.
billing.creditsRemaining
X-Credits-Remaining
The credit balance after the call.
billing.creditsRefreshAt
X-Credits-Refresh-At
The next monthly credit refresh as an ISO 8601 timestamp. Trial and non-renewing balances return null and omit the header.

All authenticated API-key calls expose the billing headers, including validation errors and zero-credit status or management requests. Only successful chargeable JSON responses add the billing object to the response body.

When credits run out

If your balance is lower than the cost of a request, the API returns HTTP 402 and charges nothing. The error includes the credits needed, your balance and a link to change plan.

{
  "statusCode": 402,
  "statusMessage": "Payment Required",
  "data": {
    "success": false,
    "error": {
      "code": "INSUFFICIENT_CREDITS",
      "message": "This request costs 35 API credits. Upgrade your plan or wait for your monthly refresh: https://propertyinsights.co.uk/billing",
      "required": 35,
      "available": 12,
      "upgradeUrl": "https://propertyinsights.co.uk/billing"
    }
  }
}

Area road safety

GET/api/v1/area/road-safety

Counts police-reported injury collisions within a radius of a postcode or point, split into fatal, serious and slight for each of the last 5 years. Also returns the nearest traffic count point with its road name, distance and annual average daily flow (AADF) by vehicle type, including the HGV share.

NameRequiredTypeDescription
postcodeOne ofstringFull postcode in England, Scotland or Wales.
latitudeOne ofnumberLatitude in decimal degrees. Use with longitude.
longitudeOne ofnumberLongitude in decimal degrees. Use with latitude.
radiusMetresNointegerCollision search radius, 50 to 2000. Default 500.

Coverage is Great Britain. Locations in Northern Ireland, the Isle of Man or out at sea return a 404 and are not charged. The nearest count point can be on a different road from the location, so check its road name and distance.

Example request

curl -X GET "https://propertyinsights.co.uk/api/v1/area/road-safety?latitude=51.4545&longitude=-2.5879&radiusMetres=500" \
  -H "x-api-key: YOUR_API_KEY"

Example response

Collision and traffic figures are DfT data for a point in central Bristol.

{
  "success": true,
  "data": {
    "input": {
      "postcode": null,
      "latitude": 51.4545,
      "longitude": -2.5879,
      "radiusMetres": 500
    },
    "collisions": {
      "fromYear": 2021,
      "toYear": 2025,
      "total": 194,
      "casualties": 208,
      "bySeverity": {
        "fatal": 0,
        "serious": 26,
        "slight": 168
      },
      "byYear": [
        {
          "year": 2021,
          "total": 32,
          "fatal": 0,
          "serious": 3,
          "slight": 29,
          "casualties": 34
        },
        {
          "year": 2022,
          "total": 43,
          "fatal": 0,
          "serious": 5,
          "slight": 38,
          "casualties": 48
        },
        {
          "year": 2023,
          "total": 45,
          "fatal": 0,
          "serious": 3,
          "slight": 42,
          "casualties": 49
        },
        {
          "year": 2024,
          "total": 35,
          "fatal": 0,
          "serious": 3,
          "slight": 32,
          "casualties": 37
        },
        {
          "year": 2025,
          "total": 39,
          "fatal": 0,
          "serious": 12,
          "slight": 27,
          "casualties": 40
        }
      ]
    },
    "nearestCountPoint": {
      "countPointId": 92040,
      "roadName": "A4044",
      "roadCategory": "PA",
      "roadType": "Major",
      "startJunction": "lat: 51.4488 long: -2.5842",
      "endJunction": "lat: 51.4558 long: -2.5835",
      "localAuthority": "Bristol, City of",
      "distanceMetres": 303,
      "year": 2025,
      "estimationMethod": "Estimated",
      "aadf": {
        "allMotorVehicles": 34667,
        "carsAndTaxis": 27630,
        "lgvs": 5077,
        "hgvs": 833,
        "busesAndCoaches": 302,
        "twoWheeledMotorVehicles": 825,
        "pedalCycles": 608
      },
      "hgvSharePct": 2.4
    },
    "notes": "Collisions are personal injury collisions reported to the police, with severity as the police recorded it. Damage-only collisions are not included. Traffic is the annual average daily flow (AADF) in both directions at the nearest count point, which may be on a different road from the location.",
    "sources": [
      {
        "name": "Department for Transport road safety data (STATS19)",
        "url": "https://www.data.gov.uk/dataset/cb7ae6f0-4be6-4935-9277-47e5ce24a11f/road-accidents-safety-data",
        "licence": "Open Government Licence v3.0",
        "attribution": "Contains public sector information licensed under the Open Government Licence v3.0."
      },
      {
        "name": "Department for Transport road traffic statistics",
        "url": "https://roadtraffic.dft.gov.uk/downloads",
        "licence": "Open Government Licence v3.0",
        "attribution": "Contains public sector information licensed under the Open Government Licence v3.0."
      }
    ]
  }
}

Sources and coverage

DataSourceGeographyUpdated
CollisionsDfT road safety data (STATS19), last 5 yearsGreat BritainYearly, final data each September
Traffic countsDfT road traffic statistics, AADF by count pointGreat BritainYearly, each June

Both sources are published by the Department for Transport under the Open Government Licence v3.0. Contains public sector information licensed under the Open Government Licence v3.0.

OpenAPI specification

Authentication, parameters, billing headers and response schemas are also published in the machine-readable OpenAPI documents in JSON and YAML.