You have a 17-character VIN from a U.S. vehicle and need make, model, year, engine, and related build specs fast. By the end of this article, you’ll be able to call a real VIN decoding endpoint on Zyla API Hub, parse the response, and ship it behind your app, webhook, or internal tool this week.
What this API does and when to use it
The VIN Decoder API on Zyla API Hub exposes multiple read-only endpoints to turn a VIN into manufacturer specifications. The USA VIN Decoder endpoint returns make, model, year, and other factory attributes when available from the source. It does not return accident history, theft records, title brands, or previous-owner data. Coverage is strongest for U.S. VINs; Europe and World endpoints are also available, with potentially more limited fields.
Typical use cases include:
- Auto marketplace intake: normalize listings with verified make/model/trim.
- Insurance quote forms: prefill body class, doors, and driveline from a VIN.
- Fleet inventory management: standardize vehicle metadata at onboarding.
- Parts lookup flows: map VIN to series/trim notes for compatibility filtering.
You can access every API on Zyla API Hub with one account, one API key, and a subscription + quota model. The marketplace hosts more than 10,000 public APIs across categories if you need to add enrichment later without new auth flows.
Getting started on Zyla API Hub
Open the VIN Decoder API listing on Zyla API Hub, start the trial or subscribe, and grab your key. Authentication is via Authorization header using your bearer token. The first API you subscribe to typically offers a 7-day trial or 50 requests; there’s no Free Plan. For current access options and pricing, use the listing page.
Start 7-day trial on VIN Decoder API
Endpoints you can call
All endpoints below are GET. Include your API key in the Authorization header as “Bearer YOUR_API_KEY”. Only the parameters shown here are supported; do not add others.
USA VIN Decoder
Pass a 17-character VIN and receive manufacturer specs: make, model, year, engine, and transmission when the source reports them. U.S. coverage is typically richer than Europe or World.
- Method: GET
- URL: https://zylalabs.com/api/74/vin-decoder-api/139/usa-vin-decoder
- Required query parameter:
- vin: JTMZ431V10D144875
cURL example (copy-paste and replace YOUR_API_KEY if needed):
curl -s -X GET "https://zylalabs.com/api/74/vin-decoder-api/139/usa-vin-decoder?vin=JTMZ431V10D144875" \
-H "Authorization: Bearer YOUR_API_KEY"
Example response:
{
"Suggested VIN": "JTMZ431V1!D144875",
"Error Code": "1,11,14,400",
"Vehicle Descriptor": "JTMZ431V*0D",
"Make": "TOYOTA",
"Manufacturer Name": "TOYOTA MOTOR CORPORATION",
"Model": "RAV4",
"Plant City": "OHBU",
"Series": "ASA33L/ASA38L/GSA33L/GSA38L",
"Trim": "LE (X Grade)",
"Vehicle Type": "MULTIPURPOSE PASSENGER VEHICLE (MPV)",
"Plant Country": "JAPAN",
"Plant Company Name": "Toyota Industries Corporation, Nagakusa Plant",
"Plant State": "AICHI",
"Trim2": "X Grade",
"Series2": "Wagon body style",
"Note": "Without Third Seat",
"NCSA Body Type": "Compact Utility (Utility Vehicle Categories \"Small\" and \"Midsize\")",
"NCSA Make": "Toyota",
"NCSA Model": "RAV4 *",
"Body Class": "Sport Utility Vehicle [SUV]/Multipurpose Vehicle [MPV]",
"Doors": "5",
"Drive Type": "4x2",
"Gross Vehicle Weight Rating From": "Class 1C: 4,001 - 5,000 lb (1,814 - 2,268 kg)",
"Trailer Type Connection": "Not Applicable",
"Trailer Body Type": "Not Applicable",
"Bus Floor Configuration Type": "Not Applicable",
"Bus Type": "Not Applicable",
"Custom Motorcycle Type": "Not Applicable",
"Motorcycle Suspension Type": "Not Applicable",
"Motorcycle Chassis Type": "Not Applicable",
"VIN": "JTMZ431V10D144875"
}
What to look at first:
- Make, Model, Vehicle Type, Body Class: for UI display and search filters.
- Doors and Drive Type: for insurance, marketplace, and service flows.
- Series/Trim/Series2/Trim2/Note: for part fitment and trim-specific features.
- “Suggested VIN” plus “Error Code”: potential correction hints and status codes when the VIN includes issues or non-standard characters.
Europe VIN Decoder
Decode VINs from Europe. Data availability may be more limited than U.S. responses.
- Method: GET
- URL: https://zylalabs.com/api/74/vin-decoder-api/1507/europe-vin-decoder
- Required query parameter:
- vin: WVWZZZAUZEW389248
cURL example:
Example response:
World VIN Decoder
Decode VINs from manufacturers around the globe. Data availability may be limited compared to the U.S.
- Method: GET
- URL: https://zylalabs.com/api/74/vin-decoder-api/1508/world-vin-decoder
- Required query parameter:
- vin: WVWZZZAUZEW389248
cURL example:
Example response:
Quick Python example using the USA endpoint
This snippet calls the USA VIN Decoder, fails fast on non-200, and extracts the fields you’ll likely render in a form or listing. Replace YOUR_API_KEY before running.
import requests
API_URL = "https://zylalabs.com/api/74/vin-decoder-api/139/usa-vin-decoder"
API_KEY = "YOUR_API_KEY" # set your key
VIN = "JTMZ431V10D144875"
resp = requests.get(
API_URL,
params={"vin": VIN},
headers={"Authorization": f"Bearer {API_KEY}"}
)
resp.raise_for_status()
data = resp.json()
# Minimal display payload
vehicle = {
"vin": data.get("VIN"),
"make": data.get("Make"),
"model": data.get("Model"),
"vehicle_type": data.get("Vehicle Type"),
"body_class": data.get("Body Class"),
"doors": data.get("Doors"),
"drive_type": data.get("Drive Type"),
"series": data.get("Series"),
"trim": data.get("Trim"),
"note": data.get("Note"),
}
print(vehicle)
# Optional diagnostics / correction hints
suggested = data.get("Suggested VIN")
error_code = data.get("Error Code")
if suggested or error_code:
print({"suggested_vin": suggested, "error_code": error_code})
Behavior, responses, and integration notes that save time
- Authentication: Add Authorization: Bearer YOUR_API_KEY to every request.
- Units and formats:
- Weight classes in U.S. responses appear as human-readable ranges (e.g., “Class 1C: 4,001 - 5,000 lb (1,814 - 2,268 kg)”). Do not assume numeric-only.
- Fields like “Doors” and “Drive Type” may be strings; normalize if you require numeric-only values.
- Error handling:
- If “Error Code” appears, treat it as a status/context string from the decoder. Consider logging it to analyze VIN input quality.
- “Suggested VIN” can help surface user-correction UI when a character is ambiguous or mis-typed.
- Field presence: Not every VIN returns every field. Always null-check optional attributes (e.g., Series2, Trim2, Note).
- Caching: VIN metadata is static for a vehicle. Cache by VIN indefinitely in your app or CDN to avoid unnecessary calls.
- Throughput: Zyla API Hub uses a subscription + quota model, not pay-per-call. The first API you add typically includes a 7-day trial or 50 requests to evaluate. Check the listing for your current plan’s details.
Choosing between USA, Europe, and World endpoints
If you primarily handle U.S. vehicles, use the USA endpoint for the richest attributes. If your VINs span multiple regions, you can route by WMI (first 1–3 characters) or try region-specific endpoints first, falling back to World. The table below summarizes key differences.
| Endpoint | HTTP | Path | VIN Param | Data availability note |
|---|---|---|---|---|
| USA VIN Decoder | GET | /api/74/vin-decoder-api/139/usa-vin-decoder | vin | U.S. coverage is typically richer than other regions. |
| Europe VIN Decoder | GET | /api/74/vin-decoder-api/1507/europe-vin-decoder | vin | Data availability may be limited compared to the United States. |
| World VIN Decoder | GET | /api/74/vin-decoder-api/1508/world-vin-decoder | vin | Data availability may be limited compared to the United States. |
Practical use cases you can ship this week
- Marketplace listing enhancer:
- On listing creation, call the USA endpoint with the VIN and lock the Make/Model/Doors/Body Class fields. Surface Trim and Series as read-only verified tags.
- Store “Suggested VIN” and show a lightweight UI warning if it differs from the entered VIN to prevent bad inventory records.
- Service booking forms:
- Prefill body class and driveline in scheduling UIs. Use “Note” and “Series2” to highlight compatibility advisory text for certain services.
- Parts compatibility:
- Map Series and Trim to your parts catalog categories. Cache results to cut repeated decoder calls during browsing.
- Fleet onboarding:
- Bulk ingest VINs and enrich each vehicle record as it’s scanned. Persist decoded specs and expose Make/Model/Drive Type to downstream reporting.
Calling the VIN Decoder from an AI agent via MCP
If you prefer to orchestrate calls through an AI agent, Zyla provides an MCP-compatible endpoint that works with popular clients. Point your agent to:
https://mcp.zylalabs.com/mcp?apikey=YOUR_API_KEY
After configuring your client, the agent can call the same VIN Decoder API you saw above from within your coding environment. For details on MCP setup and tooling, see the MCP documentation. Because MCP requests still consume your subscription quota, reuse cached VIN results inside the agent session to avoid duplicate lookups.
Production checklist
- Validate VIN length (17 chars) client-side to cut wasted calls.
- Log and monitor “Error Code” occurrences by source form or partner to spot data quality issues early.
- Fallback strategy: If you process international VINs, try the regional endpoint first (e.g., USA, then Europe), then World as a catchall.
- Cache decoded responses by VIN with no expiration, and add a manual refresh option for support teams.
- Strip PII: responses contain vehicle build data only; safe to store in product databases.
FAQ
Does the VIN Decoder API provide accident or ownership history?
No. The endpoints return manufacturer specs (e.g., Make, Model, Body Class, Doors) when available. They do not include accident history, theft records, title brands, or previous-owner data.
What authentication is required?
Use Authorization: Bearer YOUR_API_KEY on every request. Get your key from the API listing after you subscribe or start a trial.
Is there a free plan?
There is no Free Plan. The first API you add typically includes a 7-day trial or 50 requests for evaluation. Check the listing for current access options and pricing.
Which endpoint should I use for U.S. cars?
Use the USA VIN Decoder endpoint for U.S. VINs; it usually returns the richest set of attributes. For European or other regions, use the Europe or World endpoints, noting data may be more limited.
How should I handle malformed VINs?
Validate length before calling. If the response includes “Suggested VIN” or an “Error Code”, surface that to your users to correct typos or ambiguous characters, and log the event for QA.
Ready to decode your first VIN and wire it into your app? Create your account on Zyla API Hub, get your API key, and start the trial here: Start 7-day trial on VIN Decoder API.