Utilities & AI

Vehicle Data API API

The Vehicle Data API decodes VINs and returns vehicle specs as clean JSON.

18 actionsLive JSON1,000 free creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

The primary vin_decode endpoint returns a VIN's make, model, year, trim, engine, transmission, drivetrain, weight and plant, and you can batch, get a flat shape, pull fuel_economy, fuel_prices and Canadian specs. It is built for automotive, insurance and marketplace tools that need vehicle data from a VIN. One ReefAPI key, one shared credit pool, the standard envelope.

Live example

Real request and response JSON

Captured from the indexed primary action, vin_decode, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/vehicle/v1/vin_decode",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "vin": "1HGCM82633A004352"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "vehicle",
    "endpoint": "vin_decode",
    "mode": "live",
    "latency_ms": 2353.8,
    "record_count": 1,
    "bytes": 3921,
    "cache_hit": false,
    "completeness_pct": 83.33
  },
  "data": {
    "vin": "1HGCM82633A004352",
    "vehicle": {
      "make": "HONDA",
      "model": "Accord",
      "modelYear": "2003",
      "trim": "EX-V6",
      "bodyClass": "Coupe",
      "vehicleType": "PASSENGER CAR",
      "doors": "2",
      "manufacturer": "AMERICAN HONDA MOTOR CO., INC.",
      "engine": {
        "cylinders": "6",
        "displacementL": "[redacted-phone]",
        "displacementCc": "[redacted-phone]",
        "displacementCi": "183",
        "horsepower": "240",
        "model": "J30A4",
        "configuration": "V-Shaped",
        "fuelPrimary": "Gasoline",
        "valveTrain": "Single Overhead Cam (SOHC)"
      },
      "transmission": {
        "style": "Automatic",
        "speeds": "5"
      },
      "weight": {
        "gvwr": "Class 1C: 4,001 - 5,000 lb (1,814 - 2,268 kg)",
        "gvwrTo": "Class 1: 6,000 lb or less (2,722 kg or less)"
      },
      "plant": {
        "city": "MARYSVILLE",
        "state": "OHIO",
        "country": "UNITED STATES (USA)"
      },
      "ids": {
        "makeId": "474",
        "modelId": "1861",
        "manufacturerId": "988"
      }
    },
    "decode": {
      "errorCode": "0",
      "errorText": "0 - VIN decoded clean. Check Digit (9th position) is correct",
      "vehicleDescriptor": "1HGCM826*3A"
    }
  }
}
Actions

What the Vehicle Data API API does

