# NHTSA Vehicle API
> US vehicle data as an API, built on the official NHTSA datasets. Decode any VIN into make, model, year, trim, body class, engine, drivetrain, fuel type and assembly plant. Browse the full catalogue of vehicle makes and the models offered for any make and year. Then pull the safety record for a vehicle: open recalls with the affected component, the manufacturer summary, consequence and remedy; owner complaints flagging crashes, fires, injuries and deaths; and the official NCAP crash-test star ratings (overall, frontal, side and rollover). Real government data, no key needed upstream. Ideal for car marketplaces, dealer tools, VIN-lookup widgets, insurance and recall-check apps.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/nhtsa-api/..."
```

## Pricing
- **Free** (Free) — 9,000 calls/Mo, 2 req/s
- **Starter** ($4/Mo) — 120,000 calls/Mo, 8 req/s
- **Pro** ($19/Mo) — 650,000 calls/Mo, 25 req/s
- **Mega** ($69/Mo) — 3,200,000 calls/Mo, 50 req/s

## Endpoints

### Vehicles

#### `GET /v1/makes` — All vehicle makes

**Parameters:**
- `search` (query, optional, string) — Filter makes by name, e.g. toyota Example: `toyota`
- `limit` (query, optional, string) — Max results (default 100) Example: `100`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/nhtsa-api/v1/makes?search=toyota&limit=100"
```

**Response:**
```json
{
    "data": {
        "count": 1,
        "makes": [
            {
                "id": 448,
                "name": "TOYOTA"
            }
        ],
        "total": 1
    },
    "meta": {
        "timestamp": "2026-06-08T01:19:44.625Z",
        "request_id": "30a2eb39-3be8-4c74-a474-afabb947f53b"
    },
    "status": "ok",
    "message": "Makes retrieved successfully",
    "success": true
}
```

#### `GET /v1/models` — Models for a make & year

