Find traffic updates, service providers, tools & more
RESTful API providing access to 551,000+ UK police collision records, vehicle data, casualty data, and blackspot analysis. All responses are JSON.
Base URL: https://www.uktrafficupdates.uk/api/data-api.php
Pass your API key as a query parameter or HTTP header:
# Query parameter (simplest) GET /api/data-api.php?key=uktu_starter_xxxx&action=ping # HTTP header GET /api/data-api.php?action=ping X-API-Key: uktu_starter_xxxx
All errors return a JSON object with status: "error" and an error message.
{ "status": "error", "error": "Invalid API key", "docs": "..." }
{ "status": "error", "error": "Hourly rate limit reached (100/hour)" }
| HTTP Code | Meaning |
|---|---|
200 | Success |
400 | Bad request — check your parameters |
401 | Invalid or missing API key |
404 | Record not found |
429 | Rate limit exceeded |
500 | Server error — contact support |
| Tier | Per Hour | Per Day | Price |
|---|---|---|---|
| Trial | 10 | 100 | Free |
| Starter | 100 | 1,000 | £199/mo |
| Professional | 500 | 5,000 | £499/mo |
| Enterprise | Unlimited | Unlimited | Custom |
Every response includes meta.calls_remaining_hour and meta.calls_remaining_day.
Verify your API key is working. Returns your tier and organisation.
{
"status": "ok",
"message": "UK Traffic Updates API is operational",
"organisation": "Surrey County Council",
"tier": "starter",
"timestamp": "2026-04-10T14:30:00+00:00",
"meta": { "calls_remaining_today": 998, "tier": "starter" }
}
Retrieve a single collision record by accident reference, including all vehicles and casualties.
| Parameter | Type | Description |
|---|---|---|
ref | string | REQUIRED Accident index (from road or lookup results) |
{
"status": "ok",
"collision": {
"accident_index": "2024010123456",
"date": "2024-06-01", "time": "14:32",
"road": "M25", "severity": "serious",
"num_vehicles": 2, "num_casualties": 1,
"speed_limit": 70, "weather": "Fine no high winds",
"road_surface": "Dry", "light_conditions": "Daylight",
"police_force": "Surrey Police",
"lat": 51.38420, "lng": -0.12650
},
"vehicles": [
{ "type": "Car", "make_model": "Ford Focus",
"driver_age": 34, "driver_sex": "Male",
"manoeuvre": "Going ahead other", "propulsion": "Petrol" }
],
"casualties": [
{ "severity": "serious", "sex": "Female", "age": 28,
"class": "Driver or rider", "type": "Car occupant" }
],
"meta": { "calls_remaining_today": 997, "response_ms": 42 }
}
List collision records on a named road. Supports filtering and pagination.
| Parameter | Type | Description |
|---|---|---|
road | string | REQUIRED Road name e.g. M25, A3, M6 |
severity | string | optional Filter: fatal, serious, slight |
year | int | optional Filter by year e.g. 2024 |
limit | int | optional Results per page (max 100, default 50) |
page | int | optional Page number (default 1) |
Aggregate statistics for a road — totals, severity breakdown, year-by-year trend, weather analysis.
| Parameter | Description |
|---|---|
road | REQUIRED Road name e.g. M25 |
{
"status": "ok", "road": "M25",
"total_collisions": 2847, "fatal": 62,
"serious": 498, "slight": 2287,
"total_casualties": 3841, "avg_speed_limit": 67.4,
"date_range": { "from": "2020-01-02", "to": "2025-06-30" },
"by_year": { "2020": 487, "2021": 523, "2022": 611 },
"by_weather": { "Fine no high winds": 1890, "Raining no high winds": 421 }
}
Danger scoring and top junction analysis for a road.
{
"status": "ok", "road": "M25",
"danger_score": 78, "risk_level": "Very High",
"top_junctions": [
{ "junction": "J10", "collisions": 48, "fatal": 3, "casualties": 61 }
]
}
Find all collisions within a radius of a GPS coordinate. Useful for address-based lookups.
| Parameter | Description |
|---|---|
lat | REQUIRED Latitude (49–61) |
lng | REQUIRED Longitude (-8 to 2) |
radius | optional Radius in metres (50–2000, default 500) |