Skip to main content

Fake Vehicle Data API

MOCK DATA

Coherent fake vehicles: real models per make, era-correct years, standards-valid VINs (ISO 3779 check digit) — filter by make, body type, fuel and year.

Generated test data for fixtures and development

Base URL
/api/vehicles
Capabilities
1 route Seedable
Last updated
July 29, 2026

GET /api/vehicles

Live requestRuns against the public API
No key required
GET/api/vehicles?make=tesla&count=5&seed=42

Request parameters

Only this manufacturer — models are guaranteed to be real models of that make. Omit for a mix.

Only this body type (models are filtered to genuinely matching ones).

Only this fuel. Combinations no real model offers (e.g. tesla + petrol) are a 400.

Earliest model year (inclusive). Each model additionally never predates its real launch era.

Latest model year (inclusive). Defaults to the current year. Must be ≥ minYear.

Advanced response options7 options

How many records to generate (1–100).

Deterministic output: the same seed always returns the same records. Omit for random (the used seed is echoed in meta.seed).

Return only these fields (comma-separated). Mutually exclusive with 'exclude'.

Return all fields except these (comma-separated).

Response format: json envelope, ndjson (one record per line) or csv.

Pretty-print the JSON response.

Drop the envelope: return the raw array/object without data/meta wrapper.

Response

Example parameters are ready. Send the request to inspect the live response.

Route reference

Code samples Ready-to-copy requests in 4 languages
Choose a code sample language
curl "https://randomapi.dev/api/vehicles?make=tesla&count=5&seed=42"
const res = await fetch("https://randomapi.dev/api/vehicles?make=tesla&count=5&seed=42");
const { data, meta } = await res.json();
import requests

data = requests.get("https://randomapi.dev/api/vehicles?make=tesla&count=5&seed=42").json()["data"]
$json = json_decode(file_get_contents(
  "https://randomapi.dev/api/vehicles?make=tesla&count=5&seed=42"
), true);
$data = $json["data"];
Parameters Route-specific request inputs 5
make enum

Only this manufacturer — models are guaranteed to be real models of that make. Omit for a mix.

allowed: toyota | volkswagen | ford | bmw | mercedes | audi | honda | hyundai | kia | volvo | tesla | peugeot
example: make=toyota
type enum

Only this body type (models are filtered to genuinely matching ones).

allowed: sedan | suv | hatchback | estate | coupe | van | pickup
example: type=suv
fuel enum

Only this fuel. Combinations no real model offers (e.g. tesla + petrol) are a 400.

allowed: petrol | diesel | hybrid | electric
example: fuel=electric
minYear int

Earliest model year (inclusive). Each model additionally never predates its real launch era.

default: 2005
allowed: 1990 – 2027
example: minYear=2010
maxYear int

Latest model year (inclusive). Defaults to the current year. Must be ≥ minYear.

allowed: 1990 – 2027
example: maxYear=2015
Universal parameters Shared response and formatting options 7
count int

How many records to generate (1–100).

default: 10
allowed: 1 – 100
example: count=3
seed int

Deterministic output: the same seed always returns the same records. Omit for random (the used seed is echoed in meta.seed).

example: seed=42
fields list

Return only these fields (comma-separated). Mutually exclusive with 'exclude'.

example: fields=make,model
exclude list

Return all fields except these (comma-separated).

example: exclude=color
format enum

Response format: json envelope, ndjson (one record per line) or csv.

default: json
allowed: json | ndjson | csv
example: format=csv
pretty boolean

Pretty-print the JSON response.

default: false
example: pretty=true
unwrap boolean

Drop the envelope: return the raw array/object without data/meta wrapper.

default: false
example: unwrap=true
Response schema Fields returned in each record 8
make string

Manufacturer display name (e.g. 'Toyota', 'Mercedes-Benz').

example: Toyota

model string

A real model of that make.

example: RAV4

year integer

Model year, within minYear..maxYear and never before the model's launch era.

example: 2019

type string

Body type: sedan | suv | hatchback | estate | coupe | van | pickup.

example: suv

fuel string

petrol | diesel | hybrid | electric — always plausible for the model (Teslas are always electric).

example: hybrid

vin string

17-char VIN: real WMI prefix for the make, valid ISO 3779 check digit (position 9), standard year code (position 10), no I/O/Q.

example: JTDKN3DU9K5866312

licensePlate string

