Both APIs serve the same source data
NHTSA's CrashAPI and FARS API both serve data from the Fatality Analysis Reporting System. Same crashes, same vehicles, same persons. The difference is how you access it and what you get back.
Feature comparison
| Feature | FARS API (farsapi.com) | NHTSA CrashAPI |
|---|---|---|
| Data source | NHTSA FARS CSVs | NHTSA FARS database |
| Years available | 2017-2023 | 2010-2023 |
| Price | Free tier + $19/mo | Free |
| Radius / geo search | Yes (lat/lng + radius) | No (state + county only) |
| Intersection lookup | Yes (with map, charts, analysis) | No |
| Search by vehicle make/model | By name ("Ford", "F-150") | By numeric code (make=12, model=3) |
| Search by person demographics | Pedestrian filter only | Age, sex, seat position, injury severity |
| Response format | Clean flat JSON, labels only | Nested JSON, codes + labels |
| Pre-joined data | Crash + vehicles + persons + events + factors in one call | Also joined in GetCaseDetails |
| Crash event sequence | Yes ("Ran off road -> Hit barrier -> Rollover") | Yes |
| Contributing factors | Distraction, impairment, maneuver, violation | Yes |
| City name | Yes | Yes |
| Aggregate statistics | Summary, trends, hotspots, state ranking | Injury severity counts only |
| Intersection reports (rendered HTML) | Map, pattern analysis, charts | No |
| Human-readable vehicle names | "Chevrolet Malibu 2018" | make=20, model=421, modelyear=2018 |
| Drunk driver flag | Computed correctly from vehicle data | DRUNK_DR field removed from ACCIDENT.csv starting 2021 |
| Traffic volume (AADT) attached to crashes | Yes, FHWA HPMS spatial join, 80% match rate | No |
| Expected vs Actual fatal crashes (traffic-adjusted) | Yes, per-road-class national baselines | No |
| Output formats | JSON | JSON, XML, CSV, JSV |
| Documentation | Full guide + field reference + Swagger | Basic endpoint listing |
Where NHTSA's API is better
- Free. No cost, no API key, no rate limit.
- More years. Data from 2010 onwards. We currently have 2017-2023.
- More search filters. Filter by person age, sex, seat position, injury severity. We only have pedestrian/cyclist filter at the person level.
- More output formats. JSON, XML, CSV/XLSX, JSV. We only support JSON.
- Official source. Directly from NHTSA's database, not a third-party wrapper.
Where FARS API is better
- Traffic-volume-adjusted crash rates. We spatially join every crash to FHWA HPMS road segment data, so you can ask "is this intersection more dangerous than expected for its traffic volume and road class?" 80% of crashes have a match. NHTSA's CrashAPI does not do this - you'd have to download HPMS shapefiles separately and run the join yourself.
- Geo/radius search. "Find all fatal crashes within 5 miles of this coordinate." NHTSA only filters by state + county.
- Intersection reports. Rendered HTML with map, pattern analysis, bar charts, and disclaimer. A paralegal can use this. NHTSA returns raw JSON.
- Human-readable everything. Vehicle make and model are names, not codes. You search "Ford F-150", not "make=12&model=3". Same for weather, light conditions, body types.
- Aggregate statistics. Summary by state/year/month/hour/road type, year-over-year trends with percentage change, crash hotspot detection. NHTSA only has injury severity counts.
- Drunk driver flag that works. NHTSA removed the
DRUNK_DRfield fromACCIDENT.csvstarting in 2021 - if your pipeline reads it directly you'll get zero drunk-driver crashes for 2021-2023. We derive it correctly from vehicle-levelDR_DRINKfor every year. Details. - Convenience. One API call returns crash + all vehicles + all persons + event sequence + contributing factors. Labels decoded, codes normalized across years.
When to use NHTSA's API
If you need data before 2017, need to filter by specific person demographics (age/sex/seat position), want XML/CSV output, or don't want to pay, use NHTSA's CrashAPI directly. It's free and has broader year coverage.
The base URL is https://crashviewer.nhtsa.dot.gov/crashviewer/CrashAPI/ - note the /crashviewer/ prefix, which isn't obvious from their documentation page.
When to use FARS API
If you need location-based search (radius, intersection lookup), want human-readable responses without decoding numeric codes, need aggregate statistics or trend analysis, or want a rendered intersection report you can attach to a legal filing - that's what farsapi.com is built for.
API Guide Example Report