LiveRoad Works Data API
UK street works and road closures (DfT Street Manager for England, the Scottish Road Works Register, TrafficwatchNI and National Highways), searchable by your own site list and downloadable as GeoJSON, CSV, Excel or JSON. Built for scheduled pulls into a GIS.
Base URL: https://liveroad.app
Authentication
Every request carries your API key:
Authorization: Bearer lr_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(x-api-key: lr_live_… also works.) The limit is 60 requests per minute per
key. A weekly pull uses two or three requests.
Getting a key
- Sign in at liveroad.app/works with the account that has data access. The first time, we email a link to confirm your address: click it (signing in with Google confirms it straight away).
- In the API keys panel, give the key a name (for example "ArcGIS weekly pull") and click Create API key.
- Copy it straight into your system's secret store. It's shown once; we only keep a fingerprint, so a lost key can't be recovered. Revoke it and create a new one instead.
A key acts as your login, with the same data access and end date. Keep it server-side, don't email or commit it, and revoke it on the same page if it leaks or a system is retired. You can have up to 5 active keys.
1. Load your sites
One list per asset set (you can have up to 20). Each site needs a reference and a location. The cordon radius is per site, or the list default (500 m if not given; 10 m to 20 km allowed).
CSV (headers are flexible: Site ID, Latitude, Buffer (m) etc. are recognised):
site_ref,name,easting,northing,radius_m
A-0001,Bankside depot,532350,180350,250
A-0002,Leeds yard,,,
Location can be any one of:
lat+lng(WGS84)easting+northing(British National Grid, EPSG:27700)postcode: on the /works page only, where it is looked up for you. Through the API, send coordinates.
curl -X POST "https://liveroad.app/api/works/sites?name=Client%20assets&default_radius_m=500" \
-H "Authorization: Bearer $KEY" -H "Content-Type: text/csv" --data-binary @sites.csv
JSON:
curl -X POST https://liveroad.app/api/works/sites \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"name":"Client assets","default_radius_m":500,
"sites":[{"site_ref":"A-0001","name":"Bankside depot","lat":51.5045,"lng":-0.0972,"radius_m":250}]}'
The response gives the list id and any rows that were skipped and why (for
example swapped lat/lng, a duplicate reference, or a site outside the UK).
| Method | Path | |
|---|---|---|
GET |
/api/works/sites |
Your lists |
POST |
/api/works/sites |
Create a list |
GET |
/api/works/sites/{id} |
A list with its sites |
PUT |
/api/works/sites/{id} |
Replace a list's sites (same body as POST) |
DELETE |
/api/works/sites/{id} |
Delete a list |
2. Pull works
GET /api/works/export?site_list={id}&format=geojson&status=planned,in_progress
You get one feature per (work, site) pair. A work near two sites appears twice, once for each site, with that site's distance. Each site's results are sorted nearest first.
Formats
format= |
|
|---|---|
geojson |
FeatureCollection (WGS84). Geometry is the permit's real shape (line or polygon) where Street Manager gives one, otherwise a point. Loads straight into QGIS or ArcGIS. |
csv |
Spreadsheet-friendly. Site columns come first. |
xlsx |
Excel, with a filterable header and an About sheet. |
json |
{ rows, count, truncated } |
Filters (all optional, combine freely)
| Param | Example | |
|---|---|---|
site_list |
12 |
Your site list id |
status |
planned,in_progress |
planned, in_progress, completed, cancelled. Cancelled permits are excluded unless asked for. |
from, to |
2026-10-19, 2026-11-30 |
Works active in this window |
updated_since |
2026-10-12 |
Only works whose record changed on or after this date. Use it for weekly deltas. |
promoter |
Thames Water,Openreach |
Operator (partial match, comma = OR) |
authority |
Southwark |
Highway authority |
work_type |
New service connection |
|
tm |
road_closure,multi_way_signals |
Traffic management type |
category |
major,standard |
Permit size: major, standard, minor, immediate |
major |
1 |
Major disruption only: road/lane closures, contraflows or Major permits, never Minor permits |
min_days, max_days |
14 |
Planned duration |
permit_ref |
TW123 |
|
archive |
0 |
Leave out past (archived) works |
Fields
site_ref, site_name, distance_m, site_radius_m, permit_ref, promoter,
authority, work_type, road, start_date, end_date (planned),
duration_days, actual_start, actual_end (as reported by the promoter),
status, overrunning, cancel_reason, traffic_management,
permit_category (Major / Standard / Minor / Immediate), lat, lng,
easting, northing (British National Grid, EPSG:27700), works_length_m
(line geometries only), record (live / archive), last_updated,
map_link. CSV, Excel and JSON also carry geometry_bng: the permit's shape as
WKT in BNG, so a spreadsheet extract can be drawn as lines in GIS.
Response headers
X-Row-Count gives the number of rows. X-Truncated: 1 means the export hit
its 50,000 row cap, so narrow the filters (for example by date window).
Suggested weekly job
- Once:
POSTthe site list and note itsid.PUTwhenever sites change. - Each week: pull everything planned or underway near your sites:
GET /api/works/export?site_list=ID&format=geojson&status=planned,in_progress - Optionally, also pull what changed since last week:
…&updated_since=YYYY-MM-DD
Email alerts for a site list
Switch on a daily email for any of your site lists. Each morning (about 07:15 UK time) we check every site's cordon and email the list owner if works are new or have changed: planned start or end date, traffic management or permit category. Section 58 notices are listed first. Works already near your sites when you switch alerts on are recorded, not sent.
curl -X POST https://liveroad.app/api/works/sites/12/alerts \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"enabled": true}'
Send {"enabled": false} to switch them off. GET /api/works/sites shows
alerts_enabled and alerts_last_sent for each list. You can also tick
"Email me when works change near these sites" on the /works page.
Coverage and caveats
- Coverage. England: DfT Street Manager permits. Scotland: the Scottish Road Works Register (daily). Northern Ireland: TrafficwatchNI roadworks (no coordinates in the feed, so each is placed on its named street; about 12% that can't be placed are left out). Motorways and major A roads: National Highways closures. Wales isn't included yet.
- Planned dates come from the permit. Actual start and stop come from the operator's work start / work stop notices, which are reported on roughly half of permits; where they weren't, only planned dates are given.
- History covers Street Manager permits from July 2020 onwards; the other registers from when LiveRoad started importing them (Oct 2026).
- Contains public sector information licensed under the Open Government Licence v3.0. Sources: DfT Street Manager; the Scottish Road Works Register; TrafficwatchNI (DfI Traffic Information and Control Centre); Powered by National Highways’ Transport Data Feeds.