Generic fake plate in ABC-123 format (deliberately no real country's scheme).

example: KJR-482

color string

Exterior color.

example: Silver

Documented examples

Build-generated requests and complete responses
3
Five reproducible Teslas
GET /api/vehicles?make=tesla&count=5&seed=42
{
  "data": [
    {
      "make": "Tesla",
      "model": "Model X",
      "year": 2023,
      "type": "suv",
      "fuel": "electric",
      "vin": "5YJLUBCP3P2943007",
      "licensePlate": "SKQ-429",
      "color": "Brown"
    },
    {
      "make": "Tesla",
      "model": "Roadster",
      "year": 2008,
      "type": "coupe",
      "fuel": "electric",
      "vin": "5YJU9FKU48Y733616",
      "licensePlate": "XUU-733",
      "color": "Green"
    },
    {
      "make": "Tesla",
      "model": "Cybertruck",
      "year": 2023,
      "type": "pickup",
      "fuel": "electric",
      "vin": "5YJSVAWB9PE801620",
      "licensePlate": "AIR-806",
      "color": "Red"
    },
    {
      "make": "Tesla",
      "model": "Roadster",
      "year": 2019,
      "type": "coupe",
      "fuel": "electric",
      "vin": "5YJF84ZL5KE926850",
      "licensePlate": "BXY-234",
    …
    "generatedAt": "2026-07-29T08:13:22.000Z"
  }
}
Hybrid SUVs
GET /api/vehicles?type=suv&fuel=hybrid&count=10
{
  "data": [
    {
      "make": "Audi",
      "model": "Q5",
      "year": 2020,
      "type": "suv",
      "fuel": "hybrid",
      "vin": "WAUWLUBC9LP778645",
      "licensePlate": "YSK-679",
      "color": "Grey"
    },
    {
      "make": "Toyota",
      "model": "RAV4",
      "year": 2005,
      "type": "suv",
      "fuel": "hybrid",
      "vin": "JTDRU9FKX5U641309",
      "licensePlate": "TXU-813",
      "color": "Beige"
    },
    {
      "make": "Volvo",
      "model": "XC40",
      "year": 2018,
      "type": "suv",
      "fuel": "hybrid",
      "vin": "YV1MSVAW9JB147610",
      "licensePlate": "UAI-695",
      "color": "Beige"
    },
    {
      "make": "Volkswagen",
      "model": "Touareg",
      "year": 2017,
      "type": "suv",
      "fuel": "hybrid",
      "vin": "WVWBF84Z8HL140449",
      "licensePlate": "YBX-958",
    …
    "generatedAt": "2026-07-29T08:13:22.000Z"
  }
}
1990s–2000s Volvos
GET /api/vehicles?make=volvo&minYear=1995&maxYear=2005&count=5&seed=7
{
  "data": [
    {
      "make": "Volvo",
      "model": "V70",
      "year": 2004,
      "type": "estate",
      "fuel": "diesel",
      "vin": "YV1F1S6G94J189877",
      "licensePlate": "KZK-187",
      "color": "Beige"
    },
    {
      "make": "Volvo",
      "model": "V70",
      "year": 2001,
      "type": "estate",
      "fuel": "petrol",
      "vin": "YV12A64M913648145",
      "licensePlate": "SOR-607",
      "color": "Brown"
    },
    {
      "make": "Volvo",
      "model": "S60",
      "year": 2004,
      "type": "sedan",
      "fuel": "diesel",
      "vin": "YV11BD14141905414",
      "licensePlate": "FSJ-693",
      "color": "Grey"
    },
    {
      "make": "Volvo",
      "model": "XC90",
      "year": 2003,
      "type": "suv",
      "fuel": "diesel",
      "vin": "YV1EJNXE631998651",
      "licensePlate": "TVP-629",
    …
    "generatedAt": "2026-07-29T08:13:22.000Z"
  }
}

About this API

Coverage & behavior

Generates vehicles that hold up to scrutiny instead of random word soup:

  • Real models per make — a make=toyota record is always a Corolla, RAV4, Hilux… never a made-up name or another brand's model. Model pools also carry the body type, plausible fuel options and an approximate first model year, so a Tesla Model 3 never appears as a 1995 car and tesla is always electric (asking for make=tesla&fuel=petrol is an honest 400).
  • Standards-valid VINs — 17 characters without I/O/Q, a correct ISO 3779 check digit in position 9 (real transliteration + weights, so any VIN validator accepts them), the standard model-year code in position 10 matching the record's year, and the make's real WMI prefix (Tesla VINs start with 5YJ, Volkswagen with WVW).
  • licensePlate is a deliberately generic ABC-123 fantasy format (no real country's scheme), and minYear/maxYear genuinely bound every generated year.

Impossible filter combinations (a Toyota estate, a Tesla older than 2008) return a clear 400 naming the conflict — never a silently wrong record.

Use it for

  • Seed fleet-management or dealership demos with believable inventory
  • Test VIN validation and decoding logic against standards-valid VINs
  • Generate coherent fixtures for insurance or car-marketplace UIs

Frequently asked questions

Are the VINs valid?

Structurally yes — 17 characters with a correct check digit, so VIN validators accept them. They don't correspond to real vehicles.

Can I filter the fleet?

make, type, fuel and minYear/maxYear all genuinely filter — build an all-electric 2020+ fleet in one call.

Do models match makes?

Yes — models are drawn per make, so you'll never see a Toyota Mustang. Dealer-demo data stays believable.

Standards & references