Appearance
REST API Overview
The Service Road Atlas REST API lets your app work with road data on behalf of a signed-in user. Where Tiles give you the map rendering layer, the REST API is how you read structured road details, record new trip reports, and build experiences around a specific user's contributions.
Why integrate
- Give users a one-tap way to log a trip. Instead of asking your users to open the Service Road Atlas website after every drive, your app can post the report directly — pulling in photos, vehicle info, and the route they just drove.
- Surface up-to-date road conditions in context. Query the current condition of a specific road right where your user is planning a trip — trip planners, navigation apps, offline atlases, and trailhead guides can all pull live data without a redirect.
- Build dashboards and analytics. Pull paginated bulletin history for a road to power activity feeds, "last driven" summaries, or regional reports.
- Keep an offline companion in sync. Prefetch road geometry for a bounding box, then layer live bulletin reads on top when the device has connectivity.
- Attribute reports to the right account. Everything the API does happens on behalf of a signed-in Service Road Atlas user, so contributions keep the correct author and the user retains revocation control.
What you can do
| Capability | Endpoints | Scope |
|---|---|---|
| Identify the signed-in user | GET /me | any valid token |
| Fetch a single road's geometry and features | GET /paths/{id} | bulletins:read |
| Read a bulletin | GET /bulletins/{id} | bulletins:read |
| Page through bulletins for a road | GET /bulletins?pathId=... | bulletins:read |
| Upload a photo | POST /draft/upload | bulletins:write |
| Submit a bulletin | POST /bulletins | bulletins:write |
| Update a bulletin | PUT /bulletins/{id} | bulletins:write |
| Delete a bulletin | DELETE /bulletins/{id} | bulletins:write |
Permissions model
The API uses OAuth 2.0 with PKCE. Users explicitly grant your app a set of scopes on a consent screen — only the scopes they approve are available to the issued access token. Users can revoke that access at any time from their profile, which immediately invalidates refresh tokens and blocks further API calls.
Keep requested scopes as narrow as possible. The three available scopes are:
| Scope | Grants |
|---|---|
bulletins:read | Read road bulletins and conditions |
bulletins:write | Post, update, and delete bulletins on behalf of the user |
profile:read | Access the user's profile information |
See Authentication for the full flow, token lifetimes, and refresh behaviour.
Base URL
https://backroadstatus.com/api/integrations/v1All endpoints are nested under this base. Responses are JSON unless noted otherwise (the /paths endpoints return GeoJSON, and tile endpoints — which live on a separate host — return MVT).
Rate limits and reliability
We reserve the right to rate limit any origin that puts undue load on the service. If your app expects to send sustained traffic, let us know at info@backroadstatus.com so we can plan capacity together. Errors follow a consistent format — see Error Format — so your client can branch on status codes without guessing.
Where to next
- Haven't registered yet? Start at Registering Your App.
- Already have a client ID? Head to Authentication to implement the OAuth flow.
- Just want to render roads on a map? You probably want Tiles instead of the REST API.