1,342,720 vehicles · cars · motorcycles · boats

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.

api.vehdb.com
GET /v1/cars?make=Ford&model=F-150&year=2025
{ "data": [ {
  "uuid": "7c9e6f00-…",
  "make": "Ford", "model": "F-150", "year": 2025,
  "trim": "XLT", "body": "Pickup",
  "drive_type": "4WD", "engine_cylinders": 6,
  "num_doors": 4, "epa_class": "Standard Pickup 4WD" } ] }
# Same schema, every vehicle type
GET /v1/motorcycles → "motorcycle_type" …
GET /v1/boats → "hp": 250, "hull": "V"

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.

GET /v1/cars?make=Honda&model=Civic&year=2025
{
  "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.

For cars: make, model, year, trim, body, drive_type, fuel_type_name, engine_cylinders, displacement (cc/cid), num_doors, transmission, epa_class, passenger_volume and cargo_volume. For motorcycles: make, model, year, vehicle_type and motorcycle_type. For boats: make, model, year, length, beam, weight_lb, hp, engines, hull, model_type and fuel_type. Every record is addressed by a stable UUID.
vPIC is a VIN-decode dataset with inconsistent labels, sparse fields and no economy, recall or fitment data. The VehDB specs API ships a pre-cleaned, normalized schema with consistent field names and types across every vehicle, plus EPA economy and live NHTSA recalls joined onto the same UUID — so you do not stitch sources together yourself.
Yes. The same schema and UUID model cover 853,870 cars, 233,450 motorcycles and 84,300 boats. Cars carry full engine and EPA detail; motorcycles return vehicle_type and motorcycle_type; boats return length, beam, weight, horsepower, engines, hull and fuel type.
Yes. Use GET /v1/cars/{uuid} and the equivalent motorcycle and boat endpoints to return a single vehicle with all specification fields. The UUID is stable, so it is safe to store as a foreign reference in your own system.
Sign up for a VehDB account — every plan includes API access and the free tier gives you 100 calls per month with no card required. Create a Bearer token in the dashboard and make GET requests to /v1/cars, /v1/motorcycles or /v1/boats with it in the Authorization header.

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.

2,663
API calls served this month
REST + MCP, since Sep 1
64
Teams calling the API
Teams with at least one metered call
498,265
Vehicle records
343,168 cars · 71,513 motorcycles · 83,584 boats
45,537
Tire-size fitments
OEM and alternate sizes

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.

Free

$0
100 API calls/mo · 10/min
Start free
Most Popular

Pro

$19.99/mo
10,000 API calls/mo · 60/min
Start with Pro

Developer

$99.00/mo
100,000 API calls/mo · 300/min
Start with Developer

Enterprise

Custom
250,000+ API calls/mo · 600/min
Contact sales

Full plan comparison and FAQ on the pricing page. Prices in USD, cancel anytime.

AI-NATIVE · MCP SERVER

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.
One-click AI connectors
claude_desktop_config.json
{ "mcpServers": {
    "vehdb": { "url": "https://mcp.vehdb.com/mcp" }
  } }
# the agent calls a typed tool, not your scraper
tool search_vehicles(make="Toyota", year=2026)
tool tire_sizes_for_vehicle(uuid) → "235/65R17" …

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