Generator · Generic data

Vehicle registration plate from one or more countries

Endpoint GET /v1/vehicle-registration

What it covers

Returns a realistic registration plate drawn from a mix of countries, each in that country's real format — its mask, national alphabet, region codes and reserved series. Pass `countries` as a comma-separated list of ISO codes (`?countries=pl,de,it`); omit it to draw from all 29 — the 27 EU member states plus the US and Canada. `type` is the **shared** plate category, not a national name: the countries call their kinds different things (`standard` vs `passenger`, `oldtimer` vs `vintage` vs `museum`), so `?type=historic` reaches all fifteen countries that issue a veteran plate and each record reports both its `category` and the `type` its own country uses. A `type` narrows the pool to the countries that issue it; combining it with a `countries` pool that cannot serve it is a 400 rather than a silent substitution. Each record also reports its `country` and, where the country has one, its `region` — which is load-bearing for the US and Canada, whose plates encode no jurisdiction. For a country's full record (era, district, individual part) and its own `format`, use that country’s endpoint.

Parameters

ParameterTypeDescription
countinteger1–10000Number of records to return, 1–10000. Omitted returns a single record; set it for a batch. Costs 1 token plus a tenth per record.
countries"at" | "be" | "bg" | "cy" | "cz" | "de" | "dk" | "ee" | "es" | "fi" | "fr" | "gr" | "hr" | "hu" | "ie" | "it" | "lt" | "lu" | "lv" | "mt" | "nl" | "pl" | "pt" | "ro" | "se" | "si" | "sk" | "us" | "ca"[]Comma-separated ISO 3166 country codes to draw from, e.g. `pl,de,it`. Omit for all 29.
edgebooleanRestrict output to valid edge cases from the rare corners of the domain.
extremebooleanReturn a correct value wrapped in a hostile encoding (untrimmed whitespace, invisible/zero-width characters, BOM, or bidi/combining marks). Homoglyphs are excluded so the value stays machine-parseable; it still validates after normalisation.
invalidbooleanReturn a deliberately invalid value that fails validation, for testing rejection paths.
seedintegerInteger seed for reproducible output: the same seed always yields the same record.
type"standard" | "custom" | "motorcycle" | "moped" | "military" | "police" | "diplomatic" | "government" | "commercial" | "taxi" | "trailer" | "historic" | "electric" | "temporary" | "export" | "dealer" | "other"Plate category, shared across countries: standard, custom, motorcycle, moped, military, police, diplomatic, government, commercial, taxi, trailer, historic, electric, temporary, export, dealer, or other. Narrows the pool to the countries that issue it.

Response fields

FieldTypeDescription
country"at" | "be" | "bg" | "cy" | "cz" | "de" | "dk" | "ee" | "es" | "fi" | "fr" | "gr" | "hr" | "hu" | "ie" | "it" | "lt" | "lu" | "lv" | "mt" | "nl" | "pl" | "pt" | "ro" | "se" | "si" | "sk" | "us" | "ca"ISO 3166 code of the country this plate was drawn from.
valuestringThe plate, in that country’s default format, e.g. "AK 514 RH".
typestringThe plate class as that country names it — `passenger` (US), `oldtimer` (HU), `standard` (IT). A plain string, since the 29 national vocabularies differ.
category"standard" | "custom" | "motorcycle" | "moped" | "military" | "police" | "diplomatic" | "government" | "commercial" | "taxi" | "trailer" | "historic" | "electric" | "temporary" | "export" | "dealer" | "other"The same class in the shared cross-country vocabulary.
region?stringThe region the plate belongs to, spelled out (Bayern, Ontario, mazowieckie). Absent where the country numbers nationally.

Other generic generators

Try it

Generate a live example below — every response is valid by format and entirely synthetic.