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
| Parameter | Type | Description |
|---|---|---|
| count | integer1–10000 | Number 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. |
| edge | boolean | Restrict output to valid edge cases from the rare corners of the domain. |
| extreme | boolean | Return 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. |
| invalid | boolean | Return a deliberately invalid value that fails validation, for testing rejection paths. |
| seed | integer | Integer 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
| Field | Type | Description |
|---|---|---|
| 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. |
| value | string | The plate, in that country’s default format, e.g. "AK 514 RH". |
| type | string | The 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? | string | The region the plate belongs to, spelled out (Bayern, Ontario, mazowieckie). Absent where the country numbers nationally. |
Other generic generators
Try it