Resolve a license plate to structured vehicle data — make, model, trim, VIN, engine, and more. Pass a plate and state (or country) and get back the same richness you'd expect from a VIN decode, sourced directly from registration records.
Who uses this API
Parking operators, insurers, rental platforms, and law-enforcement SaaS call this endpoint when the input is a plate (and state or country) instead of a VIN — cameras, quote forms, and intake screens.
Use cases
B2B
- Parking and valet — vehicle identity: Resolve a captured plate to make, model, color, and VIN for matching spaces, EV charging, or lot records.
- Insurance — quote from a plate: Pre-fill year, make, model, and VIN on a quote form so the customer does not type the VIN.
- Rental — check-in and returns: Identify the vehicle from a plate at the gate and attach spec data to the rental record.
B2C
- Driver parking apps: Let a driver enter a plate and get vehicle-aware parking or charging recommendations.
- Consumer quote widgets: Start an insurance or warranty quote from a plate instead of a VIN.
Parameters
| Parameter | Required | Description |
|---|---|---|
plate | Yes | The license plate number |
state | Yes | Two-letter state, province, or region code (e.g. CA, ON, NSW) |
key | Yes | Your CarsXE API key |
country | No | ISO 3166-1 alpha-2 country code. Defaults to US. Example: GB, DE, AU |
district | No | Pakistan only — pass the district code alongside country=PK |
require_vin | No | Spain only (country=ES). Pass 1 to guarantee a VIN in the response. Costs 2× a standard lookup |
Example
Decode a plate
Response
Top-level shape
Click input to expand it and see the echoed request fields. For the full interactive reference, try it live in the API Reference.
All fields except success and input are optional — availability depends on the country and provider.
Country response matrix
Plate Decoder v2 responses are country-specific. Expand a country below to inspect the JSON shape that country can return from the current v2 response builders. These fields are possible response keys, not guaranteed non-empty values for every plate.
{
"description": null,
"body_style": null,
"vin": null,
"assembly": null,
"engine_size": null,
"year": null,
"make": null,
"model": null,
"fuel_type": null,
"trim": null,
"color": null,
"drive_type": null,
"transmission": null
}Fields
Identity — Who made it, what it is, and its VIN
- Name
description- Type
- string
- Description
Human-readable summary combining year, make, model, and trim. Example:
"2021 Toyota Camry SE".
- Name
make- Type
- string
- Description
Manufacturer or brand. Example:
"Toyota","Ford","BMW".
- Name
model- Type
- string
- Description
Model family. Example:
"Camry","F-150","3 Series".
- Name
trim- Type
- string
- Description
Trim level or variant. Example:
"SE","XLT","330i".
- Name
year- Type
- string
- Description
Model year as a 4-digit string. Example:
"2021".
- Name
vin- Type
- string
- Description
17-character vehicle identification number, when available from the provider. Not guaranteed — use
require_vin=1withcountry=ESto enforce it for Spanish plates.
Body & Style — Shape, body classification, and color
- Name
style- Type
- string
- Description
Normalized vehicle category. Example:
"Sedan","SUV","Truck". Optional — not always returned.
- Name
body_style- Type
- string
- Description
Body style as recorded by the manufacturer, typically in uppercase with door count. Example:
"SEDAN 4-DR","PICKUP","SPORT UTILITY 4-DR".
- Name
color- Type
- string
- Description
Registered exterior color. Example:
"Silver","Black","White". Sourced from registration records — may differ from the current painted color if the vehicle has been repainted.
Powertrain — Engine, fuel, drivetrain, and transmission
- Name
engine- Type
- string
- Description
Full engine descriptor. Example:
"2.5L L4 DOHC 16V". Optional — not always returned.
- Name
engine_size- Type
- string
- Description
Engine displacement in liters. Example:
"2.5","3.0","5.0".
- Name
fuel_type- Type
- string
- Description
Primary fuel type. Example:
"Gasoline","Diesel","Electric","Hybrid".
- Name
drive_type- Type
- string
- Description
Wheel drive configuration. Example:
"FWD","RWD","AWD","4WD".
- Name
transmission- Type
- string
- Description
Transmission description. Example:
"8-Speed Automatic","6-Speed Manual","CVT".
- Name
assembly- Type
- string
- Description
Country where the vehicle was assembled. Example:
"United States","Germany","Japan".
Registration — Year registered
- Name
registration_year- Type
- string
- Description
Year the vehicle was first registered. May differ from the model year. Example:
"2021". Optional — not always returned.
Country & region support
The endpoint supports 50+ countries. Pass country as an ISO 3166-1 alpha-2 code (e.g. GB, DE, NL, AU). It defaults to US when omitted.
State or province is required for US, Australian, Canadian, and Pakistani plates — use the standard two-letter code (e.g. CA, NSW, ON).
Pakistan additionally supports a district parameter for more precise lookups.
Coverage and field availability vary by country. Some regions return a full spec set; others return only identity fields.
See the full list of supported countries.
require_vin (Spain only)
By default, Spanish plate lookups use a standard provider that does not guarantee a VIN in the response. Pass require_vin=1 with country=ES to route the request through a higher-cost provider that always returns a VIN.
curl -G https://api.carsxe.com/v2/platedecoder \
-d key=YOUR_API_KEY \
-d plate=1234ABC \
-d state=MA \
-d country=ES \
-d require_vin=1This costs 2× a standard lookup and only applies to country=ES. Passing it for any other country has no effect.
Errors
| Status | When it happens |
|---|---|
400 | Missing plate or state, or invalid parameter values |
401 | Missing or invalid API key |
404 | No data found for this plate in the provider's database |
429 | Usage limit exceeded |
500 | Internal server error |
502 | Upstream plate data provider returned an error; response includes retryable: true and Retry-After |
504 | Upstream plate data provider timed out; response includes retryable: true and Retry-After |
See the Errors guide for general error handling guidance.
Look up vehicle data by license plate number and state across 50+ countries.