UK Utility Reporter exposes two API channels. The Public API requires no authentication and is suitable for reading live report data. The Company API (v1) is authenticated and gives registered utility companies full read/write access to reports in their coverage area.
All responses are JSON. All timestamps are Unix milliseconds.
X-API-Key: utl-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx| Name | Type | Description |
|---|---|---|
| type | string | Filter by type: water, gas, electricity, telecoms, roads, flooding, sewage, fire, ufo, cropcircle. Comma-separate for multiple: ?type=ufo,cropcircle |
| status | string | Filter by status: reported, acknowledged, resolved. Omit for active only. |
| since | number | Unix ms — return only reports submitted after this time |
| limit | number | Max results (default 200, max 500) |
{
"ok": true,
"count": 12,
"reports": [
{
"id": "mptx4ldjajmb",
"ref": "UTL-PDS163",
"type": "electricity",
"severity": "urgent", // routine | urgent | emergency
"postcode": "NG1 5AA",
"address": "Market Square, Nottingham",
"lat": 52.954,
"lon": -1.15,
"description": "Streetlights out on three consecutive lamp posts",
"status": "acknowledged", // reported | acknowledged | resolved
"affected_count": 4,
"submitted_at": 1748880000000, // Unix ms
"expires_at": 1749052800000,
"resolved_at": null,
"photo_url": "https://ukutilityreporter.co.uk/photos/mptx4ldjajmb",
"company_name": "Vantage Utilities",
"map_url": "https://ukutilityreporter.co.uk/?report=UTL-PDS163",
"evidence_url": null, // UFO/UAP: YouTube/TikTok/social link; null otherwise
"diameter": null // Crop circle: formation diameter in metres; null otherwise
}
]
}
{
"ok": true,
"report": { /* same shape as list item */ },
"updates": [
{
"id": "upd_abc123",
"company_name": "Vantage Utilities",
"message": "Engineers on site — estimated 2 hours to repair.",
"is_emergency": false,
"posted_at": 1748890000000
}
]
}
{
"ok": true,
"updates": [ { "id", "company_name", "message", "is_emergency", "posted_at" } ]
}
| Name | Type | Description |
|---|---|---|
| postcode | string | UK postcode — full or district (e.g. NG1 or NG1 5AA) |
| type | string | Issue type (water, gas, electricity, telecoms, roads) |
{
"ok": true,
"routing": {
"company_key": "vantage",
"name": "Vantage Utilities",
"email": "faults@vantage.example.com",
"phone": "0800 000 0000"
}
}
{ "ok": true }
// or if already counted:
{ "ok": true, "already": true }
{ "ok": true, "resolved": true }
{ "ok": true }
// or if already removed:
{ "ok": true, "already": true }
{
"ok": true,
"company": "Vantage Utilities",
"company_key": "vantage",
"coverage": "DE, LE, NG"
}
| Name | Type | Description |
|---|---|---|
| status | string | reported | acknowledged | resolved | all (default: all) |
| type | string | Filter by issue type |
| since | number | Unix ms — reports submitted after this time |
| limit | number | Max results (default 200, max 500) |
{
"ok": true,
"company": "Vantage Utilities",
"company_key": "vantage",
"since": 0,
"count": 3,
"reports": [
{
"id": "mptx4ldjajmb",
"ref": "UTL-PDS163",
"type": "electricity",
"severity": "urgent",
"postcode": "NG1 5AA",
"address": "Market Square, Nottingham",
"lat": 52.954,
"lon": -1.15,
"description": "Streetlights out on three consecutive lamp posts",
"status": "acknowledged",
"affected_count": 4,
"email_sent": true,
"submitted_at": 1748880000000,
"expires_at": 1749052800000,
"resolved_at": null,
"photo_url": "https://ukutilityreporter.co.uk/photos/mptx4ldjajmb",
"map_url": "https://ukutilityreporter.co.uk/?report=UTL-PDS163",
"customer": {
"name": "Jane Smith",
"phone": "07700900000",
"account_ref": "ACC-12345",
"tech_ref": "1012345678901", // MPAN, MPRN, or SPID
"wants_contact": true,
"customer_contacted": false
}
// customer is null if reporter did not provide contact details
}
]
}
customer object is never included in the public API — only authenticated company API responses.{ "status": "acknowledged" } // reported | acknowledged | resolved
{ "ok": true }
resolved marks the report for expiry — it will be removed from the public map within 24 hours.{
"message": "Engineers on site — estimated repair time 2 hours.",
"is_emergency": false // true = red Emergency Notice banner on popup
}
{
"ok": true,
"update": {
"id": "upd_abc123",
"message": "Engineers on site — estimated repair time 2 hours.",
"is_emergency": false,
"posted_at": 1748890000000
}
}
{ "ok": true }
{ "ok": true }
// or if no photo exists:
{ "ok": true, "already": true }
{ "contacted": true }
{ "ok": true, "contacted": true }
{
"ok": true,
"settings": {
"notify_new_reports": true // email alert on new report routed to your company
}
}
{ "notify_new_reports": false }
{ "ok": true }
429 with {"ok":false,"error":"..."}.All error responses use standard HTTP status codes and the same JSON envelope:
{ "ok": false, "error": "Description of what went wrong." }
| Status | Meaning |
|---|---|
| 400 | Bad request — missing or invalid parameter |
| 401 | Missing or invalid API key |
| 403 | API key valid but not authorised for this report |
| 404 | Report or resource not found |
| 409 | Duplicate — similar report already submitted from this location |
| 429 | Rate limit exceeded |