Zyla API Hub has several vehicle data APIs. They are not one product with ten names. They are different jobs: decode a 17-character VIN into manufacturer specs, resolve a license plate when you do not have the VIN, look up glass part numbers, or decode a motorcycle. This is a map of those approaches and the live endpoints.
The catalog is more than 10,000 public APIs. You subscribe per listing (monthly or annual, with an included quota). There is no Free Plan. Your first Hub API includes a 7-day free trial (up to 50 requests). First-level support intermediates with the provider. Listings that fail continuous monitoring are discontinued.
What a VIN decoder is — and is not
A VIN decode returns identity and specs: make, model, model year, engine, fuel, body class, plant. It is not a Carfax-style report. It does not return accidents, theft, title brands, or previous owners. That mismatch is the most common support ticket on these listings. If you need history, that is a different product family — not VIN Decode and Vehicle Specs (id 7249).
US coverage is typically richer than Europe or world lookups. Several Hub listings share the same first-party decode backend. Pick the listing that matches the geography you subscribe for; do not subscribe to three clones for the same VIN.
1. VIN decode — choose a geography
The workhorse listing is VIN Decoder API (id 74). One subscription, five endpoints:
- USA VIN Decoder — docs example VIN
JTMZ431V10D144875. Strongest spec coverage. - Europe VIN Decoder — docs example
WVWZZZAUZEW389248. - World VIN Decoder — same job, worldwide, thinner fields.
- VIN Decoder Lite — smaller payload (docs example
1C4NJPBB3FD398798). - Glass — OEM / aftermarket glass by VIN and part (see below).
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://zylalabs.com/api/74/vin-decoder-api/139/usa-vin-decoder?vin=5YJ3E7EB4KF219601"
That VIN is a Tesla Model 3. A typical decode returns:
{
"Make": "Tesla",
"Model": "Model 3",
"Model year": "2019"
}
The same backend serves Europe VIN Decoder (id 888) and VIN Decode (id 6580).
If you only need Europe, subscribe to 888 instead of 74. Endpoints there: VIN Decoder (docs example WVWZZZ3BZWE689725), Lite, and Glass.
2. First-party structured decode
Vehicle Identification Decoder (id 13156) is the clean government-data listing: one endpoint, one required query, no extra origin keys in the public contract.
Decode Vehicle Identification — official example vin=1HGCM82633A004352 (letters I, O, Q never appear). Documented fields: make, model, model year, manufacturer, vehicle type, body class, plant country, engine cylinders, fuel type, series, trim, doors, plus a validity verdict.
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://zylalabs.com/api/13156/vehicle-identification-decoder-api/26702/decode-vehicle-identification?vin=1HGCM82633A004352"
Use this when you want a single stable JSON shape. Use 74 / 888 when you already depend on the USA / Europe / World / Lite split.
3. US-only decode, including motorcycles
USA VIN Decoder API (id 890) is the US-weighted listing: WorldWide Decoder, USA VIN Decoder, Motorcycle VIN Decoder, Lite, and Glass.
Dedicated bike listings also exist — Motorcycle VIN Decoder API (id 3336) — if two-wheelers are the only traffic you will send.
4. Glass by VIN
Several decode listings expose a Glass endpoint: pass the VIN and a parts value (windshield, rear_window, driver_side_window, passenger_side_window, rear_left_window, rear_right_window, sunroof, moonroof). Response is OEM and aftermarket part numbers and fitment — not a decode of make/model.
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://zylalabs.com/api/74/vin-decoder-api/26619/glass?vin=WVWZZZAUZEW389248&parts=windshield"
Same parts enum on 888 (Glass) and on the plate-to-VIN listings below.
5. License plate → vehicle (when you do not have the VIN)
Different countries, different contracts. Do not send a French plaque to a US plate API.
- Get VIN from License Plate — US Only (id
87) — 50 states. Call Get States first (state strings must match that list), then Get VIN Details. Docs example:license_plate=8UZS701,state=california. - France License Plate — Official SIV (id
6418) — one endpoint, queryplaque(docs exampleFH034DD). Official French registration (SIV), not a US VIN decode. - Italy License Plate Lookup (id
352) — plate in, vehicle file out. Subscribe only if Italy is the job. - Australia Rego Validator (id
5292) — registration + state → vehicle details. Stays on the Hub as its own listing (rego, not a 17-character VIN).
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://zylalabs.com/api/87/get-vin-from-license-plate-api-us-only/143/get-vin-details?license_plate=8UZS701&state=california"
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://zylalabs.com/api/6418/france-license-plate-api-official-siv-vehicle-data/9216/identify-french-vehicle-by-license-plate?plaque=FH034DD"
How to pick
- You have a VIN and need specs.
13156for one structured decode, or74if you want USA / Europe / World / Lite / Glass on one key. - Europe-only VIN traffic.
888. - You have a plate, not a VIN.
87(US),6418(France SIV),352(Italy),5292(Australia rego). - Windshield / glass parts. Glass on the decode listing you already subscribe to — do not add a second decode API just for
parts=windshield. - Motorcycles only.
3336or the motorcycle endpoint on890. - Accidents, theft, title. None of the listings above. Do not trial a decoder expecting a history report.
PHP: USA decode
$vin = '5YJ3E7EB4KF219601';
$ch = curl_init('https://zylalabs.com/api/74/vin-decoder-api/139/usa-vin-decoder?vin=' . rawurlencode($vin));
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('ZYLA_API_KEY')],
]);
$json = curl_exec($ch);
curl_close($ch);
$car = json_decode($json, true);
echo ($car['Make'] ?? '') . ' ' . ($car['Model'] ?? '') . ' ' . ($car['Model year'] ?? '');
Create a Hub account, subscribe to one listing, and call the endpoint that matches the identifier you actually have — VIN, US plate, or foreign plaque.