ActionDescriptionConcrete use caseKey params
vin_decodedecode a VIN → make/model/year/trim/engine/specs (vPIC)Ops teams call vin_decode to get decode a VIN → make/model/year/trim/engine/specs (vPIC).vin, modelyear, raw
vin_decode_batchdecode up to 50 VINs in one call (vPIC batch)Developer tools call vin_decode_batch to get decode up to 50 VINs in one call (vPIC batch).vins, raw
vin_decode_flatper-variable VIN decode — one row per NHTSA variable with its label (the long-form companion to vin_decode)Validation workflows call vin_decode_flat to get per-variable VIN decode.vin, modelyear
fuel_economyEPA fuel economy — MPG/MPGe (city/highway/combined), CO2, annual fuel cost, EV range. By year+make+model (auto-resolves trims) or EPA idData-quality teams call fuel_economy to get ePA fuel economy.id, year, make, model
fuel_economy_optionslist EPA trims (each → an id for fuel_economy) for a year+make+modelOps teams call fuel_economy_options to list EPA trims (each → an id for fuel_economy) for a year+make+model.year, make, model
fuel_pricescurrent US national average fuel prices (regular/midgrade/premium/diesel/e85/electric/cng/lpg)Developer tools call fuel_prices to get current US national average fuel prices (regular/midgrade/premium/diesel/e85/electric/cng/lpg).none
canadian_specsdimensional & weight specs (length, width, height, wheelbase, curb weight, track) from NHTSA's Canadian vehicle databaseValidation workflows call canadian_specs to get dimensional & weight specs (length, width, height, wheelbase, curb weight, track) from NHTSA'….year, make, model
recallssafety recalls by make+model+modelYear, or by campaignNumberData-quality teams call recalls to get safety recalls by make+model+modelYear, or by campaignNumber.make, model, modelYear, campaignNumber
safety_ratingsNCAP star ratings + crash-test media; by vehicleId, or year+make+model (auto-resolves variants), or drill-downOps teams call safety_ratings to get nCAP star ratings + crash-test media; by vehicleId, or year+make+model (auto-resolves variant….vehicleId, modelYear, make, model
complaintsconsumer complaints by make+model+modelYearDeveloper tools call complaints to get consumer complaints by make+model+modelYear.make, model, modelYear
modelsmodels for a make (optionally a modelYear / vehicleType)Validation workflows call models to get models for a make (optionally a modelYear / vehicleType).make, modelYear, vehicleType
makesall makes, or makes for a vehicleType (car/truck/mpv/motorcycle/...)Data-quality teams call makes to get all makes, or makes for a vehicleType (car/truck/mpv/motorcycle/...).vehicleType
manufacturersall manufacturers (paged) or details for oneOps teams call manufacturers to get all manufacturers (paged) or details for one.manufacturer, page
wmi_decodedecode a 3-char WMI to its manufacturerDeveloper tools call wmi_decode to get decode a 3-char WMI to its manufacturer.wmi
manufacturer_wmisall WMIs registered to a manufacturerValidation workflows call manufacturer_wmis to get all WMIs registered to a manufacturer.manufacturer
vehicle_typesvehicle types produced by a makeData-quality teams call vehicle_types to get vehicle types produced by a make.make
product_optionsrecall/complaint enumeration tree (modelYears → makes → models; issueType=r|c)Ops teams call product_options to get recall/complaint enumeration tree (modelYears → makes → models; issueType=r|c).issueType, modelYear, make
plant_codesequipment (tire) plant codes for a yearDeveloper tools call plant_codes to get equipment (tire) plant codes for a year.year, equipmentType, reportType
Code samples

Call vin_decode from your stack

curl -X POST https://api.reefapi.com/vehicle/v1/vin_decode \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"vin":"1HGCM82633A004352"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.vehicle.vin_decode with {"vin":"1HGCM82633A004352"}.
Use cases

Who uses this API and why

  • Marketplaces call vin_decode to auto-fill a vehicle listing from a VIN.
  • Insurance tools use vin_decode for underwriting and quoting.
  • Apps use fuel_economy and fuel_prices to estimate running costs.
FAQ

Questions developers ask before integrating

What is the Vehicle Data API API?

Vehicle Data API API is a ReefAPI endpoint group for vehicle data api It returns live JSON through POST requests under /vehicle/v1.

Is the Vehicle Data API API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Vehicle Data API calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Vehicle Data API login or account?

No login to Vehicle Data API is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Vehicle Data API data?

The page example is captured from a live vin_decode call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Vehicle Data API API use?

Vehicle Data API actions currently cost 1-2 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call Vehicle Data API from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call vehicle actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Vehicle Data API API a Vehicle Data API scraper?

It is the managed alternative to a DIY Vehicle Data API scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same vehicle data api back as clean JSON.

Why does my Vehicle Data API scraper keep getting blocked?

Most Vehicle Data API scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.

docs / vehicle

Vehicle Data API

Vehicle Data API

base /vehicle/v118 endpoints
post/vehicle/v1/vin_decode1 credit

decode a VIN → make/model/year/trim/engine/specs (vPIC)

ParameterAllowed / rangeDescription
vinrequiredA Vehicle Identification Number, 1-17 chars (A-Z 0-9, no I/O/Q; use * for unknown positions in a partial VIN).
modelyearoptionalOptional model year to disambiguate a partial VIN decode.
raw = falseoptionalIf true, also include the full flat NHTSA attribute row(s) (~130 fields) under `attributes`.
Try in playground →
post/vehicle/v1/vin_decode_batch2 credits

decode up to 50 VINs in one call (vPIC batch)

ParameterAllowed / rangeDescription
vinsrequiredUp to 50 VINs. Either a 'VIN,year;VIN,year' string, or an array of VIN strings / [VIN, year] pairs / {vin, modelyear} objects.
raw = falseoptionalIf true, also include the full flat NHTSA attribute row(s) (~130 fields) under `attributes`.
Try in playground →
post/vehicle/v1/vin_decode_flat1 credit

per-variable VIN decode — one row per NHTSA variable with its label (the long-form companion to vin_decode)

ParameterAllowed / rangeDescription
vinrequiredA Vehicle Identification Number, 1-17 chars (A-Z 0-9, no I/O/Q; use * for unknown positions in a partial VIN).
modelyearoptionalOptional model year to disambiguate a partial VIN decode.
Try in playground →
post/vehicle/v1/fuel_economy1 credit

EPA fuel economy — MPG/MPGe (city/highway/combined), CO2, annual fuel cost, EV range. By year+make+model (auto-resolves trims) or EPA id

ParameterAllowed / rangeDescription
idoptionalAn EPA fuel-economy vehicle id (from fuel_economy_options). Provide this OR year+make+model.
yearoptionalModel year (e.g. 2021). EPA covers 1984–present.
makeoptionalVehicle make / brand (e.g. Honda, BMW, Acura). Case-insensitive; matched against NHTSA's catalog.
modeloptionalVehicle model name (e.g. Accord, RDX). Case-insensitive.
Try in playground →
post/vehicle/v1/fuel_economy_options1 credit

list EPA trims (each → an id for fuel_economy) for a year+make+model

ParameterAllowed / rangeDescription
yearrequiredModel year (1984–present).
makerequiredVehicle make / brand (e.g. Honda, BMW, Acura). Case-insensitive; matched against NHTSA's catalog.
modelrequiredVehicle model name (e.g. Accord, RDX). Case-insensitive.
Try in playground →
post/vehicle/v1/fuel_prices1 credit

current US national average fuel prices (regular/midgrade/premium/diesel/e85/electric/cng/lpg)

Try in playground →
post/vehicle/v1/canadian_specs1 credit

dimensional & weight specs (length, width, height, wheelbase, curb weight, track) from NHTSA's Canadian vehicle database

ParameterAllowed / rangeDescription
yearrequiredModel year (1984–present).
makeoptionalVehicle make (exact spelling, case-insensitive; matched against NHTSA's Canadian database).
modeloptionalOptional model filter (substring, matched server-side).
Try in playground →
post/vehicle/v1/recalls1 credit

safety recalls by make+model+modelYear, or by campaignNumber

ParameterAllowed / rangeDescription
makeoptionalVehicle make / brand (e.g. Honda, BMW, Acura). Case-insensitive; matched against NHTSA's catalog.
modeloptionalVehicle model name (e.g. Accord, RDX). Case-insensitive.
modelYearoptional4-digit model year (e.g. 2012).
campaignNumberoptionalAn NHTSA recall campaign number — looks up that single campaign directly (alternative to make+model+modelYear).
Try in playground →
post/vehicle/v1/safety_ratings1 credit

NCAP star ratings + crash-test media; by vehicleId, or year+make+model (auto-resolves variants), or drill-down

ParameterAllowed / rangeDescription
vehicleIdoptionalNHTSA NCAP VehicleId for a direct safety rating (from a prior year+make+model drill-down).
modelYearoptional4-digit model year (e.g. 2012).
makeoptionalVehicle make / brand (e.g. Honda, BMW, Acura). Case-insensitive; matched against NHTSA's catalog.
modeloptionalVehicle model name (e.g. Accord, RDX). Case-insensitive.
Try in playground →
post/vehicle/v1/complaints1 credit

consumer complaints by make+model+modelYear

ParameterAllowed / rangeDescription
makerequiredVehicle make / brand (e.g. Honda, BMW, Acura). Case-insensitive; matched against NHTSA's catalog.
modelrequiredVehicle model name (e.g. Accord, RDX). Case-insensitive.
modelYearrequired4-digit model year (e.g. 2012).
Try in playground →
post/vehicle/v1/models1 credit

models for a make (optionally a modelYear / vehicleType)

ParameterAllowed / rangeDescription
makerequiredVehicle make / brand (e.g. Honda, BMW, Acura). Case-insensitive; matched against NHTSA's catalog.
modelYearoptional4-digit model year (e.g. 2012).
vehicleTypeoptionalVehicle type filter (e.g. car, truck, mpv, motorcycle, bus, trailer). Case-insensitive; matched against NHTSA's catalog.
Try in playground →
post/vehicle/v1/makesfree

all makes, or makes for a vehicleType (car/truck/mpv/motorcycle/...)

ParameterAllowed / rangeDescription
vehicleTypeoptionalVehicle type filter (e.g. car, truck, mpv, motorcycle, bus, trailer). Case-insensitive; matched against NHTSA's catalog.
Try in playground →
post/vehicle/v1/manufacturers1 credit

all manufacturers (paged) or details for one

ParameterAllowed / rangeDescription
manufactureroptionalManufacturer name or id to fetch details for; omit to page the full list.
page = 1optional1–Page number for the full manufacturer list (~100 per page).
Try in playground →
post/vehicle/v1/wmi_decode1 credit

decode a 3-char WMI to its manufacturer

ParameterAllowed / rangeDescription
wmirequiredA 3-character World Manufacturer Identifier (the first 3 VIN chars).
Try in playground →
post/vehicle/v1/manufacturer_wmis1 credit

all WMIs registered to a manufacturer

ParameterAllowed / rangeDescription
manufacturerrequiredManufacturer name or id (a `make` is also accepted) whose registered WMIs to list.
Try in playground →
post/vehicle/v1/vehicle_typesfree

vehicle types produced by a make

ParameterAllowed / rangeDescription
makerequiredVehicle make / brand (e.g. Honda, BMW, Acura). Case-insensitive; matched against NHTSA's catalog.
Try in playground →
post/vehicle/v1/product_optionsfree

recall/complaint enumeration tree (modelYears → makes → models; issueType=r|c)

ParameterAllowed / rangeDescription
issueType = roptionalr · cWhich enumeration tree to walk: r = recalls, c = complaints. Any value other than c/complaint(s) is treated as r.
modelYearoptionalOptional model year: with no make → makes for that year; with a make → models. Omit both → the list of available model years.
makeoptionalOptional make to drill product_options down to its models.
Try in playground →
post/vehicle/v1/plant_codes1 credit

equipment (tire) plant codes for a year

ParameterAllowed / rangeDescription
yearrequiredProduction year for the equipment (tire) plant codes.
equipmentType = 1optional1 · 3 · 13NHTSA equipment type code for plant codes (default 1 = tires).
reportType = NewoptionalNew · Updated · AllWhich plant-code report slice to return (default New).
Try in playground →