NHTSA Crash API · Capability

NHTSA Crash Data API

The NHTSA Crash Data API provides public access to U.S. National Highway Traffic Safety Administration crash datasets including the Fatality Analysis Reporting System (FARS) and the Crash Report Sampling System (CRSS). The API exposes case lists, case details, and aggregated crash queries by location, vehicle, and occupant via REST endpoints that return JSON, XML, or CSV.

Run with Naftiko NhtsaCrashApiAPI

What You Can Do

GET
Getfarsdata — Get FARS dataset
/FARSData/GetFARSData
GET
Getcaselist — Get case list
/crashes/GetCaseList
GET
Getcasedetails — Get case details
/crashes/GetCaseDetails
GET
Getcrashesbylocation — Get crashes by location
/crashes/GetCrashesByLocation
GET
Getcrashesbyvehicle — Get crashes by vehicle
/crashes/GetCrashesByVehicle
GET
Getcrashesbyoccupant — Get crashes by occupant
/crashes/GetCrashesByOccupant

MCP Tools

getfarsdata

Get FARS dataset

read-only idempotent
getcaselist

Get case list

read-only idempotent
getcasedetails

Get case details

read-only idempotent
getcrashesbylocation

Get crashes by location

read-only idempotent
getcrashesbyvehicle

Get crashes by vehicle

read-only idempotent
getcrashesbyoccupant

Get crashes by occupant

read-only idempotent

Capability Spec

