NHTSA VIN Decoder Scraper - Car Specs, Recalls & Ratings
Pricing
from $6.15 / 1,000 results
NHTSA VIN Decoder Scraper - Car Specs, Recalls & Ratings
Decode any VIN into 150+ vehicle specs from the official NHTSA vPIC database: make, model, year, engine, safety and ADAS. Bulk VIN lookup, no API key. Paid add-ons: open recalls, NCAP crash-test ratings, complaints and EPA fuel economy. Export JSON, CSV or Excel.
Pricing
from $6.15 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
NHTSA VIN Decoder Scraper - Car Specs, Recalls & Ratings
Decode any VIN into full vehicle specifications from the official US NHTSA vPIC database, in bulk, with no API key and no login. This VIN decoder returns 150+ specification fields per vehicle: make, model, year, trim, body class, engine, horsepower, fuel type, drivetrain, EV battery, weight ratings, airbags and the full set of ADAS and active-safety equipment. Optional paid add-ons attach open safety recalls, NCAP crash-test ratings, consumer-complaint summaries and EPA fuel economy (MPG) to each decoded VIN.
Here is one real decoded record (base result, engine and safety fields trimmed for space):
{"vin": "1HGCM82633A004352","make": "HONDA","makeId": 474,"model": "Accord","modelId": 1861,"modelYear": "2003","trim": "EX-V6","bodyClass": "Coupe","vehicleType": "PASSENGER CAR","doors": 2,"engineCylinders": 6,"displacementL": 2.998832712,"displacementCI": 183,"engineConfiguration": "V-Shaped","engineHP": 240,"engineModel": "J30A4","valveTrainDesign": "Single Overhead Cam (SOHC)","fuelTypePrimary": "Gasoline","transmissionStyle": "Automatic","transmissionSpeeds": "5","driveType": "FWD/Front-Wheel Drive","gvwr": "Class 1C: 4,001 - 5,000 lb (1,814 - 2,268 kg)","seatBeltsAll": "Manual","airBagLocFront": "1st Row (Driver and Passenger)","airBagLocSide": "1st Row (Driver and Passenger)","airBagLocCurtain": "1st and 2nd Rows","manufacturer": "AMERICAN HONDA MOTOR CO., INC.","plantCity": "MARYSVILLE","plantState": "OHIO","plantCountry": "UNITED STATES (USA)","vehicleDescriptor": "1HGCM826*3A","errorCode": "0","errorText": "0 - VIN decoded clean. Check Digit (9th position) is correct","observedAt": "2026-09-04T14:17:18.362Z","error": null}
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Why this VIN decoder
- Quickstart
- Input reference
- Output reference
- Paid add-ons
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
Give the actor a list of VINs and it decodes each one against the official NHTSA vPIC database, writing one normalized record per VIN to the run dataset. Every populated vPIC variable is surfaced: vehicle identity (make, model, year, trim, series, body class), dimensions and capacity, engine and drivetrain, EV battery and charging, weight ratings and brakes, restraints and airbags, the full ADAS and active-safety suite, lighting, truck/trailer/bus/motorcycle body data, and the manufacturing plant. Numeric fields are parsed to numbers and empty vPIC variables are dropped so the columns stay clean. Full 17-character VINs give the most complete results; partial VINs with an asterisk wildcard also work.
Data comes from the official NHTSA vPIC, NHTSA recalls, NHTSA complaints, NHTSA NCAP safety-ratings and EPA fuel-economy APIs. No account, key or login is required.
This is a car specs by VIN lookup for automotive marketplaces, dealers, insurers, fleet and lienholder audits, and any app that needs to turn a VIN into structured vehicle data.
Why this VIN decoder
| Capability | This actor | Typical VIN decoder actor |
|---|---|---|
| Bulk decode a list of VINs in one run | Yes | Some accept only one VIN per run |
| Full vPIC coverage (150+ fields surfaced) | Yes | Often a curated ~30 field subset |
| EV battery, charging, weight and SAE automation fields | Yes | Rarely |
| Model-year hint for partial / wildcard VINs | Yes | Sometimes |
| Open NHTSA safety recalls per vehicle | Yes (add-on) | Sometimes |
| NCAP 5-Star crash-test ratings + crash-test photos/videos | Yes (add-on) | Rarely |
| Consumer-complaint summary (crashes, fires, injuries, deaths) | Yes (add-on) | Rarely |
| EPA fuel economy (city/highway/combined MPG, CO2, cost) | Yes (add-on) | Sometimes |
| No API key, no login | Yes | Varies |
| Export JSON, CSV, Excel, XML | Yes | Varies |
We accept every input a plain VIN decoder accepts (a VIN or a list of VINs, an optional model year, and an item cap) and return every field they return, plus the extra coverage and safety add-ons above.
Quickstart
Open the actor, paste this into the input, and press Run. It decodes two VINs.
{"vins": ["1HGCM82633A004352", "5UXWX7C5*BA"],"maxVins": 10}
To attach safety recalls, crash-test ratings, complaints and fuel economy to each vehicle, enable the paid add-ons (requires a paid Apify plan):
{"vins": ["1HGCM82633A004352"],"includeRecalls": true,"includeSafetyRatings": true,"includeComplaints": true,"includeFuelEconomy": true}
Add a modelYear hint to improve accuracy for partial or wildcard VINs where the year cannot be derived from the VIN itself.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
vins | string[] | yes | (see prefill) | Vehicle Identification Numbers to decode, one per line. Full 17-character VINs give the most complete results; partial VINs with an asterisk wildcard (for example 5UXWX7C5*BA) also work. Case-insensitive. |
maxVins | integer | no | (all) | Maximum number of VINs to decode. Leave empty to decode every VIN in the list. Free Apify plans are capped at 10 per run. |
modelYear | integer | no | (none) | Optional model year hint. Improves accuracy for partial or wildcard VINs. Applied to every VIN in the list. |
includeRecalls | boolean | no | false | Paid add-on. Attach open NHTSA safety recall campaigns to each vehicle. |
includeSafetyRatings | boolean | no | false | Paid add-on. Attach NHTSA NCAP 5-Star crash-test ratings, with crash-test photo and video URLs. |
includeComplaints | boolean | no | false | Paid add-on. Attach an aggregate of NHTSA consumer complaints for the vehicle. |
includeFuelEconomy | boolean | no | false | Paid add-on. Attach EPA fuel-economy figures (MPG, CO2, annual fuel cost, greenhouse-gas score). |
Output reference
One dataset item per VIN. Fields that vPIC returns empty for a given vehicle are omitted, so records only contain populated fields. Types: string, number, integer, boolean, object, object[], or null.
| Field | Type | Description |
|---|---|---|
vin | string | The decoded VIN (unique per record). |
make / makeId | string / integer | Vehicle make and its vPIC ID. |
model / modelId | string / integer | Vehicle model and its vPIC ID. |
modelYear | string | Model year. |
trim / trim2 / series / series2 | string | Trim and series designations, when present. |
bodyClass / bodyCabType / vehicleType | string | Body class, cab type and vehicle type. |
basePrice | number | Manufacturer base price, when present. |
doors / windows / seats / seatRows / axles / wheels | integer | Configuration counts, when present. |
wheelBaseShort / wheelBaseLong / wheelSizeFront / wheelSizeRear / trackWidth / curbWeightLB / topSpeedMPH | number | Dimensions, weight and capacity. |
engineCylinders / displacementL / displacementCC / displacementCI | number | Engine size in cylinders, liters, cc and cubic inches. |
engineConfiguration / engineCycles / engineHP / engineHPTo / engineKW / engineModel / engineManufacturer | mixed | Engine details, when present. |
coolingType / turbo / valveTrainDesign / fuelInjectionType / otherEngineInfo | string | More engine attributes. |
fuelTypePrimary / fuelTypeSecondary / fuelTankType / fuelTankMaterial / electrificationLevel | string | Fuel and electrification. |
evDriveUnit / batteryType / batteryInfo / batteryKWh / batteryV / batteryA / batteryCells / chargerLevel / chargerPowerKW | mixed | EV drive, battery and charging (electric and hybrid vehicles). |
driveType / transmissionStyle / transmissionSpeeds / steeringLocation | string | Drivetrain and steering. |
gvwr / gvwrTo / gcwr / gcwrTo | string | Gross vehicle and combined weight rating ranges. |
brakeSystemType / brakeSystemDesc / combinedBrakingSystem / abs / tpms | string | Braking and tire-pressure systems. |
seatBeltsAll / pretensioner / airBagLocFront / airBagLocSide / airBagLocCurtain / airBagLocKnee / airBagLocSeatCushion / otherRestraintSystemInfo | string | Restraint and airbag configuration. |
esc / tractionControl / forwardCollisionWarning / crashImminentBraking / dynamicBrakeSupport / pedestrianAutomaticEmergencyBraking / rearAutomaticEmergencyBraking / blindSpotMon / blindSpotIntervention / laneDepartureWarning / laneKeepSystem / laneCenteringAssistance / adaptiveCruiseControl / rearCrossTrafficAlert / rearVisibilitySystem / parkAssist / automaticCrashNotification / driverAssist / saeAutomationLevel | string | ADAS and active-safety equipment, when present. |
daytimeRunningLight / lowerBeamHeadlampLightSource / semiautoHeadlampBeamSwitching / adaptiveHeadlights / adaptiveDrivingBeam / keylessIgnition / eventDataRecorder / entertainmentSystem | string | Lighting and other equipment. |
bedType / bedLengthIN / trailerType / trailerBodyType / trailerLength / busType / busLength / customMotorcycleType / motorcycleChassisType | mixed | Truck, trailer, bus and motorcycle body data, when applicable. |
manufacturer / manufacturerId | string / integer | Manufacturer name and vPIC ID. |
plantCity / plantState / plantCountry / plantCompanyName | string | Manufacturing plant. |
destinationMarket | string | Destination market, when present. |
note / vehicleDescriptor / suggestedVIN | string | vPIC note, VIN descriptor pattern, and a suggested corrected VIN when the input has an error. |
errorCode / errorText / additionalErrorText | string | vPIC decode status; 0 means decoded clean. |
recalls / recallCount | object[] / integer | Open recall campaigns (paid add-on). See below. |
safetyRatings | object[] | NCAP crash-test ratings (paid add-on). See below. |
complaintsSummary | object | Consumer-complaint aggregate (paid add-on). See below. |
fuelEconomy / fuelEconomyOptions | object / object[] | EPA fuel economy (paid add-on). See below. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed VIN, a single item with vin and a populated error field is written instead and is not charged. |
Paid add-ons
Add-ons are opt-in, off by default, and available on paid Apify plans. Each enriched VIN is billed one details event on top of its result. All add-on data comes from official NHTSA and EPA APIs and is looked up by make, model and model year, so a full 17-character VIN or a modelYear hint gives the best match. Add-ons are cached per make/model/year, so decoding many identical vehicles does not multiply the lookups.
recalls(includeRecalls): array of open recall campaigns, each withcampaignNumber,manufacturer,component,summary,consequence,remedy,notes,reportReceivedDate, and theparkIt/parkOutSide/overTheAirUpdateflags.recallCountgives the total.safetyRatings(includeSafetyRatings): array of NCAP crash-tested variants, each withoverallRating,overallFrontCrashRating,overallSideCrashRating,rolloverRating, per-position front and side ratings,rolloverPossibility, andfrontCrashPicture/frontCrashVideo/sideCrashPicture/sideCrashVideoURLs.complaintsSummary(includeComplaints):total,crashCount,fireCount,totalInjuries,totalDeaths,topComponents(top reported components with counts), and the earliest / latest complaint dates.fuelEconomy(includeFuelEconomy): EPA figures withcityMPG,highwayMPG,combinedMPG,annualFuelCostUSD,co2GramsPerMile,greenhouseGasScore,fuelType,transmission,driveandvehicleClass. When more than one EPA configuration matches the vehicle, all matches are returned asfuelEconomyOptionsso nothing is guessed.
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~nhtsa-vin-decoder-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"vins":["1HGCM82633A004352","5UXWX7C5*BA"],"maxVins":25}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~nhtsa-vin-decoder-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"vins":["5UXWX7C5*BA"],"modelYear":2011}'
Apify CLI:
apify call scrapers_lat/nhtsa-vin-decoder-scraper \--input '{"vins":["1HGCM82633A004352"]}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per VIN record returned (
resultevent). See the pricing tab for the current per-result price. - Paid add-ons. Each VIN enriched with recalls, ratings, complaints or fuel economy is billed one
detailsevent on top of the result, and only when real enrichment data is delivered. Add-ons are off by default and available on paid Apify plans. - No charge on failure. If a VIN cannot be decoded, the actor writes a single item with the
vinand a populatederrorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results and add-ons. - Free Apify plans are capped at 10 records per run and cannot use the paid add-ons. Upgrade for higher
maxVinsand add-ons.
FAQ and troubleshooting
Is this a free VIN decoder?
Decoding VINs into vehicle specs is the core, low-cost result output. Recalls, crash-test ratings, complaints and fuel economy are optional paid add-ons. No API key or login is needed either way.
Do I need an API key? No. The actor reads the public NHTSA vPIC, recalls, complaints and NCAP APIs and the EPA fuel-economy API directly. There is nothing to sign up for.
Can I decode a list of VINs in bulk?
Yes. Pass an array in vins and the actor decodes them all, one clean record per VIN, exportable to JSON, CSV, Excel or XML.
Can I decode a partial VIN?
Yes. Use an asterisk wildcard, for example 5UXWX7C5*BA. Add a modelYear hint to improve accuracy where the year cannot be derived from the VIN.
How do I get recalls by VIN?
Set includeRecalls to true on a paid plan. Each decoded vehicle gets its open NHTSA recall campaigns attached, with recallCount.
Why do some fields not appear? vPIC returns many variables empty for a given vehicle. The actor drops empty fields, so a record only contains populated data. Nothing is invented.
What does errorCode 0 mean?
The VIN decoded clean and the check digit is correct. Non-zero codes are passed through in errorCode and errorText, and a suggestedVIN may be provided.
Is this an official NHTSA tool? No. This actor is independent and has no affiliation with NHTSA or the EPA. It reads only public NHTSA and EPA data. Use the results in accordance with the sources' terms.
Related scrapers
- FAA Aircraft Registry Scraper: US aircraft registration records.
- NHTSA Recalls Scraper: US vehicle safety recall campaigns.
- Copart Scraper: Salvage vehicle auction lots.
- FMCSA Motor Carrier Scraper: US motor carrier and trucking records.
- CPSC Recalls Scraper: US consumer product recalls.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with NHTSA or the EPA. Accesses only public NHTSA and EPA data. Use the results in accordance with the sources' terms.