**Parameters:**
- `make` (query, required, string) — Make, e.g. honda Example: `honda`
- `year` (query, required, string) — Model year, e.g. 2022 Example: `2022`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/nhtsa-api/v1/models?make=honda&year=2022"
```

**Response:**
```json
{
    "data": {
        "make": "honda",
        "year": "2022",
        "count": 108,
        "models": [
            {
                "id": 1861,
                "name": "Accord"
            },
            {
                "id": 1863,
                "name": "Civic"
            },
            {
                "id": 1864,
                "name": "Pilot"
            },
            {
                "id": 1865,
                "name": "CR-V"
            },
            {
                "id": 1866,
                "name": "Ridgeline"
            },
            {
                "id": 1869,
                "name": "Odyssey"
            },
            {
                "id": 1870,
                "name": "Insight"
            },
            {
                "id": 3234,
                "name": "PCX150"
            },
            {
                "id": 3249,
                "name": "Gold Wing"
            },
            {
                "id": 3251,
                "name": "NC700X"
            },
            {
                "id": 3253,
                "name": "NPS50 (Ruckus)"
            },
            {
                "id": 3255,
                "name": "ST1300PA"
            },
            {
                "id": 3264,
                "name": "ST1300"
            },
            {
                "id": 3618,
                "name": "Pacific Coast"
            },
            {
                "id": 3684,
                "name": "Hawk GT"
            },
            {
       
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/vin` — Decode a VIN

**Parameters:**
- `vin` (query, required, string) — A Vehicle Identification Number Example: `1HGCM82633A004352`
- `year` (query, optional, string) — Optional model year hint

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/nhtsa-api/v1/vin?vin=1HGCM82633A004352"
```

**Response:**
```json
{
    "data": {
        "vin": "1HGCM82633A004352",
        "vehicle": {
            "gvwr": "Class 1C: 4,001 - 5,000 lb (1,814 - 2,268 kg)",
            "make": "HONDA",
            "trim": "EX-V6",
            "doors": "2",
            "model": "Accord",
            "fuel_type": "Gasoline",
            "body_class": "Coupe",
            "model_year": "2003",
            "plant_city": "MARYSVILLE",
            "manufacturer": "AMERICAN HONDA MOTOR CO., INC.",
            "transmission": "Automatic",
            "vehicle_type": "PASSENGER CAR",
            "plant_country": "UNITED STATES (USA)",
            "displacement_l": "2.998832712",
            "engine_cylinders": "6"
        }
    },
    "meta": {
        "timestamp": "2026-06-08T01:19:45.269Z",
        "request_id": "49be6ce7-80c5-4656-bf91-24c2144a21cb"
    },
    "status": "ok",
    "message": "VIN decoded successfully",
    "success": true
}
```

### Safety

#### `GET /v1/complaints` — Owner complaints for a vehicle

**Parameters:**
- `make` (query, required, string) — Make Example: `honda`
- `model` (query, required, string) — Model Example: `accord`
- `year` (query, required, string) — Model year Example: `2022`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/nhtsa-api/v1/complaints?make=honda&model=accord&year=2022"
```

**Response:**
```json
{
    "data": {
        "make": "honda",
        "year": "2022",
        "count": 189,
        "model": "accord",
        "complaints": [
            {
                "fire": false,
                "crash": false,
                "deaths": 0,
                "summary": "The touchscreen display has failed and has to be replaced according to the dealership service department. This is a known issue with this generation Honda (10th generation) where the digitizer in the screen fails under heat exposure in the cabin.",
                "injuries": 0,
                "components": [
                    "ELECTRICAL SYSTEM"
                ],
                "filed_date": "06/04/2026",
                "odi_number": 11742035,
                "incident_date": "06/03/2025"
            },
            {
                "fire": false,
                "crash": false,
                "deaths": 0,
                "summary": "Auto start/stop not working and  air horn went out as well, yes available for inspection. No it hasn’t been inspected yet by dealer as it is over warranty limit. First appeared 5/29/26",
                "injuries": 0,
                "components": [
                    "FUEL/PROPULSION SYSTEM"
                ],
                "filed_date": "06/03/2026",
                "odi_number": 11741716,
                "incident_date": "05/29/2026"
            },
            {
                "fire": false,
                "crash": false,
                "deaths": 0,
           
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/ratings` — NCAP crash-test star ratings

**Parameters:**
- `make` (query, required, string) — Make Example: `honda`
- `model` (query, required, string) — Model Example: `accord`
- `year` (query, required, string) — Model year Example: `2022`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/nhtsa-api/v1/ratings?make=honda&model=accord&year=2022"
```

**Response:**
```json
{
    "data": {
        "make": "honda",
        "year": "2022",
        "count": 1,
        "model": "accord",
        "ratings": [
            {
                "overall": "5",
                "rollover": "5",
                "side_crash": "5",
                "vehicle_id": 16835,
                "description": "2022 Honda ACCORD 4 DR FWD",
                "side_driver": "5",
                "front_driver": "5",
                "frontal_crash": "5",
                "side_passenger": "5",
                "front_passenger": "5"
            }
        ]
    },
    "meta": {
        "timestamp": "2026-06-08T01:19:45.531Z",
        "request_id": "7653c2a1-f742-4db8-a597-a9edeef2c837"
    },
    "status": "ok",
    "message": "Ratings retrieved successfully",
    "success": true
}
```

#### `GET /v1/recalls` — Safety recalls for a vehicle

**Parameters:**
- `make` (query, required, string) — Make, e.g. honda Example: `honda`
- `model` (query, required, string) — Model, e.g. accord Example: `accord`
- `year` (query, required, string) — Model year, e.g. 2022 Example: `2022`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/nhtsa-api/v1/recalls?make=honda&model=accord&year=2022"
```

**Response:**
```json
{
    "data": {
        "make": "honda",
        "year": "2022",
        "count": 4,
        "model": "accord",
        "recalls": [
            {
                "notes": "Owners may also contact the National Highway Traffic Safety Administration Vehicle Safety Hotline at 1-888-327-4236 (TTY 1-800-424-9153), or go to www.nhtsa.gov.",
                "remedy": "Dealers will replace the VSA modulator, free of charge.  Owner notification letters were mailed July 24, 2023.  Owners may contact Honda customer service at 1-888-234-2138.  Honda's numbers for this recall are OEJ, XEK, AEY, XEX and OEW.",
                "park_it": false,
                "summary": "Honda (America Honda Motor Co.) is recalling certain 2023 Civic, Acura RDX, Acura Integra, and 2022 Honda Accord vehicles.  A ball valve in the vehicle stability assist (VSA) modulator may leak brake fluid, which can result in unintended vehicle movement when the brake hold feature is engaged or an unexpected increase in brake pedal travel.",
                "component": "SERVICE BRAKES, HYDRAULIC:ANTILOCK/TRACTION CONTROL/ELECTRONIC LIMITED SLIP:CONTROL UNIT/MODULE",
                "consequence": "Unintended vehicle movement or an unexpected increase in brake pedal travel can increase the risk of a crash or injury.",
                "report_date": "15/06/2023",
                "manufacturer": "Honda (American Honda Motor Co.)",
                "over_the_air": false,
                "park_outside": false,
                
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Service description & endpoints

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/nhtsa-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "service": "nhtsa-api",
        "endpoints": {
            "GET /v1/vin": "Decode a VIN (vin=).",
            "GET /v1/meta": "This document.",
            "GET /v1/makes": "All vehicle makes (search=, limit=).",
            "GET /v1/models": "Models for a make & year (make=, year=).",
            "GET /v1/ratings": "NCAP crash-test star ratings (make=, model=, year=).",
            "GET /v1/recalls": "Safety recalls (make=, model=, year=).",
            "GET /v1/complaints": "Owner complaints (make=, model=, year=)."
        },
        "description": "US vehicle data via the official NHTSA APIs: decode any VIN (make, model, year, body, engine, plant), browse the make catalogue and the models for a make/year, and pull safety recalls, owner complaints and NCAP crash-test star ratings for any vehicle. Real government data, no key."
    },
    "meta": {
        "timestamp": "2026-06-08T01:19:45.682Z",
        "request_id": "f46b2b31-d0a3-45f3-b097-52bd46e98b0c"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/nhtsa-api
OpenAPI spec: https://www.oanor.com/api/nhtsa-api/openapi.json
