# NHTSA API

> NHTSA returns vehicle details, safety ratings, recalls, complaints, and model lists as a workflow and API.

Decode vin identifies a vehicle from its 17-character VIN, with an optional model year for older vehicles. Check recalls finds model-level recalls by year, make, and model or VIN; Get safety ratings returns versions by make, model, and year. Get owner complaints summarizes reports for an exact year, make, and model; List vehicle models returns models by make and year.

- Page: https://fous.com/tools/nhtsa
- Handle: `@nhtsa`
- Category: [Government](https://fous.com/tools/category/government)
- Source website: https://nhtsa.gov
- Last verified: Sep 29, 2026

## Methods

### Check recalls

Operation `check_recalls`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

List safety recalls for a vehicle model by year, make and model or by 17-character VIN. Results cover the model, not whether a specific car has been repaired.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `vehicle` | string | yes | `"2019 Honda CR-V"` | Model year, make and model, or a 17-character VIN. Example: 2019 Honda CR-V. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "vehicle"
  ],
  "properties": {
    "vehicle": {
      "type": "string",
      "description": "Model year, make and model, or a 17-character VIN. Example: 2019 Honda CR-V.",
      "examples": [
        "2019 Honda CR-V",
        "1HGCM82633A004352",
        "2019 Honda Monkey125"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "vehicle": "2019 Honda CR-V"
    },
    {
      "vehicle": "1HGCM82633A004352"
    },
    {
      "vehicle": "2019 Honda Monkey125"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `recalls` | array |  |  |
| `recalls[].remedy` | string or null | `"Dealers will replace the seat weight sensors, free of charge. Owner notification letters were mailed July 7, 2026. Owne` | Manufacturer remedy. |
| `recalls[].summary` | string or null | `"Honda (American Honda Motor Co.) is recalling certain 2013-2023 Honda Accord, Civic Coupe, Civic Sedan, Civic Hatchback` | What is wrong. |
| `recalls[].component` | string or null | `"Air Bags, Sensor, Occupant Classification, Front Passenger"` | Affected part or system. |
| `recalls[].nhtsa_link` | string | `"https://www.nhtsa.gov/vehicle/2019/HONDA/CR-V#recalls"` | NHTSA vehicle recalls page. |
| `recalls[].consequence` | string or null | `"Air bags that deploy unintentionally during a crash increase the risk of injury."` | Safety risk. |
| `recalls[].report_date` | string or null | `"2026-05-21"` | Date NHTSA received the recall report (YYYY-MM-DD). |
| `recalls[].vehicles_affected` | integer or null | `98892` | Potential number of units affected in the full campaign, if available. |
| `recalls[].do_not_drive_warning` | string | `"No"` | Whether NHTSA flags a do not drive warning. |
| `recalls[].nhtsa_campaign_number` | string or null | `"26V332000"` | NHTSA recall campaign number. |
| `recalls[].park_it_outside_warning` | string | `"No"` | Whether NHTSA flags a park outside warning. |
| `recalls[].manufacturer_campaign_number` | string or null | `"BOL, WO9, OOA, WOM, XOH, NOC, POD, BOE, UOF, POB, EOG, AOI, QO8, TOJ, DO7, and SOK"` | Manufacturer recall campaign number, if stated. |
| `recall_count` | integer | `8` | Number of recalls for this model. |
| `coverage_note` | string | `"These are recalls for the vehicle model; they do not show whether a specific car has already been repaired."` | Explains model-level coverage and that a car may already be repaired. |
| `vehicle_matched` | string | `"2019 HONDA CR-V"` | Vehicle model found on NHTSA. |

**Example input**

```json
{
  "vehicle": "2019 Honda CR-V"
}
```

**Example output**

```json
{
  "recalls": [
    {
      "remedy": "Dealers will replace the seat weight sensors, free of charge. Owner notification letters were mailed July 7, 2026. Owners may contact Honda's customer service at 1-888-234-2138. Honda's numbers for th…",
      "summary": "Honda (American Honda Motor Co.) is recalling certain 2018-2021, 2023 Acura TLX, 2019-2024 RDX, 2017-2020, 2022-2026 MDX, 2017-2021, 2023, 2025 Honda Ridgeline, 2017-2022 Pilot, 2019-2021 Passport, 20…",
      "component": "Air Bags, Sensor, Occupant Classification, Front Passenger",
      "nhtsa_link": "https://www.nhtsa.gov/vehicle/2019/HONDA/CR-V#recalls",
      "consequence": "Air bags that deploy unintentionally during a crash increase the risk of injury.",
      "report_date": "2026-05-21",
      "vehicles_affected": 98892,
      "do_not_drive_warning": "No",
      "nhtsa_campaign_number": "26V332000",
      "park_it_outside_warning": "No",
      "manufacturer_campaign_number": "BOL, WO9, OOA, WOM, XOH, NOC, POD, BOE, UOF, POB, EOG, AOI, QO8, TOJ, DO7, and SOK"
    }
  ],
  "recall_count": 8,
  "coverage_note": "These are recalls for the vehicle model; they do not show whether a specific car has already been repaired.",
  "vehicle_matched": "2019 HONDA CR-V"
}
```

### Decode VIN

Operation `decode_vin`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Identify a vehicle from its 17-character VIN using NHTSA data. Missing vehicle details are returned as null; decoding errors and warnings are included.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `vin` | string | yes | `"1HGCM82633A004352"` | The 17-character vehicle identification number from the dashboard, door frame, or registration. Spaces and lowercase letters are accepted. Example: 1HGCM82633A004352. |
| `model_year` | integer | no | `2003` | Optional known model year for more precise decoding of older vehicles; 0 lets NHTSA determine it. Example: 2003. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "vin"
  ],
  "properties": {
    "vin": {
      "type": "string",
      "description": "The 17-character vehicle identification number from the dashboard, door frame, or registration. Spaces and lowercase letters are accepted. Example: 1HGCM82633A004352.",
      "examples": [
        "1HGCM82633A004352",
        " 1hgcm82633 a004352 ",
        "1FTFW1ET1EFA00001"
      ]
    },
    "model_year": {
      "type": "integer",
      "default": 0,
      "maximum": 9999,
      "minimum": 0,
      "description": "Optional known model year for more precise decoding of older vehicles; 0 lets NHTSA determine it. Example: 2003.",
      "examples": [
        2003
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "vin": "1HGCM82633A004352"
    },
    {
      "vin": " 1hgcm82633 a004352 ",
      "model_year": 2003
    },
    {
      "vin": "1FTFW1ET1EFA00001"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `vin` | string | `"1HGCM82633A004352"` | The normalized 17-character VIN. |
| `make` | string or null | `"HONDA"` | Vehicle make. |
| `trim` | string or null | `"EX-V6"` | Trim or equipment grade. |
| `doors` | integer or null | `2` | Number of doors. |
| `model` | string or null | `"Accord"` | Vehicle model. |
| `engine` | object |  | Engine details when NHTSA reports them. |
| `engine.cylinders` | integer or null | `6` | Number of engine cylinders. |
| `engine.horsepower` | number or null | `240` | Engine power in horsepower, when listed. |
| `engine.displacement_liters` | number or null | `2.998832712` | Engine displacement in liters. |
| `page_url` | string | `"https://vpic.nhtsa.dot.gov/decoder/VinDecoder?VIN=1HGCM82633A004352"` | Link to this VIN’s NHTSA decoder result page. |
| `warnings` | array |  | NHTSA decoding errors or warnings in plain words; empty if none are reported. |
| `fuel_type` | string or null | `"Gasoline"` | Primary fuel type. |
| `body_style` | string or null | `"Coupe"` | Vehicle body style. |
| `drive_type` | string or null | `"Four-wheel drive"` | Drive type written in words. |
| `model_year` | integer or null | `2003` | Vehicle model year. |
| `plant_city` | string or null | `"MARYSVILLE"` | City of manufacture. |
| `manufacturer` | string or null | `"AMERICAN HONDA MOTOR CO., INC."` | Name of the manufacturer. |
| `transmission` | string or null | `"Automatic"` | Transmission style. |
| `vehicle_type` | string or null | `"PASSENGER CAR"` | Type of vehicle. |
| `plant_country` | string or null | `"UNITED STATES (USA)"` | Country of manufacture. |
| `decoded_variables` | array |  | Every decoded variable returned by NHTSA, including ones with missing values. |
| `decoded_variables[].value` | string or null | `"0"` | Decoded value, or null when missing. |
| `decoded_variables[].value_id` | string or null | `"0"` | NHTSA coded value identifier. |
| `decoded_variables[].variable` | string | `"Suggested VIN"` |  |
| `decoded_variables[].variable_id` | integer or null | `142` | NHTSA variable identifier. |

**Example input**

```json
{
  "vin": "1HGCM82633A004352"
}
```

**Example output**

```json
{
  "vin": "1HGCM82633A004352",
  "make": "HONDA",
  "trim": "EX-V6",
  "doors": 2,
  "model": "Accord",
  "engine": {
    "cylinders": 6,
    "horsepower": 240,
    "displacement_liters": 2.998832712
  },
  "page_url": "https://vpic.nhtsa.dot.gov/decoder/VinDecoder?VIN=1HGCM82633A004352",
  "warnings": [],
  "fuel_type": "Gasoline",
  "body_style": "Coupe",
  "drive_type": null,
  "model_year": 2003,
  "plant_city": "MARYSVILLE",
  "manufacturer": "AMERICAN HONDA MOTOR CO., INC.",
  "transmission": "Automatic",
  "vehicle_type": "PASSENGER CAR",
  "plant_country": "UNITED STATES (USA)",
  "decoded_variables": [
    {
      "value": null,
      "value_id": null,
      "variable": "Suggested VIN",
      "variable_id": 142
    },
    {
      "value": "0",
      "value_id": "0",
      "variable": "Error Code",
      "variable_id": 143
    },
    {
      "value": null,
      "value_id": null,
      "variable": "Possible Values",
      "variable_id": 144
    }
  ]
}
```

### Get owner complaints

Operation `get_owner_complaints`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Summarize owner safety complaints for an exact vehicle model year, make, and model. Separate body-style variants are not combined; mileage is blank when not available as a structured value.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `make` | string | yes | `"Toyota"` | Vehicle make, for example Ford. |
| `model` | string | yes | `"Mirai"` | Exact vehicle model, for example F-150. |
| `model_year` | integer | yes | `2025` | Model year, for example 2018. |
| `max_complaints` | integer | no | `5` | Number of newest complaints to show, for example 20. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "make",
    "model",
    "model_year"
  ],
  "properties": {
    "make": {
      "type": "string",
      "minLength": 1,
      "description": "Vehicle make, for example Ford.",
      "examples": [
        "Toyota",
        "Ford",
        "Acura"
      ]
    },
    "model": {
      "type": "string",
      "minLength": 1,
      "description": "Exact vehicle model, for example F-150.",
      "examples": [
        "Mirai",
        "F-150",
        "RDX"
      ]
    },
    "model_year": {
      "type": "integer",
      "maximum": 2100,
      "minimum": 1900,
      "description": "Model year, for example 2018.",
      "examples": [
        2025,
        2018,
        2012
      ]
    },
    "max_complaints": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Number of newest complaints to show, for example 20.",
      "x-fous-developer": true,
      "examples": [
        5,
        20,
        3
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "make": "Toyota",
      "model": "Mirai",
      "model_year": 2025,
      "max_complaints": 5
    },
    {
      "make": "Ford",
      "model": "F-150",
      "model_year": 2018,
      "max_complaints": 20
    },
    {
      "make": "Acura",
      "model": "RDX",
      "model_year": 2012,
      "max_complaints": 3
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `deaths_reported` | integer | `0` | Total reported deaths. |
| `fire_complaints` | integer | `0` | Complaints reporting a fire. |
| `crash_complaints` | integer | `0` | Complaints reporting a crash. |
| `total_complaints` | integer | `0` | Total complaints for the exact vehicle. |
| `injuries_reported` | integer | `0` | Total reported injuries. |
| `recent_complaints` | array |  |  |
| `recent_complaints[].fire` | boolean | `false` | Whether a fire was reported. |
| `recent_complaints[].link` | string | `"https://www.nhtsa.gov/?nhtsaId=11766743"` | NHTSA page for the complaint. |
| `recent_complaints[].crash` | boolean | `false` | Whether a crash was reported. |
| `recent_complaints[].mileage` | integer or null |  | Odometer reading, if given as a structured value. |
| `recent_complaints[].injuries` | integer | `0` | Number of injuries reported. |
| `recent_complaints[].components` | string | `"Power Train"` | Affected components in plain words. |
| `recent_complaints[].date_filed` | string or null | `"2026-09-24"` | Date filed (YYYY-MM-DD), if known. |
| `recent_complaints[].odi_number` | integer | `11766743` | NHTSA complaint number. |
| `recent_complaints[].description` | string or null | `"The vehicle is stalling/jerking and long idling.  I was told that the transmission needs to be replaced.  Less than 80,` | Owner’s description of the problem. |
| `recent_complaints[].incident_date` | string or null | `"2026-09-14"` | Date of the incident (YYYY-MM-DD), if known. |
| `top_problem_areas` | array |  |  |
| `top_problem_areas[].component` | string | `"Power Train"` |  |
| `top_problem_areas[].complaint_count` | integer | `57` |  |

**Example input**

```json
{
  "make": "Toyota",
  "model": "Mirai",
  "model_year": 2025,
  "max_complaints": 5
}
```

**Example output**

```json
{
  "deaths_reported": 0,
  "fire_complaints": 0,
  "crash_complaints": 0,
  "total_complaints": 0,
  "injuries_reported": 0,
  "recent_complaints": [],
  "top_problem_areas": []
}
```

### Get safety ratings

Operation `get_safety_ratings`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Get NHTSA 5-Star Safety Ratings for a car by make, model, and model year. Returns each matching version; unrated versions have no stars. Pictures are crash-test images when available.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `make` | string | yes | `"Toyota"` | Vehicle maker, for example Toyota. |
| `model` | string | yes | `"Camry"` | Vehicle model, for example Camry. |
| `version` | string | no | `"AWD"` | Optional words to select body style or drive, for example AWD or 4 door. Omit to return every version. |
| `model_year` | integer | yes | `2022` | Model year, for example 2022. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "make",
    "model",
    "model_year"
  ],
  "properties": {
    "make": {
      "type": "string",
      "description": "Vehicle maker, for example Toyota.",
      "examples": [
        "Toyota",
        "Acura"
      ]
    },
    "model": {
      "type": "string",
      "description": "Vehicle model, for example Camry.",
      "examples": [
        "Camry",
        "RDX"
      ]
    },
    "version": {
      "type": "string",
      "default": "",
      "description": "Optional words to select body style or drive, for example AWD or 4 door. Omit to return every version.",
      "examples": [
        "AWD",
        "FWD"
      ]
    },
    "model_year": {
      "type": "integer",
      "description": "Model year, for example 2022.",
      "examples": [
        2022,
        2013
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "make": "Toyota",
      "model": "Camry",
      "version": "AWD",
      "model_year": 2022
    },
    {
      "make": "Toyota",
      "model": "Camry",
      "model_year": 2022
    },
    {
      "make": "Acura",
      "model": "RDX",
      "version": "FWD",
      "model_year": 2013
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `ratings` | array |  |  |
| `ratings[].note` | string or null | `"Not rated"` | Not rated when no overall star rating is available; otherwise null. |
| `ratings[].recalls` | integer or null | `1` | Number of recalls, or null when unavailable. |
| `ratings[].nhtsa_link` | string | `"https://www.nhtsa.gov/vehicle/2022/TOYOTA/CAMRY/4%20DR/AWD"` | NHTSA page for this vehicle version. |
| `ratings[].investigations` | integer or null | `0` | Number of investigations, or null when unavailable. |
| `ratings[].overall_rating` | integer or null | `5` | NHTSA star rating from 1 to 5, or null if not rated. |
| `ratings[].rollover_stars` | integer or null | `5` | NHTSA star rating from 1 to 5, or null if not rated. |
| `ratings[].nhtsa_vehicle_id` | integer | `16662` | NHTSA vehicle ID. |
| `ratings[].owner_complaints` | integer or null | `60` | Number of owner complaints, or null when unavailable. |
| `ratings[].side_crash_stars` | integer or null | `5` | NHTSA star rating from 1 to 5, or null if not rated. |
| `ratings[].frontal_crash_stars` | integer or null | `5` | NHTSA star rating from 1 to 5, or null if not rated. |
| `ratings[].safety_technologies` | array |  | Safety technologies and their availability, for example Forward collision warning: standard. |
| `ratings[].vehicle_description` | string | `"2022 Toyota CAMRY 4 DR AWD"` | NHTSA vehicle version description. |
| `ratings[].vehicle_picture_link` | string or null | `"https://static.nhtsa.gov/crashTest/images/2022/v10146P080.jpg"` | NHTSA crash-test image of the vehicle, or null when not available. |
| `ratings[].rollover_risk_percent` | number or null | `9.9` | NHTSA rollover probability as a percentage, or null when unavailable. |

**Example input**

```json
{
  "make": "Toyota",
  "model": "Camry",
  "version": "AWD",
  "model_year": 2022
}
```

**Example output**

```json
{
  "ratings": [
    {
      "note": null,
      "recalls": 1,
      "nhtsa_link": "https://www.nhtsa.gov/vehicle/2022/TOYOTA/CAMRY/4%20DR/AWD",
      "investigations": 0,
      "overall_rating": 5,
      "rollover_stars": 5,
      "nhtsa_vehicle_id": 16662,
      "owner_complaints": 60,
      "side_crash_stars": 5,
      "frontal_crash_stars": 5,
      "safety_technologies": [
        "Electronic stability control: standard",
        "Forward collision warning: standard",
        "Lane departure warning: standard"
      ],
      "vehicle_description": "2022 Toyota CAMRY 4 DR AWD",
      "vehicle_picture_link": "https://static.nhtsa.gov/crashTest/images/2022/v10146P080.jpg",
      "rollover_risk_percent": 9.9
    }
  ]
}
```

### List vehicle models

Operation `list_vehicle_models`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

List NHTSA-listed passenger car, SUV/minivan, and truck models for a make and model year, alphabetically. Motorcycle and other vehicle types are excluded; records represent NHTSA data, not confirmed retail sales.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `make` | string | yes | `"Toyota"` | Vehicle make, for example Honda. |
| `year` | integer | yes | `2022` | Model year, for example 2020. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "make",
    "year"
  ],
  "properties": {
    "make": {
      "type": "string",
      "description": "Vehicle make, for example Honda.",
      "examples": [
        "Toyota",
        "Honda",
        "Ford"
      ]
    },
    "year": {
      "type": "integer",
      "description": "Model year, for example 2020.",
      "examples": [
        2022,
        2020,
        2035
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "make": "Toyota",
      "year": 2022
    },
    {
      "make": "Honda",
      "year": 2020
    },
    {
      "make": "Honda",
      "year": 2035
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `make` | string | `"TOYOTA"` | Make name as listed by NHTSA. |
| `year` | integer | `2022` | Requested model year. |
| `models` | array |  | Models in alphabetical order. A model listed under multiple vehicle types appears once. |
| `models[].page_url` | string | `"https://www.nhtsa.gov/vehicle/2022/TOYOTA/4RUNNER"` | NHTSA vehicle page for the model and year. |
| `models[].model_name` | string | `"4Runner"` | Name of the vehicle model. |
| `models[].vehicle_type` | string or null | `"Multipurpose Passenger Vehicle (MPV)"` | NHTSA vehicle type or types, when listed. |
| `model_count` | integer | `19` | Number of distinct models listed. |

**Example input**

```json
{
  "make": "Toyota",
  "year": 2022
}
```

**Example output**

```json
{
  "make": "TOYOTA",
  "year": 2022,
  "models": [
    {
      "page_url": "https://www.nhtsa.gov/vehicle/2022/TOYOTA/4RUNNER",
      "model_name": "4Runner",
      "vehicle_type": "Multipurpose Passenger Vehicle (MPV)"
    },
    {
      "page_url": "https://www.nhtsa.gov/vehicle/2022/TOYOTA/AVALON",
      "model_name": "Avalon",
      "vehicle_type": "Passenger Car"
    },
    {
      "page_url": "https://www.nhtsa.gov/vehicle/2022/TOYOTA/C-HR",
      "model_name": "C-HR",
      "vehicle_type": "Passenger Car"
    }
  ],
  "model_count": 19
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@nhtsa",
  "visibility": "public",
  "operation": "check_recalls",
  "version": 1,
  "input": {
    "vehicle": "2019 Honda CR-V"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@nhtsa\",\n  \"visibility\": \"public\",\n  \"operation\": \"check_recalls\",\n  \"version\": 1,\n  \"input\": {\n    \"vehicle\": \"2019 Honda CR-V\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@nhtsa",
  "visibility": "public",
  "operation": "check_recalls",
  "version": 1,
  "input": {
    "vehicle": "2019 Honda CR-V"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/nhtsa`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `check_recalls`: Check recalls. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `decode_vin`: Decode VIN. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `get_owner_complaints`: Get owner complaints. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `get_safety_ratings`: Get safety ratings. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `list_vehicle_models`: List vehicle models. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-nhtsa https://api.fous.com/mcp/tools/nhtsa --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Decode VINs to identify vehicles and review reported details.
- Check vehicle models for safety recalls and campaign warnings.
- Compare NHTSA safety ratings across vehicle versions.
- Summarize owner complaints and reported problem areas.
- List NHTSA vehicle models by make and year.

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this NHTSA tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a NHTSA account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from nhtsa.gov when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 29, 2026.

### What recalls are reported for a vehicle model?

Check recalls lists model-level recalls using a year, make, and model or a 17-character VIN. It does not show whether a specific car has been repaired.

### What safety rating does a vehicle version have?

Get safety ratings returns matching versions for a make, model, and model year, including star ratings when available.

### What problems have owners reported for a vehicle?

Get owner complaints summarizes reports for an exact model year, make, and model, including complaint totals and common problem areas.

## Related

- [Carfax API](https://fous.com/tools/carfax.md): Carfax provides used-car listings near a US ZIP code with free history highlights, plus open safety recalls reported by CARFAX for a VIN or US plate.
- [CPSC API](https://fous.com/tools/cpsc.md): U.S. Consumer Product Safety Commission recalls and product safety information.
- [Cars.com API](https://fous.com/tools/cars-com.md): Cars.com finds car listings by make, model, and U.S. ZIP code, and provides dealerships’ latest customer reviews when available.
- [Kelley Blue Book API](https://fous.com/tools/kelley-blue-book.md): Kelley Blue Book provides valuations and automotive research, including used-car value estimates and ranges, plus model reviews with ratings, pricing, fuel economy, pros and cons.
- [FuelEconomy.gov API](https://fous.com/tools/fueleconomy-gov.md): FuelEconomy.gov provides official vehicle fuel economy ratings, driving range, emissions, five-year savings, and annual fuel costs based on current fuel prices and EPA’s 15,000-mile annual driving assumption.
- [Carvana API](https://fous.com/tools/carvana.md): Search used vehicles for sale on Carvana.
- [FDA API](https://fous.com/tools/fda.md): FDA provides drug safety data, latest matching drug labels, common reported side effects, and newest-first drug, food, and device recalls; recent drug and device recalls may be missing, and weekly food statuses may lag.
- [Autotrader API](https://fous.com/tools/autotrader.md): Search new, used and certified cars for sale across the United States.
- [All Government tools](https://fous.com/tools/category/government)
