LiveTrafficCam public API
The livetrafficcam.com public
API serves live US traffic camera data as JSON. No authentication, no
key. Camera liveness is measured with real HTTP checks, so
live_status reflects whether a feed actually serves a
current image.
GET /api/cams.json
Cameras for one state or one named entity. Exactly one of the two parameters:
?state=WA- two-letter state code.?entity=donner-pass- slug of a pass, corridor, bridge or tunnel.
curl "https://livetrafficcam.com/api/cams.json?state=WA"
Response: {"cams": [...]}, each camera with
id, name, slug, lat,
lng, route, state,
live_status (live, stale or
dead), last_live_at,
official_url (the operating agency's page), and
attribution (for example "Camera: WSDOT").
Row cap: at most 200 cameras per query. For full per-state fleet counts use the uptime endpoint below.
GET /reports/camera-uptime.json
Measured per-state uptime of official DOT cameras: cameras tracked, live/stale/dead right now, and the 14-day check success rate.
curl "https://livetrafficcam.com/reports/camera-uptime.json"
Human-readable twin: the camera uptime report, which is also the citation URL for these numbers.
GET /reports/traffic-camera-statistics.json
How many official DOT traffic cameras exist, per state and per agency. Page twin: traffic camera statistics.
Active and tracked counts (since 2026-10-15)
Both reports keep their existing count fields, which cover every
camera we track: in the uptime report, a state's cams is its
live, stale and dead cameras combined. Both reports also carry an active
count, camsCounted in totals. Per row, the
uptime report adds cams_counted to each state and metro; the
statistics report adds camsCounted to each state and
cams_counted to each network, plus
dotCamsCounted and federalCamsCounted in its
totals. Active leaves out
cameras that have shown no live picture for 30 days (a camera added in
the last 30 days stays in while it waits for its first picture). The
site's pages show the active number, so it is the one to use when
matching a figure on livetrafficcam.com.
Conventions
- Responses are cached at the edge for 60 seconds; polling faster returns the same data.
- Field changes are additive only; existing fields do not get renamed or repurposed.
- Keep the per-camera
attributionline when displaying the data. - No CORS headers today, so call it server-side.
- Please send a descriptive User-Agent.
Clients
- livetrafficcam-mcp - MCP server over this API for AI assistants.
- traffic-camera-sources - weekly GeoJSON and uptime snapshots of this API's data.