VIN Decoder: NHTSA Vehicle Specs by VIN | $1/1K avatar

VIN Decoder: NHTSA Vehicle Specs by VIN | $1/1K

Pricing

from $1.00 / 1,000 results

Go to Apify Store
VIN Decoder: NHTSA Vehicle Specs by VIN | $1/1K

VIN Decoder: NHTSA Vehicle Specs by VIN | $1/1K

$1 per 1,000 results, platform usage included. Decode vehicle identification numbers with the official NHTSA vPIC service: make, model, year, trim, body, engine, fuel, drive type, plant, safety equipment and decoder warnings. Up to 10,000 VINs a run. No key.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

One Dollar Store

One Dollar Store

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

VIN Decoder: vehicle make, model, year and specs from a VIN

$1 per 1,000 VINs decoded. Platform usage included. No rental, no minimum.

The four most used VIN decoder actors on the Store charge $1.50 to $2.99 per 1,000 results, and one of them adds platform usage on top (Store prices checked 20 October 2026). This one is $1.00 per 1,000, with usage included.

Open it in Apify Console

New to Apify? [Create a free account](https://www.apify.com?fpr=ymnoit) (referral link). Runs from a free plan account return the first 10 results; any paid plan returns everything you ask for, up to your limit.

What it costs

VINs decodedThis actorFour most used rivals
1,000$1.00$1.50 to $2.99
10,000$10.00$15.00 to $29.90
100,000$100.00$150.00 to $299.00

Plus $0.001 per run. Only decoded VINs are rows, so a VIN the decoder knows nothing about is not charged. A monthly check of 2,000 VINs costs about $2.00 a run, and a weekly batch of 500 VINs about $0.50 a run.

The data comes from the official NHTSA vPIC service, the US government's vehicle product information catalog. Give it VINs, get make, model, year, trim, body, engine, fuel, drive type, plant and more, plus the decoder's own warnings.

Why people switch

  • Lower price, usage included. $1 per 1,000 with no separate compute bill.
  • Official source. The specs are what manufacturers submitted to NHTSA, not guesses from a scraped page.
  • Partial VINs and model years. Use * for unknown characters and add a model year after a comma, for example 5UXWX7C5*BA,2011. Handy when you only have part of a VIN, or for older vehicles where the year is unclear.
  • The decoder's warnings are on every row. errorCode and errorText tell you if the check digit is wrong or the VIN is incomplete, so you can sort clean decodes from doubtful ones.
  • Big lists in one run. VINs go to NHTSA in batches of 50. A run takes up to 10,000 VINs.

Quick start

  1. Open the actor, paste your VINs one per line, press Start.
  2. Or paste this input:
{ "vins": ["1HGCM82633A004352", "5UXWX7C5*BA,2011"], "includeAllSpecs": true, "maxItems": 100 }
  1. Download the results as JSON, CSV or Excel, or read them through the API.

Use it from code

curl -X POST "https://api.apify.com/v2/acts/one_dollar_store~vin-decoder-nhtsa/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"vins": ["1HGCM82633A004352", "5UXWX7C5*BA,2011"], "maxItems": 100}'
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("one_dollar_store/vin-decoder-nhtsa").call(
run_input={"vins": ["1HGCM82633A004352", "5UXWX7C5*BA,2011"], "maxItems": 100}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["vin"], item["modelYear"], item["make"], item["model"])

Use it from an AI assistant

Claude, ChatGPT, Cursor and other assistants can call this actor through Apify's MCP server. Add it with this server address:

https://mcp.apify.com?tools=one_dollar_store/vin-decoder-nhtsa

Then ask, for example: "Decode these five VINs and tell me the make, model, year, engine size and where each was built."

Switching from another VIN decoder

VINs go in vins, one per line, with an optional model year after a comma. The core output fields are vin, modelYear, make, model, trim, bodyClass, vehicleType, engineCylinders, displacementL, fuelTypePrimary and plantCountry. One row is one decoded VIN. Fields the decoder leaves empty are left out of the row, and every further spec the decoder filled in is under otherSpecs.

Input

FieldTypeDefaultWhat it does
vinslist of textrequiredOne VIN per line, 17 characters. A shorter or partly known VIN works too: write * for each unknown character. Add a model year after a comma to help the decoder, for example 5UXWX7C5*BA,2011. Up to 10,000 lines.
includeAllSpecstrue or falsetrueAdds an otherSpecs object to each row with every further field the decoder filled in, such as airbag locations and seat belt types. Switch off for shorter rows.
maxItemsnumber100Most decoded VINs in the run. Minimum 10, maximum 10,000.

Upper and lower case both work, and the same VIN written twice is decoded once. A line that is not a VIN is refused by the input form before the run starts.

Output fields

FieldMeaning
vinThe VIN as decoded. A partly known VIN keeps its * characters.
modelYear, make, model, trim, seriesThe vehicle. Trim and series only when the decoder knows them.
manufacturerManufacturer registered for the VIN prefix.
vehicleType, bodyClass, doors, seats, seatRowsKind of vehicle and body.
driveType, bodyCabType, bedTypeDrive wheels, cab and bed style for trucks.
fuelTypePrimary, fuelTypeSecondary, electrificationLevelFuel and hybrid or electric level.
engineCylinders, displacementL, displacementCC, engineHP, engineKW, engineConfiguration, engineModel, turboThe engine.
transmissionStyle, transmissionSpeedsThe gearbox.
gvwr, curbWeightLb, wheels, steeringLocation, brakeSystemTypeWeight class and chassis details.
plantCity, plantState, plantCountry, plantCompany, destinationMarketWhere it was built and for which market.
abs, esc, tractionControl, tpms, adaptiveCruiseControl, forwardCollisionWarning, laneDepartureWarning, blindSpotMonitoring, parkAssist, rearCrossTrafficAlert, keylessIgnitionDriver assistance and safety equipment, when the decoder has it.
errorCode, errorText, additionalErrorText, suggestedVinWhat the decoder says about the VIN itself. 0 is a clean decode. 1 means the check digit does not calculate. 6 means the VIN is incomplete. Several codes are joined by commas.
otherSpecsEvery other field the decoder filled in, as names and text values.
source, scrapedAtWhere the row came from and when this run read it.

Fields the decoder leaves empty are left out of the row. Newer vehicles carry more fields than older ones.

Sample results

Real rows from a test run on 20 October 2026, with otherSpecs left out here for length.

[
{"vin": "1HGCM82633A004352", "modelYear": 2003, "make": "HONDA", "manufacturer": "AMERICAN HONDA MOTOR CO., INC.", "model": "Accord", "trim": "EX-V6", "vehicleType": "PASSENGER CAR", "bodyClass": "Coupe", "doors": 2, "fuelTypePrimary": "Gasoline", "engineCylinders": 6, "displacementL": 3, "displacementCC": 2999, "engineHP": 240, "engineConfiguration": "V-Shaped", "engineModel": "J30A4", "transmissionStyle": "Automatic", "transmissionSpeeds": 5, "gvwr": "Class 1C: 4,001 - 5,000 lb (1,814 - 2,268 kg)", "plantCity": "MARYSVILLE", "plantState": "OHIO", "plantCountry": "UNITED STATES (USA)", "errorCode": "0", "errorText": "0 - VIN decoded clean. Check Digit (9th position) is correct", "source": "NHTSA vPIC", "scrapedAt": "2026-10-20T06:08:00.480Z"},
{"vin": "5UXWX7C5*BA", "modelYear": 2011, "make": "BMW", "manufacturer": "BMW MANUFACTURER CORPORATION / BMW NORTH AMERICA", "model": "X3", "trim": "xDrive35i", "vehicleType": "MULTIPURPOSE PASSENGER VEHICLE (MPV)", "bodyClass": "Sport Utility Vehicle [SUV]/Multipurpose Vehicle [MPV]", "doors": 4, "driveType": "AWD/All-Wheel Drive", "fuelTypePrimary": "Gasoline", "engineCylinders": 6, "displacementL": 3, "displacementCC": 2979, "engineHP": 300, "gvwr": "Class 1D: 5,001 - 6,000 lb (2,268 - 2,722 kg)", "plantCity": "MUNICH", "plantCountry": "GERMANY", "tpms": "Direct", "errorCode": "6", "errorText": "6 - Incomplete VIN", "source": "NHTSA vPIC", "scrapedAt": "2026-10-20T06:08:00.593Z"}
]

The second row shows a partly known VIN with a year: the decoder still finds the vehicle and says Incomplete VIN in errorText.

Limits

  • 10,000 VINs per run. For more, run again with the next part of the list.
  • Speed. VINs go to NHTSA in batches of 50, one batch at a time. In our tests 60 VINs took 6 seconds and 500 VINs took 72 seconds, so 10,000 VINs take about 25 minutes. The run timeout is set to one hour by default.
  • Rate limit. NHTSA does not publish a number for this service. The actor sends at most one request a second, with a User-Agent that names the actor, and tries a failed request up to three times with a pause between tries.
  • A decode is not a vehicle history. The service reads what the manufacturer filed for the VIN pattern. It does not know owners, accidents, mileage, recalls or price, and two vehicles with the same pattern get the same specs.
  • US market first. The catalog is built for vehicles sold in the United States. Vehicles made for other markets can come back with few fields, or none.
  • VINs with no match. When the decoder returns neither a make nor a model, the VIN is not a row and is not charged. The run summary (RUN_SUMMARY in the run's key-value store) lists how many were skipped and the first few.
  • Check the decoder code. A VIN with a wrong check digit or a missing character still returns what the decoder could work out. Sort on errorCode to separate clean decodes from doubtful ones.

FAQ

How much does it cost to decode 10,000 VINs? $10, plus $0.001 for each run.

Do I pay for compute or proxy on top? No. Platform usage is included in the $1 per 1,000 price. No proxy is used.

Do I need an API key or an NHTSA account? No. The actor reads the public NHTSA vPIC service.

Can I decode a VIN when a character is unreadable? Yes. Replace each unknown character with *. A wrong check digit does not stop the decode, and the errorCode tells you about it.

Why is the model year sometimes different from what I expected? For some VINs the decoder is not sure of the year and says so in additionalErrorText. Add the year after a comma and decode again.

Is it legal? The actor reads vehicle data that NHTSA publishes openly for public use, and it does not log in to anything. How you use the data is up to you: follow NHTSA's terms and the law where you live.

Is this an official NHTSA product? No. It is an independent tool and is not affiliated with or endorsed by NHTSA.

Do I need an Apify account? Yes. Actors run from an Apify account, and a free account is enough to start: it includes $5 of platform usage every month. You can sign up here. This is a referral link and it costs you nothing.

Is there a limit on the free plan? Yes. A run started from a free plan account delivers the first 10 results, then ends with a message and a link to the plans. Any paid plan returns everything you ask for, up to your own limit. The price per result is the same on every plan.

More from The One Dollar Store

Every actor here costs $1 per 1,000 results, platform usage included. See the whole store: https://apify.com/one_dollar_store

Shopping

Changelog

  • October 2026: first release.