MileCheck
MileCheck API › Reference

What is in the MileCheck API data, and how accurate is it?

What each field is, which IDs you can store, where the data comes from, and where it is wrong or missing. Written for the engineer who has to rely on it.

Alert records

GET /v1/alerts returns conditions (road weather and surface) and incidents (closures, crashes, construction, hazards). Both are the state's own data in one shape. Fields a state does not publish are null or absent, never guessed.

// incidents[]  (from a live Washington record)
{
  "incident-id": "WA-722671",
  "event-type-id": "RW",            // AC crash, CL closure, RW roadwork, WE weather, HZ hazard, OT other
  "headline": "",
  "impact-desc": "Weekend-long full closure of northbound I-5 ...",
  "priority": "High",              // the DOT's own priority where it gives one
  "event-status": "Open",
  "start-time": "2026-10-29T18:58:00.000Z",   // ISO 8601, UTC
  "end-time":   "2026-10-31T06:59:00.000Z",
  "last-updated": "2026-10-30T16:03:43.363Z",
  "location": {
    "route-id": "SR 5",            // route in the same form as our mile marker data
    "direction": "NB",             // NB SB EB WB, or absent when the DOT gives none or both
    "start-location": { "start-lat": 47.5867, "start-long": -122.3201, "start-mile-marker": 164 },
    "end-location":   { "end-lat": 47.6558,  "end-long": -122.3223,  "end-mile-marker": 169 }
  }
}

Field names in conditions[]: location-name, route-id, latitude, longitude, road-surface-condition, road-surface-condition-id, air-temperature, weather-condition, travel-advisory, restriction-one, restriction-two, date-updated. States fill the ones they publish.

Every response also has source_status per feed: live, or a reason it is not (for example withdrawn when a source was switched off). An empty list with live means the agency reports nothing active. An empty list with anything else does not mean the road is clear.

Which IDs can I store?

RecordIDStable?
Alert (incident-id)The DOT's own event id with the state code in front, such as WA-722671For the life of the event, as long as the DOT keeps its id. Some DOTs reuse or renumber ids. Store the id with the state, and treat a vanished id as "ended or withdrawn".
Wildfire (id)The NIFC incident id, such as 2026-ORXYZ-000123Stable for the fire.
Drawbridge (id)The federal rule citation, such as 117.1051-d-2Stable until the rule is rewritten in the Code of Federal Regulations.
Border crossing (port_id)The CBP port number, such as 300402Stable. CBP numbers are fixed.
Mile markerNone. A marker is state + route + mile.The route name changes when a state renumbers a highway. We list those in the changelog when we learn of one.

Changes between releases

Live endpoints change every minute and have no releases. The licensed mile marker file does: new roads, renumbered routes and corrected positions. Today there is no fixed monthly schedule and no automatic diff file. A delivery is announced when it ships, and on request we send the list of added, removed and moved markers against your last file. An automatic change list with every delivery is on our list to build.

Coverage and source per state

How fresh is it?

We cache most state feeds for 5 minutes. A few are cached longer because the state publishes slowly. generated_at on a response is when we built it, not when the DOT last updated; use last-updated on a record for the DOT's own time. Border waits follow CBP and CBSA; last_updated on each direction is their time.

Accuracy notes

Found something wrong?

Send the request id (X-Request-Id) and what you expected to info@milecheckapp.com. Wrong mile marker data gets fixed in the file and noted in the changelog.

Our mission

Become the trusted source for road information across North America, from today’s closures to next season’s roadwork.

What we do

We put every state’s Department of Transportation data in one place, on your phone, in your car and in your browser.

Our values

More in our privacy policy and our story.