---
title: "VIN Decoder API"
url: "https://lookvalid.com/products/vin-decoder.md"
canonical_url: "https://lookvalid.com/products/vin-decoder"
last_updated: "2026-10-22"
type: "product"
summary: "Decodes a 17-character vehicle identification number with the US NHTSA vPIC service."
related: ["https://lookvalid.com/pricing.md", "https://lookvalid.com/docs/api/vin-decoder.md"]
---

# VIN Decoder API

Decodes a 17-character vehicle identification number with the US NHTSA vPIC service.

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.

## Facts

- Endpoint: `POST https://YOUR_API_HOST/v1/vin-decoder`
- Price: 1 credit per VIN that decodes (a VIN with no data is free)
- Charged: Only when a lookup finds something
- Cache: repeating the same lookup within 7 days is free

## Example request

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

## Response

The `data` object has 24 named fields. Every response also lists the sources behind the result, the credits charged and whether it was served from your cache.

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

## Priced in credits

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

## Questions

### How much does VIN Decoder cost?

1 credit per VIN that decodes (a VIN with no data is free). Credits come out of the one balance shared by every LookValid product.

### Am I charged when nothing is found?

No. When the lookup runs and finds nothing, it returns found: false and costs 0 credits. An error costs nothing either.

### How long are results cached?

For 7 days, per account. Repeating the same lookup inside that window returns cache_hit: true and costs 0 credits.

### Which API key do I use?

The same key as every other product. Send it as a Bearer token in the Authorization header. Email hello@lookvalid.com and we set up your account and send the key.

## Related products

- Email Append: Finds a consumer email address for a US name and postal address.
- Reverse Email Append: Returns the name and postal address behind a consumer email address.
- Reverse IP Append: Resolves an IP address to a person or household identity.

Full request and response fields: [VIN Decoder reference](https://lookvalid.com/docs/api/vin-decoder.md).

## Related

- [Plans, trial and credit pricing](https://lookvalid.com/pricing.md)
- [VIN Decoder reference](https://lookvalid.com/docs/api/vin-decoder.md)
