NHTSA VIN Decoder API — Batch vPIC VIN Lookup
Pricing
from $2.75 / 1,000 results
NHTSA VIN Decoder API — Batch vPIC VIN Lookup
Batch-decode VINs via NHTSA vPIC into compact, normalized rows: make, model, year, body class, drivetrain, engine, GVWR, and plant country. One clean row per VIN. Built for fleet, auto-insurance underwriting, and used-car marketplace enrichment. Keyless government data.
Pricing
from $2.75 / 1,000 results
Rating
0.0
(0)
Developer
Kyle Maloney
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
15 hours ago
Last modified
Share
Decode a batch of VINs into clean, normalized rows using the official NHTSA vPIC database (keyless, free, US government source). This actor takes the raw ~130-field vPIC response, keeps only the high-value fields, drops the ~100 empty ones, and returns one tidy row per VIN — ready to join straight into your fleet, underwriting, or marketplace pipeline.
VIN decoder API for bulk vehicle lookups — make, model, year, body class, drivetrain, engine, GVWR, and plant, normalized and batchable.
Who it's for
- Fleet & telematics teams — enrich vehicle rosters with make/model/year/body/engine from just the VIN.
- Auto insurers & underwriting — pull standardized vehicle attributes for rating and risk enrichment.
- Used-car marketplaces & dealership tools — auto-fill listing specs from a VIN at scale.
- Warranty & lending providers — verify vehicle class, drivetrain, and weight rating before issuing coverage.
- Data teams — a compact, stable-schema VIN feed you can decode thousands at a time.
What it does
- Accepts an array of VINs (plain strings or
{ vin, modelYear }objects; a*can stand in for the check digit / unknown positions). - Decodes each VIN via the NHTSA vPIC
decodevinvaluesGET endpoint (optionalextendedmode for extra variables). - Normalizes to snake_case fields and drops every empty field vPIC returns, so rows stay compact.
- Adds a
decode_validboolean derived from vPIC'sErrorCode("0"= fully clean decode).
Example input
{"vins": ["5UXWX7C5*BA", "1HGBH41JXMN109186", { "vin": "1FTFW1ET5DFC10312", "modelYear": 2013 }],"extended": false}
Output fields (one row per VIN)
| field | description |
|---|---|
vin | The VIN that was decoded |
make | Vehicle make / brand |
model | Vehicle model |
model_year | Model year |
manufacturer | Manufacturing company |
vehicle_type | NHTSA vehicle type |
body_class | Body class / style |
series | Series (when present) |
trim | Trim level |
drive_type | Drivetrain (FWD/RWD/AWD/4WD) |
engine_cylinders | Cylinder count |
displacement_l | Engine displacement (liters) |
fuel_type_primary | Primary fuel type |
doors | Number of doors |
gvwr | Gross Vehicle Weight Rating class |
plant_country | Assembly plant country |
plant_state | Assembly plant state (when present) |
error_code | vPIC ErrorCode (0 = clean) |
error_text | Human-readable vPIC status |
decode_valid | true only when ErrorCode is 0 |
Empty vPIC fields are omitted per row, so partial decodes (e.g. very old VINs) return just the fields NHTSA actually has.
Use as an MCP tool
This actor is callable by AI agents (Claude, Cursor, etc.) via mcp.apify.com. Its clean field-level output descriptions make it a good chainable VIN enrichment tool: pass an agent a list of VINs and get back structured vehicle specs to feed the next step.
FAQ
Is this a free VIN decoder? It runs on NHTSA vPIC, which is free and keyless. You pay only Apify's per-result usage for the convenience of batch decoding + normalization.
Can I decode VINs in bulk? Yes — pass an array of VINs; the actor loops the reliable per-VIN GET decode and emits one row each. Use maxVins to cap a run.
What about incomplete or old VINs? vPIC still returns what it knows plus an ErrorCode. decode_valid is true only for a clean ErrorCode 0; otherwise inspect error_code / error_text.
Can I get extra fields (battery, safety, etc.)? Set extended: true to use vPIC's extended endpoint. This actor keeps a curated high-value subset by default for a compact schema.
How do I disambiguate older VINs? Provide the model year with { "vin": "...", "modelYear": 2013 }.
Data source: U.S. NHTSA vPIC (vpic.nhtsa.dot.gov). Not affiliated with or endorsed by NHTSA.