VIN Decoder API - Specs, Recalls, NCAP Safety & EU Data
Pricing
from $1.50 / 1,000 vin decodeds
VIN Decoder API - Specs, Recalls, NCAP Safety & EU Data
Decode any 17-character VIN into year, make, model, trim, engine and plant, plus NHTSA recalls, owner complaints, NCAP safety ratings, EPA fuel economy and EU type-approval data. One row per VIN, ready for car marketplaces, fleets and insurers.
Pricing
from $1.50 / 1,000 vin decodeds
Rating
0.0
(0)
Developer
SR
Maintained by CommunityActor stats
0
Bookmarked
37
Total users
9
Monthly active users
4 days ago
Last modified
Categories
Share
VIN Decoder API: decode any VIN into specs, recalls, safety and EU data
A VIN decoder API for developers and car businesses: send one 17-character Vehicle Identification Number and get back a single JSON row with year, make, model, trim, engine, transmission, drive type and plant, plus NHTSA recalls, owner complaints, NCAP safety ratings, EPA fuel economy and European type-approval data. The actor stitches five free public vehicle sources together, so you do not need an account or API key with any of them.
Coverage: every US-market vehicle from 1981 onwards through the NHTSA vPIC database, plus vehicles with Swiss/EU type approval through autoref.eu. Pre-1981 vehicles and unknown manufacturers still get manufacturer, country and model year from a built-in WMI table, so a valid VIN never comes back blank.
What the VIN decoder returns
- Identification: year, make, model, trim, body class, vehicle type, doors, country of origin, manufacturer name
- Powertrain: engine cylinders, displacement (L), horsepower, fuel type, engine configuration and engine model, transmission style and speeds, drive type
- Manufacturing: plant city, plant state, plant country, GVWR class
- Recalls: up to 20 NHTSA recall campaigns matched on year, make and model, with campaign number, component, summary, consequence, remedy and report date
- Owner complaints: total complaint count plus the top 5 complaint themes (transmission, brake, engine, airbag, seat and so on) with mention counts
- NCAP safety: overall, front driver/passenger, side driver/passenger and rollover star ratings, plus complaint and investigation counts
- EPA fuel economy: city, highway and combined MPG, annual fuel cost, CO2 per mile, greenhouse gas score, fuel type, drive, vehicle class, transmission
- EU type approval (when the VIN matches a Swiss/EU registered car): kW and DIN horsepower, power and torque rpm, displacement in cc, gears, NEDC and WLTP CO2, combined and urban consumption in l/100 km, EU energy efficiency class, top speed, length, width, height and wheelbase in mm, empty weight, GVWR and payload in kg, factory tire sizes, EU body type, doors and seats, motor code, EC approval number, first-circulation date and country. Fields the source does not have for a car are left out of the block.
Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
vin | string | yes | prefill 1HGCM82633A004352 | Exactly 17 characters, digits and A-Z without I, O and Q (ISO 3779). Lower case is accepted and upper-cased. |
augment | boolean | no | true | When NHTSA leaves year, make or model empty, ask carapi.app to fill the gap. Set to false to skip that extra lookup. |
debug | boolean | no | false | When true, the row also carries debug.nhtsa_raw, the full NHTSA vPIC field dump (around 130 fields). |
light | boolean | no | false | When true, only the identity and spec decode runs: no recalls, complaints, NCAP, EPA or EU lookups. Fastest option for bulk year/make/model work. |
A VIN that does not match ^[A-HJ-NPR-Za-hj-npr-z0-9]{17}$ is rejected by Apify before the run starts, so a typo never costs you a run or an event. Example input:
{"vin": "1HGCM82633A004352","augment": true,"debug": false,"light": false}
Output
One dataset item per run. Below is a real response for a 2003 Honda Accord coupe. The recalls array is shortened here to the first of its 20 campaigns; everything else is exactly as returned.
{"source": "vin-decoder","fetched_at": "2026-10-02T10:53:25.687Z","vin": "1HGCM82633A004352","valid_format": true,"year": 2003,"year_alt": null,"make": "HONDA","model": "Accord","trim": "EX-V6","specs": {"body_class": "Coupe","vehicle_type": "PASSENGER CAR","doors": 2,"series": null,"engine_cylinders": 6,"engine_displacement_l": 2.998832712,"engine_hp": 240,"engine_fuel": "Gasoline","engine_configuration": "V-Shaped","engine_model": "J30A4","transmission_style": "Automatic","transmission_speeds": 5,"drive_type": null,"manufacturer": "AMERICAN HONDA MOTOR CO., INC.","plant_country": "UNITED STATES (USA)","plant_city": "MARYSVILLE","plant_state": "OHIO","gvwr_class": "Class 1C: 4,001 - 5,000 lb (1,814 - 2,268 kg)"},"country": "United States","recalls": [{"campaign_number": "19V182000","component": "AIR BAGS:FRONTAL:DRIVER SIDE:INFLATOR MODULE","summary": "Honda (American Honda Motor Co.) is recalling specific 2003 Acura 3.2CL, 2013-2016 ILX, 2013-2014 ILX Hybrid, 2003-2006 MDX, 2007-2016 RDX, 2002-2003 3.2TL, 2004-2006, and 2009-2014 TL, 2010-2013 ZDX and 2001-2007 and 2009 Honda Accord, 2001-2005 Civic, 2003-2005 Civic Hybrid, 2001-2005 Civic GX NGV","consequence": "An explosion of an inflator within the driver frontal air bag module may result in sharp metal fragments striking the driver, front seat passenger or other occupants resulting in serious injury or dea","remedy": "Honda will notify owners, and dealers will replace the driver's air bag inflator with an alternate inflator, free of charge. The recall began April 10, 2019. Honda owners may contact customer servic","report_received_date": "06/03/2019"}],"complaints": {"count": 2013,"top_themes": [{"theme": "transmission","mentions": 848},{"theme": "brake","mentions": 284},{"theme": "engine","mentions": 264},{"theme": "airbag","mentions": 147},{"theme": "seat","mentions": 145}]},"safety_rating": {"vehicle_id": 4739,"description": "2003 Honda Accord 2-DR. w/SAB","overall": null,"front_driver": 5,"front_passenger": 5,"side_driver": null,"side_passenger": null,"rollover": null,"complaints_count": 2013,"investigation_count": 5},"fuel_economy": {"variant_text": "Auto 5-spd, 4 cyl, 2.4 L","mpg_city": 21,"mpg_highway": 31,"mpg_combined": 25,"annual_fuel_cost_usd": 2700,"co2_g_per_mile": 355.48,"greenhouse_gas_score": -1,"fuel_type": "Regular Gasoline","drive": "Front-Wheel Drive","vehicle_class": "Midsize Cars","transmission": "Automatic 5-spd"},"eu_specs": null,"sources": ["nhtsa","nhtsa_recalls","nhtsa_complaints","nhtsa_safety","epa_fuel_economy"],"errors": [],"nhtsa_note": null,"duration_seconds": 4.28}
For a European VIN the eu_specs block is filled. This is the real block for a 2017 Volkswagen Golf VII (WVWZZZAUZHP541893):
{"record_id": 311369,"source": "autoref.eu","brand": "VW","brand_model": "VW GOLF VII 1.4TSI 5","model_full": "Golf VII 1.4TSI 5","body_eu": "Limousine","doors": "4+1","seats_min": 5,"power_kw": 110,"power_din_hp": 150,"power_rpm": 6000,"displacement_cc": 1395,"cylinders": 4,"fuel": "Gasoline","drivetrain_eu": "Front-Wheel Drive","motor_type": "CZDA","co2_nedc_g_km": 119,"combined_consumption_l_100km": 5.2,"ce_approval": "e1*2007/46-2015/166*0623","date_first_circulation": "2016-01-01"}
Field notes:
sourceslists the layers that actually contributed:nhtsa,carapi,wmi,nhtsa_recalls,nhtsa_complaints,nhtsa_safety,epa_fuel_economy,autoref_eu.errorslists the sources that did not answer for this VIN (for examplecarapi_transport: HTTPStatusError). The row is still delivered with everything else filled.nhtsa_noterepeats NHTSA's own warnings, such as a check digit that does not calculate.year_altis set when position 10 of the VIN is ambiguous across the 30-year cycle (A = 1980 or 2010).recalls,complaints,safety_rating,fuel_economyandeu_specsarenullwhen there is no match or whenlightis on.sourceandfetched_attell you which product produced the row and when.
Use cases for a VIN decoder API
Used-car marketplaces. When a seller enters a VIN, decode it server-side and auto-fill year, make, model, trim, body class, engine and drive type, so the listing is complete before it goes live. Show recall campaigns in a safety tab and the top complaint themes as a "known issues" note.
Fleet management. Run your fleet's VINs on a schedule and surface every NHTSA recall campaign for each vehicle. The campaign number and report date let your maintenance team plan workshop visits.
Insurance and warranty quoting. Cylinders, displacement, horsepower and GVWR class feed straight into underwriting rules. Combined MPG and CO2 per mile support green-vehicle discounts, and for European cars the EU block gives NEDC CO2 and kW figures.
Automotive content and lead generation. Build pages per model and year with recalls, complaint themes and NCAP stars, the questions buyers ask before they purchase a used car.
Dealer and parts systems. Match the engine model and transmission from a VIN to the right parts catalogue entry instead of asking the customer.
How this VIN decoder compares
| Option | Coverage | What you get | Account or key |
|---|---|---|---|
| NHTSA vPIC directly | US market 1981+ | Around 130 raw fields, no recalls, complaints, NCAP or MPG | None |
| Paid VIN history reports | Mostly US | Title, lien and accident history plus specs, priced per report | Account and API key |
| Free VIN decoder websites | Varies | Year, make and model in a web page, not an API | None, but no bulk access |
| This actor | US 1981+ and EU type-approved cars | Curated specs, recalls, complaints, NCAP, EPA MPG and EU data in one JSON row | Only your Apify account |
Compared to calling NHTSA yourself, you skip curating 130 fields and making four more calls for recalls, complaints, NCAP and EPA. Compared to a paid VIN history report, you do not get title, lien or accident records, but you pay a fraction of a cent per VIN for everything else.
Pricing
Pay per event, with the same prices as before:
- VIN decoded: $0.0015 per VIN, which is $1.50 per 1,000 VINs. Every valid VIN produces exactly one row and one event, also when the sources know little about it (the WMI table still answers).
- Actor start: Apify's standard start event of $0.0001 per GB of memory for each run.
A VIN that fails the format check is rejected before the run starts and costs nothing. There are no extra charges for recalls, complaints, NCAP, EPA or EU data; they are included in the per-VIN price.
Limits and good to know
- Recalls are matched on year, make and model, not on the VIN serial range. A campaign for "2003-2007 Honda Accord" shows up on every 2003 Accord. Use the campaign number to check the exact scope on the NHTSA recall site.
- NCAP overall rating is
nullfor older cars. NHTSA introduced the overall score in 2010; older cars keep their front, side and rollover sub-ratings when NHTSA has them. - EPA matching is by model name. Common differences such as
F-150versusF150 Pickupare handled, but unusual trims may not match, and thenfuel_economyisnull. - EU data depends on a real VIN. The European lookup uses the first 10 characters including the check digit. VINs from real registrations match well; made-up test VINs often do not.
- VINs from other markets (for example South American or Asian domestic models) may only return manufacturer and country from the WMI table.
- One VIN per run. Start several runs in parallel or use the Apify API in a loop for bulk work;
light: truekeeps those runs short.
FAQ
Do I need an API key from NHTSA, EPA or another provider? No. All five sources are free public services and the actor calls them for you. You only need your Apify account.
Does this work as a European VIN decoder?
Yes, for cars with Swiss/EU type approval. The eu_specs block then gives kW and DIN horsepower, displacement, NEDC/WLTP CO2, l/100 km consumption, energy efficiency class, dimensions in mm, tire sizes, EC approval number and first-circulation date, as far as the source has them. Real VINs match much better than synthetic ones.
Can I check a VIN for recalls?
Yes. The recalls array lists up to 20 NHTSA recall campaigns for the vehicle's year, make and model, with component, consequence and remedy text.
How is this different from a VIN history report? A history report adds title, lien, odometer and accident records and usually costs several dollars per VIN. This VIN decoder returns specs, recalls, complaints, safety ratings, fuel economy and EU data, without ownership history.
What happens with an invalid VIN? Apify rejects the run before it starts when the VIN is not 17 characters or contains I, O or Q. Nothing is charged.
What happens when a source is down?
The row is still delivered. The missing source is listed in errors and its block is null; the rest of the decode is unaffected.
Related actors
- Backlinks Checker: domain-level link profile and per-link records
- Google Keywords: keyword volume, CPC and competition for any seed term
- Google Ads Transparency: competitor ad creatives