---
title: "How to use VIN Decoder"
url: "https://lookvalid.com/help/products/vin-decoder.md"
canonical_url: "https://lookvalid.com/help/products/vin-decoder"
last_updated: "2026-10-22"
type: "how-to"
summary: "What VIN Decoder takes in, which fields it returns and how credits are charged for each lookup."
related: ["https://lookvalid.com/help/billing/plans-and-credits.md"]
---

# How to use VIN Decoder

What VIN Decoder takes in, which fields it returns and how credits are charged for each lookup.

## What it does

Decodes a 17-character vehicle identification number with the US NHTSA vPIC service: model year, make, model, trim, body, engine, drivetrain, assembly plant and the safety equipment NHTSA has on record. The check digit is verified before NHTSA is called. Empty fields mean NHTSA has no data, not that the feature is missing.

## What you send

Send these fields in the JSON body of the request.

Request fields for VIN Decoder

| Field | Type | Required | Limits |
| --- | --- | --- | --- |
| vin | string | Required | up to 40 characters |
| ignore_check_digit | boolean | Optional | no extra limit |
| model_year | integer | Optional | at least 1,981, at most 2,040 |

## What you get back

The `data` object of a successful response carries these fields. Every response also lists its `sources`, the `credits_charged` and whether it was a `cache_hit`.

Each field is described in the [API reference](https://lookvalid.com/docs/api/vin-decoder.md).

Response fields for VIN Decoder

| Field | Type |
| --- | --- |
| vin | string |
| model_year | number |
| make | string |
| model | string |
| trim | string |
| series | string |
| vehicle_type | string |
| body_class | string |
| doors | number |
| drive_type | string |
| transmission | string |
| fuel_type_primary | string |
| fuel_type_secondary | string |
| electrification_level | string |
| engine | object |
| plant | object |
| manufacturer | string |
| gvwr | string |
| safety | object |
| decode_quality | "complete" or "partial" |
| warnings | list |
| additional_notes | string |
| suggested_vin | string |
| notes | string |

## What it costs

1 credit per VIN that decodes (a VIN with no data is free).

What each outcome costs

| Case | Charge |
| --- | --- |
| Found | 1 credit |
| Nothing found | 0 credits |
| Repeat inside 7 days | 0 credits |
| Errors and invalid requests | 0 credits |

## Run it

You can try it without an account in the [free tool](https://lookvalid.com/tools.md). The free tools share a limit per visitor.

From code, send a POST request to `https://YOUR_API_HOST/v1/vin-decoder` with your API key.

A request to VIN Decoder

```bash
curl -X POST https://YOUR_API_HOST/v1/vin-decoder \
  -H "Authorization: Bearer $LOOKVALID_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"vin":"1HGCM82633A004352"}'
```

Full parameters and response fields are in the [API reference](https://lookvalid.com/docs/api/vin-decoder.md). To run a list of values, use a [bulk CSV job](https://lookvalid.com/help/api/bulk-csv-jobs.md).

## Good to know

- A repeat of the same lookup within 7 days is served from your cache and costs 0 credits.
- When the lookup finds nothing it returns `found: false` and costs 0 credits.
- Invalid input and errors are never charged.
- The API allows 200 requests per 10 seconds per key.

## Related

- [Plans, credits and how they are spent](https://lookvalid.com/help/billing/plans-and-credits.md)
