The Vehicle Specifications API
on one schema, one UUID.
Query make, model, year, trim, body, drivetrain, engine and doors across cars, motorcycles and boats — a pre-cleaned schema with EPA economy and live NHTSA recalls joined onto the same record.
Free plan: 100 API calls/mo — no card.
Key endpoints
One consistent JSON shape across every vehicle type. Records are addressed by UUID.
GET
/v1/cars
|
List cars with filtering and pagination — make, model, year range, body, trim, fuel type, drive type. |
GET
/v1/cars/{uuid}
|
Single car by UUID — full specs: engine cylinders, displacement, doors, transmission, epa_class, passenger and cargo volume. |
GET
/v1/motorcycles
|
List motorcycles — make, model, year, vehicle_type and motorcycle_type. |
GET
/v1/boats
|
List boats — make, model, year, length, beam, weight_lb, hp, engines, hull, model_type and fuel_type. |
Base URL: https://api.vehdb.com/v1
Specification fields
A pre-cleaned, normalized schema — the same field names and types on every record.
| Field | Type | Description |
|---|---|---|
make |
string | Manufacturer name (cars, motorcycles, boats) |
model |
string | Model name |
year |
integer | Model year |
trim |
string | Trim level (cars) |
body |
string | Body type — Sedan, SUV, Pickup, Coupe, Hatchback (cars) |
drive_type |
string | Drivetrain — FWD, RWD, AWD, 4WD (cars) |
engine_cylinders |
integer | Cylinder count (cars) |
engine_cc / engine_cid |
integer | Engine displacement in cc or cubic inches (cars) |
num_doors |
integer | Door count (cars) |
transmission |
string | Transmission description (cars) |
motorcycle_type |
string | Motorcycle category — e.g. Cruiser, Sport (motorcycles) |
length / beam / hp / hull |
mixed | Hull length, beam, horsepower and hull type (boats) |
Cars API: query parameters
Combine any of these on GET /v1/cars for precise queries.
| Parameter | Type | Description |
|---|---|---|
make |
string | Filter by manufacturer name (e.g., Toyota, Ford, Tesla) |
model |
string | Filter by model name (e.g., Camry, F-150, Model Y) |
year |
integer | Filter by exact model year |
year_min |
integer | Minimum model year (inclusive) |
year_max |
integer | Maximum model year (inclusive) |
q |
string | Full-text search across make, model, display name and engine |
body |
string | Filter by body type (e.g., Sedan, SUV, Truck, Coupe, Hatchback) |
fuel_type |
string | Filter by fuel type name (e.g., GASOLINE, DIESEL, BATTERY ELECTRIC) |
drive_type |
string | Filter by drivetrain (e.g., FWD, RWD, AWD, 4WD) |
ev_only |
boolean | Set to 1 to return only electric and hybrid vehicles (BEV, PHEV, HEV) |
market |
string | us, ca or mx: only cars sold in that market; every record lists its markets |
page |
integer | Page number for paginated results (default: 1) |
per_page |
integer | Results per page (default: 10; max 10 on Free, 25 on Pro/Developer, 100 on Enterprise) |
Every request needs at least one of make, model, year or q — the spec filters then narrow within it.
Cleaner than raw vPIC, joined to more
Specs identify the vehicle. A normalized schema and joined enrichment mean you stop stitching sources together.
Pre-cleaned schema
Consistent field names and types across cars, motorcycles and boats — no sparse vPIC labels to normalize, no per-make quirks to handle in your code.
Enrichment on one UUID
EPA fuel economy and live NHTSA recalls hang off the same stable UUID, so one identifier answers specs, cost and safety in one place.
One shape, every type
The same data + meta envelope serves cars, motorcycles and boats — write your integration once, point it at any endpoint.
See the Cars API parameters, our data sources, and the vehicle data glossary.
Example response
A consistent data + meta shape on every list endpoint.
{
"data": [
{
"uuid": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
"make": "Honda",
"model": "Civic",
"year": 2025,
"trim": "Sport",
"body": "Sedan",
"drive_type": "FWD",
"fuel_type_name": "GASOLINE",
"engine_cylinders": 4,
"engine_cc": 1996,
"num_doors": 4,
"transmission": "Automatic (CVT)",
"epa_class": "Compact Cars",
"passenger_volume": 99,
"cargo_volume": 15
}
],
"meta": { "current_page": 1, "last_page": 1, "per_page": 10, "total": 1 }
}
Vehicle Specifications API FAQ
Common questions about VehDB's specs API.
Also see the Vehicle API overview, Motorcycles and Boats APIs, try it from the MCP server, or read the docs.
Live numbers, not logos
Pulled from the production database and the NHTSA sync log, refreshed hourly.
NHTSA recalls last synced
API pricing
Start on the free tier; every plan includes the REST API and the MCP server with the same token and quota.
Full plan comparison and FAQ on the pricing page. Prices in USD, cancel anytime.
Your AI agent's vehicle-data tools —
not glue code.
VehDB ships a native Model Context Protocol server. Claude, Cursor or any MCP client queries cars, recalls, fuel economy and tire fitment as first-class tools — no wrappers, no scraping, no glue code to maintain.
- Native MCP tools — search_vehicles, recalls_for_vehicle, complaints_for_vehicle, tire_sizes_for_vehicle, my_lists — callable by Claude, Cursor or any agent.
- One-click AI connector in Claude; in any other MCP client, paste one URL and sign in: no token to copy. Scripts use an API token. Same data and quota as the REST API.
- No scraping, no function-calling boilerplate, no schema drift — the agent gets typed, documented tools.
{ "mcpServers": {
"vehdb": { "url": "https://mcp.vehdb.com/mcp" }
} }
Build on 1,342,720 vehicle specs.
Make, model, year, trim, body, drivetrain and engine across cars, motorcycles and boats — one schema, one UUID, enrichment joined. Free tier: 100 calls/mo, no card.
100 free API calls every month · REST API + MCP server on every plan · No card to start · See pricing