# Cars / VIN API
> Decode any Vehicle Identification Number (VIN) into make, model, year, body class, engine, fuel type, drivetrain and plant — and browse vehicle makes and models by type and year. Powered by the official NHTSA vPIC database.

## 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/cars-api/..."
```

## Pricing
- **Free** (Free) — 2,500 calls/Mo, 2 req/s
- **Basic** ($11/Mo) — 40,000 calls/Mo, 8 req/s
- **Pro** ($34/Mo) — 200,000 calls/Mo, 25 req/s
- **Mega** ($89/Mo) — 900,000 calls/Mo, 80 req/s

## Endpoints

### Vehicles

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

**Parameters:**
- `vin` (query, required, string) — Vehicle Identification Number (* allowed for partial) Example: `5UXWX7C5*BA`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/cars-api/v1/decode?vin=5UXWX7C5%2ABA"
```

**Response:**
```json
{
    "data": {
        "vin": "5UXWX7C5*BA",
        "gvwr": "Class 1D: 5,001 - 6,000 lb (2,268 - 2,722 kg)",
        "make": "BMW",
        "trim": "xDrive35i",
        "doors": "4",
        "model": "X3",
        "series": null,
        "engine_hp": "300",
        "fuel_type": "Gasoline",
        "body_class": "Sport Utility Vehicle (SUV)/Multi-Purpose Vehicle (MPV)",
        "drive_type": "AWD/All-Wheel Drive",
        "error_code": "6",
        "error_text": "6 - Incomplete VIN",
        "model_year": "2011",
        "plant_city": "MUNICH",
        "manufacturer": null,
        "transmission": null,
        "vehicle_type": "MULTIPURPOSE PASSENGER VEHICLE (MPV)",
        "plant_country": "GERMANY",
        "displacement_l": "3.0",
        "engine_cylinders": "6"
    },
    "meta": {
        "timestamp": "2026-05-29T23:29:01.654Z",
        "request_id": "50ff297a-24b9-456b-b037-c766f864df98"
    },
    "status": "ok",
    "message": "VIN decoded successfully",
    "success": true
}
```

#### `GET /v1/makes` — Makes for a vehicle type

**Parameters:**
- `type` (query, optional, string) — Vehicle type (car, truck, motorcycle, …) Example: `car`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/cars-api/v1/makes?type=car"
```

**Response:**
```json
{
    "data": {
        "count": 193,
        "makes": [
            {
                "id": 440,
                "name": "ASTON MARTIN"
            },
            {
                "id": 441,
                "name": "TESLA"
            },
            {
                "id": 442,
                "name": "JAGUAR"
            },
            {
                "id": 443,
                "name": "MASERATI"
            },
            {
                "id": 445,
                "name": "ROLLS-ROYCE"
            },
            {
                "id": 448,
                "name": "TOYOTA"
            },
            {
                "id": 449,
                "name": "MERCEDES-BENZ"
            },
            {
                "id": 452,
                "name": "BMW"
            },
            {
                "id": 454,
                "name": "BUGATTI"
            },
            {
                "id": 456,
                "name": "MINI"
            },
            {
                "id": 460,
                "name": "FORD"
            },
            {
                "id": 464,
                "name": "LINCOLN"
            },
            {
                "id": 465,
                "name": "MERCURY"
            },
            {
                "id": 466,
                "name": "LOTUS"
            },
            {
                "id": 467,
                "name": "CHEVROLET"
            },
            {
                "id": 468,
                "name": "BUICK"
            },
   
…(truncated, see openapi.json for full schema)
```

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

**Parameters:**
- `make` (query, required, string) — Vehicle make Example: `Honda`
- `year` (query, optional, string) — 4-digit model year Example: `2020`

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

**Response:**
```json
{
    "data": {
        "make": "Honda",
        "year": "2020",
        "count": 103,
        "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": 2127,
                "name": "Fit"
            },
            {
                "id": 3249,
                "name": "Gold Wing"
            },
            {
                "id": 3251,
                "name": "NC700X"
            },
            {
                "id": 3253,
                "name": "NPS50 (Ruckus)"
            },
            {
                "id": 3264,
                "name": "ST1300"
            },
            {
                "id": 3618,
                "name": "Pacific Coast"
            },
            {
                "id": 3684,
                "name": "Hawk GT"
            },
            {
                "id": 3695,
                "name": "CB-1"
            },
            {
              
…(truncated, see openapi.json for full schema)
```


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