Vehicle Data API API
The Vehicle Data API decodes VINs and returns vehicle specs as clean JSON.
🤖 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.
Real request and response JSON
Captured from the indexed primary action, vin_decode, on .
{
"method": "POST",
"url": "https://api.reefapi.com/vehicle/v1/vin_decode",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"vin": "1HGCM82633A004352"
}
}{
"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"
}
}
}What the Vehicle Data API API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| vin_decode | decode 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_batch | decode 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_flat | per-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_economy | EPA fuel economy — MPG/MPGe (city/highway/combined), CO2, annual fuel cost, EV range. By year+make+model (auto-resolves trims) or EPA id | Data-quality teams call fuel_economy to get ePA fuel economy. | id, year, make, model |
| fuel_economy_options | list EPA trims (each → an id for fuel_economy) for a year+make+model | Ops teams call fuel_economy_options to list EPA trims (each → an id for fuel_economy) for a year+make+model. | year, make, model |
| fuel_prices | current 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_specs | dimensional & weight specs (length, width, height, wheelbase, curb weight, track) from NHTSA's Canadian vehicle database | Validation workflows call canadian_specs to get dimensional & weight specs (length, width, height, wheelbase, curb weight, track) from NHTSA'…. | year, make, model |
| recalls | safety recalls by make+model+modelYear, or by campaignNumber | Data-quality teams call recalls to get safety recalls by make+model+modelYear, or by campaignNumber. | make, model, modelYear, campaignNumber |
| safety_ratings | NCAP star ratings + crash-test media; by vehicleId, or year+make+model (auto-resolves variants), or drill-down | Ops 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 |
| complaints | consumer complaints by make+model+modelYear | Developer tools call complaints to get consumer complaints by make+model+modelYear. | make, model, modelYear |
| models | models for a make (optionally a modelYear / vehicleType) | Validation workflows call models to get models for a make (optionally a modelYear / vehicleType). | make, modelYear, vehicleType |
| makes | all 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 |
| manufacturers | all manufacturers (paged) or details for one | Ops teams call manufacturers to get all manufacturers (paged) or details for one. | manufacturer, page |
| wmi_decode | decode a 3-char WMI to its manufacturer | Developer tools call wmi_decode to get decode a 3-char WMI to its manufacturer. | wmi |
| manufacturer_wmis | all WMIs registered to a manufacturer | Validation workflows call manufacturer_wmis to get all WMIs registered to a manufacturer. | manufacturer |
| vehicle_types | vehicle types produced by a make | Data-quality teams call vehicle_types to get vehicle types produced by a make. | make |
| product_options | recall/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_codes | equipment (tire) plant codes for a year | Developer tools call plant_codes to get equipment (tire) plant codes for a year. | year, equipmentType, reportType |
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"}'import requests
r = requests.post(
"https://api.reefapi.com/vehicle/v1/vin_decode",
headers={"x-api-key": REEF_KEY},
json={
"vin": "1HGCM82633A004352"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/vehicle/v1/vin_decode", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"vin": "1HGCM82633A004352"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.vehicle.vin_decode with {"vin":"1HGCM82633A004352"}.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.
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.