nhtsa-crash-api-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: NHTSA Crash Data API
  description: The NHTSA Crash Data API provides public access to U.S. National Highway Traffic Safety Administration crash
    datasets including the Fatality Analysis Reporting System (FARS) and the Crash Report Sampling System (CRSS). The API
    exposes case lists, case details, and aggregated crash queries by location, vehicle, and occupant via REST endpoints that
    return JSON, XML, or CSV.
  tags:
  - Nhtsa
  - Crash
  - Api
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: nhtsa-crash-api
    baseUri: https://crashviewer.nhtsa.dot.gov/CrashAPI
    description: NHTSA Crash Data API HTTP API.
    resources:
    - name: farsdata-getfarsdata
      path: /FARSData/GetFARSData
      operations:
      - name: getfarsdata
        method: GET
        description: Get FARS dataset
        inputParameters:
        - name: dataset
          in: query
          type: string
          required: true
          description: FARS dataset name (e.g., Accident, Vehicle, Person).
        - name: caseYear
          in: query
          type: integer
          required: true
          description: Case year (YYYY).
        - name: format
          in: query
          type: string
          description: Response format.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: crashes-getcaselist
      path: /crashes/GetCaseList
      operations:
      - name: getcaselist
        method: GET
        description: Get case list
        inputParameters:
        - name: states
          in: query
          type: string
          required: true
          description: State FIPS code(s), comma separated.
        - name: fromCaseYear
          in: query
          type: integer
          required: true
          description: Beginning case year.
        - name: toCaseYear
          in: query
          type: integer
          required: true
          description: Ending case year.
        - name: minNumOfVehicles
          in: query
          type: integer
          description: Minimum number of vehicles involved.
        - name: maxNumOfVehicles
          in: query
          type: integer
          description: Maximum number of vehicles involved.
        - name: format
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: crashes-getcasedetails
      path: /crashes/GetCaseDetails
      operations:
      - name: getcasedetails
        method: GET
        description: Get case details
        inputParameters:
        - name: stateCase
          in: query
          type: string
          required: true
          description: State case number.
        - name: caseYear
          in: query
          type: integer
          required: true
        - name: state
          in: query
          type: integer
          required: true
          description: State FIPS code.
        - name: format
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: crashes-getcrashesbylocation
      path: /crashes/GetCrashesByLocation
      operations:
      - name: getcrashesbylocation
        method: GET
        description: Get crashes by location
        inputParameters:
        - name: fromCaseYear
          in: query
          type: integer
          required: true
        - name: toCaseYear
          in: query
          type: integer
          required: true
        - name: state
          in: query
          type: integer
          required: true
          description: State FIPS code.
        - name: county
          in: query
          type: integer
          description: County FIPS code.
        - name: format
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: crashes-getcrashesbyvehicle
      path: /crashes/GetCrashesByVehicle
      operations:
      - name: getcrashesbyvehicle
        method: GET
        description: Get crashes by vehicle
        inputParameters:
        - name: fromCaseYear
          in: query
          type: integer
          required: true
        - name: toCaseYear
          in: query
          type: integer
          required: true
        - name: state
          in: query
          type: integer
          required: true
        - name: vPicMake
          in: query
          type: string
        - name: vPicModel
          in: query
          type: string
        - name: vPicBodyClass
          in: query
          type: string
        - name: format
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: crashes-getcrashesbyoccupant
      path: /crashes/GetCrashesByOccupant
      operations:
      - name: getcrashesbyoccupant
        method: GET
        description: Get crashes by occupant
        inputParameters:
        - name: fromCaseYear
          in: query
          type: integer
          required: true
        - name: toCaseYear
          in: query
          type: integer
          required: true
        - name: state
          in: query
          type: integer
          required: true
        - name: minAge
          in: query
          type: integer
        - name: maxAge
          in: query
          type: integer
        - name: sex
          in: query
          type: integer
        - name: seatPos
          in: query
          type: integer
        - name: format
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: nhtsa-crash-api-rest
    description: REST adapter for NHTSA Crash Data API.
    resources:
    - path: /FARSData/GetFARSData
      name: getfarsdata
      operations:
      - method: GET
        name: getfarsdata
        description: Get FARS dataset
        call: nhtsa-crash-api.getfarsdata
        outputParameters:
        - type: object
          mapping: $.
    - path: /crashes/GetCaseList
      name: getcaselist
      operations:
      - method: GET
        name: getcaselist
        description: Get case list
        call: nhtsa-crash-api.getcaselist
        outputParameters:
        - type: object
          mapping: $.
    - path: /crashes/GetCaseDetails
      name: getcasedetails
      operations:
      - method: GET
        name: getcasedetails
        description: Get case details
        call: nhtsa-crash-api.getcasedetails
        outputParameters:
        - type: object
          mapping: $.
    - path: /crashes/GetCrashesByLocation
      name: getcrashesbylocation
      operations:
      - method: GET
        name: getcrashesbylocation
        description: Get crashes by location
        call: nhtsa-crash-api.getcrashesbylocation
        outputParameters:
        - type: object
          mapping: $.
    - path: /crashes/GetCrashesByVehicle
      name: getcrashesbyvehicle
      operations:
      - method: GET
        name: getcrashesbyvehicle
        description: Get crashes by vehicle
        call: nhtsa-crash-api.getcrashesbyvehicle
        outputParameters:
        - type: object
          mapping: $.
    - path: /crashes/GetCrashesByOccupant
      name: getcrashesbyoccupant
      operations:
      - method: GET
        name: getcrashesbyoccupant
        description: Get crashes by occupant
        call: nhtsa-crash-api.getcrashesbyoccupant
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: nhtsa-crash-api-mcp
    transport: http
    description: MCP adapter for NHTSA Crash Data API for AI agent use.
    tools:
    - name: getfarsdata
      description: Get FARS dataset
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: nhtsa-crash-api.getfarsdata
      with:
        dataset: tools.dataset
        caseYear: tools.caseYear
        format: tools.format
      inputParameters:
      - name: dataset
        type: string
        description: FARS dataset name (e.g., Accident, Vehicle, Person).
        required: true
      - name: caseYear
        type: integer
        description: Case year (YYYY).
        required: true
      - name: format
        type: string
        description: Response format.
      outputParameters:
      - type: object
        mapping: $.
    - name: getcaselist
      description: Get case list
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: nhtsa-crash-api.getcaselist
      with:
        states: tools.states
        fromCaseYear: tools.fromCaseYear
        toCaseYear: tools.toCaseYear
        minNumOfVehicles: tools.minNumOfVehicles
        maxNumOfVehicles: tools.maxNumOfVehicles
        format: tools.format
      inputParameters:
      - name: states
        type: string
        description: State FIPS code(s), comma separated.
        required: true
      - name: fromCaseYear
        type: integer
        description: Beginning case year.
        required: true
      - name: toCaseYear
        type: integer
        description: Ending case year.
        required: true
      - name: minNumOfVehicles
        type: integer
        description: Minimum number of vehicles involved.
      - name: maxNumOfVehicles
        type: integer
        description: Maximum number of vehicles involved.
      - name: format
        type: string
        description: format
      outputParameters:
      - type: object
        mapping: $.
    - name: getcasedetails
      description: Get case details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: nhtsa-crash-api.getcasedetails
      with:
        stateCase: tools.stateCase
        caseYear: tools.caseYear
        state: tools.state
        format: tools.format
      inputParameters:
      - name: stateCase
        type: string
        description: State case number.
        required: true
      - name: caseYear
        type: integer
        description: caseYear
        required: true
      - name: state
        type: integer
        description: State FIPS code.
        required: true
      - name: format
        type: string
        description: format
      outputParameters:
      - type: object
        mapping: $.
    - name: getcrashesbylocation
      description: Get crashes by location
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: nhtsa-crash-api.getcrashesbylocation
      with:
        fromCaseYear: tools.fromCaseYear
        toCaseYear: tools.toCaseYear
        state: tools.state
        county: tools.county
        format: tools.format
      inputParameters:
      - name: fromCaseYear
        type: integer
        description: fromCaseYear
        required: true
      - name: toCaseYear
        type: integer
        description: toCaseYear
        required: true
      - name: state
        type: integer
        description: State FIPS code.
        required: true
      - name: county
        type: integer
        description: County FIPS code.
      - name: format
        type: string
        description: format
      outputParameters:
      - type: object
        mapping: $.
    - name: getcrashesbyvehicle
      description: Get crashes by vehicle
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: nhtsa-crash-api.getcrashesbyvehicle
      with:
        fromCaseYear: tools.fromCaseYear
        toCaseYear: tools.toCaseYear
        state: tools.state
        vPicMake: tools.vPicMake
        vPicModel: tools.vPicModel
        vPicBodyClass: tools.vPicBodyClass
        format: tools.format
      inputParameters:
      - name: fromCaseYear
        type: integer
        description: fromCaseYear
        required: true
      - name: toCaseYear
        type: integer
        description: toCaseYear
        required: true
      - name: state
        type: integer
        description: state
        required: true
      - name: vPicMake
        type: string
        description: vPicMake
      - name: vPicModel
        type: string
        description: vPicModel
      - name: vPicBodyClass
        type: string
        description: vPicBodyClass
      - name: format
        type: string
        description: format
      outputParameters:
      - type: object
        mapping: $.
    - name: getcrashesbyoccupant
      description: Get crashes by occupant
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: nhtsa-crash-api.getcrashesbyoccupant
      with:
        fromCaseYear: tools.fromCaseYear
        toCaseYear: tools.toCaseYear
        state: tools.state
        minAge: tools.minAge
        maxAge: tools.maxAge
        sex: tools.sex
        seatPos: tools.seatPos
        format: tools.format
      inputParameters:
      - name: fromCaseYear
        type: integer
        description: fromCaseYear
        required: true
      - name: toCaseYear
        type: integer
        description: toCaseYear
        required: true
      - name: state
        type: integer
        description: state
        required: true
      - name: minAge
        type: integer
        description: minAge
      - name: maxAge
        type: integer
        description: maxAge
      - name: sex
        type: integer
        description: sex
      - name: seatPos
        type: integer
        description: seatPos
      - name: format
        type: string
        description: format
      outputParameters:
      - type: object
        mapping: $.