You need to decode a VIN this week and wire the output into your workflow without surprises. By the end of this guide, you’ll be able to call a real VIN Decoder Lite endpoint, parse make/model/year and other essentials, and optionally pull full vehicle details or glass part information—using one API key from Zyla API Hub.
What you can build with a VIN decoder lite
The Europe VIN Decoder API returns core vehicle identity fields from a VIN, and its “Lite” endpoint focuses on the essentials: country, manufacturer, model, class, region, WMI/VDS/VIS, and model year. This is enough for onboarding flows, parts/catalog preselection, intake forms, and quick eligibility checks. When you need more, the same API also offers a full VIN Decoder endpoint and a Glass endpoint for OEM/aftermarket windshield references.
This article demonstrates the real endpoints, exact URLs, required parameters, and copy-pasteable requests you can ship today.
Getting started on Zyla API Hub
Open the API listing, subscribe, and grab your API key. Authentication is via HTTP header Authorization: Bearer YOUR_API_KEY. Billing is subscription + quota (not pay-per-call). The first API here offers a 7-day trial; check the listing for current access options.
Start 7-day trial on Europe VIN Decoder API
Endpoints you can call
1) VIN Decoder (full details)
- Method: GET
- URL: https://zylalabs.com/api/888/europe-vin-decoder-api/684/vin-decoder
- Required params: vin
- Purpose: Decode a European-manufactured VIN and receive make, model, year, trim, body style, vehicle class, type, manufacturer, manufacturing location, and other attributes.
Example request (official sample):
curl -s -X GET "https://zylalabs.com/api/888/europe-vin-decoder-api/684/vin-decoder?vin=WVWZZZ3BZWE689725" \
-H "Authorization: Bearer YOUR_API_KEY"
Example response (official sample):
{
"Make": "Volkswagen",
"Model": "Passat",
"Model year": "1998",
"Trim level": "Generation IV",
"Body style": "5 Doors Estate|hatchback",
"Vehicle class": "Mid-size car",
"Vehicle type": "Passenger car",
"Manufactured in": "Germany",
"Manufacturer": "Volkswagen AG",
"Adress line 1": "Wolfsburg/Hannover",
"Adress line 2": "Wolfsburg/Hannover",
"Region": "Europe",
"Country": "Germany",
"Note": "Manufacturer builds more than 500 vehicles per year",
"Body type": "Estate|hatchback",
"Number of doors": "5",
"Number of seats": "5",
"Driveline": "2WD",
"VIN": "WVWZZZ3BZWE689725"
}
What you’ll typically read from this payload:
- Make, Model, Model year: user-facing identity fields for forms, catalogs, and reports.
- Trim level, Body style, Body type: useful for parts compatibility and UI filters.
- Vehicle class, Vehicle type: fleet segmentation and analytics.
- Manufactured in, Manufacturer, Country, Region: compliance checks and routing.
- Number of doors/seats, Driveline: capacity and drivetrain logic.
2) VIN Decoder Lite (fast essentials)
- Method: GET
- URL: https://zylalabs.com/api/888/europe-vin-decoder-api/7243/vin-decoder-lite
- Required params: vin
- Purpose: Retrieve condensed vehicle identity attributes suitable for lightweight validations and prefill.
- Notes: The description provides an example VIN like 1C4NJPBB3FD398798; you pass your VIN through the vin query parameter.
Example request:
Example response:
What to extract first:
- country, region: localization and regulatory handling.
- manufacturer, model, year: UI labels and part preselection.
- wmi, vds, vis: low-level VIN segmentation when you need it.
- class: eligibility checks and pricing tiers.
3) Glass (VIN to windshield part data)
- Method: GET
- URL: https://zylalabs.com/api/888/europe-vin-decoder-api/26811/glass
- Required params: vin, parts
- Purpose: Retrieve detailed vehicle glass information by VIN, including OEM and aftermarket part numbers, specifications, features, and fitment for glass components.
Example request:
Example response:
Use this when your flow needs part candidates immediately after the VIN is scanned or typed—including cross-referencable aftermarket numbers. The disclaimer indicates you should verify part candidates against a catalog before purchasing.
Minimal integration: call VIN Decoder Lite with Python
The snippet below calls the VIN Decoder Lite endpoint, handles HTTP errors, and prints the key identity fields you’ll likely map into your models.
import os
import sys
import requests
API_KEY = os.getenv("ZYLALABS_API_KEY", "YOUR_API_KEY")
VIN = "WVWZZZ3BZWE689725"
url = "https://zylalabs.com/api/888/europe-vin-decoder-api/7243/vin-decoder-lite"
params = {"vin": VIN}
headers = {"Authorization": f"Bearer {API_KEY}"}
try:
resp = requests.get(url, params=params, headers=headers, timeout=15)
resp.raise_for_status()
except requests.exceptions.HTTPError as e:
print(f"HTTP error: {e} - response: {getattr(e.response, 'text', '')}", file=sys.stderr)
sys.exit(1)
except requests.exceptions.RequestException as e:
print(f"Request failed: {e}", file=sys.stderr)
sys.exit(1)
data = resp.json()
# Map fields commonly needed in downstream systems
print("VIN:", data.get("vin"))
print("Manufacturer:", data.get("manufacturer"))
print("Model:", data.get("model"))
print("Year:", data.get("year"))
print("Country:", data.get("country"))
print("Region:", data.get("region"))
print("Class:", data.get("class"))
print("WMI/VDS/VIS:", data.get("wmi"), data.get("vds"), data.get("vis"))
Tips:
- Cache by VIN. For most workflows, VIN-decoded identity data is stable—caching responses per VIN can cut repeated lookups.
- Normalize casing where needed (e.g., manufacturer names) for display consistency.
- If you need richer attributes, switch to the full VIN Decoder endpoint with the same vin parameter and Authorization header.
Quick curl you can run now
Copy, paste, and replace YOUR_API_KEY with your key. This is the official sample that returns make/model/year and more for a European VIN:
Common integration patterns
- Form prefill: user enters VIN; you call VIN Decoder Lite to prefill manufacturer, model, and year. Validate the three-character WMI for region checks.
- Parts lookup preselection: decode VIN first, then call the Glass endpoint with parts=windshield to show compatible candidates before catalog navigation.
- Fleet ingestion jobs: batch-decode a CSV of VINs, cache per VIN, and store normalized “make/model/year/body” for analytics.
- Risk/eligibility gates: use class, body style (from the full decoder), and region to route users into the right plan or workflow.
Field handling notes that save time
- VIN parameter is mandatory on all endpoints shown here. For Glass, parts is also required (e.g., windshield).
- Authorization is via header Authorization: Bearer YOUR_API_KEY on every request.
- Response shapes differ by endpoint; read the specific fields you need and guard with .get() or equivalent.
- Because VIN-decoded attributes are stable, short-term caching (e.g., by VIN for hours or days) reduces duplicate calls without risking staleness.
Calling the API from AI agents via MCP
If you prefer to orchestrate calls from an MCP-compatible client (Claude Code, Cursor, Windsurf, etc.), point your tool to the Zyla MCP endpoint and include your API key as a query parameter in the MCP URL. Your agent can then call the same endpoints shown above using the same vin and parts parameters, and the Authorization header as described here. See the MCP entry point:
Keep the endpoint URLs exactly as listed in this article for the agent’s HTTP tool calls.
Testing scenarios to verify before shipping
- Happy path: known-good VINs return expected manufacturer/model/year.
- Region variance: test North America and Europe VINs to ensure your UI labels do not assume a single region.
- Glass-specific: verify that parts=windshield returns candidates, and add a user-facing note about catalog verification when offering direct part ordering.
- Error handling: simulate timeouts and non-2xx responses; ensure your flow shows a fallback manual entry when decoding fails.
FAQ
What authentication is required?
Use the HTTP header Authorization: Bearer YOUR_API_KEY on every request.
Which parameters are required?
All endpoints shown require vin. The Glass endpoint also requires parts (e.g., parts=windshield).
Is there a free plan?
The API uses a subscription + quota model (not pay-per-call). Check the API page for current access options and pricing; a 7-day trial is available on the listing.
Can I decode non-European VINs with the Lite endpoint?
The Lite endpoint accepts a vin parameter and may return region and country fields (example shows a North America VIN). Use the endpoint outputs to branch your logic appropriately.
How should I cache results?
Cache by VIN key. Because VIN-decoded attributes are stable, caching per VIN helps reduce repeated lookups during user retries or batch processing.
Ship it
Grab your key, hit the VIN Decoder Lite endpoint for fast essentials, and upgrade to the full decoder or Glass endpoint when you need detailed attributes or part candidates. Start now and keep your integration lean with one API key across more than 10,000 public APIs on Zyla API Hub. The 7-day trial begins on the listing: