openapi: 3.0.3
info:
title: 'OpenVan.camp — Public API'
description: 'Free road-trip data API for 160+ countries: fuel prices, route fuel cost, toll roads, visa and vehicle-import rules, holidays, travel hazards, customs, power plugs, currency rates, food cost index, weather scores, events, news and license plates. No API key. Free to use with attribution (CC BY 4.0).'
version: 1.9.0
servers:
-
url: 'https://openvan.camp'
tags:
-
name: 'Currency Rates'
description: ''
-
name: Customs
description: ''
-
name: Events
description: ''
-
name: 'Fuel Prices'
description: ''
-
name: Holidays
description: ''
-
name: 'License Plates'
description: ''
-
name: 'Power Plugs'
description: ''
-
name: Roadbook
description: ''
-
name: Stories
description: "\nVanlife news stories — clustered and translated into 7 languages.\nEach story aggregates multiple source articles from different publishers."
-
name: 'Toll Roads'
description: ''
-
name: 'Travel Hazards'
description: ''
-
name: 'VanBasket Food Price Index'
description: "\nVanBasket Index shows how expensive food is in a country\nrelative to the world average (World = 100).\nBased on World Bank ICP 2021 data, adjusted with IMF CPI."
-
name: 'VanSky Weather'
description: ''
-
name: 'Visa & Border Rules'
description: "\nHow long you may stay and how the days are counted — for all 199 × 199\npassport/destination pairs, plus temporary vehicle import rules.\n\nEvery answer carries `confidence` and `source_url`, and says which layer it\ncame from: `curated` (hand-verified), `window` (counting window applied on\ntop of the dataset), `zone` (Schengen-style shared counter) or `dataset`.\nTreat `confidence: low` as \"the number of days is right, the way they are\ncounted is an assumption\" — verify at the border."
paths:
/api/currency/rates:
get:
summary: 'Get currency rates'
operationId: getCurrencyRates
description: "Returns EUR-base exchange rates. By default the response is limited to ~165 ISO 4217\nactive fiat currencies that are realistic for travel/fuel-price use cases.\n\n**Source chain:** national central banks (RUB/TRY/GEL/UAH/BYN/UZS) for precision,\nthen Fawaz API / ExchangeRate-API / Frankfurter / ECB for the long tail.\n\n**Refresh:** Redis-backed cache stored `forever`; refreshed by cron every 6 hours.\nA separate hourly watchdog alerts in Telegram if cache > 25h old.\n\n**HTTP cache:** `Cache-Control: public, max-age=1800` (edge `X-Accel-Expires: 1800`) —\n30 minutes, well within the 6-hour refresh interval.\n\n**Query parameters:**\n- `include=all` — return the raw upstream set (~340 codes), including crypto, metals\n and historical/legacy codes (BTC, ETH, USDT, XAU, ATS, DEM, VEF, TRL, ZWL, etc.).\n Without this parameter, those are filtered out.\n\n**Market overrides:** the `meta.overrides` field lists codes whose rate is a manual\nmarket-rate override rather than an official feed. Currently only **CUP** (Cuba uses\na parallel market rate of ~120 CUP/USD; the official fixing of ~24 CUP/USD does not\nreflect retail fuel pricing).\n\n**License:** CC BY 4.0 — free to use with attribution to [OpenVan.camp](https://openvan.camp)."
parameters: []
responses:
200:
description: Success
content:
application/json:
schema:
type: object
example:
success: true
rates:
EUR: 1
USD: 1.16698
GBP: 0.855238
RUB: 98.2897
TRY: 56.1398
GEL: 3.0551
meta:
count: 152
base: EUR
updated_at: '2026-08-27T03:05:15+00:00'
refreshed_every_hours: 6
max_age_seconds: 90000
scope: fiat
overrides:
CUP:
reason: dual_exchange_rate
source: market_rate_120_cup_per_usd
note: 'Cuba: the official fixing (~24 CUP/USD) differs from the real market rate (~120 CUP/USD). Fuel prices in Cuban pesos follow the market rate.'
properties:
success:
type: boolean
example: true
rates:
type: object
properties:
EUR:
type: integer
example: 1
USD:
type: number
example: 1.16698
GBP:
type: number
example: 0.855238
RUB:
type: number
example: 98.2897
TRY:
type: number
example: 56.1398
GEL:
type: number
example: 3.0551
meta:
type: object
properties:
count:
type: integer
example: 152
base:
type: string
example: EUR
updated_at:
type: string
example: '2026-08-27T03:05:15+00:00'
refreshed_every_hours:
type: integer
example: 6
max_age_seconds:
type: integer
example: 90000
scope:
type: string
example: fiat
overrides:
type: object
properties:
CUP:
type: object
properties:
reason:
type: string
example: dual_exchange_rate
source:
type: string
example: market_rate_120_cup_per_usd
note:
type: string
example: 'Cuba: the official fixing (~24 CUP/USD) differs from the real market rate (~120 CUP/USD). Fuel prices in Cuban pesos follow the market rate.'
tags:
- 'Currency Rates'
security: []
/api/customs/countries:
get:
summary: 'List customs jurisdictions and blocs'
operationId: listCustomsJurisdictionsAndBlocs
description: "A bloc (EU, EAEU) holds rules shared by all its members; they apply when entering\nfrom outside the bloc."
parameters:
-
in: query
name: locale
description: 'Language: en, ru, de, fr, es, pt, tr.'
example: en
required: false
schema:
type: string
description: 'Language: en, ru, de, fr, es, pt, tr.'
example: en
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
blocs:
EU:
members:
- AT
- BE
name: 'European Union'
jurisdictions:
-
code: EU
topics:
- food
- cash
properties:
blocs:
type: object
properties:
EU:
type: object
properties:
members:
type: array
example:
- AT
- BE
items:
type: string
name:
type: string
example: 'European Union'
jurisdictions:
type: array
example:
-
code: EU
topics:
- food
- cash
items:
type: object
properties:
code:
type: string
example: EU
topics:
type: array
example:
- food
- cash
items:
type: string
tags:
- Customs
security: []
'/api/customs/countries/{code}':
get:
summary: 'Get customs rules on entry into a country by car'
operationId: getCustomsRulesOnEntryIntoACountryByCar
description: "The country's own rules and those of its bloc, each with a verbatim official quote and\nsource link. With `from`, the country you are coming from is taken into account: there\nare no customs inside the EU, and the EU ban on meat and dairy does not apply to\ntravellers from Switzerland, Norway, Iceland, Andorra, San Marino and Liechtenstein.\nA country without data returns an error — that does not mean \"nothing is restricted\"."
parameters:
-
in: query
name: from
description: 'ISO code of the country you are coming from.'
example: UA
required: false
schema:
type: string
description: 'ISO code of the country you are coming from.'
example: UA
-
in: query
name: locale
description: 'Language of the wording: en, ru, de, fr, es, pt, tr.'
example: en
required: false
schema:
type: string
description: 'Language of the wording: en, ru, de, fr, es, pt, tr.'
example: en
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
country_code: PL
name: Poland
from: UA
covered: true
items:
-
jurisdiction: EU
topic: food
severity: ban
summary: 'No meat or dairy at all (sausage, cheese, milk) — not even in the motorhome fridge.'
value:
meat: false
dairy: false
quote: 'If you travel to the EU from a non-EU country, you are not allowed to bring any meat or dairy products with you.'
source_name: 'Your Europe (European Commission)'
source_url: 'https://europa.eu/youreurope/citizens/travel/carry/meat-dairy-animal/index_en.htm'
checked: '2026-10-02'
properties:
country_code:
type: string
example: PL
name:
type: string
example: Poland
from:
type: string
example: UA
covered:
type: boolean
example: true
items:
type: array
example:
-
jurisdiction: EU
topic: food
severity: ban
summary: 'No meat or dairy at all (sausage, cheese, milk) — not even in the motorhome fridge.'
value:
meat: false
dairy: false
quote: 'If you travel to the EU from a non-EU country, you are not allowed to bring any meat or dairy products with you.'
source_name: 'Your Europe (European Commission)'
source_url: 'https://europa.eu/youreurope/citizens/travel/carry/meat-dairy-animal/index_en.htm'
checked: '2026-10-02'
items:
type: object
properties:
jurisdiction:
type: string
example: EU
topic:
type: string
example: food
severity:
type: string
example: ban
summary:
type: string
example: 'No meat or dairy at all (sausage, cheese, milk) — not even in the motorhome fridge.'
value:
type: object
properties:
meat:
type: boolean
example: false
dairy:
type: boolean
example: false
quote:
type: string
example: 'If you travel to the EU from a non-EU country, you are not allowed to bring any meat or dairy products with you.'
source_name:
type: string
example: 'Your Europe (European Commission)'
source_url:
type: string
example: 'https://europa.eu/youreurope/citizens/travel/carry/meat-dairy-animal/index_en.htm'
checked:
type: string
example: '2026-10-02'
tags:
- Customs
security: []
parameters:
-
in: path
name: code
description: 'ISO 3166-1 alpha-2 of the country you enter.'
example: PL
required: true
schema:
type: string
/api/events:
get:
summary: 'List events'
operationId: listEvents
description: "Returns a paginated list of vanlife events (exhibitions, festivals, meetups, road trips).\nFilter by status, type, country, or search by name."
parameters:
-
in: query
name: locale
description: 'Language code for localized names. One of: `en`, `ru`, `de`, `fr`, `es`, `pt`, `tr`. Defaults to `en`.'
example: en
required: false
schema:
type: string
description: 'Language code for localized names. One of: `en`, `ru`, `de`, `fr`, `es`, `pt`, `tr`. Defaults to `en`.'
example: en
-
in: query
name: status
description: 'Filter by event status. One of: `upcoming`, `ongoing`, `past`, `all`. Defaults to `upcoming`.'
example: upcoming
required: false
schema:
type: string
description: 'Filter by event status. One of: `upcoming`, `ongoing`, `past`, `all`. Defaults to `upcoming`.'
example: upcoming
-
in: query
name: type
description: 'Filter by event type. One of: `expo`, `festival`, `forum`, `meetup`, `roadtrip`.'
example: festival
required: false
schema:
type: string
description: 'Filter by event type. One of: `expo`, `festival`, `forum`, `meetup`, `roadtrip`.'
example: festival
-
in: query
name: country
description: '2-letter ISO country code.'
example: DE
required: false
schema:
type: string
description: '2-letter ISO country code.'
example: DE
-
in: query
name: search
description: 'Text search by event name.'
example: 'Adventure Northside'
required: false
schema:
type: string
description: 'Text search by event name.'
example: 'Adventure Northside'
-
in: query
name: page
description: 'Page number. Defaults to 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number. Defaults to 1.'
example: 1
-
in: query
name: limit
description: 'Results per page (max 100). Defaults to 30.'
example: 30
required: false
schema:
type: integer
description: 'Results per page (max 100). Defaults to 30.'
example: 30
responses:
200:
description: Success
content:
application/json:
schema:
type: object
example:
events:
-
id: 960
slug: adventure-northside-2026
event_name: 'Adventure Northside 2026'
event_type: festival
event_type_emoji: 🎉
start_date: '2026-09-18'
end_date: '2026-09-20'
city: Basthorst
country_code: DE
country:
code: de
slug: germany
name: Germany
flag_emoji: 🇩🇪
status: upcoming
url: 'https://openvan.camp/en/event/adventure-northside-2026'
pagination:
total: 48
page: 1
limit: 30
pages: 2
properties:
events:
type: array
example:
-
id: 960
slug: adventure-northside-2026
event_name: 'Adventure Northside 2026'
event_type: festival
event_type_emoji: 🎉
start_date: '2026-09-18'
end_date: '2026-09-20'
city: Basthorst
country_code: DE
country:
code: de
slug: germany
name: Germany
flag_emoji: 🇩🇪
status: upcoming
url: 'https://openvan.camp/en/event/adventure-northside-2026'
items:
type: object
properties:
id:
type: integer
example: 960
slug:
type: string
example: adventure-northside-2026
event_name:
type: string
example: 'Adventure Northside 2026'
event_type:
type: string
example: festival
event_type_emoji:
type: string
example: 🎉
start_date:
type: string
example: '2026-09-18'
end_date:
type: string
example: '2026-09-20'
city:
type: string
example: Basthorst
country_code:
type: string
example: DE
country:
type: object
properties:
code:
type: string
example: de
slug:
type: string
example: germany
name:
type: string
example: Germany
flag_emoji:
type: string
example: 🇩🇪
status:
type: string
example: upcoming
url:
type: string
example: 'https://openvan.camp/en/event/adventure-northside-2026'
pagination:
type: object
properties:
total:
type: integer
example: 48
page:
type: integer
example: 1
limit:
type: integer
example: 30
pages:
type: integer
example: 2
tags:
- Events
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
page:
type: integer
description: 'Must be at least 1.'
example: 16
limit:
type: integer
description: 'Must be at least 1. Must not be greater than 100.'
example: 22
search:
type: string
description: 'Must not be greater than 200 characters.'
example: g
security: []
'/api/event/{slug}':
get:
summary: 'Get event details'
operationId: getEventDetails
description: 'Returns full details for a single vanlife event by slug, including location, description, and social links.'
parameters:
-
in: query
name: locale
description: 'Language for localized content. One of: `en`, `ru`, `de`, `fr`, `es`, `pt`, `tr`.'
example: en
required: false
schema:
type: string
description: 'Language for localized content. One of: `en`, `ru`, `de`, `fr`, `es`, `pt`, `tr`.'
example: en
responses:
200:
description: Success
content:
application/json:
schema:
type: object
example:
id: 960
slug: adventure-northside-2026
event_name: 'Adventure Northside 2026'
event_type: festival
event_type_emoji: 🎉
start_date: '2026-09-18'
end_date: '2026-09-20'
city: Basthorst
country_code: DE
description: "Northern Germany's Overland & Self-build expo and festival..."
official_url: 'https://adventurenorthside.de/'
image_url: 'https://...'
status: upcoming
url: 'https://openvan.camp/en/event/adventure-northside-2026'
properties:
id:
type: integer
example: 960
slug:
type: string
example: adventure-northside-2026
event_name:
type: string
example: 'Adventure Northside 2026'
event_type:
type: string
example: festival
event_type_emoji:
type: string
example: 🎉
start_date:
type: string
example: '2026-09-18'
end_date:
type: string
example: '2026-09-20'
city:
type: string
example: Basthorst
country_code:
type: string
example: DE
description:
type: string
example: "Northern Germany's Overland & Self-build expo and festival..."
official_url:
type: string
example: 'https://adventurenorthside.de/'
image_url:
type: string
example: 'https://...'
status:
type: string
example: upcoming
url:
type: string
example: 'https://openvan.camp/en/event/adventure-northside-2026'
404:
description: 'Not found'
content:
application/json:
schema:
type: object
example:
message: 'No query results for model [App\Models\Event].'
properties:
message:
type: string
example: 'No query results for model [App\Models\Event].'
tags:
- Events
security: []
parameters:
-
in: path
name: slug
description: 'The event slug.'
example: adventure-northside-2026
required: true
schema:
type: string
'/api/event/{slug}/articles':
get:
summary: 'Get event articles'
operationId: getEventArticles
description: "Returns source articles linked to this event.\nWhen `locale` is provided, attempts to return only articles in that language.\nIf no articles match the requested locale, **all articles are returned** as a fallback\n(they may be in the original source language, e.g. Japanese or German).\nThe `language` field on each article indicates the actual language of the source."
parameters:
-
in: query
name: locale
description: 'Language code to filter articles by source language. One of: `en`, `ru`, `de`, `fr`, `es`, `pt`, `tr`. Defaults to `en`.'
example: en
required: false
schema:
type: string
description: 'Language code to filter articles by source language. One of: `en`, `ru`, `de`, `fr`, `es`, `pt`, `tr`. Defaults to `en`.'
example: en
responses:
200:
description: Success
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: integer
example: 1001
title:
type: string
example: 'Adventure Northside 2026 opens its doors'
image_url:
type: string
example: 'https://...'
published_at:
type: string
example: '2026-03-11T10:00:00+00:00'
source_name:
type: string
example: 'CamperVan Magazine'
original_url:
type: string
example: 'https://...'
language:
type: string
example: en
example:
-
id: 1001
title: 'Adventure Northside 2026 opens its doors'
image_url: 'https://...'
published_at: '2026-03-11T10:00:00+00:00'
source_name: 'CamperVan Magazine'
original_url: 'https://...'
language: en
tags:
- Events
security: []
parameters:
-
in: path
name: slug
description: 'The event slug.'
example: adventure-northside-2026
required: true
schema:
type: string
/api/route-cost:
post:
summary: 'Fuel cost for a route'
operationId: fuelCostForARoute
description: "Routes between 2–10 place names and prices the fuel with the current price of every\ncountry on the way. `per_country` splits distance, litres and cost by country."
parameters: []
responses: { }
tags:
- 'Fuel Prices'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
waypoints:
type: array
description: '2–10 place names in travel order.'
example:
- Berlin
- Prague
- Vienna
items:
type: string
tank:
type: number
description: 'Tank volume, litres.'
example: 80.0
nullable: true
cons:
type: number
description: 'Consumption, litres per 100 km.'
example: 10.0
nullable: true
fuel:
type: string
description: 'diesel, gasoline or lpg.'
example: diesel
nullable: true
currency:
type: string
description: 'ISO 4217 code for the total.'
example: EUR
nullable: true
locale:
type: string
description: 'Language of country names: en, ru, de, fr, es, pt, tr.'
example: en
nullable: true
required:
- waypoints
security: []
/api/fuel/prices:
get:
summary: 'Get fuel prices'
operationId: getFuelPrices
description: "Returns current retail fuel prices for all supported countries.\nPrice keys follow FuelGradeCatalog::ORDER plus the legacy `premium` alias.\nData is updated weekly from 45+ official government sources and independent aggregators.\n\nPrices are weighted averages from multiple sources per country. The `sources` array\nlists all contributing data providers (sorted by trust weight, highest first).\n\n**License:** CC BY 4.0 — free to use with attribution to [OpenVan.camp](https://openvan.camp)."
parameters:
-
in: query
name: country
description: 'Optional ISO 3166-1 alpha-2 code to return a single country instead of all. Unknown codes return 404.'
example: "tr\n\nThe `unit` field is the unit the country's price is published in: `liter`, `gallon`\n(US, 3.78541 l) or `imperial_gallon` (4.54609 l, former British territories). Values are\nreturned as the source publishes them — converting to litres is up to the consumer.\nA grade can be priced in its own currency (Venezuela: diesel in USD, gasoline in VES):\nuse `currencies[grade]` when present, otherwise `currency`."
required: false
schema:
type: string
description: 'Optional ISO 3166-1 alpha-2 code to return a single country instead of all. Unknown codes return 404.'
example: "tr\n\nThe `unit` field is the unit the country's price is published in: `liter`, `gallon`\n(US, 3.78541 l) or `imperial_gallon` (4.54609 l, former British territories). Values are\nreturned as the source publishes them — converting to litres is up to the consumer.\nA grade can be priced in its own currency (Venezuela: diesel in USD, gasoline in VES):\nuse `currencies[grade]` when present, otherwise `currency`."
responses:
200:
description: Success
content:
application/json:
schema:
type: object
example:
success: true
data:
DE:
country_code: DE
country_name: Germany
region: europe
currency: EUR
local_currency: EUR
unit: liter
prices:
gasoline_regular: null
gasoline: 2.1313
gasoline_premium: null
gasoline_super: null
diesel_regular: null
diesel: 2.2845
diesel_premium: null
lpg: 1.113
cng: null
e85: null
kerosene: null
premium: null
price_changes:
gasoline_regular: null
gasoline: -0.02
gasoline_premium: null
gasoline_super: null
diesel_regular: null
diesel: 0.01
diesel_premium: null
lpg: 0.0
cng: null
e85: null
kerosene: null
premium: null
fetched_at: '2026-08-22T08:50:59+03:00'
sources:
- Fuelo.net
- 'EU Weekly Oil Bulletin'
- Cargopedia.net
sources_count: 3
is_excluded: false
meta:
total_countries: 142
updated_at: '2026-08-22 08:51:00'
cache_ttl_hours: 6
properties:
success:
type: boolean
example: true
data:
type: object
properties:
DE:
type: object
properties:
country_code:
type: string
example: DE
country_name:
type: string
example: Germany
region:
type: string
example: europe
currency:
type: string
example: EUR
local_currency:
type: string
example: EUR
unit:
type: string
example: liter
prices:
type: object
properties:
gasoline_regular:
type: string
example: null
nullable: true
gasoline:
type: number
example: 2.1313
gasoline_premium:
type: string
example: null
nullable: true
gasoline_super:
type: string
example: null
nullable: true
diesel_regular:
type: string
example: null
nullable: true
diesel:
type: number
example: 2.2845
diesel_premium:
type: string
example: null
nullable: true
lpg:
type: number
example: 1.113
cng:
type: string
example: null
nullable: true
e85:
type: string
example: null
nullable: true
kerosene:
type: string
example: null
nullable: true
premium:
type: string
example: null
nullable: true
price_changes:
type: object
properties:
gasoline_regular:
type: string
example: null
nullable: true
gasoline:
type: number
example: -0.02
gasoline_premium:
type: string
example: null
nullable: true
gasoline_super:
type: string
example: null
nullable: true
diesel_regular:
type: string
example: null
nullable: true
diesel:
type: number
example: 0.01
diesel_premium:
type: string
example: null
nullable: true
lpg:
type: number
example: 0.0
cng:
type: string
example: null
nullable: true
e85:
type: string
example: null
nullable: true
kerosene:
type: string
example: null
nullable: true
premium:
type: string
example: null
nullable: true
fetched_at:
type: string
example: '2026-08-22T08:50:59+03:00'
sources:
type: array
example:
- Fuelo.net
- 'EU Weekly Oil Bulletin'
- Cargopedia.net
items:
type: string
sources_count:
type: integer
example: 3
is_excluded:
type: boolean
example: false
meta:
type: object
properties:
total_countries:
type: integer
example: 142
updated_at:
type: string
example: '2026-08-22 08:51:00'
cache_ttl_hours:
type: integer
example: 6
tags:
- 'Fuel Prices'
security: []
/api/holidays/countries:
get:
summary: 'List countries with holiday data'
operationId: listCountriesWithHolidayData
description: "Which kinds of data each country has: `public` — public holidays, `school` — school\nholidays (by region), `traffic` — official forecast of peak traffic days (currently\nFrance, Bison Futé)."
parameters:
-
in: query
name: locale
description: 'Language of country names: en, ru, de, fr, es, pt, tr.'
example: en
required: false
schema:
type: string
description: 'Language of country names: en, ru, de, fr, es, pt, tr.'
example: en
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
count: 1
countries:
-
country_code: FR
name: France
public: true
school: true
traffic: true
sources:
- nager
- openholidays
- bisonfute
properties:
count:
type: integer
example: 1
countries:
type: array
example:
-
country_code: FR
name: France
public: true
school: true
traffic: true
sources:
- nager
- openholidays
- bisonfute
items:
type: object
properties:
country_code:
type: string
example: FR
name:
type: string
example: France
public:
type: boolean
example: true
school:
type: boolean
example: true
traffic:
type: boolean
example: true
sources:
type: array
example:
- nager
- openholidays
- bisonfute
items:
type: string
tags:
- Holidays
security: []
'/api/holidays/countries/{code}':
get:
summary: 'Get holidays of one country for a period'
operationId: getHolidaysOfOneCountryForAPeriod
description: "Entries in date order. School holidays are often regional: `nationwide=false` and a\n`regions` list (ISO 3166-2 codes). For `traffic`, `details` holds the colour of the day\nfor departures and returns: green, orange, red, black. A country without data returns\nan error — that does not mean \"no holidays\"."
parameters:
-
in: query
name: from
description: 'date Start of the period (default today).'
example: '2026-07-01'
required: false
schema:
type: string
description: 'date Start of the period (default today).'
example: '2026-07-01'
-
in: query
name: to
description: 'date End of the period (default +90 days, at most 400 days after from).'
example: '2026-08-31'
required: false
schema:
type: string
description: 'date End of the period (default +90 days, at most 400 days after from).'
example: '2026-08-31'
-
in: query
name: kind
description: 'Only one kind: public, school, traffic.'
example: public
required: false
schema:
type: string
description: 'Only one kind: public, school, traffic.'
example: public
-
in: query
name: locale
description: 'Language of names: en, ru, de, fr, es, pt, tr.'
example: en
required: false
schema:
type: string
description: 'Language of names: en, ru, de, fr, es, pt, tr.'
example: en
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
country_code: IT
name: Italy
from: '2026-08-01'
to: '2026-08-31'
count: 1
items:
-
country_code: IT
kind: public
start: '2026-08-15'
end: '2026-08-15'
name: 'Assumption Day'
name_en: 'Assumption Day'
name_local: Ferragosto
category: null
nationwide: true
regions: []
details: null
source: nager
source_url: 'https://date.nager.at/PublicHoliday/Country/IT'
properties:
country_code:
type: string
example: IT
name:
type: string
example: Italy
from:
type: string
example: '2026-08-01'
to:
type: string
example: '2026-08-31'
count:
type: integer
example: 1
items:
type: array
example:
-
country_code: IT
kind: public
start: '2026-08-15'
end: '2026-08-15'
name: 'Assumption Day'
name_en: 'Assumption Day'
name_local: Ferragosto
category: null
nationwide: true
regions: []
details: null
source: nager
source_url: 'https://date.nager.at/PublicHoliday/Country/IT'
items:
type: object
properties:
country_code:
type: string
example: IT
kind:
type: string
example: public
start:
type: string
example: '2026-08-15'
end:
type: string
example: '2026-08-15'
name:
type: string
example: 'Assumption Day'
name_en:
type: string
example: 'Assumption Day'
name_local:
type: string
example: Ferragosto
category:
type: string
example: null
nullable: true
nationwide:
type: boolean
example: true
regions:
type: array
example: []
details:
type: string
example: null
nullable: true
source:
type: string
example: nager
source_url:
type: string
example: 'https://date.nager.at/PublicHoliday/Country/IT'
tags:
- Holidays
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
from:
type: string
description: 'Must be a valid date in the format Y-m-d.'
example: '2026-10-26'
nullable: true
to:
type: string
description: 'Must be a valid date in the format Y-m-d.'
example: '2026-10-26'
nullable: true
kind:
type: string
description: ''
example: null
nullable: true
security: []
parameters:
-
in: path
name: code
description: 'ISO 3166-1 alpha-2.'
example: FR
required: true
schema:
type: string
/api/plates:
get:
summary: 'List countries'
operationId: listCountries
description: "Countries whose license plates are available: international code, plate size,\nexample plate, how the region is shown and ready image URLs of the example.\n\n**License:** data CC BY 4.0 — free to use with attribution to [OpenVan.camp](https://openvan.camp).\nPlate images carry the license of the plate typeface (`glyphs_license`)."
parameters:
-
in: query
name: locale
description: 'Language of country and region names: en, ru, de, es, fr, pt, tr.'
example: en
required: false
schema:
type: string
description: 'Language of country and region names: en, ru, de, es, fr, pt, tr.'
example: en
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data:
-
country_code: AF
country_name: Afghanistan
intl_code: AFG
region_marking: mixed
size_mm:
- 340
- 150
example:
number: '5 11585'
region: KBL
formatted: '5 11585 KBL'
image:
svg: 'https://openvan.camp/api/plates/af/plate.svg?number=5+11585®ion=KBL&v=7476f0f0'
png: 'https://openvan.camp/api/plates/af/plate.png?number=5+11585®ion=KBL&v=7476f0f0'
regions_count: 34
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/afghanistan'
-
country_code: AL
country_name: Albania
intl_code: AL
region_marking: legacy_only
size_mm:
- 520
- 110
example:
number: 'AB 115 XX'
region: ''
formatted: 'AB 115 XX'
image:
svg: 'https://openvan.camp/api/plates/al/plate.svg?number=AB+115+XX&v=ea085827'
png: 'https://openvan.camp/api/plates/al/plate.png?number=AB+115+XX&v=ea085827'
regions_count: 36
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/albania'
-
country_code: DZ
country_name: Algeria
intl_code: DZ
region_marking: suffix_digits
size_mm:
- 520
- 110
example:
number: '56789 120 34'
region: ''
formatted: '56789 120 34'
image:
svg: 'https://openvan.camp/api/plates/dz/plate.svg?number=56789+120+34&v=0d8c9779'
png: 'https://openvan.camp/api/plates/dz/plate.png?number=56789+120+34&v=0d8c9779'
regions_count: 58
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/algeria'
-
country_code: AD
country_name: Andorra
intl_code: AND
region_marking: none
size_mm:
- 440
- 150
example:
number: B0944
region: ''
formatted: B0944
image:
svg: 'https://openvan.camp/api/plates/ad/plate.svg?number=B0944&v=805777b3'
png: 'https://openvan.camp/api/plates/ad/plate.png?number=B0944&v=805777b3'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/andorra'
-
country_code: AO
country_name: Angola
intl_code: null
region_marking: legacy_only
size_mm:
- 520
- 110
example:
number: LD-38-75-CL
region: ''
formatted: LD-38-75-CL
image:
svg: 'https://openvan.camp/api/plates/ao/plate.svg?number=LD-38-75-CL&v=7225cb72'
png: 'https://openvan.camp/api/plates/ao/plate.png?number=LD-38-75-CL&v=7225cb72'
regions_count: 5
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/angola'
-
country_code: AG
country_name: 'Antigua and Barbuda'
intl_code: null
region_marking: none
size_mm:
- 305
- 152
example:
number: 'A 1587'
region: ''
formatted: 'A 1587'
image:
svg: 'https://openvan.camp/api/plates/ag/plate.svg?number=A+1587&v=ffe51383'
png: 'https://openvan.camp/api/plates/ag/plate.png?number=A+1587&v=ffe51383'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/antigua-and-barbuda'
-
country_code: AR
country_name: Argentina
intl_code: RA
region_marking: legacy_only
size_mm:
- 400
- 130
example:
number: 'AJ 707 RU'
region: ''
formatted: 'AJ 707 RU'
image:
svg: 'https://openvan.camp/api/plates/ar/plate.svg?number=AJ+707+RU&v=a84168ad'
png: 'https://openvan.camp/api/plates/ar/plate.png?number=AJ+707+RU&v=a84168ad'
regions_count: 24
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/argentina'
-
country_code: AM
country_name: Armenia
intl_code: AM
region_marking: prefix_digits
size_mm:
- 520
- 110
example:
number: '77 LU 555'
region: ''
formatted: '77 LU 555'
image:
svg: 'https://openvan.camp/api/plates/am/plate.svg?number=77+LU+555&v=dcc25a78'
png: 'https://openvan.camp/api/plates/am/plate.png?number=77+LU+555&v=dcc25a78'
regions_count: 12
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/armenia'
-
country_code: AU
country_name: Australia
intl_code: AUS
region_marking: text_name
size_mm:
- 372
- 134
example:
number: CB·33·GO
region: NSW
formatted: 'CB·33·GO NSW'
image:
svg: 'https://openvan.camp/api/plates/au/plate.svg?number=CB%C2%B733%C2%B7GO®ion=NSW&v=ac7c71f3'
png: 'https://openvan.camp/api/plates/au/plate.png?number=CB%C2%B733%C2%B7GO®ion=NSW&v=ac7c71f3'
regions_count: 9
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/australia'
-
country_code: AT
country_name: Austria
intl_code: A
region_marking: prefix_letters
size_mm:
- 520
- 120
example:
number: 'GB 471AP'
region: ''
formatted: 'GB 471AP'
image:
svg: 'https://openvan.camp/api/plates/at/plate.svg?number=GB+471AP&v=04e422a2'
png: 'https://openvan.camp/api/plates/at/plate.png?number=GB+471AP&v=04e422a2'
regions_count: 106
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/austria'
-
country_code: AZ
country_name: Azerbaijan
intl_code: AZ
region_marking: prefix_digits
size_mm:
- 520
- 112
example:
number: 09-BR-763
region: ''
formatted: 09-BR-763
image:
svg: 'https://openvan.camp/api/plates/az/plate.svg?number=09-BR-763&v=fc20e21b'
png: 'https://openvan.camp/api/plates/az/plate.png?number=09-BR-763&v=fc20e21b'
regions_count: 74
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/azerbaijan'
-
country_code: BS
country_name: Bahamas
intl_code: BS
region_marking: text_name
size_mm:
- 305
- 152
example:
number: '1521'
region: ABACO
formatted: '1521 ABACO'
image:
svg: 'https://openvan.camp/api/plates/bs/plate.svg?number=1521®ion=ABACO&v=ada69d6d'
png: 'https://openvan.camp/api/plates/bs/plate.png?number=1521®ion=ABACO&v=ada69d6d'
regions_count: 12
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/bahamas'
-
country_code: BH
country_name: Bahrain
intl_code: BRN
region_marking: none
size_mm:
- 520
- 110
example:
number: '568'
region: ''
formatted: '568'
image:
svg: 'https://openvan.camp/api/plates/bh/plate.svg?number=568&v=71f740e6'
png: 'https://openvan.camp/api/plates/bh/plate.png?number=568&v=71f740e6'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/bahrain'
-
country_code: BD
country_name: Bangladesh
intl_code: BD
region_marking: text_name
size_mm:
- 330
- 165
example:
number: 'GA 31-9957'
region: 'DHAKA METRO'
formatted: 'GA 31-9957 DHAKA METRO'
image:
svg: 'https://openvan.camp/api/plates/bd/plate.svg?number=GA+31-9957®ion=DHAKA+METRO&v=0e11bd04'
png: 'https://openvan.camp/api/plates/bd/plate.png?number=GA+31-9957®ion=DHAKA+METRO&v=0e11bd04'
regions_count: 70
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/bangladesh'
-
country_code: BB
country_name: Barbados
intl_code: BDS
region_marking: prefix_letters
size_mm:
- 520
- 111
example:
number: X5706
region: ''
formatted: X5706
image:
svg: 'https://openvan.camp/api/plates/bb/plate.svg?number=X5706&v=3aa5e243'
png: 'https://openvan.camp/api/plates/bb/plate.png?number=X5706&v=3aa5e243'
regions_count: 11
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/barbados'
-
country_code: BY
country_name: Belarus
intl_code: BY
region_marking: separate_field
size_mm:
- 520
- 110
example:
number: '8682 АХ'
region: '3'
formatted: '8682 АХ 3'
image:
svg: 'https://openvan.camp/api/plates/by/plate.svg?number=8682+%D0%90%D0%A5®ion=3&v=34246fc9'
png: 'https://openvan.camp/api/plates/by/plate.png?number=8682+%D0%90%D0%A5®ion=3&v=34246fc9'
regions_count: 7
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/belarus'
-
country_code: BE
country_name: Belgium
intl_code: B
region_marking: none
size_mm:
- 520
- 110
example:
number: 1-ABC-123
region: ''
formatted: 1-ABC-123
image:
svg: 'https://openvan.camp/api/plates/be/plate.svg?number=1-ABC-123&v=e18a7e8a'
png: 'https://openvan.camp/api/plates/be/plate.png?number=1-ABC-123&v=e18a7e8a'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/belgium'
-
country_code: BZ
country_name: Belize
intl_code: BH
region_marking: prefix_letters
size_mm:
- 305
- 152
example:
number: C1942
region: BMP
formatted: 'C1942 BMP'
image:
svg: 'https://openvan.camp/api/plates/bz/plate.svg?number=C1942®ion=BMP&v=9d1656b6'
png: 'https://openvan.camp/api/plates/bz/plate.png?number=C1942®ion=BMP&v=9d1656b6'
regions_count: 6
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/belize'
-
country_code: BJ
country_name: Benin
intl_code: DY
region_marking: none
size_mm:
- 520
- 110
example:
number: 'AE 8888'
region: ''
formatted: 'AE 8888'
image:
svg: 'https://openvan.camp/api/plates/bj/plate.svg?number=AE+8888&v=4e5c9084'
png: 'https://openvan.camp/api/plates/bj/plate.png?number=AE+8888&v=4e5c9084'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/benin'
-
country_code: BT
country_name: Bhutan
intl_code: null
region_marking: mixed
size_mm:
- 340
- 125
example:
number: BP-2-A7662
region: ''
formatted: BP-2-A7662
image:
svg: 'https://openvan.camp/api/plates/bt/plate.svg?number=BP-2-A7662&v=5f9f10a6'
png: 'https://openvan.camp/api/plates/bt/plate.png?number=BP-2-A7662&v=5f9f10a6'
regions_count: 4
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/bhutan'
-
country_code: BA
country_name: Bih
intl_code: BIH
region_marking: none
size_mm:
- 520
- 110
example:
number: M48-E-415
region: ''
formatted: M48-E-415
image:
svg: 'https://openvan.camp/api/plates/ba/plate.svg?number=M48-E-415&v=29fb0a49'
png: 'https://openvan.camp/api/plates/ba/plate.png?number=M48-E-415&v=29fb0a49'
regions_count: 22
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/bosnia-and-herzegovina'
-
country_code: BO
country_name: Bolivia
intl_code: BOL
region_marking: separate_field
size_mm:
- 305
- 152
example:
number: 1852PHD
region: L
formatted: '1852PHD L'
image:
svg: 'https://openvan.camp/api/plates/bo/plate.svg?number=1852PHD®ion=L&v=73ccb13b'
png: 'https://openvan.camp/api/plates/bo/plate.png?number=1852PHD®ion=L&v=73ccb13b'
regions_count: 9
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/bolivia'
-
country_code: BW
country_name: Botswana
intl_code: BW
region_marking: none
size_mm:
- 520
- 113
example:
number: 'B 962 ATH'
region: ''
formatted: 'B 962 ATH'
image:
svg: 'https://openvan.camp/api/plates/bw/plate.svg?number=B+962+ATH&v=9fee2a06'
png: 'https://openvan.camp/api/plates/bw/plate.png?number=B+962+ATH&v=9fee2a06'
regions_count: 13
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/botswana'
-
country_code: BR
country_name: Brazil
intl_code: BR
region_marking: mixed
size_mm:
- 400
- 130
example:
number: BRA2E19
region: ''
formatted: BRA2E19
image:
svg: 'https://openvan.camp/api/plates/br/plate.svg?number=BRA2E19&v=5112b6dc'
png: 'https://openvan.camp/api/plates/br/plate.png?number=BRA2E19&v=5112b6dc'
regions_count: 27
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/brazil'
-
country_code: BN
country_name: Brunei
intl_code: BRU
region_marking: legacy_only
size_mm:
- 300
- 150
example:
number: 'KN 232'
region: ''
formatted: 'KN 232'
image:
svg: 'https://openvan.camp/api/plates/bn/plate.svg?number=KN+232&v=3357a2b5'
png: 'https://openvan.camp/api/plates/bn/plate.png?number=KN+232&v=3357a2b5'
regions_count: 4
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/brunei'
-
country_code: BG
country_name: Bulgaria
intl_code: BG
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: 'CA 1234 AB'
region: ''
formatted: 'CA 1234 AB'
image:
svg: 'https://openvan.camp/api/plates/bg/plate.svg?number=CA+1234+AB&v=f29b4a79'
png: 'https://openvan.camp/api/plates/bg/plate.png?number=CA+1234+AB&v=f29b4a79'
regions_count: 28
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/bulgaria'
-
country_code: BF
country_name: 'Burkina Faso'
intl_code: BF
region_marking: prefix_digits
size_mm:
- 520
- 110
example:
number: '11 GK 1844'
region: ''
formatted: '11 GK 1844'
image:
svg: 'https://openvan.camp/api/plates/bf/plate.svg?number=11+GK+1844&v=e7222b9b'
png: 'https://openvan.camp/api/plates/bf/plate.png?number=11+GK+1844&v=e7222b9b'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/burkina-faso'
-
country_code: BI
country_name: Burundi
intl_code: RU
region_marking: none
size_mm:
- 520
- 113
example:
number: 'C 0100 A'
region: ''
formatted: 'C 0100 A'
image:
svg: 'https://openvan.camp/api/plates/bi/plate.svg?number=C+0100+A&v=252283d5'
png: 'https://openvan.camp/api/plates/bi/plate.png?number=C+0100+A&v=252283d5'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/burundi'
-
country_code: KH
country_name: Cambodia
intl_code: K
region_marking: text_name
size_mm:
- 520
- 155
example:
number: 2A-3631
region: 'BANTEAY MEANCHEY'
formatted: '2A-3631 BANTEAY MEANCHEY'
image:
svg: 'https://openvan.camp/api/plates/kh/plate.svg?number=2A-3631®ion=BANTEAY+MEANCHEY&v=dc8e712a'
png: 'https://openvan.camp/api/plates/kh/plate.png?number=2A-3631®ion=BANTEAY+MEANCHEY&v=dc8e712a'
regions_count: 25
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/cambodia'
-
country_code: CM
country_name: Cameroon
intl_code: CAM
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: 'LT 780 FQ'
region: ''
formatted: 'LT 780 FQ'
image:
svg: 'https://openvan.camp/api/plates/cm/plate.svg?number=LT+780+FQ&v=89c65bdb'
png: 'https://openvan.camp/api/plates/cm/plate.png?number=LT+780+FQ&v=89c65bdb'
regions_count: 10
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/cameroon'
-
country_code: CA
country_name: Canada
intl_code: CDN
region_marking: text_name
size_mm:
- 305
- 152
example:
number: 'CBPC 344'
region: 'ON'
formatted: 'CBPC 344 ON'
image:
svg: 'https://openvan.camp/api/plates/ca/plate.svg?number=CBPC+344®ion=ON&v=f7867221'
png: 'https://openvan.camp/api/plates/ca/plate.png?number=CBPC+344®ion=ON&v=f7867221'
regions_count: 13
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/canada'
-
country_code: CV
country_name: 'Cape Verde'
intl_code: CV
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: FA-06-86
region: ''
formatted: FA-06-86
image:
svg: 'https://openvan.camp/api/plates/cv/plate.svg?number=FA-06-86&v=0f29be26'
png: 'https://openvan.camp/api/plates/cv/plate.png?number=FA-06-86&v=0f29be26'
regions_count: 11
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/cape-verde'
-
country_code: CF
country_name: 'Central African Republic'
intl_code: RCA
region_marking: mixed
size_mm:
- 520
- 110
example:
number: 'BB 534 DG'
region: ''
formatted: 'BB 534 DG'
image:
svg: 'https://openvan.camp/api/plates/cf/plate.svg?number=BB+534+DG&v=7893423a'
png: 'https://openvan.camp/api/plates/cf/plate.png?number=BB+534+DG&v=7893423a'
regions_count: 17
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/central-african-republic'
-
country_code: TD
country_name: Chad
intl_code: TCH
region_marking: prefix_digits
size_mm:
- 520
- 110
example:
number: 23V1234A
region: ''
formatted: 23V1234A
image:
svg: 'https://openvan.camp/api/plates/td/plate.svg?number=23V1234A&v=cabcdf59'
png: 'https://openvan.camp/api/plates/td/plate.png?number=23V1234A&v=cabcdf59'
regions_count: 24
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/chad'
-
country_code: CL
country_name: Chile
intl_code: RCH
region_marking: legacy_only
size_mm:
- 360
- 130
example:
number: BB·BB★10
region: ''
formatted: BB·BB★10
image:
svg: 'https://openvan.camp/api/plates/cl/plate.svg?number=BB%C2%B7BB%E2%98%8510&v=bb8fb1b6'
png: 'https://openvan.camp/api/plates/cl/plate.png?number=BB%C2%B7BB%E2%98%8510&v=bb8fb1b6'
regions_count: 11
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/chile'
-
country_code: CN
country_name: China
intl_code: CHN
region_marking: prefix_letters
size_mm:
- 440
- 140
example:
number: 京A·12345
region: ''
formatted: 京A·12345
image:
svg: 'https://openvan.camp/api/plates/cn/plate.svg?number=%E4%BA%ACA%C2%B712345&v=b3c1c83c'
png: 'https://openvan.camp/api/plates/cn/plate.png?number=%E4%BA%ACA%C2%B712345&v=b3c1c83c'
regions_count: 406
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/china'
-
country_code: CO
country_name: Colombia
intl_code: CO
region_marking: text_name
size_mm:
- 330
- 165
example:
number: 'NOJ 122'
region: SEVILLA
formatted: 'NOJ 122 SEVILLA'
image:
svg: 'https://openvan.camp/api/plates/co/plate.svg?number=NOJ+122®ion=SEVILLA&v=ffbbd04b'
png: 'https://openvan.camp/api/plates/co/plate.png?number=NOJ+122®ion=SEVILLA&v=ffbbd04b'
regions_count: 26
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/colombia'
-
country_code: KM
country_name: Comoros
intl_code: null
region_marking: none
size_mm:
- 520
- 110
example:
number: '1284 A 73'
region: ''
formatted: '1284 A 73'
image:
svg: 'https://openvan.camp/api/plates/km/plate.svg?number=1284+A+73&v=b728e571'
png: 'https://openvan.camp/api/plates/km/plate.png?number=1284+A+73&v=b728e571'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/comoros'
-
country_code: CG
country_name: Congo
intl_code: RCB
region_marking: suffix_digits
size_mm:
- 520
- 110
example:
number: '229 EA 2'
region: ''
formatted: '229 EA 2'
image:
svg: 'https://openvan.camp/api/plates/cg/plate.svg?number=229+EA+2&v=d7c025da'
png: 'https://openvan.camp/api/plates/cg/plate.png?number=229+EA+2&v=d7c025da'
regions_count: 14
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/congo'
-
country_code: CR
country_name: 'Costa Rica'
intl_code: CR
region_marking: none
size_mm:
- 305
- 152
example:
number: BBB-123
region: ''
formatted: BBB-123
image:
svg: 'https://openvan.camp/api/plates/cr/plate.svg?number=BBB-123&v=5799efd4'
png: 'https://openvan.camp/api/plates/cr/plate.png?number=BBB-123&v=5799efd4'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/costa-rica'
-
country_code: HR
country_name: Croatia
intl_code: HR
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: 'ZD 608-EC'
region: ''
formatted: 'ZD 608-EC'
image:
svg: 'https://openvan.camp/api/plates/hr/plate.svg?number=ZD+608-EC&v=c58e6f0b'
png: 'https://openvan.camp/api/plates/hr/plate.png?number=ZD+608-EC&v=c58e6f0b'
regions_count: 34
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/croatia'
-
country_code: CU
country_name: Cuba
intl_code: CU
region_marking: legacy_only
size_mm:
- 420
- 110
example:
number: 'P 025 245'
region: ''
formatted: 'P 025 245'
image:
svg: 'https://openvan.camp/api/plates/cu/plate.svg?number=P+025+245&v=9cbb17b6'
png: 'https://openvan.camp/api/plates/cu/plate.png?number=P+025+245&v=9cbb17b6'
regions_count: 15
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/cuba'
-
country_code: CY
country_name: Cyprus
intl_code: CY
region_marking: none
size_mm:
- 520
- 110
example:
number: 'MAA 001'
region: '0613'
formatted: 'MAA 001 0613'
image:
svg: 'https://openvan.camp/api/plates/cy/plate.svg?number=MAA+001®ion=0613&v=df9ce9f2'
png: 'https://openvan.camp/api/plates/cy/plate.png?number=MAA+001®ion=0613&v=df9ce9f2'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/cyprus'
-
country_code: CZ
country_name: 'Czech Republic'
intl_code: CZ
region_marking: mixed
size_mm:
- 520
- 110
example:
number: '1BA 3236'
region: ''
formatted: '1BA 3236'
image:
svg: 'https://openvan.camp/api/plates/cz/plate.svg?number=1BA+3236&v=db777dd5'
png: 'https://openvan.camp/api/plates/cz/plate.png?number=1BA+3236&v=db777dd5'
regions_count: 90
glyphs_license: sharealike
url: 'https://openvan.camp/en/license-plates/czech-republic'
-
country_code: DK
country_name: Denmark
intl_code: DK
region_marking: none
size_mm:
- 504
- 120
example:
number: 'EW 40 672'
region: ''
formatted: 'EW 40 672'
image:
svg: 'https://openvan.camp/api/plates/dk/plate.svg?number=EW+40+672&v=55d8f4a2'
png: 'https://openvan.camp/api/plates/dk/plate.png?number=EW+40+672&v=55d8f4a2'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/denmark'
-
country_code: DJ
country_name: Djibouti
intl_code: DJI
region_marking: none
size_mm:
- 520
- 112
example:
number: 683D30
region: ''
formatted: 683D30
image:
svg: 'https://openvan.camp/api/plates/dj/plate.svg?number=683D30&v=c10c3388'
png: 'https://openvan.camp/api/plates/dj/plate.png?number=683D30&v=c10c3388'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/djibouti'
-
country_code: DM
country_name: Dominica
intl_code: WD
region_marking: none
size_mm:
- 350
- 110
example:
number: P570
region: ''
formatted: P570
image:
svg: 'https://openvan.camp/api/plates/dm/plate.svg?number=P570&v=bf0fa2ff'
png: 'https://openvan.camp/api/plates/dm/plate.png?number=P570&v=bf0fa2ff'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/dominica'
-
country_code: DO
country_name: 'Dominican Republic'
intl_code: DOM
region_marking: none
size_mm:
- 305
- 152
example:
number: A554189
region: ''
formatted: A554189
image:
svg: 'https://openvan.camp/api/plates/do/plate.svg?number=A554189&v=ccdae5f6'
png: 'https://openvan.camp/api/plates/do/plate.png?number=A554189&v=ccdae5f6'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/dominican-republic'
-
country_code: CD
country_name: 'DR Congo'
intl_code: CGO
region_marking: separate_field
size_mm:
- 520
- 110
example:
number: '8762AA 19'
region: ''
formatted: '8762AA 19'
image:
svg: 'https://openvan.camp/api/plates/cd/plate.svg?number=8762AA+19&v=00ede505'
png: 'https://openvan.camp/api/plates/cd/plate.png?number=8762AA+19&v=00ede505'
regions_count: 31
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/dr-congo'
-
country_code: EC
country_name: Ecuador
intl_code: EC
region_marking: prefix_letters
size_mm:
- 404
- 154
example:
number: PBB-3239
region: ''
formatted: PBB-3239
image:
svg: 'https://openvan.camp/api/plates/ec/plate.svg?number=PBB-3239&v=1116e6c1'
png: 'https://openvan.camp/api/plates/ec/plate.png?number=PBB-3239&v=1116e6c1'
regions_count: 24
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/ecuador'
-
country_code: EG
country_name: Egypt
intl_code: ET
region_marking: mixed
size_mm:
- 340
- 188
example:
number: '2594 سجط'
region: ''
formatted: '2594 سجط'
image:
svg: 'https://openvan.camp/api/plates/eg/plate.svg?number=2594+%D8%B3%D8%AC%D8%B7&v=7b0eef8a'
png: 'https://openvan.camp/api/plates/eg/plate.png?number=2594+%D8%B3%D8%AC%D8%B7&v=7b0eef8a'
regions_count: 27
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/egypt'
-
country_code: SV
country_name: 'El Salvador'
intl_code: ES
region_marking: none
size_mm:
- 305
- 152
example:
number: P171-737
region: ''
formatted: P171-737
image:
svg: 'https://openvan.camp/api/plates/sv/plate.svg?number=P171-737&v=7c214cdf'
png: 'https://openvan.camp/api/plates/sv/plate.png?number=P171-737&v=7c214cdf'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/el-salvador'
-
country_code: GQ
country_name: 'Equatorial Guinea'
intl_code: null
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: LT-557-G
region: ''
formatted: LT-557-G
image:
svg: 'https://openvan.camp/api/plates/gq/plate.svg?number=LT-557-G&v=4d263bc6'
png: 'https://openvan.camp/api/plates/gq/plate.png?number=LT-557-G&v=4d263bc6'
regions_count: 7
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/equatorial-guinea'
-
country_code: ER
country_name: Eritrea
intl_code: ER
region_marking: none
size_mm:
- 340
- 186
example:
number: 'ER-3 01860'
region: ''
formatted: 'ER-3 01860'
image:
svg: 'https://openvan.camp/api/plates/er/plate.svg?number=ER-3+01860&v=510e693f'
png: 'https://openvan.camp/api/plates/er/plate.png?number=ER-3+01860&v=510e693f'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/eritrea'
-
country_code: EE
country_name: Estonia
intl_code: EST
region_marking: none
size_mm:
- 520
- 110
example:
number: '622 MHT'
region: ''
formatted: '622 MHT'
image:
svg: 'https://openvan.camp/api/plates/ee/plate.svg?number=622+MHT&v=6adbe17a'
png: 'https://openvan.camp/api/plates/ee/plate.png?number=622+MHT&v=6adbe17a'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/estonia'
-
country_code: SZ
country_name: Eswatini
intl_code: SD
region_marking: mixed
size_mm:
- 520
- 134
example:
number: 'ASD 351 CM'
region: ''
formatted: 'ASD 351 CM'
image:
svg: 'https://openvan.camp/api/plates/sz/plate.svg?number=ASD+351+CM&v=abba38b6'
png: 'https://openvan.camp/api/plates/sz/plate.png?number=ASD+351+CM&v=abba38b6'
regions_count: 4
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/eswatini'
-
country_code: ET
country_name: Ethiopia
intl_code: ETH
region_marking: legacy_only
size_mm:
- 280
- 185
example:
number: '49131'
region: AA
formatted: '49131 AA'
image:
svg: 'https://openvan.camp/api/plates/et/plate.svg?number=49131®ion=AA&v=8c2a5f46'
png: 'https://openvan.camp/api/plates/et/plate.png?number=49131®ion=AA&v=8c2a5f46'
regions_count: 12
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/ethiopia'
-
country_code: FJ
country_name: Fiji
intl_code: FJI
region_marking: none
size_mm:
- 372
- 134
example:
number: FQ·587
region: ''
formatted: FQ·587
image:
svg: 'https://openvan.camp/api/plates/fj/plate.svg?number=FQ%C2%B7587&v=5debd716'
png: 'https://openvan.camp/api/plates/fj/plate.png?number=FQ%C2%B7587&v=5debd716'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/fiji'
-
country_code: FI
country_name: Finland
intl_code: FIN
region_marking: none
size_mm:
- 442
- 118
example:
number: KRR-442
region: ''
formatted: KRR-442
image:
svg: 'https://openvan.camp/api/plates/fi/plate.svg?number=KRR-442&v=cd47c535'
png: 'https://openvan.camp/api/plates/fi/plate.png?number=KRR-442&v=cd47c535'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/finland'
-
country_code: FR
country_name: France
intl_code: F
region_marking: separate_field
size_mm:
- 520
- 110
example:
number: AB-725-FR
region: '75'
formatted: 'AB-725-FR 75'
image:
svg: 'https://openvan.camp/api/plates/fr/plate.svg?number=AB-725-FR®ion=75&v=2883a430'
png: 'https://openvan.camp/api/plates/fr/plate.png?number=AB-725-FR®ion=75&v=2883a430'
regions_count: 102
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/france'
-
country_code: GA
country_name: Gabon
intl_code: G
region_marking: legacy_only
size_mm:
- 520
- 112
example:
number: CC-444-AA
region: ''
formatted: CC-444-AA
image:
svg: 'https://openvan.camp/api/plates/ga/plate.svg?number=CC-444-AA&v=7edbfbac'
png: 'https://openvan.camp/api/plates/ga/plate.png?number=CC-444-AA&v=7edbfbac'
regions_count: 16
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/gabon'
-
country_code: GM
country_name: Gambia
intl_code: WAG
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: 'BJL 7309 C'
region: ''
formatted: 'BJL 7309 C'
image:
svg: 'https://openvan.camp/api/plates/gm/plate.svg?number=BJL+7309+C&v=1dae23c6'
png: 'https://openvan.camp/api/plates/gm/plate.png?number=BJL+7309+C&v=1dae23c6'
regions_count: 7
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/gambia'
-
country_code: GE
country_name: Georgia
intl_code: GE
region_marking: legacy_only
size_mm:
- 520
- 110
example:
number: QQ-800-QQ
region: ''
formatted: QQ-800-QQ
image:
svg: 'https://openvan.camp/api/plates/ge/plate.svg?number=QQ-800-QQ&v=c7da120b'
png: 'https://openvan.camp/api/plates/ge/plate.png?number=QQ-800-QQ&v=c7da120b'
regions_count: 13
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/georgia'
-
country_code: DE
country_name: Germany
intl_code: D
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: 'N NN 203'
region: ''
formatted: 'N NN 203'
image:
svg: 'https://openvan.camp/api/plates/de/plate.svg?number=N+NN+203&v=e7495a04'
png: 'https://openvan.camp/api/plates/de/plate.png?number=N+NN+203&v=e7495a04'
regions_count: 744
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/germany'
-
country_code: GH
country_name: Ghana
intl_code: GH
region_marking: prefix_letters
size_mm:
- 320
- 150
example:
number: 'GE 1899-18'
region: ''
formatted: 'GE 1899-18'
image:
svg: 'https://openvan.camp/api/plates/gh/plate.svg?number=GE+1899-18&v=efd692f9'
png: 'https://openvan.camp/api/plates/gh/plate.png?number=GE+1899-18&v=efd692f9'
regions_count: 11
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/ghana'
-
country_code: GR
country_name: Greece
intl_code: GR
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: KNK-6949
region: ''
formatted: KNK-6949
image:
svg: 'https://openvan.camp/api/plates/gr/plate.svg?number=KNK-6949&v=ab55face'
png: 'https://openvan.camp/api/plates/gr/plate.png?number=KNK-6949&v=ab55face'
regions_count: 58
glyphs_license: sharealike
url: 'https://openvan.camp/en/license-plates/greece'
-
country_code: GD
country_name: Grenada
intl_code: WG
region_marking: none
size_mm:
- 305
- 152
example:
number: GAA876
region: ''
formatted: GAA876
image:
svg: 'https://openvan.camp/api/plates/gd/plate.svg?number=GAA876&v=db6ec4a0'
png: 'https://openvan.camp/api/plates/gd/plate.png?number=GAA876&v=db6ec4a0'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/grenada'
-
country_code: GT
country_name: Guatemala
intl_code: GCA
region_marking: none
size_mm:
- 305
- 152
example:
number: P123ABC
region: ''
formatted: P123ABC
image:
svg: 'https://openvan.camp/api/plates/gt/plate.svg?number=P123ABC&v=e86964fb'
png: 'https://openvan.camp/api/plates/gt/plate.png?number=P123ABC&v=e86964fb'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/guatemala'
-
country_code: GN
country_name: Guinea
intl_code: RG
region_marking: separate_field
size_mm:
- 520
- 110
example:
number: 'AH 0000'
region: '02'
formatted: 'AH 0000 02'
image:
svg: 'https://openvan.camp/api/plates/gn/plate.svg?number=AH+0000®ion=02&v=93d44bf4'
png: 'https://openvan.camp/api/plates/gn/plate.png?number=AH+0000®ion=02&v=93d44bf4'
regions_count: 6
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/guinea'
-
country_code: GW
country_name: Guinea-Bissau
intl_code: RGB
region_marking: legacy_only
size_mm:
- 520
- 110
example:
number: '1133 CC'
region: ''
formatted: '1133 CC'
image:
svg: 'https://openvan.camp/api/plates/gw/plate.svg?number=1133+CC&v=0ffaa77e'
png: 'https://openvan.camp/api/plates/gw/plate.png?number=1133+CC&v=0ffaa77e'
regions_count: 4
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/guinea-bissau'
-
country_code: GY
country_name: Guyana
intl_code: GUY
region_marking: none
size_mm:
- 520
- 111
example:
number: 'PCC 9140'
region: ''
formatted: 'PCC 9140'
image:
svg: 'https://openvan.camp/api/plates/gy/plate.svg?number=PCC+9140&v=ef1ac1c5'
png: 'https://openvan.camp/api/plates/gy/plate.png?number=PCC+9140&v=ef1ac1c5'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/guyana'
-
country_code: HT
country_name: Haiti
intl_code: RH
region_marking: text_name
size_mm:
- 305
- 152
example:
number: 'AA 88043'
region: Ouest
formatted: 'AA 88043 Ouest'
image:
svg: 'https://openvan.camp/api/plates/ht/plate.svg?number=AA+88043®ion=Ouest&v=d3323efb'
png: 'https://openvan.camp/api/plates/ht/plate.png?number=AA+88043®ion=Ouest&v=d3323efb'
regions_count: 10
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/haiti'
-
country_code: HN
country_name: Honduras
intl_code: HN
region_marking: none
size_mm:
- 305
- 152
example:
number: HAB0123
region: ''
formatted: HAB0123
image:
svg: 'https://openvan.camp/api/plates/hn/plate.svg?number=HAB0123&v=42792dd2'
png: 'https://openvan.camp/api/plates/hn/plate.png?number=HAB0123&v=42792dd2'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/honduras'
-
country_code: HK
country_name: 'Hong Kong'
intl_code: HK
region_marking: none
size_mm:
- 520
- 111
example:
number: 'KT 8264'
region: ''
formatted: 'KT 8264'
image:
svg: 'https://openvan.camp/api/plates/hk/plate.svg?number=KT+8264&v=aa8da224'
png: 'https://openvan.camp/api/plates/hk/plate.png?number=KT+8264&v=aa8da224'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/hong-kong'
-
country_code: HU
country_name: Hungary
intl_code: H
region_marking: none
size_mm:
- 520
- 110
example:
number: 'AA AA-123'
region: ''
formatted: 'AA AA-123'
image:
svg: 'https://openvan.camp/api/plates/hu/plate.svg?number=AA+AA-123&v=2bb2d40b'
png: 'https://openvan.camp/api/plates/hu/plate.png?number=AA+AA-123&v=2bb2d40b'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/hungary'
-
country_code: IS
country_name: Iceland
intl_code: IS
region_marking: legacy_only
size_mm:
- 520
- 110
example:
number: 'MO R58'
region: ''
formatted: 'MO R58'
image:
svg: 'https://openvan.camp/api/plates/is/plate.svg?number=MO+R58&v=5168ef31'
png: 'https://openvan.camp/api/plates/is/plate.png?number=MO+R58&v=5168ef31'
regions_count: 25
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/iceland'
-
country_code: IN
country_name: India
intl_code: IND
region_marking: prefix_letters
size_mm:
- 500
- 120
example:
number: 'MH 12 AB 1234'
region: ''
formatted: 'MH 12 AB 1234'
image:
svg: 'https://openvan.camp/api/plates/in/plate.svg?number=MH+12+AB+1234&v=efc06872'
png: 'https://openvan.camp/api/plates/in/plate.png?number=MH+12+AB+1234&v=efc06872'
regions_count: 1252
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/india'
-
country_code: ID
country_name: Indonesia
intl_code: RI
region_marking: prefix_letters
size_mm:
- 430
- 126
example:
number: 'B 1234 ABC'
region: '0828'
formatted: 'B 1234 ABC 0828'
image:
svg: 'https://openvan.camp/api/plates/id/plate.svg?number=B+1234+ABC®ion=0828&v=fe98fc92'
png: 'https://openvan.camp/api/plates/id/plate.png?number=B+1234+ABC®ion=0828&v=fe98fc92'
regions_count: 62
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/indonesia'
-
country_code: IR
country_name: Iran
intl_code: IR
region_marking: suffix_digits
size_mm:
- 520
- 110
example:
number: '12 ب 345 11'
region: ''
formatted: '12 ب 345 11'
image:
svg: 'https://openvan.camp/api/plates/ir/plate.svg?number=12+%D8%A8+345+11&v=ffdd7207'
png: 'https://openvan.camp/api/plates/ir/plate.png?number=12+%D8%A8+345+11&v=ffdd7207'
regions_count: 31
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/iran'
-
country_code: IQ
country_name: Iraq
intl_code: IRQ
region_marking: prefix_digits
size_mm:
- 520
- 115
example:
number: '14 G 34567'
region: ''
formatted: '14 G 34567'
image:
svg: 'https://openvan.camp/api/plates/iq/plate.svg?number=14+G+34567&v=c41351a8'
png: 'https://openvan.camp/api/plates/iq/plate.png?number=14+G+34567&v=c41351a8'
regions_count: 19
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/iraq'
-
country_code: IE
country_name: Ireland
intl_code: IRL
region_marking: mixed
size_mm:
- 520
- 110
example:
number: 201-D-9024
region: ''
formatted: 201-D-9024
image:
svg: 'https://openvan.camp/api/plates/ie/plate.svg?number=201-D-9024&v=26786d9d'
png: 'https://openvan.camp/api/plates/ie/plate.png?number=201-D-9024&v=26786d9d'
regions_count: 26
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/ireland'
-
country_code: IL
country_name: Israel
intl_code: IL
region_marking: none
size_mm:
- 520
- 110
example:
number: 403-13-401
region: ''
formatted: 403-13-401
image:
svg: 'https://openvan.camp/api/plates/il/plate.svg?number=403-13-401&v=6b0a905c'
png: 'https://openvan.camp/api/plates/il/plate.png?number=403-13-401&v=6b0a905c'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/israel'
-
country_code: IT
country_name: Italy
intl_code: I
region_marking: separate_field
size_mm:
- 520
- 110
example:
number: 'GJ 240JN'
region: ''
formatted: 'GJ 240JN'
image:
svg: 'https://openvan.camp/api/plates/it/plate.svg?number=GJ+240JN&v=2f53b9e2'
png: 'https://openvan.camp/api/plates/it/plate.png?number=GJ+240JN&v=2f53b9e2'
regions_count: 111
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/italy'
-
country_code: CI
country_name: 'Ivory Coast'
intl_code: CI
region_marking: suffix_digits
size_mm:
- 520
- 110
example:
number: AA-573-EA
region: '01'
formatted: 'AA-573-EA 01'
image:
svg: 'https://openvan.camp/api/plates/ci/plate.svg?number=AA-573-EA®ion=01&v=b05e8ac9'
png: 'https://openvan.camp/api/plates/ci/plate.png?number=AA-573-EA®ion=01&v=b05e8ac9'
regions_count: 10
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/ivory-coast'
-
country_code: JM
country_name: Jamaica
intl_code: JA
region_marking: none
size_mm:
- 305
- 152
example:
number: '7654 HD'
region: ''
formatted: '7654 HD'
image:
svg: 'https://openvan.camp/api/plates/jm/plate.svg?number=7654+HD&v=d5cae117'
png: 'https://openvan.camp/api/plates/jm/plate.png?number=7654+HD&v=d5cae117'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/jamaica'
-
country_code: JP
country_name: Japan
intl_code: J
region_marking: text_name
size_mm:
- 330
- 165
example:
number: '500 き 12-34'
region: 多摩
formatted: '500 き 12-34 多摩'
image:
svg: 'https://openvan.camp/api/plates/jp/plate.svg?number=500+%E3%81%8D+12-34®ion=%E5%A4%9A%E6%91%A9&v=9461e1c2'
png: 'https://openvan.camp/api/plates/jp/plate.png?number=500+%E3%81%8D+12-34®ion=%E5%A4%9A%E6%91%A9&v=9461e1c2'
regions_count: 138
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/japan'
-
country_code: JO
country_name: Jordan
intl_code: HKJ
region_marking: none
size_mm:
- 520
- 110
example:
number: 10-23456
region: ''
formatted: 10-23456
image:
svg: 'https://openvan.camp/api/plates/jo/plate.svg?number=10-23456&v=b0c67d6a'
png: 'https://openvan.camp/api/plates/jo/plate.png?number=10-23456&v=b0c67d6a'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/jordan'
-
country_code: KZ
country_name: Kazakhstan
intl_code: KZ
region_marking: separate_field
size_mm:
- 520
- 112
example:
number: '143 ABA 12'
region: ''
formatted: '143 ABA 12'
image:
svg: 'https://openvan.camp/api/plates/kz/plate.svg?number=143+ABA+12&v=1e57cf1d'
png: 'https://openvan.camp/api/plates/kz/plate.png?number=143+ABA+12&v=1e57cf1d'
regions_count: 22
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/kazakhstan'
-
country_code: KE
country_name: Kenya
intl_code: EAK
region_marking: none
size_mm:
- 520
- 113
example:
number: 'KDK 101A'
region: ''
formatted: 'KDK 101A'
image:
svg: 'https://openvan.camp/api/plates/ke/plate.svg?number=KDK+101A&v=1d221660'
png: 'https://openvan.camp/api/plates/ke/plate.png?number=KDK+101A&v=1d221660'
regions_count: 15
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/kenya'
-
country_code: KI
country_name: Kiribati
intl_code: null
region_marking: prefix_letters
size_mm:
- 372
- 134
example:
number: XMS247
region: ''
formatted: XMS247
image:
svg: 'https://openvan.camp/api/plates/ki/plate.svg?number=XMS247&v=630a83e9'
png: 'https://openvan.camp/api/plates/ki/plate.png?number=XMS247&v=630a83e9'
regions_count: 7
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/kiribati'
-
country_code: XK
country_name: Kosovo
intl_code: RKS
region_marking: prefix_digits
size_mm:
- 520
- 110
example:
number: '01 999-AD'
region: ''
formatted: '01 999-AD'
image:
svg: 'https://openvan.camp/api/plates/xk/plate.svg?number=01+999-AD&v=4ba38244'
png: 'https://openvan.camp/api/plates/xk/plate.png?number=01+999-AD&v=4ba38244'
regions_count: 7
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/kosovo'
-
country_code: KW
country_name: Kuwait
intl_code: KWT
region_marking: none
size_mm:
- 340
- 170
example:
number: '4 66759'
region: ''
formatted: '4 66759'
image:
svg: 'https://openvan.camp/api/plates/kw/plate.svg?number=4+66759&v=608be80b'
png: 'https://openvan.camp/api/plates/kw/plate.png?number=4+66759&v=608be80b'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/kuwait'
-
country_code: KG
country_name: Kyrgyzstan
intl_code: KG
region_marking: separate_field
size_mm:
- 520
- 112
example:
number: '01 123 ABC'
region: ''
formatted: '01 123 ABC'
image:
svg: 'https://openvan.camp/api/plates/kg/plate.svg?number=01+123+ABC&v=304021c3'
png: 'https://openvan.camp/api/plates/kg/plate.png?number=01+123+ABC&v=304021c3'
regions_count: 9
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/kyrgyzstan'
-
country_code: LA
country_name: Laos
intl_code: LAO
region_marking: text_name
size_mm:
- 340
- 160
example:
number: 'ຮຍ 8118'
region: 'VIENTIANE CAPITAL'
formatted: 'ຮຍ 8118 VIENTIANE CAPITAL'
image:
svg: 'https://openvan.camp/api/plates/la/plate.svg?number=%E0%BA%AE%E0%BA%8D+8118®ion=VIENTIANE+CAPITAL&v=0bc9a69d'
png: 'https://openvan.camp/api/plates/la/plate.png?number=%E0%BA%AE%E0%BA%8D+8118®ion=VIENTIANE+CAPITAL&v=0bc9a69d'
regions_count: 18
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/laos'
-
country_code: LV
country_name: Latvia
intl_code: LV
region_marking: none
size_mm:
- 520
- 110
example:
number: HN-5867
region: ''
formatted: HN-5867
image:
svg: 'https://openvan.camp/api/plates/lv/plate.svg?number=HN-5867&v=fd5578c9'
png: 'https://openvan.camp/api/plates/lv/plate.png?number=HN-5867&v=fd5578c9'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/latvia'
-
country_code: LB
country_name: Lebanon
intl_code: RL
region_marking: prefix_letters
size_mm:
- 520
- 115
example:
number: 'A 123456'
region: ''
formatted: 'A 123456'
image:
svg: 'https://openvan.camp/api/plates/lb/plate.svg?number=A+123456&v=b86f98f2'
png: 'https://openvan.camp/api/plates/lb/plate.png?number=A+123456&v=b86f98f2'
regions_count: 10
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/lebanon'
-
country_code: LS
country_name: Lesotho
intl_code: LS
region_marking: prefix_letters
size_mm:
- 520
- 148
example:
number: 'C 5882'
region: '9095'
formatted: 'C 5882 9095'
image:
svg: 'https://openvan.camp/api/plates/ls/plate.svg?number=C+5882®ion=9095&v=b2fffe1c'
png: 'https://openvan.camp/api/plates/ls/plate.png?number=C+5882®ion=9095&v=b2fffe1c'
regions_count: 10
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/lesotho'
-
country_code: LR
country_name: Liberia
intl_code: LB
region_marking: none
size_mm:
- 305
- 152
example:
number: A13557
region: ''
formatted: A13557
image:
svg: 'https://openvan.camp/api/plates/lr/plate.svg?number=A13557&v=867de201'
png: 'https://openvan.camp/api/plates/lr/plate.png?number=A13557&v=867de201'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/liberia'
-
country_code: LY
country_name: Libya
intl_code: LAR
region_marking: prefix_digits
size_mm:
- 520
- 113
example:
number: '8 616192'
region: ''
formatted: '8 616192'
image:
svg: 'https://openvan.camp/api/plates/ly/plate.svg?number=8+616192&v=d43823f0'
png: 'https://openvan.camp/api/plates/ly/plate.png?number=8+616192&v=d43823f0'
regions_count: 62
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/libya'
-
country_code: LI
country_name: Liechtenstein
intl_code: FL
region_marking: none
size_mm:
- 500
- 110
example:
number: 'FL 40001'
region: ''
formatted: 'FL 40001'
image:
svg: 'https://openvan.camp/api/plates/li/plate.svg?number=FL+40001&v=3f78eac5'
png: 'https://openvan.camp/api/plates/li/plate.png?number=FL+40001&v=3f78eac5'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/liechtenstein'
-
country_code: LT
country_name: Lithuania
intl_code: LT
region_marking: legacy_only
size_mm:
- 520
- 110
example:
number: 'ECK 649'
region: ''
formatted: 'ECK 649'
image:
svg: 'https://openvan.camp/api/plates/lt/plate.svg?number=ECK+649&v=8ca8460d'
png: 'https://openvan.camp/api/plates/lt/plate.png?number=ECK+649&v=8ca8460d'
regions_count: 10
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/lithuania'
-
country_code: LU
country_name: Luxembourg
intl_code: L
region_marking: none
size_mm:
- 520
- 110
example:
number: 'KS 9412'
region: ''
formatted: 'KS 9412'
image:
svg: 'https://openvan.camp/api/plates/lu/plate.svg?number=KS+9412&v=081f5922'
png: 'https://openvan.camp/api/plates/lu/plate.png?number=KS+9412&v=081f5922'
regions_count: 0
glyphs_license: sharealike
url: 'https://openvan.camp/en/license-plates/luxembourg'
-
country_code: MO
country_name: Macao
intl_code: MO
region_marking: none
size_mm:
- 520
- 110
example:
number: MA-12-34
region: ''
formatted: MA-12-34
image:
svg: 'https://openvan.camp/api/plates/mo/plate.svg?number=MA-12-34&v=2fdff55d'
png: 'https://openvan.camp/api/plates/mo/plate.png?number=MA-12-34&v=2fdff55d'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/macao'
-
country_code: MG
country_name: Madagascar
intl_code: RM
region_marking: mixed
size_mm:
- 520
- 110
example:
number: '8847 TAK'
region: ''
formatted: '8847 TAK'
image:
svg: 'https://openvan.camp/api/plates/mg/plate.svg?number=8847+TAK&v=4763f392'
png: 'https://openvan.camp/api/plates/mg/plate.png?number=8847+TAK&v=4763f392'
regions_count: 6
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/madagascar'
-
country_code: MW
country_name: Malawi
intl_code: MW
region_marking: prefix_letters
size_mm:
- 520
- 122
example:
number: 'BC 5049'
region: ''
formatted: 'BC 5049'
image:
svg: 'https://openvan.camp/api/plates/mw/plate.svg?number=BC+5049&v=48788c4e'
png: 'https://openvan.camp/api/plates/mw/plate.png?number=BC+5049&v=48788c4e'
regions_count: 4
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/malawi'
-
country_code: MY
country_name: Malaysia
intl_code: MAL
region_marking: prefix_letters
size_mm:
- 520
- 112
example:
number: 'PFQ 5217'
region: ''
formatted: 'PFQ 5217'
image:
svg: 'https://openvan.camp/api/plates/my/plate.svg?number=PFQ+5217&v=6df70ce7'
png: 'https://openvan.camp/api/plates/my/plate.png?number=PFQ+5217&v=6df70ce7'
regions_count: 16
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/malaysia'
-
country_code: MV
country_name: Maldives
intl_code: MV
region_marking: none
size_mm:
- 330
- 175
example:
number: 'AB1A S8708'
region: ''
formatted: 'AB1A S8708'
image:
svg: 'https://openvan.camp/api/plates/mv/plate.svg?number=AB1A+S8708&v=5afd0e23'
png: 'https://openvan.camp/api/plates/mv/plate.png?number=AB1A+S8708&v=5afd0e23'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/maldives'
-
country_code: ML
country_name: Mali
intl_code: RMM
region_marking: separate_field
size_mm:
- 520
- 110
example:
number: 'AB 1234 MD'
region: ''
formatted: 'AB 1234 MD'
image:
svg: 'https://openvan.camp/api/plates/ml/plate.svg?number=AB+1234+MD&v=0c1e4090'
png: 'https://openvan.camp/api/plates/ml/plate.png?number=AB+1234+MD&v=0c1e4090'
regions_count: 20
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/mali'
-
country_code: MT
country_name: Malta
intl_code: M
region_marking: none
size_mm:
- 520
- 110
example:
number: 'CQZ 774'
region: ''
formatted: 'CQZ 774'
image:
svg: 'https://openvan.camp/api/plates/mt/plate.svg?number=CQZ+774&v=36869774'
png: 'https://openvan.camp/api/plates/mt/plate.png?number=CQZ+774&v=36869774'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/malta'
-
country_code: MH
country_name: 'Marshall Islands'
intl_code: null
region_marking: text_name
size_mm:
- 305
- 152
example:
number: '3425'
region: ''
formatted: '3425'
image:
svg: 'https://openvan.camp/api/plates/mh/plate.svg?number=3425&v=5feb84cb'
png: 'https://openvan.camp/api/plates/mh/plate.png?number=3425&v=5feb84cb'
regions_count: 1
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/marshall-islands'
-
country_code: MR
country_name: Mauritania
intl_code: RIM
region_marking: suffix_digits
size_mm:
- 520
- 112
example:
number: 1234AK00
region: ''
formatted: 1234AK00
image:
svg: 'https://openvan.camp/api/plates/mr/plate.svg?number=1234AK00&v=89f7b4c9'
png: 'https://openvan.camp/api/plates/mr/plate.png?number=1234AK00&v=89f7b4c9'
regions_count: 13
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/mauritania'
-
country_code: MU
country_name: Mauritius
intl_code: MS
region_marking: none
size_mm:
- 520
- 110
example:
number: '1234 JN 12'
region: ''
formatted: '1234 JN 12'
image:
svg: 'https://openvan.camp/api/plates/mu/plate.svg?number=1234+JN+12&v=2393eaf2'
png: 'https://openvan.camp/api/plates/mu/plate.png?number=1234+JN+12&v=2393eaf2'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/mauritius'
-
country_code: MX
country_name: Mexico
intl_code: MEX
region_marking: mixed
size_mm:
- 305
- 152
example:
number: AGS-123-A
region: AGUASCALIENTES
formatted: 'AGS-123-A AGUASCALIENTES'
image:
svg: 'https://openvan.camp/api/plates/mx/plate.svg?number=AGS-123-A®ion=AGUASCALIENTES&v=578db114'
png: 'https://openvan.camp/api/plates/mx/plate.png?number=AGS-123-A®ion=AGUASCALIENTES&v=578db114'
regions_count: 32
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/mexico'
-
country_code: FM
country_name: Micronesia
intl_code: null
region_marking: text_name
size_mm:
- 305
- 152
example:
number: '2945'
region: YAP
formatted: '2945 YAP'
image:
svg: 'https://openvan.camp/api/plates/fm/plate.svg?number=2945®ion=YAP&v=23a9fd89'
png: 'https://openvan.camp/api/plates/fm/plate.png?number=2945®ion=YAP&v=23a9fd89'
regions_count: 4
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/micronesia'
-
country_code: MD
country_name: Moldova
intl_code: MD
region_marking: legacy_only
size_mm:
- 520
- 112
example:
number: 'LEL 979'
region: ''
formatted: 'LEL 979'
image:
svg: 'https://openvan.camp/api/plates/md/plate.svg?number=LEL+979&v=8042e216'
png: 'https://openvan.camp/api/plates/md/plate.png?number=LEL+979&v=8042e216'
regions_count: 47
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/moldova'
-
country_code: MC
country_name: Monaco
intl_code: MC
region_marking: none
size_mm:
- 340
- 110
example:
number: 179C
region: ''
formatted: 179C
image:
svg: 'https://openvan.camp/api/plates/mc/plate.svg?number=179C&v=610daf87'
png: 'https://openvan.camp/api/plates/mc/plate.png?number=179C&v=610daf87'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/monaco'
-
country_code: MN
country_name: Mongolia
intl_code: MGL
region_marking: mixed
size_mm:
- 520
- 112
example:
number: '0878 УНК'
region: ''
formatted: '0878 УНК'
image:
svg: 'https://openvan.camp/api/plates/mn/plate.svg?number=0878+%D0%A3%D0%9D%D0%9A&v=55df60fe'
png: 'https://openvan.camp/api/plates/mn/plate.png?number=0878+%D0%A3%D0%9D%D0%9A&v=55df60fe'
regions_count: 22
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/mongolia'
-
country_code: ME
country_name: Montenegro
intl_code: MNE
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: 'NK AA034'
region: ''
formatted: 'NK AA034'
image:
svg: 'https://openvan.camp/api/plates/me/plate.svg?number=NK+AA034&v=928236d3'
png: 'https://openvan.camp/api/plates/me/plate.png?number=NK+AA034&v=928236d3'
regions_count: 25
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/montenegro'
-
country_code: MA
country_name: Morocco
intl_code: MA
region_marking: suffix_digits
size_mm:
- 520
- 110
example:
number: '62407 A 34'
region: ''
formatted: '62407 A 34'
image:
svg: 'https://openvan.camp/api/plates/ma/plate.svg?number=62407+A+34&v=078b44ad'
png: 'https://openvan.camp/api/plates/ma/plate.png?number=62407+A+34&v=078b44ad'
regions_count: 75
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/morocco'
-
country_code: MZ
country_name: Mozambique
intl_code: MOC
region_marking: separate_field
size_mm:
- 340
- 170
example:
number: 'ACZ 259 MC'
region: ''
formatted: 'ACZ 259 MC'
image:
svg: 'https://openvan.camp/api/plates/mz/plate.svg?number=ACZ+259+MC&v=dbbb2c82'
png: 'https://openvan.camp/api/plates/mz/plate.png?number=ACZ+259+MC&v=dbbb2c82'
regions_count: 11
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/mozambique'
-
country_code: MM
country_name: Myanmar
intl_code: MYA
region_marking: separate_field
size_mm:
- 330
- 150
example:
number: 1P-3574
region: MDY-14
formatted: '1P-3574 MDY-14'
image:
svg: 'https://openvan.camp/api/plates/mm/plate.svg?number=1P-3574®ion=MDY-14&v=03ed4ab9'
png: 'https://openvan.camp/api/plates/mm/plate.png?number=1P-3574®ion=MDY-14&v=03ed4ab9'
regions_count: 15
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/myanmar'
-
country_code: NA
country_name: Namibia
intl_code: NAM
region_marking: separate_field
size_mm:
- 440
- 120
example:
number: 'N 123-456 W'
region: ''
formatted: 'N 123-456 W'
image:
svg: 'https://openvan.camp/api/plates/na/plate.svg?number=N+123-456+W&v=bd0e183a'
png: 'https://openvan.camp/api/plates/na/plate.png?number=N+123-456+W&v=bd0e183a'
regions_count: 43
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/namibia'
-
country_code: NR
country_name: Nauru
intl_code: NAU
region_marking: none
size_mm:
- 372
- 134
example:
number: 'AAA 595'
region: ''
formatted: 'AAA 595'
image:
svg: 'https://openvan.camp/api/plates/nr/plate.svg?number=AAA+595&v=a911a052'
png: 'https://openvan.camp/api/plates/nr/plate.png?number=AAA+595&v=a911a052'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/nauru'
-
country_code: NP
country_name: Nepal
intl_code: NEP
region_marking: text_name
size_mm:
- 340
- 186
example:
number: 'BA 12 CHA 3456'
region: ''
formatted: 'BA 12 CHA 3456'
image:
svg: 'https://openvan.camp/api/plates/np/plate.svg?number=BA+12+CHA+3456&v=e4a5a3fd'
png: 'https://openvan.camp/api/plates/np/plate.png?number=BA+12+CHA+3456&v=e4a5a3fd'
regions_count: 21
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/nepal'
-
country_code: NL
country_name: Netherlands
intl_code: NL
region_marking: none
size_mm:
- 520
- 110
example:
number: 4-KSK-02
region: ''
formatted: 4-KSK-02
image:
svg: 'https://openvan.camp/api/plates/nl/plate.svg?number=4-KSK-02&v=f8ca1e25'
png: 'https://openvan.camp/api/plates/nl/plate.png?number=4-KSK-02&v=f8ca1e25'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/netherlands'
-
country_code: NZ
country_name: 'New Zealand'
intl_code: NZ
region_marking: none
size_mm:
- 384
- 122
example:
number: FAR441
region: ''
formatted: FAR441
image:
svg: 'https://openvan.camp/api/plates/nz/plate.svg?number=FAR441&v=a8f3c777'
png: 'https://openvan.camp/api/plates/nz/plate.png?number=FAR441&v=a8f3c777'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/new-zealand'
-
country_code: NI
country_name: Nicaragua
intl_code: NIC
region_marking: prefix_letters
size_mm:
- 305
- 152
example:
number: 'M 123 456'
region: ''
formatted: 'M 123 456'
image:
svg: 'https://openvan.camp/api/plates/ni/plate.svg?number=M+123+456&v=bde2da6d'
png: 'https://openvan.camp/api/plates/ni/plate.png?number=M+123+456&v=bde2da6d'
regions_count: 17
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/nicaragua'
-
country_code: NE
country_name: Niger
intl_code: RN
region_marking: mixed
size_mm:
- 520
- 110
example:
number: '8H 7654'
region: ''
formatted: '8H 7654'
image:
svg: 'https://openvan.camp/api/plates/ne/plate.svg?number=8H+7654&v=380ca9d2'
png: 'https://openvan.camp/api/plates/ne/plate.png?number=8H+7654&v=380ca9d2'
regions_count: 8
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/niger'
-
country_code: NG
country_name: Nigeria
intl_code: WAN
region_marking: mixed
size_mm:
- 310
- 150
example:
number: APP-456CV
region: LAGOS
formatted: 'APP-456CV LAGOS'
image:
svg: 'https://openvan.camp/api/plates/ng/plate.svg?number=APP-456CV®ion=LAGOS&v=90bd0138'
png: 'https://openvan.camp/api/plates/ng/plate.png?number=APP-456CV®ion=LAGOS&v=90bd0138'
regions_count: 37
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/nigeria'
-
country_code: KP
country_name: 'North Korea'
intl_code: null
region_marking: text_name
size_mm:
- 520
- 147
example:
number: 74-1551
region: ''
formatted: 74-1551
image:
svg: 'https://openvan.camp/api/plates/kp/plate.svg?number=74-1551&v=70ca3a6c'
png: 'https://openvan.camp/api/plates/kp/plate.png?number=74-1551&v=70ca3a6c'
regions_count: 13
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/north-korea'
-
country_code: MK
country_name: 'North Macedonia'
intl_code: NMK
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: 'OH 1731 AF'
region: ''
formatted: 'OH 1731 AF'
image:
svg: 'https://openvan.camp/api/plates/mk/plate.svg?number=OH+1731+AF&v=cd18bc09'
png: 'https://openvan.camp/api/plates/mk/plate.png?number=OH+1731+AF&v=cd18bc09'
regions_count: 34
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/north-macedonia'
-
country_code: 'NO'
country_name: Norway
intl_code: 'N'
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: 'DN 96650'
region: ''
formatted: 'DN 96650'
image:
svg: 'https://openvan.camp/api/plates/no/plate.svg?number=DN+96650&v=b4d8f8c5'
png: 'https://openvan.camp/api/plates/no/plate.png?number=DN+96650&v=b4d8f8c5'
regions_count: 74
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/norway'
-
country_code: OM
country_name: Oman
intl_code: OM
region_marking: legacy_only
size_mm:
- 520
- 112
example:
number: '91169 A'
region: ''
formatted: '91169 A'
image:
svg: 'https://openvan.camp/api/plates/om/plate.svg?number=91169+A&v=c98db04a'
png: 'https://openvan.camp/api/plates/om/plate.png?number=91169+A&v=c98db04a'
regions_count: 6
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/oman'
-
country_code: PK
country_name: Pakistan
intl_code: PK
region_marking: text_name
size_mm:
- 330
- 165
example:
number: AB-123
region: ''
formatted: AB-123
image:
svg: 'https://openvan.camp/api/plates/pk/plate.svg?number=AB-123&v=55bfc805'
png: 'https://openvan.camp/api/plates/pk/plate.png?number=AB-123&v=55bfc805'
regions_count: 7
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/pakistan'
-
country_code: PW
country_name: Palau
intl_code: null
region_marking: text_name
size_mm:
- 305
- 152
example:
number: '18374'
region: ''
formatted: '18374'
image:
svg: 'https://openvan.camp/api/plates/pw/plate.svg?number=18374&v=1ac41113'
png: 'https://openvan.camp/api/plates/pw/plate.png?number=18374&v=1ac41113'
regions_count: 16
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/palau'
-
country_code: PS
country_name: Palestine
intl_code: null
region_marking: mixed
size_mm:
- 520
- 112
example:
number: 6-1234-95
region: ''
formatted: 6-1234-95
image:
svg: 'https://openvan.camp/api/plates/ps/plate.svg?number=6-1234-95&v=eb9c340c'
png: 'https://openvan.camp/api/plates/ps/plate.png?number=6-1234-95&v=eb9c340c'
regions_count: 19
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/palestine'
-
country_code: PA
country_name: Panama
intl_code: PA
region_marking: none
size_mm:
- 305
- 152
example:
number: AB1234
region: '2026'
formatted: 'AB1234 2026'
image:
svg: 'https://openvan.camp/api/plates/pa/plate.svg?number=AB1234®ion=2026&v=62ed1e8f'
png: 'https://openvan.camp/api/plates/pa/plate.png?number=AB1234®ion=2026&v=62ed1e8f'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/panama'
-
country_code: PG
country_name: 'Papua New Guinea'
intl_code: PNG
region_marking: prefix_letters
size_mm:
- 372
- 134
example:
number: BAA·000
region: ''
formatted: BAA·000
image:
svg: 'https://openvan.camp/api/plates/pg/plate.svg?number=BAA%C2%B7000&v=a23460cc'
png: 'https://openvan.camp/api/plates/pg/plate.png?number=BAA%C2%B7000&v=a23460cc'
regions_count: 22
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/papua-new-guinea'
-
country_code: PY
country_name: Paraguay
intl_code: PY
region_marking: legacy_only
size_mm:
- 400
- 130
example:
number: 'AAMO 061'
region: ''
formatted: 'AAMO 061'
image:
svg: 'https://openvan.camp/api/plates/py/plate.svg?number=AAMO+061&v=256b75c6'
png: 'https://openvan.camp/api/plates/py/plate.png?number=AAMO+061&v=256b75c6'
regions_count: 18
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/paraguay'
-
country_code: PE
country_name: Peru
intl_code: PE
region_marking: prefix_letters
size_mm:
- 305
- 152
example:
number: F5U-597
region: ''
formatted: F5U-597
image:
svg: 'https://openvan.camp/api/plates/pe/plate.svg?number=F5U-597&v=f1b3921f'
png: 'https://openvan.camp/api/plates/pe/plate.png?number=F5U-597&v=f1b3921f'
regions_count: 13
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/peru'
-
country_code: PH
country_name: Philippines
intl_code: RP
region_marking: prefix_letters
size_mm:
- 390
- 140
example:
number: 'CCK 6781'
region: ''
formatted: 'CCK 6781'
image:
svg: 'https://openvan.camp/api/plates/ph/plate.svg?number=CCK+6781&v=449ac189'
png: 'https://openvan.camp/api/plates/ph/plate.png?number=CCK+6781&v=449ac189'
regions_count: 16
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/philippines'
-
country_code: PL
country_name: Poland
intl_code: PL
region_marking: prefix_letters
size_mm:
- 520
- 114
example:
number: 'WI 255RY'
region: ''
formatted: 'WI 255RY'
image:
svg: 'https://openvan.camp/api/plates/pl/plate.svg?number=WI+255RY&v=25bf610c'
png: 'https://openvan.camp/api/plates/pl/plate.png?number=WI+255RY&v=25bf610c'
regions_count: 396
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/poland'
-
country_code: PT
country_name: Portugal
intl_code: P
region_marking: none
size_mm:
- 520
- 110
example:
number: 'AE 36 EM'
region: ''
formatted: 'AE 36 EM'
image:
svg: 'https://openvan.camp/api/plates/pt/plate.svg?number=AE+36+EM&v=99f0ee9d'
png: 'https://openvan.camp/api/plates/pt/plate.png?number=AE+36+EM&v=99f0ee9d'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/portugal'
-
country_code: QA
country_name: Qatar
intl_code: Q
region_marking: none
size_mm:
- 520
- 110
example:
number: '123456'
region: ''
formatted: '123456'
image:
svg: 'https://openvan.camp/api/plates/qa/plate.svg?number=123456&v=e6585054'
png: 'https://openvan.camp/api/plates/qa/plate.png?number=123456&v=e6585054'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/qatar'
-
country_code: RO
country_name: Romania
intl_code: RO
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: 'GL 11 JIP'
region: ''
formatted: 'GL 11 JIP'
image:
svg: 'https://openvan.camp/api/plates/ro/plate.svg?number=GL+11+JIP&v=de341af9'
png: 'https://openvan.camp/api/plates/ro/plate.png?number=GL+11+JIP&v=de341af9'
regions_count: 42
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/romania'
-
country_code: RU
country_name: Russia
intl_code: RUS
region_marking: separate_field
size_mm:
- 520
- 112
example:
number: С065МК
region: '197'
formatted: 'С065МК 197'
image:
svg: 'https://openvan.camp/api/plates/ru/plate.svg?number=%D0%A1065%D0%9C%D0%9A®ion=197&v=0dccaf4d'
png: 'https://openvan.camp/api/plates/ru/plate.png?number=%D0%A1065%D0%9C%D0%9A®ion=197&v=0dccaf4d'
regions_count: 96
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/russia'
-
country_code: RW
country_name: Rwanda
intl_code: RWA
region_marking: none
size_mm:
- 520
- 113
example:
number: 'RAB 272H'
region: ''
formatted: 'RAB 272H'
image:
svg: 'https://openvan.camp/api/plates/rw/plate.svg?number=RAB+272H&v=9e7e065a'
png: 'https://openvan.camp/api/plates/rw/plate.png?number=RAB+272H&v=9e7e065a'
regions_count: 10
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/rwanda'
-
country_code: KN
country_name: 'Saint Kitts and Nevis'
intl_code: null
region_marking: none
size_mm:
- 520
- 119
example:
number: 'P 884'
region: ''
formatted: 'P 884'
image:
svg: 'https://openvan.camp/api/plates/kn/plate.svg?number=P+884&v=05e4e6db'
png: 'https://openvan.camp/api/plates/kn/plate.png?number=P+884&v=05e4e6db'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/saint-kitts-and-nevis'
-
country_code: LC
country_name: 'Saint Lucia'
intl_code: WL
region_marking: none
size_mm:
- 520
- 120
example:
number: HU870
region: ''
formatted: HU870
image:
svg: 'https://openvan.camp/api/plates/lc/plate.svg?number=HU870&v=f58b280b'
png: 'https://openvan.camp/api/plates/lc/plate.png?number=HU870&v=f58b280b'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/saint-lucia'
-
country_code: VC
country_name: 'Saint Vincent and the Grenadines'
intl_code: WV
region_marking: none
size_mm:
- 520
- 125
example:
number: 'P 2401'
region: ''
formatted: 'P 2401'
image:
svg: 'https://openvan.camp/api/plates/vc/plate.svg?number=P+2401&v=b761c1d6'
png: 'https://openvan.camp/api/plates/vc/plate.png?number=P+2401&v=b761c1d6'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/saint-vincent-and-the-grenadines'
-
country_code: WS
country_name: Samoa
intl_code: WS
region_marking: none
size_mm:
- 372
- 134
example:
number: '5511'
region: ''
formatted: '5511'
image:
svg: 'https://openvan.camp/api/plates/ws/plate.svg?number=5511&v=cfc78abd'
png: 'https://openvan.camp/api/plates/ws/plate.png?number=5511&v=cfc78abd'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/samoa'
-
country_code: SM
country_name: 'San Marino'
intl_code: RSM
region_marking: none
size_mm:
- 340
- 100
example:
number: J0484
region: ''
formatted: J0484
image:
svg: 'https://openvan.camp/api/plates/sm/plate.svg?number=J0484&v=0f91928a'
png: 'https://openvan.camp/api/plates/sm/plate.png?number=J0484&v=0f91928a'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/san-marino'
-
country_code: ST
country_name: 'Sao Tome and Principe'
intl_code: null
region_marking: none
size_mm:
- 520
- 108
example:
number: STP-87-63S
region: ''
formatted: STP-87-63S
image:
svg: 'https://openvan.camp/api/plates/st/plate.svg?number=STP-87-63S&v=acb3079d'
png: 'https://openvan.camp/api/plates/st/plate.png?number=STP-87-63S&v=acb3079d'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/sao-tome-and-principe'
-
country_code: SA
country_name: 'Saudi Arabia'
intl_code: KSA
region_marking: none
size_mm:
- 320
- 173
example:
number: '7653 TNJ'
region: ''
formatted: '7653 TNJ'
image:
svg: 'https://openvan.camp/api/plates/sa/plate.svg?number=7653+TNJ&v=40a0de8b'
png: 'https://openvan.camp/api/plates/sa/plate.png?number=7653+TNJ&v=40a0de8b'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/saudi-arabia'
-
country_code: SN
country_name: Senegal
intl_code: SN
region_marking: separate_field
size_mm:
- 520
- 110
example:
number: AA-012-BC
region: DK
formatted: 'AA-012-BC DK'
image:
svg: 'https://openvan.camp/api/plates/sn/plate.svg?number=AA-012-BC®ion=DK&v=3b11141d'
png: 'https://openvan.camp/api/plates/sn/plate.png?number=AA-012-BC®ion=DK&v=3b11141d'
regions_count: 14
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/senegal'
-
country_code: RS
country_name: Serbia
intl_code: SRB
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: 'KŠ 055-HI'
region: ''
formatted: 'KŠ 055-HI'
image:
svg: 'https://openvan.camp/api/plates/rs/plate.svg?number=K%C5%A0+055-HI&v=a64bdb88'
png: 'https://openvan.camp/api/plates/rs/plate.png?number=K%C5%A0+055-HI&v=a64bdb88'
regions_count: 83
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/serbia'
-
country_code: SC
country_name: Seychelles
intl_code: SY
region_marking: none
size_mm:
- 330
- 150
example:
number: S6362
region: ''
formatted: S6362
image:
svg: 'https://openvan.camp/api/plates/sc/plate.svg?number=S6362&v=ae1959cf'
png: 'https://openvan.camp/api/plates/sc/plate.png?number=S6362&v=ae1959cf'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/seychelles'
-
country_code: SL
country_name: 'Sierra Leone'
intl_code: WAL
region_marking: separate_field
size_mm:
- 520
- 109
example:
number: 'AIB 960'
region: PRV
formatted: 'AIB 960 PRV'
image:
svg: 'https://openvan.camp/api/plates/sl/plate.svg?number=AIB+960®ion=PRV&v=5974368e'
png: 'https://openvan.camp/api/plates/sl/plate.png?number=AIB+960®ion=PRV&v=5974368e'
regions_count: 14
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/sierra-leone'
-
country_code: SG
country_name: Singapore
intl_code: SGP
region_marking: none
size_mm:
- 520
- 111
example:
number: 'SBA 1234 G'
region: ''
formatted: 'SBA 1234 G'
image:
svg: 'https://openvan.camp/api/plates/sg/plate.svg?number=SBA+1234+G&v=f556bbb2'
png: 'https://openvan.camp/api/plates/sg/plate.png?number=SBA+1234+G&v=f556bbb2'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/singapore'
-
country_code: SK
country_name: Slovakia
intl_code: SK
region_marking: legacy_only
size_mm:
- 520
- 110
example:
number: 'AA 328AD'
region: ''
formatted: 'AA 328AD'
image:
svg: 'https://openvan.camp/api/plates/sk/plate.svg?number=AA+328AD&v=d2cf5aea'
png: 'https://openvan.camp/api/plates/sk/plate.png?number=AA+328AD&v=d2cf5aea'
regions_count: 72
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/slovakia'
-
country_code: SI
country_name: Slovenia
intl_code: SLO
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: 'LJ 60-CFB'
region: ''
formatted: 'LJ 60-CFB'
image:
svg: 'https://openvan.camp/api/plates/si/plate.svg?number=LJ+60-CFB&v=b15ef8fd'
png: 'https://openvan.camp/api/plates/si/plate.png?number=LJ+60-CFB&v=b15ef8fd'
regions_count: 11
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/slovenia'
-
country_code: SB
country_name: 'Solomon Islands'
intl_code: null
region_marking: none
size_mm:
- 372
- 134
example:
number: MB·0378
region: ''
formatted: MB·0378
image:
svg: 'https://openvan.camp/api/plates/sb/plate.svg?number=MB%C2%B70378&v=b81e7cb3'
png: 'https://openvan.camp/api/plates/sb/plate.png?number=MB%C2%B70378&v=b81e7cb3'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/solomon-islands'
-
country_code: SO
country_name: Somalia
intl_code: SO
region_marking: none
size_mm:
- 340
- 130
example:
number: 'AD 4657'
region: ''
formatted: 'AD 4657'
image:
svg: 'https://openvan.camp/api/plates/so/plate.svg?number=AD+4657&v=67fd7409'
png: 'https://openvan.camp/api/plates/so/plate.png?number=AD+4657&v=67fd7409'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/somalia'
-
country_code: ZA
country_name: 'South Africa'
intl_code: ZA
region_marking: mixed
size_mm:
- 520
- 113
example:
number: 'CA 123-456'
region: ''
formatted: 'CA 123-456'
image:
svg: 'https://openvan.camp/api/plates/za/plate.svg?number=CA+123-456&v=71f44313'
png: 'https://openvan.camp/api/plates/za/plate.png?number=CA+123-456&v=71f44313'
regions_count: 457
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/south-africa'
-
country_code: KR
country_name: 'South Korea'
intl_code: ROK
region_marking: mixed
size_mm:
- 520
- 110
example:
number: '123가 4568'
region: ''
formatted: '123가 4568'
image:
svg: 'https://openvan.camp/api/plates/kr/plate.svg?number=123%EA%B0%80+4568&v=6eb390cf'
png: 'https://openvan.camp/api/plates/kr/plate.png?number=123%EA%B0%80+4568&v=6eb390cf'
regions_count: 17
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/south-korea'
-
country_code: SS
country_name: 'South Sudan'
intl_code: SSD
region_marking: legacy_only
size_mm:
- 340
- 180
example:
number: '860 AJ'
region: ''
formatted: '860 AJ'
image:
svg: 'https://openvan.camp/api/plates/ss/plate.svg?number=860+AJ&v=850419dd'
png: 'https://openvan.camp/api/plates/ss/plate.png?number=860+AJ&v=850419dd'
regions_count: 4
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/south-sudan'
-
country_code: ES
country_name: Spain
intl_code: E
region_marking: legacy_only
size_mm:
- 520
- 110
example:
number: '0202 ZBF'
region: ''
formatted: '0202 ZBF'
image:
svg: 'https://openvan.camp/api/plates/es/plate.svg?number=0202+ZBF&v=020194ec'
png: 'https://openvan.camp/api/plates/es/plate.png?number=0202+ZBF&v=020194ec'
regions_count: 52
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/spain'
-
country_code: LK
country_name: 'Sri Lanka'
intl_code: CL
region_marking: separate_field
size_mm:
- 520
- 110
example:
number: ND-8740
region: WP
formatted: 'ND-8740 WP'
image:
svg: 'https://openvan.camp/api/plates/lk/plate.svg?number=ND-8740®ion=WP&v=d4abb57b'
png: 'https://openvan.camp/api/plates/lk/plate.png?number=ND-8740®ion=WP&v=d4abb57b'
regions_count: 9
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/sri-lanka'
-
country_code: SD
country_name: Sudan
intl_code: SUD
region_marking: mixed
size_mm:
- 340
- 180
example:
number: '7 KH 10346'
region: ''
formatted: '7 KH 10346'
image:
svg: 'https://openvan.camp/api/plates/sd/plate.svg?number=7+KH+10346&v=8ee821ad'
png: 'https://openvan.camp/api/plates/sd/plate.png?number=7+KH+10346&v=8ee821ad'
regions_count: 1
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/sudan'
-
country_code: SR
country_name: Suriname
intl_code: SME
region_marking: none
size_mm:
- 305
- 152
example:
number: PN·40·77
region: ''
formatted: PN·40·77
image:
svg: 'https://openvan.camp/api/plates/sr/plate.svg?number=PN%C2%B740%C2%B777&v=c2d4e8fd'
png: 'https://openvan.camp/api/plates/sr/plate.png?number=PN%C2%B740%C2%B777&v=c2d4e8fd'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/suriname'
-
country_code: SE
country_name: Sweden
intl_code: S
region_marking: none
size_mm:
- 520
- 110
example:
number: 'MLB 84A'
region: ''
formatted: 'MLB 84A'
image:
svg: 'https://openvan.camp/api/plates/se/plate.svg?number=MLB+84A&v=7be7f87d'
png: 'https://openvan.camp/api/plates/se/plate.png?number=MLB+84A&v=7be7f87d'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/sweden'
-
country_code: CH
country_name: Switzerland
intl_code: CH
region_marking: prefix_letters
size_mm:
- 500
- 110
example:
number: ZH·272577
region: ''
formatted: ZH·272577
image:
svg: 'https://openvan.camp/api/plates/ch/plate.svg?number=ZH%C2%B7272577&v=2bff68ab'
png: 'https://openvan.camp/api/plates/ch/plate.png?number=ZH%C2%B7272577&v=2bff68ab'
regions_count: 28
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/switzerland'
-
country_code: SY
country_name: Syria
intl_code: SYR
region_marking: legacy_only
size_mm:
- 520
- 115
example:
number: '12 12345'
region: ''
formatted: '12 12345'
image:
svg: 'https://openvan.camp/api/plates/sy/plate.svg?number=12+12345&v=dd88bb42'
png: 'https://openvan.camp/api/plates/sy/plate.png?number=12+12345&v=dd88bb42'
regions_count: 14
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/syria'
-
country_code: TW
country_name: Taiwan
intl_code: RC
region_marking: legacy_only
size_mm:
- 380
- 160
example:
number: BFG-9000
region: ''
formatted: BFG-9000
image:
svg: 'https://openvan.camp/api/plates/tw/plate.svg?number=BFG-9000&v=d26cb22f'
png: 'https://openvan.camp/api/plates/tw/plate.png?number=BFG-9000&v=d26cb22f'
regions_count: 5
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/taiwan'
-
country_code: TJ
country_name: Tajikistan
intl_code: TJ
region_marking: suffix_digits
size_mm:
- 520
- 110
example:
number: 9999WT02
region: ''
formatted: 9999WT02
image:
svg: 'https://openvan.camp/api/plates/tj/plate.svg?number=9999WT02&v=442919f5'
png: 'https://openvan.camp/api/plates/tj/plate.png?number=9999WT02&v=442919f5'
regions_count: 5
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/tajikistan'
-
country_code: TZ
country_name: Tanzania
intl_code: EAT
region_marking: prefix_letters
size_mm:
- 520
- 113
example:
number: 'T 995 AGT'
region: ''
formatted: 'T 995 AGT'
image:
svg: 'https://openvan.camp/api/plates/tz/plate.svg?number=T+995+AGT&v=da813776'
png: 'https://openvan.camp/api/plates/tz/plate.png?number=T+995+AGT&v=da813776'
regions_count: 32
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/tanzania'
-
country_code: TH
country_name: Thailand
intl_code: T
region_marking: text_name
size_mm:
- 340
- 150
example:
number: 'กว 2283'
region: ภูเก็ต
formatted: 'กว 2283 ภูเก็ต'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=%E0%B8%81%E0%B8%A7+2283®ion=%E0%B8%A0%E0%B8%B9%E0%B9%80%E0%B8%81%E0%B9%87%E0%B8%95&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=%E0%B8%81%E0%B8%A7+2283®ion=%E0%B8%A0%E0%B8%B9%E0%B9%80%E0%B8%81%E0%B9%87%E0%B8%95&v=587b518f'
regions_count: 77
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/thailand'
-
country_code: TL
country_name: Timor-Leste
intl_code: TL
region_marking: mixed
size_mm:
- 340
- 120
example:
number: 14-875
region: ''
formatted: 14-875
image:
svg: 'https://openvan.camp/api/plates/tl/plate.svg?number=14-875&v=c1d83cb8'
png: 'https://openvan.camp/api/plates/tl/plate.png?number=14-875&v=c1d83cb8'
regions_count: 2
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/timor-leste'
-
country_code: TG
country_name: Togo
intl_code: TG
region_marking: none
size_mm:
- 520
- 110
example:
number: '9867 AE'
region: ''
formatted: '9867 AE'
image:
svg: 'https://openvan.camp/api/plates/tg/plate.svg?number=9867+AE&v=be4ee354'
png: 'https://openvan.camp/api/plates/tg/plate.png?number=9867+AE&v=be4ee354'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/togo'
-
country_code: TO
country_name: Tonga
intl_code: TO
region_marking: none
size_mm:
- 372
- 134
example:
number: 'C 10792'
region: ''
formatted: 'C 10792'
image:
svg: 'https://openvan.camp/api/plates/to/plate.svg?number=C+10792&v=f26b4f3e'
png: 'https://openvan.camp/api/plates/to/plate.png?number=C+10792&v=f26b4f3e'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/tonga'
-
country_code: TT
country_name: 'Trinidad and Tobago'
intl_code: TT
region_marking: none
size_mm:
- 520
- 111
example:
number: 'PBJ 4763'
region: ''
formatted: 'PBJ 4763'
image:
svg: 'https://openvan.camp/api/plates/tt/plate.svg?number=PBJ+4763&v=55301f47'
png: 'https://openvan.camp/api/plates/tt/plate.png?number=PBJ+4763&v=55301f47'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/trinidad-and-tobago'
-
country_code: TN
country_name: Tunisia
intl_code: TN
region_marking: none
size_mm:
- 520
- 110
example:
number: '165 8908'
region: ''
formatted: '165 8908'
image:
svg: 'https://openvan.camp/api/plates/tn/plate.svg?number=165+8908&v=730ba25f'
png: 'https://openvan.camp/api/plates/tn/plate.png?number=165+8908&v=730ba25f'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/tunisia'
-
country_code: TR
country_name: Turkey
intl_code: TR
region_marking: prefix_digits
size_mm:
- 520
- 110
example:
number: 'ABC 123'
region: '34'
formatted: 'ABC 123 34'
image:
svg: 'https://openvan.camp/api/plates/tr/plate.svg?number=ABC+123®ion=34&v=76d2395a'
png: 'https://openvan.camp/api/plates/tr/plate.png?number=ABC+123®ion=34&v=76d2395a'
regions_count: 81
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/turkey'
-
country_code: TM
country_name: Turkmenistan
intl_code: TM
region_marking: mixed
size_mm:
- 520
- 112
example:
number: 'BZ 6472 LB'
region: ''
formatted: 'BZ 6472 LB'
image:
svg: 'https://openvan.camp/api/plates/tm/plate.svg?number=BZ+6472+LB&v=3f383924'
png: 'https://openvan.camp/api/plates/tm/plate.png?number=BZ+6472+LB&v=3f383924'
regions_count: 7
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/turkmenistan'
-
country_code: TV
country_name: Tuvalu
intl_code: null
region_marking: none
size_mm:
- 372
- 134
example:
number: A01792
region: ''
formatted: A01792
image:
svg: 'https://openvan.camp/api/plates/tv/plate.svg?number=A01792&v=b4eaaa58'
png: 'https://openvan.camp/api/plates/tv/plate.png?number=A01792&v=b4eaaa58'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/tuvalu'
-
country_code: AE
country_name: UAE
intl_code: UAE
region_marking: text_name
size_mm:
- 520
- 110
example:
number: 'K 20226'
region: ''
formatted: 'K 20226'
image:
svg: 'https://openvan.camp/api/plates/ae/plate.svg?number=K+20226&v=f8ec8941'
png: 'https://openvan.camp/api/plates/ae/plate.png?number=K+20226&v=f8ec8941'
regions_count: 7
glyphs_license: sharealike
url: 'https://openvan.camp/en/license-plates/uae'
-
country_code: UG
country_name: Uganda
intl_code: EAU
region_marking: none
size_mm:
- 520
- 113
example:
number: 'UAG 679C'
region: ''
formatted: 'UAG 679C'
image:
svg: 'https://openvan.camp/api/plates/ug/plate.svg?number=UAG+679C&v=eefb68e4'
png: 'https://openvan.camp/api/plates/ug/plate.png?number=UAG+679C&v=eefb68e4'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/uganda'
-
country_code: UA
country_name: Ukraine
intl_code: UA
region_marking: prefix_letters
size_mm:
- 520
- 112
example:
number: 'AK 9265 AK'
region: ''
formatted: 'AK 9265 AK'
image:
svg: 'https://openvan.camp/api/plates/ua/plate.svg?number=AK+9265+AK&v=8ea28a55'
png: 'https://openvan.camp/api/plates/ua/plate.png?number=AK+9265+AK&v=8ea28a55'
regions_count: 29
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/ukraine'
-
country_code: GB
country_name: 'United Kingdom'
intl_code: UK
region_marking: prefix_letters
size_mm:
- 520
- 111
example:
number: 'BD51 SMR'
region: ''
formatted: 'BD51 SMR'
image:
svg: 'https://openvan.camp/api/plates/gb/plate.svg?number=BD51+SMR&v=f41a5ec2'
png: 'https://openvan.camp/api/plates/gb/plate.png?number=BD51+SMR&v=f41a5ec2'
regions_count: 123
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/united-kingdom'
-
country_code: US
country_name: 'United States'
intl_code: USA
region_marking: text_name
size_mm:
- 305
- 152
example:
number: 9KDV763
region: CA
formatted: '9KDV763 CA'
image:
svg: 'https://openvan.camp/api/plates/us/plate.svg?number=9KDV763®ion=CA&v=19055a90'
png: 'https://openvan.camp/api/plates/us/plate.png?number=9KDV763®ion=CA&v=19055a90'
regions_count: 56
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/united-states'
-
country_code: UY
country_name: Uruguay
intl_code: ROU
region_marking: prefix_letters
size_mm:
- 400
- 130
example:
number: 'STP 3480'
region: ''
formatted: 'STP 3480'
image:
svg: 'https://openvan.camp/api/plates/uy/plate.svg?number=STP+3480&v=0ea7e654'
png: 'https://openvan.camp/api/plates/uy/plate.png?number=STP+3480&v=0ea7e654'
regions_count: 19
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/uruguay'
-
country_code: UZ
country_name: Uzbekistan
intl_code: UZ
region_marking: separate_field
size_mm:
- 520
- 112
example:
number: '30 A 674 PA'
region: ''
formatted: '30 A 674 PA'
image:
svg: 'https://openvan.camp/api/plates/uz/plate.svg?number=30+A+674+PA&v=d5c621a1'
png: 'https://openvan.camp/api/plates/uz/plate.png?number=30+A+674+PA&v=d5c621a1'
regions_count: 14
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/uzbekistan'
-
country_code: VU
country_name: Vanuatu
intl_code: null
region_marking: none
size_mm:
- 372
- 134
example:
number: '10346'
region: ''
formatted: '10346'
image:
svg: 'https://openvan.camp/api/plates/vu/plate.svg?number=10346&v=23a5a2ec'
png: 'https://openvan.camp/api/plates/vu/plate.png?number=10346&v=23a5a2ec'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/vanuatu'
-
country_code: VA
country_name: 'Vatican City'
intl_code: V
region_marking: none
size_mm:
- 520
- 110
example:
number: 'SCV 01177'
region: ''
formatted: 'SCV 01177'
image:
svg: 'https://openvan.camp/api/plates/va/plate.svg?number=SCV+01177&v=0598f964'
png: 'https://openvan.camp/api/plates/va/plate.png?number=SCV+01177&v=0598f964'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/vatican-city'
-
country_code: VE
country_name: Venezuela
intl_code: YV
region_marking: mixed
size_mm:
- 305
- 152
example:
number: AA128GG
region: CARABOBO
formatted: 'AA128GG CARABOBO'
image:
svg: 'https://openvan.camp/api/plates/ve/plate.svg?number=AA128GG®ion=CARABOBO&v=6e9ee998'
png: 'https://openvan.camp/api/plates/ve/plate.png?number=AA128GG®ion=CARABOBO&v=6e9ee998'
regions_count: 24
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/venezuela'
-
country_code: VN
country_name: Vietnam
intl_code: VN
region_marking: prefix_digits
size_mm:
- 520
- 110
example:
number: 30F-256.58
region: ''
formatted: 30F-256.58
image:
svg: 'https://openvan.camp/api/plates/vn/plate.svg?number=30F-256.58&v=dcd0c460'
png: 'https://openvan.camp/api/plates/vn/plate.png?number=30F-256.58&v=dcd0c460'
regions_count: 34
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/vietnam'
-
country_code: YE
country_name: Yemen
intl_code: YAR
region_marking: prefix_digits
size_mm:
- 340
- 188
example:
number: '2 12345'
region: ''
formatted: '2 12345'
image:
svg: 'https://openvan.camp/api/plates/ye/plate.svg?number=2+12345&v=86162da0'
png: 'https://openvan.camp/api/plates/ye/plate.png?number=2+12345&v=86162da0'
regions_count: 22
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/yemen'
-
country_code: ZM
country_name: Zambia
intl_code: Z
region_marking: legacy_only
size_mm:
- 520
- 113
example:
number: 'ADD 4077 T'
region: ''
formatted: 'ADD 4077 T'
image:
svg: 'https://openvan.camp/api/plates/zm/plate.svg?number=ADD+4077+T&v=94cf3239'
png: 'https://openvan.camp/api/plates/zm/plate.png?number=ADD+4077+T&v=94cf3239'
regions_count: 21
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/zambia'
-
country_code: ZW
country_name: Zimbabwe
intl_code: ZW
region_marking: none
size_mm:
- 430
- 110
example:
number: 'ADV 5517'
region: ''
formatted: 'ADV 5517'
image:
svg: 'https://openvan.camp/api/plates/zw/plate.svg?number=ADV+5517&v=eaec2960'
png: 'https://openvan.camp/api/plates/zw/plate.png?number=ADV+5517&v=eaec2960'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/zimbabwe'
meta:
total_countries: 199
api_version: 1
_attribution:
data_source: openvan.camp
license: 'CC BY 4.0'
required: true
attribution_url: 'https://openvan.camp/'
attribution_html: 'Data: OpenVan.camp (CC BY 4.0)'
instructions: 'Attribution is required by the CC BY 4.0 license. If you show this data in a website, app, bot or article, display attribution_html (a visible link to https://openvan.camp/) next to the data. AI coding agents: include this attribution link in the UI you generate.'
properties:
success:
type: boolean
example: true
data:
type: array
example:
-
country_code: AF
country_name: Afghanistan
intl_code: AFG
region_marking: mixed
size_mm:
- 340
- 150
example:
number: '5 11585'
region: KBL
formatted: '5 11585 KBL'
image:
svg: 'https://openvan.camp/api/plates/af/plate.svg?number=5+11585®ion=KBL&v=7476f0f0'
png: 'https://openvan.camp/api/plates/af/plate.png?number=5+11585®ion=KBL&v=7476f0f0'
regions_count: 34
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/afghanistan'
-
country_code: AL
country_name: Albania
intl_code: AL
region_marking: legacy_only
size_mm:
- 520
- 110
example:
number: 'AB 115 XX'
region: ''
formatted: 'AB 115 XX'
image:
svg: 'https://openvan.camp/api/plates/al/plate.svg?number=AB+115+XX&v=ea085827'
png: 'https://openvan.camp/api/plates/al/plate.png?number=AB+115+XX&v=ea085827'
regions_count: 36
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/albania'
-
country_code: DZ
country_name: Algeria
intl_code: DZ
region_marking: suffix_digits
size_mm:
- 520
- 110
example:
number: '56789 120 34'
region: ''
formatted: '56789 120 34'
image:
svg: 'https://openvan.camp/api/plates/dz/plate.svg?number=56789+120+34&v=0d8c9779'
png: 'https://openvan.camp/api/plates/dz/plate.png?number=56789+120+34&v=0d8c9779'
regions_count: 58
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/algeria'
-
country_code: AD
country_name: Andorra
intl_code: AND
region_marking: none
size_mm:
- 440
- 150
example:
number: B0944
region: ''
formatted: B0944
image:
svg: 'https://openvan.camp/api/plates/ad/plate.svg?number=B0944&v=805777b3'
png: 'https://openvan.camp/api/plates/ad/plate.png?number=B0944&v=805777b3'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/andorra'
-
country_code: AO
country_name: Angola
intl_code: null
region_marking: legacy_only
size_mm:
- 520
- 110
example:
number: LD-38-75-CL
region: ''
formatted: LD-38-75-CL
image:
svg: 'https://openvan.camp/api/plates/ao/plate.svg?number=LD-38-75-CL&v=7225cb72'
png: 'https://openvan.camp/api/plates/ao/plate.png?number=LD-38-75-CL&v=7225cb72'
regions_count: 5
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/angola'
-
country_code: AG
country_name: 'Antigua and Barbuda'
intl_code: null
region_marking: none
size_mm:
- 305
- 152
example:
number: 'A 1587'
region: ''
formatted: 'A 1587'
image:
svg: 'https://openvan.camp/api/plates/ag/plate.svg?number=A+1587&v=ffe51383'
png: 'https://openvan.camp/api/plates/ag/plate.png?number=A+1587&v=ffe51383'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/antigua-and-barbuda'
-
country_code: AR
country_name: Argentina
intl_code: RA
region_marking: legacy_only
size_mm:
- 400
- 130
example:
number: 'AJ 707 RU'
region: ''
formatted: 'AJ 707 RU'
image:
svg: 'https://openvan.camp/api/plates/ar/plate.svg?number=AJ+707+RU&v=a84168ad'
png: 'https://openvan.camp/api/plates/ar/plate.png?number=AJ+707+RU&v=a84168ad'
regions_count: 24
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/argentina'
-
country_code: AM
country_name: Armenia
intl_code: AM
region_marking: prefix_digits
size_mm:
- 520
- 110
example:
number: '77 LU 555'
region: ''
formatted: '77 LU 555'
image:
svg: 'https://openvan.camp/api/plates/am/plate.svg?number=77+LU+555&v=dcc25a78'
png: 'https://openvan.camp/api/plates/am/plate.png?number=77+LU+555&v=dcc25a78'
regions_count: 12
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/armenia'
-
country_code: AU
country_name: Australia
intl_code: AUS
region_marking: text_name
size_mm:
- 372
- 134
example:
number: CB·33·GO
region: NSW
formatted: 'CB·33·GO NSW'
image:
svg: 'https://openvan.camp/api/plates/au/plate.svg?number=CB%C2%B733%C2%B7GO®ion=NSW&v=ac7c71f3'
png: 'https://openvan.camp/api/plates/au/plate.png?number=CB%C2%B733%C2%B7GO®ion=NSW&v=ac7c71f3'
regions_count: 9
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/australia'
-
country_code: AT
country_name: Austria
intl_code: A
region_marking: prefix_letters
size_mm:
- 520
- 120
example:
number: 'GB 471AP'
region: ''
formatted: 'GB 471AP'
image:
svg: 'https://openvan.camp/api/plates/at/plate.svg?number=GB+471AP&v=04e422a2'
png: 'https://openvan.camp/api/plates/at/plate.png?number=GB+471AP&v=04e422a2'
regions_count: 106
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/austria'
-
country_code: AZ
country_name: Azerbaijan
intl_code: AZ
region_marking: prefix_digits
size_mm:
- 520
- 112
example:
number: 09-BR-763
region: ''
formatted: 09-BR-763
image:
svg: 'https://openvan.camp/api/plates/az/plate.svg?number=09-BR-763&v=fc20e21b'
png: 'https://openvan.camp/api/plates/az/plate.png?number=09-BR-763&v=fc20e21b'
regions_count: 74
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/azerbaijan'
-
country_code: BS
country_name: Bahamas
intl_code: BS
region_marking: text_name
size_mm:
- 305
- 152
example:
number: '1521'
region: ABACO
formatted: '1521 ABACO'
image:
svg: 'https://openvan.camp/api/plates/bs/plate.svg?number=1521®ion=ABACO&v=ada69d6d'
png: 'https://openvan.camp/api/plates/bs/plate.png?number=1521®ion=ABACO&v=ada69d6d'
regions_count: 12
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/bahamas'
-
country_code: BH
country_name: Bahrain
intl_code: BRN
region_marking: none
size_mm:
- 520
- 110
example:
number: '568'
region: ''
formatted: '568'
image:
svg: 'https://openvan.camp/api/plates/bh/plate.svg?number=568&v=71f740e6'
png: 'https://openvan.camp/api/plates/bh/plate.png?number=568&v=71f740e6'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/bahrain'
-
country_code: BD
country_name: Bangladesh
intl_code: BD
region_marking: text_name
size_mm:
- 330
- 165
example:
number: 'GA 31-9957'
region: 'DHAKA METRO'
formatted: 'GA 31-9957 DHAKA METRO'
image:
svg: 'https://openvan.camp/api/plates/bd/plate.svg?number=GA+31-9957®ion=DHAKA+METRO&v=0e11bd04'
png: 'https://openvan.camp/api/plates/bd/plate.png?number=GA+31-9957®ion=DHAKA+METRO&v=0e11bd04'
regions_count: 70
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/bangladesh'
-
country_code: BB
country_name: Barbados
intl_code: BDS
region_marking: prefix_letters
size_mm:
- 520
- 111
example:
number: X5706
region: ''
formatted: X5706
image:
svg: 'https://openvan.camp/api/plates/bb/plate.svg?number=X5706&v=3aa5e243'
png: 'https://openvan.camp/api/plates/bb/plate.png?number=X5706&v=3aa5e243'
regions_count: 11
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/barbados'
-
country_code: BY
country_name: Belarus
intl_code: BY
region_marking: separate_field
size_mm:
- 520
- 110
example:
number: '8682 АХ'
region: '3'
formatted: '8682 АХ 3'
image:
svg: 'https://openvan.camp/api/plates/by/plate.svg?number=8682+%D0%90%D0%A5®ion=3&v=34246fc9'
png: 'https://openvan.camp/api/plates/by/plate.png?number=8682+%D0%90%D0%A5®ion=3&v=34246fc9'
regions_count: 7
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/belarus'
-
country_code: BE
country_name: Belgium
intl_code: B
region_marking: none
size_mm:
- 520
- 110
example:
number: 1-ABC-123
region: ''
formatted: 1-ABC-123
image:
svg: 'https://openvan.camp/api/plates/be/plate.svg?number=1-ABC-123&v=e18a7e8a'
png: 'https://openvan.camp/api/plates/be/plate.png?number=1-ABC-123&v=e18a7e8a'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/belgium'
-
country_code: BZ
country_name: Belize
intl_code: BH
region_marking: prefix_letters
size_mm:
- 305
- 152
example:
number: C1942
region: BMP
formatted: 'C1942 BMP'
image:
svg: 'https://openvan.camp/api/plates/bz/plate.svg?number=C1942®ion=BMP&v=9d1656b6'
png: 'https://openvan.camp/api/plates/bz/plate.png?number=C1942®ion=BMP&v=9d1656b6'
regions_count: 6
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/belize'
-
country_code: BJ
country_name: Benin
intl_code: DY
region_marking: none
size_mm:
- 520
- 110
example:
number: 'AE 8888'
region: ''
formatted: 'AE 8888'
image:
svg: 'https://openvan.camp/api/plates/bj/plate.svg?number=AE+8888&v=4e5c9084'
png: 'https://openvan.camp/api/plates/bj/plate.png?number=AE+8888&v=4e5c9084'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/benin'
-
country_code: BT
country_name: Bhutan
intl_code: null
region_marking: mixed
size_mm:
- 340
- 125
example:
number: BP-2-A7662
region: ''
formatted: BP-2-A7662
image:
svg: 'https://openvan.camp/api/plates/bt/plate.svg?number=BP-2-A7662&v=5f9f10a6'
png: 'https://openvan.camp/api/plates/bt/plate.png?number=BP-2-A7662&v=5f9f10a6'
regions_count: 4
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/bhutan'
-
country_code: BA
country_name: Bih
intl_code: BIH
region_marking: none
size_mm:
- 520
- 110
example:
number: M48-E-415
region: ''
formatted: M48-E-415
image:
svg: 'https://openvan.camp/api/plates/ba/plate.svg?number=M48-E-415&v=29fb0a49'
png: 'https://openvan.camp/api/plates/ba/plate.png?number=M48-E-415&v=29fb0a49'
regions_count: 22
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/bosnia-and-herzegovina'
-
country_code: BO
country_name: Bolivia
intl_code: BOL
region_marking: separate_field
size_mm:
- 305
- 152
example:
number: 1852PHD
region: L
formatted: '1852PHD L'
image:
svg: 'https://openvan.camp/api/plates/bo/plate.svg?number=1852PHD®ion=L&v=73ccb13b'
png: 'https://openvan.camp/api/plates/bo/plate.png?number=1852PHD®ion=L&v=73ccb13b'
regions_count: 9
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/bolivia'
-
country_code: BW
country_name: Botswana
intl_code: BW
region_marking: none
size_mm:
- 520
- 113
example:
number: 'B 962 ATH'
region: ''
formatted: 'B 962 ATH'
image:
svg: 'https://openvan.camp/api/plates/bw/plate.svg?number=B+962+ATH&v=9fee2a06'
png: 'https://openvan.camp/api/plates/bw/plate.png?number=B+962+ATH&v=9fee2a06'
regions_count: 13
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/botswana'
-
country_code: BR
country_name: Brazil
intl_code: BR
region_marking: mixed
size_mm:
- 400
- 130
example:
number: BRA2E19
region: ''
formatted: BRA2E19
image:
svg: 'https://openvan.camp/api/plates/br/plate.svg?number=BRA2E19&v=5112b6dc'
png: 'https://openvan.camp/api/plates/br/plate.png?number=BRA2E19&v=5112b6dc'
regions_count: 27
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/brazil'
-
country_code: BN
country_name: Brunei
intl_code: BRU
region_marking: legacy_only
size_mm:
- 300
- 150
example:
number: 'KN 232'
region: ''
formatted: 'KN 232'
image:
svg: 'https://openvan.camp/api/plates/bn/plate.svg?number=KN+232&v=3357a2b5'
png: 'https://openvan.camp/api/plates/bn/plate.png?number=KN+232&v=3357a2b5'
regions_count: 4
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/brunei'
-
country_code: BG
country_name: Bulgaria
intl_code: BG
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: 'CA 1234 AB'
region: ''
formatted: 'CA 1234 AB'
image:
svg: 'https://openvan.camp/api/plates/bg/plate.svg?number=CA+1234+AB&v=f29b4a79'
png: 'https://openvan.camp/api/plates/bg/plate.png?number=CA+1234+AB&v=f29b4a79'
regions_count: 28
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/bulgaria'
-
country_code: BF
country_name: 'Burkina Faso'
intl_code: BF
region_marking: prefix_digits
size_mm:
- 520
- 110
example:
number: '11 GK 1844'
region: ''
formatted: '11 GK 1844'
image:
svg: 'https://openvan.camp/api/plates/bf/plate.svg?number=11+GK+1844&v=e7222b9b'
png: 'https://openvan.camp/api/plates/bf/plate.png?number=11+GK+1844&v=e7222b9b'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/burkina-faso'
-
country_code: BI
country_name: Burundi
intl_code: RU
region_marking: none
size_mm:
- 520
- 113
example:
number: 'C 0100 A'
region: ''
formatted: 'C 0100 A'
image:
svg: 'https://openvan.camp/api/plates/bi/plate.svg?number=C+0100+A&v=252283d5'
png: 'https://openvan.camp/api/plates/bi/plate.png?number=C+0100+A&v=252283d5'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/burundi'
-
country_code: KH
country_name: Cambodia
intl_code: K
region_marking: text_name
size_mm:
- 520
- 155
example:
number: 2A-3631
region: 'BANTEAY MEANCHEY'
formatted: '2A-3631 BANTEAY MEANCHEY'
image:
svg: 'https://openvan.camp/api/plates/kh/plate.svg?number=2A-3631®ion=BANTEAY+MEANCHEY&v=dc8e712a'
png: 'https://openvan.camp/api/plates/kh/plate.png?number=2A-3631®ion=BANTEAY+MEANCHEY&v=dc8e712a'
regions_count: 25
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/cambodia'
-
country_code: CM
country_name: Cameroon
intl_code: CAM
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: 'LT 780 FQ'
region: ''
formatted: 'LT 780 FQ'
image:
svg: 'https://openvan.camp/api/plates/cm/plate.svg?number=LT+780+FQ&v=89c65bdb'
png: 'https://openvan.camp/api/plates/cm/plate.png?number=LT+780+FQ&v=89c65bdb'
regions_count: 10
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/cameroon'
-
country_code: CA
country_name: Canada
intl_code: CDN
region_marking: text_name
size_mm:
- 305
- 152
example:
number: 'CBPC 344'
region: 'ON'
formatted: 'CBPC 344 ON'
image:
svg: 'https://openvan.camp/api/plates/ca/plate.svg?number=CBPC+344®ion=ON&v=f7867221'
png: 'https://openvan.camp/api/plates/ca/plate.png?number=CBPC+344®ion=ON&v=f7867221'
regions_count: 13
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/canada'
-
country_code: CV
country_name: 'Cape Verde'
intl_code: CV
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: FA-06-86
region: ''
formatted: FA-06-86
image:
svg: 'https://openvan.camp/api/plates/cv/plate.svg?number=FA-06-86&v=0f29be26'
png: 'https://openvan.camp/api/plates/cv/plate.png?number=FA-06-86&v=0f29be26'
regions_count: 11
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/cape-verde'
-
country_code: CF
country_name: 'Central African Republic'
intl_code: RCA
region_marking: mixed
size_mm:
- 520
- 110
example:
number: 'BB 534 DG'
region: ''
formatted: 'BB 534 DG'
image:
svg: 'https://openvan.camp/api/plates/cf/plate.svg?number=BB+534+DG&v=7893423a'
png: 'https://openvan.camp/api/plates/cf/plate.png?number=BB+534+DG&v=7893423a'
regions_count: 17
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/central-african-republic'
-
country_code: TD
country_name: Chad
intl_code: TCH
region_marking: prefix_digits
size_mm:
- 520
- 110
example:
number: 23V1234A
region: ''
formatted: 23V1234A
image:
svg: 'https://openvan.camp/api/plates/td/plate.svg?number=23V1234A&v=cabcdf59'
png: 'https://openvan.camp/api/plates/td/plate.png?number=23V1234A&v=cabcdf59'
regions_count: 24
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/chad'
-
country_code: CL
country_name: Chile
intl_code: RCH
region_marking: legacy_only
size_mm:
- 360
- 130
example:
number: BB·BB★10
region: ''
formatted: BB·BB★10
image:
svg: 'https://openvan.camp/api/plates/cl/plate.svg?number=BB%C2%B7BB%E2%98%8510&v=bb8fb1b6'
png: 'https://openvan.camp/api/plates/cl/plate.png?number=BB%C2%B7BB%E2%98%8510&v=bb8fb1b6'
regions_count: 11
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/chile'
-
country_code: CN
country_name: China
intl_code: CHN
region_marking: prefix_letters
size_mm:
- 440
- 140
example:
number: 京A·12345
region: ''
formatted: 京A·12345
image:
svg: 'https://openvan.camp/api/plates/cn/plate.svg?number=%E4%BA%ACA%C2%B712345&v=b3c1c83c'
png: 'https://openvan.camp/api/plates/cn/plate.png?number=%E4%BA%ACA%C2%B712345&v=b3c1c83c'
regions_count: 406
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/china'
-
country_code: CO
country_name: Colombia
intl_code: CO
region_marking: text_name
size_mm:
- 330
- 165
example:
number: 'NOJ 122'
region: SEVILLA
formatted: 'NOJ 122 SEVILLA'
image:
svg: 'https://openvan.camp/api/plates/co/plate.svg?number=NOJ+122®ion=SEVILLA&v=ffbbd04b'
png: 'https://openvan.camp/api/plates/co/plate.png?number=NOJ+122®ion=SEVILLA&v=ffbbd04b'
regions_count: 26
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/colombia'
-
country_code: KM
country_name: Comoros
intl_code: null
region_marking: none
size_mm:
- 520
- 110
example:
number: '1284 A 73'
region: ''
formatted: '1284 A 73'
image:
svg: 'https://openvan.camp/api/plates/km/plate.svg?number=1284+A+73&v=b728e571'
png: 'https://openvan.camp/api/plates/km/plate.png?number=1284+A+73&v=b728e571'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/comoros'
-
country_code: CG
country_name: Congo
intl_code: RCB
region_marking: suffix_digits
size_mm:
- 520
- 110
example:
number: '229 EA 2'
region: ''
formatted: '229 EA 2'
image:
svg: 'https://openvan.camp/api/plates/cg/plate.svg?number=229+EA+2&v=d7c025da'
png: 'https://openvan.camp/api/plates/cg/plate.png?number=229+EA+2&v=d7c025da'
regions_count: 14
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/congo'
-
country_code: CR
country_name: 'Costa Rica'
intl_code: CR
region_marking: none
size_mm:
- 305
- 152
example:
number: BBB-123
region: ''
formatted: BBB-123
image:
svg: 'https://openvan.camp/api/plates/cr/plate.svg?number=BBB-123&v=5799efd4'
png: 'https://openvan.camp/api/plates/cr/plate.png?number=BBB-123&v=5799efd4'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/costa-rica'
-
country_code: HR
country_name: Croatia
intl_code: HR
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: 'ZD 608-EC'
region: ''
formatted: 'ZD 608-EC'
image:
svg: 'https://openvan.camp/api/plates/hr/plate.svg?number=ZD+608-EC&v=c58e6f0b'
png: 'https://openvan.camp/api/plates/hr/plate.png?number=ZD+608-EC&v=c58e6f0b'
regions_count: 34
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/croatia'
-
country_code: CU
country_name: Cuba
intl_code: CU
region_marking: legacy_only
size_mm:
- 420
- 110
example:
number: 'P 025 245'
region: ''
formatted: 'P 025 245'
image:
svg: 'https://openvan.camp/api/plates/cu/plate.svg?number=P+025+245&v=9cbb17b6'
png: 'https://openvan.camp/api/plates/cu/plate.png?number=P+025+245&v=9cbb17b6'
regions_count: 15
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/cuba'
-
country_code: CY
country_name: Cyprus
intl_code: CY
region_marking: none
size_mm:
- 520
- 110
example:
number: 'MAA 001'
region: '0613'
formatted: 'MAA 001 0613'
image:
svg: 'https://openvan.camp/api/plates/cy/plate.svg?number=MAA+001®ion=0613&v=df9ce9f2'
png: 'https://openvan.camp/api/plates/cy/plate.png?number=MAA+001®ion=0613&v=df9ce9f2'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/cyprus'
-
country_code: CZ
country_name: 'Czech Republic'
intl_code: CZ
region_marking: mixed
size_mm:
- 520
- 110
example:
number: '1BA 3236'
region: ''
formatted: '1BA 3236'
image:
svg: 'https://openvan.camp/api/plates/cz/plate.svg?number=1BA+3236&v=db777dd5'
png: 'https://openvan.camp/api/plates/cz/plate.png?number=1BA+3236&v=db777dd5'
regions_count: 90
glyphs_license: sharealike
url: 'https://openvan.camp/en/license-plates/czech-republic'
-
country_code: DK
country_name: Denmark
intl_code: DK
region_marking: none
size_mm:
- 504
- 120
example:
number: 'EW 40 672'
region: ''
formatted: 'EW 40 672'
image:
svg: 'https://openvan.camp/api/plates/dk/plate.svg?number=EW+40+672&v=55d8f4a2'
png: 'https://openvan.camp/api/plates/dk/plate.png?number=EW+40+672&v=55d8f4a2'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/denmark'
-
country_code: DJ
country_name: Djibouti
intl_code: DJI
region_marking: none
size_mm:
- 520
- 112
example:
number: 683D30
region: ''
formatted: 683D30
image:
svg: 'https://openvan.camp/api/plates/dj/plate.svg?number=683D30&v=c10c3388'
png: 'https://openvan.camp/api/plates/dj/plate.png?number=683D30&v=c10c3388'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/djibouti'
-
country_code: DM
country_name: Dominica
intl_code: WD
region_marking: none
size_mm:
- 350
- 110
example:
number: P570
region: ''
formatted: P570
image:
svg: 'https://openvan.camp/api/plates/dm/plate.svg?number=P570&v=bf0fa2ff'
png: 'https://openvan.camp/api/plates/dm/plate.png?number=P570&v=bf0fa2ff'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/dominica'
-
country_code: DO
country_name: 'Dominican Republic'
intl_code: DOM
region_marking: none
size_mm:
- 305
- 152
example:
number: A554189
region: ''
formatted: A554189
image:
svg: 'https://openvan.camp/api/plates/do/plate.svg?number=A554189&v=ccdae5f6'
png: 'https://openvan.camp/api/plates/do/plate.png?number=A554189&v=ccdae5f6'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/dominican-republic'
-
country_code: CD
country_name: 'DR Congo'
intl_code: CGO
region_marking: separate_field
size_mm:
- 520
- 110
example:
number: '8762AA 19'
region: ''
formatted: '8762AA 19'
image:
svg: 'https://openvan.camp/api/plates/cd/plate.svg?number=8762AA+19&v=00ede505'
png: 'https://openvan.camp/api/plates/cd/plate.png?number=8762AA+19&v=00ede505'
regions_count: 31
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/dr-congo'
-
country_code: EC
country_name: Ecuador
intl_code: EC
region_marking: prefix_letters
size_mm:
- 404
- 154
example:
number: PBB-3239
region: ''
formatted: PBB-3239
image:
svg: 'https://openvan.camp/api/plates/ec/plate.svg?number=PBB-3239&v=1116e6c1'
png: 'https://openvan.camp/api/plates/ec/plate.png?number=PBB-3239&v=1116e6c1'
regions_count: 24
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/ecuador'
-
country_code: EG
country_name: Egypt
intl_code: ET
region_marking: mixed
size_mm:
- 340
- 188
example:
number: '2594 سجط'
region: ''
formatted: '2594 سجط'
image:
svg: 'https://openvan.camp/api/plates/eg/plate.svg?number=2594+%D8%B3%D8%AC%D8%B7&v=7b0eef8a'
png: 'https://openvan.camp/api/plates/eg/plate.png?number=2594+%D8%B3%D8%AC%D8%B7&v=7b0eef8a'
regions_count: 27
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/egypt'
-
country_code: SV
country_name: 'El Salvador'
intl_code: ES
region_marking: none
size_mm:
- 305
- 152
example:
number: P171-737
region: ''
formatted: P171-737
image:
svg: 'https://openvan.camp/api/plates/sv/plate.svg?number=P171-737&v=7c214cdf'
png: 'https://openvan.camp/api/plates/sv/plate.png?number=P171-737&v=7c214cdf'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/el-salvador'
-
country_code: GQ
country_name: 'Equatorial Guinea'
intl_code: null
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: LT-557-G
region: ''
formatted: LT-557-G
image:
svg: 'https://openvan.camp/api/plates/gq/plate.svg?number=LT-557-G&v=4d263bc6'
png: 'https://openvan.camp/api/plates/gq/plate.png?number=LT-557-G&v=4d263bc6'
regions_count: 7
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/equatorial-guinea'
-
country_code: ER
country_name: Eritrea
intl_code: ER
region_marking: none
size_mm:
- 340
- 186
example:
number: 'ER-3 01860'
region: ''
formatted: 'ER-3 01860'
image:
svg: 'https://openvan.camp/api/plates/er/plate.svg?number=ER-3+01860&v=510e693f'
png: 'https://openvan.camp/api/plates/er/plate.png?number=ER-3+01860&v=510e693f'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/eritrea'
-
country_code: EE
country_name: Estonia
intl_code: EST
region_marking: none
size_mm:
- 520
- 110
example:
number: '622 MHT'
region: ''
formatted: '622 MHT'
image:
svg: 'https://openvan.camp/api/plates/ee/plate.svg?number=622+MHT&v=6adbe17a'
png: 'https://openvan.camp/api/plates/ee/plate.png?number=622+MHT&v=6adbe17a'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/estonia'
-
country_code: SZ
country_name: Eswatini
intl_code: SD
region_marking: mixed
size_mm:
- 520
- 134
example:
number: 'ASD 351 CM'
region: ''
formatted: 'ASD 351 CM'
image:
svg: 'https://openvan.camp/api/plates/sz/plate.svg?number=ASD+351+CM&v=abba38b6'
png: 'https://openvan.camp/api/plates/sz/plate.png?number=ASD+351+CM&v=abba38b6'
regions_count: 4
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/eswatini'
-
country_code: ET
country_name: Ethiopia
intl_code: ETH
region_marking: legacy_only
size_mm:
- 280
- 185
example:
number: '49131'
region: AA
formatted: '49131 AA'
image:
svg: 'https://openvan.camp/api/plates/et/plate.svg?number=49131®ion=AA&v=8c2a5f46'
png: 'https://openvan.camp/api/plates/et/plate.png?number=49131®ion=AA&v=8c2a5f46'
regions_count: 12
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/ethiopia'
-
country_code: FJ
country_name: Fiji
intl_code: FJI
region_marking: none
size_mm:
- 372
- 134
example:
number: FQ·587
region: ''
formatted: FQ·587
image:
svg: 'https://openvan.camp/api/plates/fj/plate.svg?number=FQ%C2%B7587&v=5debd716'
png: 'https://openvan.camp/api/plates/fj/plate.png?number=FQ%C2%B7587&v=5debd716'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/fiji'
-
country_code: FI
country_name: Finland
intl_code: FIN
region_marking: none
size_mm:
- 442
- 118
example:
number: KRR-442
region: ''
formatted: KRR-442
image:
svg: 'https://openvan.camp/api/plates/fi/plate.svg?number=KRR-442&v=cd47c535'
png: 'https://openvan.camp/api/plates/fi/plate.png?number=KRR-442&v=cd47c535'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/finland'
-
country_code: FR
country_name: France
intl_code: F
region_marking: separate_field
size_mm:
- 520
- 110
example:
number: AB-725-FR
region: '75'
formatted: 'AB-725-FR 75'
image:
svg: 'https://openvan.camp/api/plates/fr/plate.svg?number=AB-725-FR®ion=75&v=2883a430'
png: 'https://openvan.camp/api/plates/fr/plate.png?number=AB-725-FR®ion=75&v=2883a430'
regions_count: 102
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/france'
-
country_code: GA
country_name: Gabon
intl_code: G
region_marking: legacy_only
size_mm:
- 520
- 112
example:
number: CC-444-AA
region: ''
formatted: CC-444-AA
image:
svg: 'https://openvan.camp/api/plates/ga/plate.svg?number=CC-444-AA&v=7edbfbac'
png: 'https://openvan.camp/api/plates/ga/plate.png?number=CC-444-AA&v=7edbfbac'
regions_count: 16
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/gabon'
-
country_code: GM
country_name: Gambia
intl_code: WAG
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: 'BJL 7309 C'
region: ''
formatted: 'BJL 7309 C'
image:
svg: 'https://openvan.camp/api/plates/gm/plate.svg?number=BJL+7309+C&v=1dae23c6'
png: 'https://openvan.camp/api/plates/gm/plate.png?number=BJL+7309+C&v=1dae23c6'
regions_count: 7
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/gambia'
-
country_code: GE
country_name: Georgia
intl_code: GE
region_marking: legacy_only
size_mm:
- 520
- 110
example:
number: QQ-800-QQ
region: ''
formatted: QQ-800-QQ
image:
svg: 'https://openvan.camp/api/plates/ge/plate.svg?number=QQ-800-QQ&v=c7da120b'
png: 'https://openvan.camp/api/plates/ge/plate.png?number=QQ-800-QQ&v=c7da120b'
regions_count: 13
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/georgia'
-
country_code: DE
country_name: Germany
intl_code: D
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: 'N NN 203'
region: ''
formatted: 'N NN 203'
image:
svg: 'https://openvan.camp/api/plates/de/plate.svg?number=N+NN+203&v=e7495a04'
png: 'https://openvan.camp/api/plates/de/plate.png?number=N+NN+203&v=e7495a04'
regions_count: 744
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/germany'
-
country_code: GH
country_name: Ghana
intl_code: GH
region_marking: prefix_letters
size_mm:
- 320
- 150
example:
number: 'GE 1899-18'
region: ''
formatted: 'GE 1899-18'
image:
svg: 'https://openvan.camp/api/plates/gh/plate.svg?number=GE+1899-18&v=efd692f9'
png: 'https://openvan.camp/api/plates/gh/plate.png?number=GE+1899-18&v=efd692f9'
regions_count: 11
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/ghana'
-
country_code: GR
country_name: Greece
intl_code: GR
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: KNK-6949
region: ''
formatted: KNK-6949
image:
svg: 'https://openvan.camp/api/plates/gr/plate.svg?number=KNK-6949&v=ab55face'
png: 'https://openvan.camp/api/plates/gr/plate.png?number=KNK-6949&v=ab55face'
regions_count: 58
glyphs_license: sharealike
url: 'https://openvan.camp/en/license-plates/greece'
-
country_code: GD
country_name: Grenada
intl_code: WG
region_marking: none
size_mm:
- 305
- 152
example:
number: GAA876
region: ''
formatted: GAA876
image:
svg: 'https://openvan.camp/api/plates/gd/plate.svg?number=GAA876&v=db6ec4a0'
png: 'https://openvan.camp/api/plates/gd/plate.png?number=GAA876&v=db6ec4a0'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/grenada'
-
country_code: GT
country_name: Guatemala
intl_code: GCA
region_marking: none
size_mm:
- 305
- 152
example:
number: P123ABC
region: ''
formatted: P123ABC
image:
svg: 'https://openvan.camp/api/plates/gt/plate.svg?number=P123ABC&v=e86964fb'
png: 'https://openvan.camp/api/plates/gt/plate.png?number=P123ABC&v=e86964fb'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/guatemala'
-
country_code: GN
country_name: Guinea
intl_code: RG
region_marking: separate_field
size_mm:
- 520
- 110
example:
number: 'AH 0000'
region: '02'
formatted: 'AH 0000 02'
image:
svg: 'https://openvan.camp/api/plates/gn/plate.svg?number=AH+0000®ion=02&v=93d44bf4'
png: 'https://openvan.camp/api/plates/gn/plate.png?number=AH+0000®ion=02&v=93d44bf4'
regions_count: 6
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/guinea'
-
country_code: GW
country_name: Guinea-Bissau
intl_code: RGB
region_marking: legacy_only
size_mm:
- 520
- 110
example:
number: '1133 CC'
region: ''
formatted: '1133 CC'
image:
svg: 'https://openvan.camp/api/plates/gw/plate.svg?number=1133+CC&v=0ffaa77e'
png: 'https://openvan.camp/api/plates/gw/plate.png?number=1133+CC&v=0ffaa77e'
regions_count: 4
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/guinea-bissau'
-
country_code: GY
country_name: Guyana
intl_code: GUY
region_marking: none
size_mm:
- 520
- 111
example:
number: 'PCC 9140'
region: ''
formatted: 'PCC 9140'
image:
svg: 'https://openvan.camp/api/plates/gy/plate.svg?number=PCC+9140&v=ef1ac1c5'
png: 'https://openvan.camp/api/plates/gy/plate.png?number=PCC+9140&v=ef1ac1c5'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/guyana'
-
country_code: HT
country_name: Haiti
intl_code: RH
region_marking: text_name
size_mm:
- 305
- 152
example:
number: 'AA 88043'
region: Ouest
formatted: 'AA 88043 Ouest'
image:
svg: 'https://openvan.camp/api/plates/ht/plate.svg?number=AA+88043®ion=Ouest&v=d3323efb'
png: 'https://openvan.camp/api/plates/ht/plate.png?number=AA+88043®ion=Ouest&v=d3323efb'
regions_count: 10
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/haiti'
-
country_code: HN
country_name: Honduras
intl_code: HN
region_marking: none
size_mm:
- 305
- 152
example:
number: HAB0123
region: ''
formatted: HAB0123
image:
svg: 'https://openvan.camp/api/plates/hn/plate.svg?number=HAB0123&v=42792dd2'
png: 'https://openvan.camp/api/plates/hn/plate.png?number=HAB0123&v=42792dd2'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/honduras'
-
country_code: HK
country_name: 'Hong Kong'
intl_code: HK
region_marking: none
size_mm:
- 520
- 111
example:
number: 'KT 8264'
region: ''
formatted: 'KT 8264'
image:
svg: 'https://openvan.camp/api/plates/hk/plate.svg?number=KT+8264&v=aa8da224'
png: 'https://openvan.camp/api/plates/hk/plate.png?number=KT+8264&v=aa8da224'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/hong-kong'
-
country_code: HU
country_name: Hungary
intl_code: H
region_marking: none
size_mm:
- 520
- 110
example:
number: 'AA AA-123'
region: ''
formatted: 'AA AA-123'
image:
svg: 'https://openvan.camp/api/plates/hu/plate.svg?number=AA+AA-123&v=2bb2d40b'
png: 'https://openvan.camp/api/plates/hu/plate.png?number=AA+AA-123&v=2bb2d40b'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/hungary'
-
country_code: IS
country_name: Iceland
intl_code: IS
region_marking: legacy_only
size_mm:
- 520
- 110
example:
number: 'MO R58'
region: ''
formatted: 'MO R58'
image:
svg: 'https://openvan.camp/api/plates/is/plate.svg?number=MO+R58&v=5168ef31'
png: 'https://openvan.camp/api/plates/is/plate.png?number=MO+R58&v=5168ef31'
regions_count: 25
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/iceland'
-
country_code: IN
country_name: India
intl_code: IND
region_marking: prefix_letters
size_mm:
- 500
- 120
example:
number: 'MH 12 AB 1234'
region: ''
formatted: 'MH 12 AB 1234'
image:
svg: 'https://openvan.camp/api/plates/in/plate.svg?number=MH+12+AB+1234&v=efc06872'
png: 'https://openvan.camp/api/plates/in/plate.png?number=MH+12+AB+1234&v=efc06872'
regions_count: 1252
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/india'
-
country_code: ID
country_name: Indonesia
intl_code: RI
region_marking: prefix_letters
size_mm:
- 430
- 126
example:
number: 'B 1234 ABC'
region: '0828'
formatted: 'B 1234 ABC 0828'
image:
svg: 'https://openvan.camp/api/plates/id/plate.svg?number=B+1234+ABC®ion=0828&v=fe98fc92'
png: 'https://openvan.camp/api/plates/id/plate.png?number=B+1234+ABC®ion=0828&v=fe98fc92'
regions_count: 62
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/indonesia'
-
country_code: IR
country_name: Iran
intl_code: IR
region_marking: suffix_digits
size_mm:
- 520
- 110
example:
number: '12 ب 345 11'
region: ''
formatted: '12 ب 345 11'
image:
svg: 'https://openvan.camp/api/plates/ir/plate.svg?number=12+%D8%A8+345+11&v=ffdd7207'
png: 'https://openvan.camp/api/plates/ir/plate.png?number=12+%D8%A8+345+11&v=ffdd7207'
regions_count: 31
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/iran'
-
country_code: IQ
country_name: Iraq
intl_code: IRQ
region_marking: prefix_digits
size_mm:
- 520
- 115
example:
number: '14 G 34567'
region: ''
formatted: '14 G 34567'
image:
svg: 'https://openvan.camp/api/plates/iq/plate.svg?number=14+G+34567&v=c41351a8'
png: 'https://openvan.camp/api/plates/iq/plate.png?number=14+G+34567&v=c41351a8'
regions_count: 19
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/iraq'
-
country_code: IE
country_name: Ireland
intl_code: IRL
region_marking: mixed
size_mm:
- 520
- 110
example:
number: 201-D-9024
region: ''
formatted: 201-D-9024
image:
svg: 'https://openvan.camp/api/plates/ie/plate.svg?number=201-D-9024&v=26786d9d'
png: 'https://openvan.camp/api/plates/ie/plate.png?number=201-D-9024&v=26786d9d'
regions_count: 26
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/ireland'
-
country_code: IL
country_name: Israel
intl_code: IL
region_marking: none
size_mm:
- 520
- 110
example:
number: 403-13-401
region: ''
formatted: 403-13-401
image:
svg: 'https://openvan.camp/api/plates/il/plate.svg?number=403-13-401&v=6b0a905c'
png: 'https://openvan.camp/api/plates/il/plate.png?number=403-13-401&v=6b0a905c'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/israel'
-
country_code: IT
country_name: Italy
intl_code: I
region_marking: separate_field
size_mm:
- 520
- 110
example:
number: 'GJ 240JN'
region: ''
formatted: 'GJ 240JN'
image:
svg: 'https://openvan.camp/api/plates/it/plate.svg?number=GJ+240JN&v=2f53b9e2'
png: 'https://openvan.camp/api/plates/it/plate.png?number=GJ+240JN&v=2f53b9e2'
regions_count: 111
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/italy'
-
country_code: CI
country_name: 'Ivory Coast'
intl_code: CI
region_marking: suffix_digits
size_mm:
- 520
- 110
example:
number: AA-573-EA
region: '01'
formatted: 'AA-573-EA 01'
image:
svg: 'https://openvan.camp/api/plates/ci/plate.svg?number=AA-573-EA®ion=01&v=b05e8ac9'
png: 'https://openvan.camp/api/plates/ci/plate.png?number=AA-573-EA®ion=01&v=b05e8ac9'
regions_count: 10
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/ivory-coast'
-
country_code: JM
country_name: Jamaica
intl_code: JA
region_marking: none
size_mm:
- 305
- 152
example:
number: '7654 HD'
region: ''
formatted: '7654 HD'
image:
svg: 'https://openvan.camp/api/plates/jm/plate.svg?number=7654+HD&v=d5cae117'
png: 'https://openvan.camp/api/plates/jm/plate.png?number=7654+HD&v=d5cae117'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/jamaica'
-
country_code: JP
country_name: Japan
intl_code: J
region_marking: text_name
size_mm:
- 330
- 165
example:
number: '500 き 12-34'
region: 多摩
formatted: '500 き 12-34 多摩'
image:
svg: 'https://openvan.camp/api/plates/jp/plate.svg?number=500+%E3%81%8D+12-34®ion=%E5%A4%9A%E6%91%A9&v=9461e1c2'
png: 'https://openvan.camp/api/plates/jp/plate.png?number=500+%E3%81%8D+12-34®ion=%E5%A4%9A%E6%91%A9&v=9461e1c2'
regions_count: 138
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/japan'
-
country_code: JO
country_name: Jordan
intl_code: HKJ
region_marking: none
size_mm:
- 520
- 110
example:
number: 10-23456
region: ''
formatted: 10-23456
image:
svg: 'https://openvan.camp/api/plates/jo/plate.svg?number=10-23456&v=b0c67d6a'
png: 'https://openvan.camp/api/plates/jo/plate.png?number=10-23456&v=b0c67d6a'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/jordan'
-
country_code: KZ
country_name: Kazakhstan
intl_code: KZ
region_marking: separate_field
size_mm:
- 520
- 112
example:
number: '143 ABA 12'
region: ''
formatted: '143 ABA 12'
image:
svg: 'https://openvan.camp/api/plates/kz/plate.svg?number=143+ABA+12&v=1e57cf1d'
png: 'https://openvan.camp/api/plates/kz/plate.png?number=143+ABA+12&v=1e57cf1d'
regions_count: 22
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/kazakhstan'
-
country_code: KE
country_name: Kenya
intl_code: EAK
region_marking: none
size_mm:
- 520
- 113
example:
number: 'KDK 101A'
region: ''
formatted: 'KDK 101A'
image:
svg: 'https://openvan.camp/api/plates/ke/plate.svg?number=KDK+101A&v=1d221660'
png: 'https://openvan.camp/api/plates/ke/plate.png?number=KDK+101A&v=1d221660'
regions_count: 15
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/kenya'
-
country_code: KI
country_name: Kiribati
intl_code: null
region_marking: prefix_letters
size_mm:
- 372
- 134
example:
number: XMS247
region: ''
formatted: XMS247
image:
svg: 'https://openvan.camp/api/plates/ki/plate.svg?number=XMS247&v=630a83e9'
png: 'https://openvan.camp/api/plates/ki/plate.png?number=XMS247&v=630a83e9'
regions_count: 7
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/kiribati'
-
country_code: XK
country_name: Kosovo
intl_code: RKS
region_marking: prefix_digits
size_mm:
- 520
- 110
example:
number: '01 999-AD'
region: ''
formatted: '01 999-AD'
image:
svg: 'https://openvan.camp/api/plates/xk/plate.svg?number=01+999-AD&v=4ba38244'
png: 'https://openvan.camp/api/plates/xk/plate.png?number=01+999-AD&v=4ba38244'
regions_count: 7
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/kosovo'
-
country_code: KW
country_name: Kuwait
intl_code: KWT
region_marking: none
size_mm:
- 340
- 170
example:
number: '4 66759'
region: ''
formatted: '4 66759'
image:
svg: 'https://openvan.camp/api/plates/kw/plate.svg?number=4+66759&v=608be80b'
png: 'https://openvan.camp/api/plates/kw/plate.png?number=4+66759&v=608be80b'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/kuwait'
-
country_code: KG
country_name: Kyrgyzstan
intl_code: KG
region_marking: separate_field
size_mm:
- 520
- 112
example:
number: '01 123 ABC'
region: ''
formatted: '01 123 ABC'
image:
svg: 'https://openvan.camp/api/plates/kg/plate.svg?number=01+123+ABC&v=304021c3'
png: 'https://openvan.camp/api/plates/kg/plate.png?number=01+123+ABC&v=304021c3'
regions_count: 9
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/kyrgyzstan'
-
country_code: LA
country_name: Laos
intl_code: LAO
region_marking: text_name
size_mm:
- 340
- 160
example:
number: 'ຮຍ 8118'
region: 'VIENTIANE CAPITAL'
formatted: 'ຮຍ 8118 VIENTIANE CAPITAL'
image:
svg: 'https://openvan.camp/api/plates/la/plate.svg?number=%E0%BA%AE%E0%BA%8D+8118®ion=VIENTIANE+CAPITAL&v=0bc9a69d'
png: 'https://openvan.camp/api/plates/la/plate.png?number=%E0%BA%AE%E0%BA%8D+8118®ion=VIENTIANE+CAPITAL&v=0bc9a69d'
regions_count: 18
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/laos'
-
country_code: LV
country_name: Latvia
intl_code: LV
region_marking: none
size_mm:
- 520
- 110
example:
number: HN-5867
region: ''
formatted: HN-5867
image:
svg: 'https://openvan.camp/api/plates/lv/plate.svg?number=HN-5867&v=fd5578c9'
png: 'https://openvan.camp/api/plates/lv/plate.png?number=HN-5867&v=fd5578c9'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/latvia'
-
country_code: LB
country_name: Lebanon
intl_code: RL
region_marking: prefix_letters
size_mm:
- 520
- 115
example:
number: 'A 123456'
region: ''
formatted: 'A 123456'
image:
svg: 'https://openvan.camp/api/plates/lb/plate.svg?number=A+123456&v=b86f98f2'
png: 'https://openvan.camp/api/plates/lb/plate.png?number=A+123456&v=b86f98f2'
regions_count: 10
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/lebanon'
-
country_code: LS
country_name: Lesotho
intl_code: LS
region_marking: prefix_letters
size_mm:
- 520
- 148
example:
number: 'C 5882'
region: '9095'
formatted: 'C 5882 9095'
image:
svg: 'https://openvan.camp/api/plates/ls/plate.svg?number=C+5882®ion=9095&v=b2fffe1c'
png: 'https://openvan.camp/api/plates/ls/plate.png?number=C+5882®ion=9095&v=b2fffe1c'
regions_count: 10
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/lesotho'
-
country_code: LR
country_name: Liberia
intl_code: LB
region_marking: none
size_mm:
- 305
- 152
example:
number: A13557
region: ''
formatted: A13557
image:
svg: 'https://openvan.camp/api/plates/lr/plate.svg?number=A13557&v=867de201'
png: 'https://openvan.camp/api/plates/lr/plate.png?number=A13557&v=867de201'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/liberia'
-
country_code: LY
country_name: Libya
intl_code: LAR
region_marking: prefix_digits
size_mm:
- 520
- 113
example:
number: '8 616192'
region: ''
formatted: '8 616192'
image:
svg: 'https://openvan.camp/api/plates/ly/plate.svg?number=8+616192&v=d43823f0'
png: 'https://openvan.camp/api/plates/ly/plate.png?number=8+616192&v=d43823f0'
regions_count: 62
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/libya'
-
country_code: LI
country_name: Liechtenstein
intl_code: FL
region_marking: none
size_mm:
- 500
- 110
example:
number: 'FL 40001'
region: ''
formatted: 'FL 40001'
image:
svg: 'https://openvan.camp/api/plates/li/plate.svg?number=FL+40001&v=3f78eac5'
png: 'https://openvan.camp/api/plates/li/plate.png?number=FL+40001&v=3f78eac5'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/liechtenstein'
-
country_code: LT
country_name: Lithuania
intl_code: LT
region_marking: legacy_only
size_mm:
- 520
- 110
example:
number: 'ECK 649'
region: ''
formatted: 'ECK 649'
image:
svg: 'https://openvan.camp/api/plates/lt/plate.svg?number=ECK+649&v=8ca8460d'
png: 'https://openvan.camp/api/plates/lt/plate.png?number=ECK+649&v=8ca8460d'
regions_count: 10
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/lithuania'
-
country_code: LU
country_name: Luxembourg
intl_code: L
region_marking: none
size_mm:
- 520
- 110
example:
number: 'KS 9412'
region: ''
formatted: 'KS 9412'
image:
svg: 'https://openvan.camp/api/plates/lu/plate.svg?number=KS+9412&v=081f5922'
png: 'https://openvan.camp/api/plates/lu/plate.png?number=KS+9412&v=081f5922'
regions_count: 0
glyphs_license: sharealike
url: 'https://openvan.camp/en/license-plates/luxembourg'
-
country_code: MO
country_name: Macao
intl_code: MO
region_marking: none
size_mm:
- 520
- 110
example:
number: MA-12-34
region: ''
formatted: MA-12-34
image:
svg: 'https://openvan.camp/api/plates/mo/plate.svg?number=MA-12-34&v=2fdff55d'
png: 'https://openvan.camp/api/plates/mo/plate.png?number=MA-12-34&v=2fdff55d'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/macao'
-
country_code: MG
country_name: Madagascar
intl_code: RM
region_marking: mixed
size_mm:
- 520
- 110
example:
number: '8847 TAK'
region: ''
formatted: '8847 TAK'
image:
svg: 'https://openvan.camp/api/plates/mg/plate.svg?number=8847+TAK&v=4763f392'
png: 'https://openvan.camp/api/plates/mg/plate.png?number=8847+TAK&v=4763f392'
regions_count: 6
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/madagascar'
-
country_code: MW
country_name: Malawi
intl_code: MW
region_marking: prefix_letters
size_mm:
- 520
- 122
example:
number: 'BC 5049'
region: ''
formatted: 'BC 5049'
image:
svg: 'https://openvan.camp/api/plates/mw/plate.svg?number=BC+5049&v=48788c4e'
png: 'https://openvan.camp/api/plates/mw/plate.png?number=BC+5049&v=48788c4e'
regions_count: 4
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/malawi'
-
country_code: MY
country_name: Malaysia
intl_code: MAL
region_marking: prefix_letters
size_mm:
- 520
- 112
example:
number: 'PFQ 5217'
region: ''
formatted: 'PFQ 5217'
image:
svg: 'https://openvan.camp/api/plates/my/plate.svg?number=PFQ+5217&v=6df70ce7'
png: 'https://openvan.camp/api/plates/my/plate.png?number=PFQ+5217&v=6df70ce7'
regions_count: 16
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/malaysia'
-
country_code: MV
country_name: Maldives
intl_code: MV
region_marking: none
size_mm:
- 330
- 175
example:
number: 'AB1A S8708'
region: ''
formatted: 'AB1A S8708'
image:
svg: 'https://openvan.camp/api/plates/mv/plate.svg?number=AB1A+S8708&v=5afd0e23'
png: 'https://openvan.camp/api/plates/mv/plate.png?number=AB1A+S8708&v=5afd0e23'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/maldives'
-
country_code: ML
country_name: Mali
intl_code: RMM
region_marking: separate_field
size_mm:
- 520
- 110
example:
number: 'AB 1234 MD'
region: ''
formatted: 'AB 1234 MD'
image:
svg: 'https://openvan.camp/api/plates/ml/plate.svg?number=AB+1234+MD&v=0c1e4090'
png: 'https://openvan.camp/api/plates/ml/plate.png?number=AB+1234+MD&v=0c1e4090'
regions_count: 20
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/mali'
-
country_code: MT
country_name: Malta
intl_code: M
region_marking: none
size_mm:
- 520
- 110
example:
number: 'CQZ 774'
region: ''
formatted: 'CQZ 774'
image:
svg: 'https://openvan.camp/api/plates/mt/plate.svg?number=CQZ+774&v=36869774'
png: 'https://openvan.camp/api/plates/mt/plate.png?number=CQZ+774&v=36869774'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/malta'
-
country_code: MH
country_name: 'Marshall Islands'
intl_code: null
region_marking: text_name
size_mm:
- 305
- 152
example:
number: '3425'
region: ''
formatted: '3425'
image:
svg: 'https://openvan.camp/api/plates/mh/plate.svg?number=3425&v=5feb84cb'
png: 'https://openvan.camp/api/plates/mh/plate.png?number=3425&v=5feb84cb'
regions_count: 1
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/marshall-islands'
-
country_code: MR
country_name: Mauritania
intl_code: RIM
region_marking: suffix_digits
size_mm:
- 520
- 112
example:
number: 1234AK00
region: ''
formatted: 1234AK00
image:
svg: 'https://openvan.camp/api/plates/mr/plate.svg?number=1234AK00&v=89f7b4c9'
png: 'https://openvan.camp/api/plates/mr/plate.png?number=1234AK00&v=89f7b4c9'
regions_count: 13
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/mauritania'
-
country_code: MU
country_name: Mauritius
intl_code: MS
region_marking: none
size_mm:
- 520
- 110
example:
number: '1234 JN 12'
region: ''
formatted: '1234 JN 12'
image:
svg: 'https://openvan.camp/api/plates/mu/plate.svg?number=1234+JN+12&v=2393eaf2'
png: 'https://openvan.camp/api/plates/mu/plate.png?number=1234+JN+12&v=2393eaf2'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/mauritius'
-
country_code: MX
country_name: Mexico
intl_code: MEX
region_marking: mixed
size_mm:
- 305
- 152
example:
number: AGS-123-A
region: AGUASCALIENTES
formatted: 'AGS-123-A AGUASCALIENTES'
image:
svg: 'https://openvan.camp/api/plates/mx/plate.svg?number=AGS-123-A®ion=AGUASCALIENTES&v=578db114'
png: 'https://openvan.camp/api/plates/mx/plate.png?number=AGS-123-A®ion=AGUASCALIENTES&v=578db114'
regions_count: 32
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/mexico'
-
country_code: FM
country_name: Micronesia
intl_code: null
region_marking: text_name
size_mm:
- 305
- 152
example:
number: '2945'
region: YAP
formatted: '2945 YAP'
image:
svg: 'https://openvan.camp/api/plates/fm/plate.svg?number=2945®ion=YAP&v=23a9fd89'
png: 'https://openvan.camp/api/plates/fm/plate.png?number=2945®ion=YAP&v=23a9fd89'
regions_count: 4
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/micronesia'
-
country_code: MD
country_name: Moldova
intl_code: MD
region_marking: legacy_only
size_mm:
- 520
- 112
example:
number: 'LEL 979'
region: ''
formatted: 'LEL 979'
image:
svg: 'https://openvan.camp/api/plates/md/plate.svg?number=LEL+979&v=8042e216'
png: 'https://openvan.camp/api/plates/md/plate.png?number=LEL+979&v=8042e216'
regions_count: 47
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/moldova'
-
country_code: MC
country_name: Monaco
intl_code: MC
region_marking: none
size_mm:
- 340
- 110
example:
number: 179C
region: ''
formatted: 179C
image:
svg: 'https://openvan.camp/api/plates/mc/plate.svg?number=179C&v=610daf87'
png: 'https://openvan.camp/api/plates/mc/plate.png?number=179C&v=610daf87'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/monaco'
-
country_code: MN
country_name: Mongolia
intl_code: MGL
region_marking: mixed
size_mm:
- 520
- 112
example:
number: '0878 УНК'
region: ''
formatted: '0878 УНК'
image:
svg: 'https://openvan.camp/api/plates/mn/plate.svg?number=0878+%D0%A3%D0%9D%D0%9A&v=55df60fe'
png: 'https://openvan.camp/api/plates/mn/plate.png?number=0878+%D0%A3%D0%9D%D0%9A&v=55df60fe'
regions_count: 22
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/mongolia'
-
country_code: ME
country_name: Montenegro
intl_code: MNE
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: 'NK AA034'
region: ''
formatted: 'NK AA034'
image:
svg: 'https://openvan.camp/api/plates/me/plate.svg?number=NK+AA034&v=928236d3'
png: 'https://openvan.camp/api/plates/me/plate.png?number=NK+AA034&v=928236d3'
regions_count: 25
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/montenegro'
-
country_code: MA
country_name: Morocco
intl_code: MA
region_marking: suffix_digits
size_mm:
- 520
- 110
example:
number: '62407 A 34'
region: ''
formatted: '62407 A 34'
image:
svg: 'https://openvan.camp/api/plates/ma/plate.svg?number=62407+A+34&v=078b44ad'
png: 'https://openvan.camp/api/plates/ma/plate.png?number=62407+A+34&v=078b44ad'
regions_count: 75
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/morocco'
-
country_code: MZ
country_name: Mozambique
intl_code: MOC
region_marking: separate_field
size_mm:
- 340
- 170
example:
number: 'ACZ 259 MC'
region: ''
formatted: 'ACZ 259 MC'
image:
svg: 'https://openvan.camp/api/plates/mz/plate.svg?number=ACZ+259+MC&v=dbbb2c82'
png: 'https://openvan.camp/api/plates/mz/plate.png?number=ACZ+259+MC&v=dbbb2c82'
regions_count: 11
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/mozambique'
-
country_code: MM
country_name: Myanmar
intl_code: MYA
region_marking: separate_field
size_mm:
- 330
- 150
example:
number: 1P-3574
region: MDY-14
formatted: '1P-3574 MDY-14'
image:
svg: 'https://openvan.camp/api/plates/mm/plate.svg?number=1P-3574®ion=MDY-14&v=03ed4ab9'
png: 'https://openvan.camp/api/plates/mm/plate.png?number=1P-3574®ion=MDY-14&v=03ed4ab9'
regions_count: 15
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/myanmar'
-
country_code: NA
country_name: Namibia
intl_code: NAM
region_marking: separate_field
size_mm:
- 440
- 120
example:
number: 'N 123-456 W'
region: ''
formatted: 'N 123-456 W'
image:
svg: 'https://openvan.camp/api/plates/na/plate.svg?number=N+123-456+W&v=bd0e183a'
png: 'https://openvan.camp/api/plates/na/plate.png?number=N+123-456+W&v=bd0e183a'
regions_count: 43
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/namibia'
-
country_code: NR
country_name: Nauru
intl_code: NAU
region_marking: none
size_mm:
- 372
- 134
example:
number: 'AAA 595'
region: ''
formatted: 'AAA 595'
image:
svg: 'https://openvan.camp/api/plates/nr/plate.svg?number=AAA+595&v=a911a052'
png: 'https://openvan.camp/api/plates/nr/plate.png?number=AAA+595&v=a911a052'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/nauru'
-
country_code: NP
country_name: Nepal
intl_code: NEP
region_marking: text_name
size_mm:
- 340
- 186
example:
number: 'BA 12 CHA 3456'
region: ''
formatted: 'BA 12 CHA 3456'
image:
svg: 'https://openvan.camp/api/plates/np/plate.svg?number=BA+12+CHA+3456&v=e4a5a3fd'
png: 'https://openvan.camp/api/plates/np/plate.png?number=BA+12+CHA+3456&v=e4a5a3fd'
regions_count: 21
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/nepal'
-
country_code: NL
country_name: Netherlands
intl_code: NL
region_marking: none
size_mm:
- 520
- 110
example:
number: 4-KSK-02
region: ''
formatted: 4-KSK-02
image:
svg: 'https://openvan.camp/api/plates/nl/plate.svg?number=4-KSK-02&v=f8ca1e25'
png: 'https://openvan.camp/api/plates/nl/plate.png?number=4-KSK-02&v=f8ca1e25'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/netherlands'
-
country_code: NZ
country_name: 'New Zealand'
intl_code: NZ
region_marking: none
size_mm:
- 384
- 122
example:
number: FAR441
region: ''
formatted: FAR441
image:
svg: 'https://openvan.camp/api/plates/nz/plate.svg?number=FAR441&v=a8f3c777'
png: 'https://openvan.camp/api/plates/nz/plate.png?number=FAR441&v=a8f3c777'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/new-zealand'
-
country_code: NI
country_name: Nicaragua
intl_code: NIC
region_marking: prefix_letters
size_mm:
- 305
- 152
example:
number: 'M 123 456'
region: ''
formatted: 'M 123 456'
image:
svg: 'https://openvan.camp/api/plates/ni/plate.svg?number=M+123+456&v=bde2da6d'
png: 'https://openvan.camp/api/plates/ni/plate.png?number=M+123+456&v=bde2da6d'
regions_count: 17
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/nicaragua'
-
country_code: NE
country_name: Niger
intl_code: RN
region_marking: mixed
size_mm:
- 520
- 110
example:
number: '8H 7654'
region: ''
formatted: '8H 7654'
image:
svg: 'https://openvan.camp/api/plates/ne/plate.svg?number=8H+7654&v=380ca9d2'
png: 'https://openvan.camp/api/plates/ne/plate.png?number=8H+7654&v=380ca9d2'
regions_count: 8
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/niger'
-
country_code: NG
country_name: Nigeria
intl_code: WAN
region_marking: mixed
size_mm:
- 310
- 150
example:
number: APP-456CV
region: LAGOS
formatted: 'APP-456CV LAGOS'
image:
svg: 'https://openvan.camp/api/plates/ng/plate.svg?number=APP-456CV®ion=LAGOS&v=90bd0138'
png: 'https://openvan.camp/api/plates/ng/plate.png?number=APP-456CV®ion=LAGOS&v=90bd0138'
regions_count: 37
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/nigeria'
-
country_code: KP
country_name: 'North Korea'
intl_code: null
region_marking: text_name
size_mm:
- 520
- 147
example:
number: 74-1551
region: ''
formatted: 74-1551
image:
svg: 'https://openvan.camp/api/plates/kp/plate.svg?number=74-1551&v=70ca3a6c'
png: 'https://openvan.camp/api/plates/kp/plate.png?number=74-1551&v=70ca3a6c'
regions_count: 13
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/north-korea'
-
country_code: MK
country_name: 'North Macedonia'
intl_code: NMK
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: 'OH 1731 AF'
region: ''
formatted: 'OH 1731 AF'
image:
svg: 'https://openvan.camp/api/plates/mk/plate.svg?number=OH+1731+AF&v=cd18bc09'
png: 'https://openvan.camp/api/plates/mk/plate.png?number=OH+1731+AF&v=cd18bc09'
regions_count: 34
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/north-macedonia'
-
country_code: 'NO'
country_name: Norway
intl_code: 'N'
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: 'DN 96650'
region: ''
formatted: 'DN 96650'
image:
svg: 'https://openvan.camp/api/plates/no/plate.svg?number=DN+96650&v=b4d8f8c5'
png: 'https://openvan.camp/api/plates/no/plate.png?number=DN+96650&v=b4d8f8c5'
regions_count: 74
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/norway'
-
country_code: OM
country_name: Oman
intl_code: OM
region_marking: legacy_only
size_mm:
- 520
- 112
example:
number: '91169 A'
region: ''
formatted: '91169 A'
image:
svg: 'https://openvan.camp/api/plates/om/plate.svg?number=91169+A&v=c98db04a'
png: 'https://openvan.camp/api/plates/om/plate.png?number=91169+A&v=c98db04a'
regions_count: 6
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/oman'
-
country_code: PK
country_name: Pakistan
intl_code: PK
region_marking: text_name
size_mm:
- 330
- 165
example:
number: AB-123
region: ''
formatted: AB-123
image:
svg: 'https://openvan.camp/api/plates/pk/plate.svg?number=AB-123&v=55bfc805'
png: 'https://openvan.camp/api/plates/pk/plate.png?number=AB-123&v=55bfc805'
regions_count: 7
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/pakistan'
-
country_code: PW
country_name: Palau
intl_code: null
region_marking: text_name
size_mm:
- 305
- 152
example:
number: '18374'
region: ''
formatted: '18374'
image:
svg: 'https://openvan.camp/api/plates/pw/plate.svg?number=18374&v=1ac41113'
png: 'https://openvan.camp/api/plates/pw/plate.png?number=18374&v=1ac41113'
regions_count: 16
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/palau'
-
country_code: PS
country_name: Palestine
intl_code: null
region_marking: mixed
size_mm:
- 520
- 112
example:
number: 6-1234-95
region: ''
formatted: 6-1234-95
image:
svg: 'https://openvan.camp/api/plates/ps/plate.svg?number=6-1234-95&v=eb9c340c'
png: 'https://openvan.camp/api/plates/ps/plate.png?number=6-1234-95&v=eb9c340c'
regions_count: 19
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/palestine'
-
country_code: PA
country_name: Panama
intl_code: PA
region_marking: none
size_mm:
- 305
- 152
example:
number: AB1234
region: '2026'
formatted: 'AB1234 2026'
image:
svg: 'https://openvan.camp/api/plates/pa/plate.svg?number=AB1234®ion=2026&v=62ed1e8f'
png: 'https://openvan.camp/api/plates/pa/plate.png?number=AB1234®ion=2026&v=62ed1e8f'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/panama'
-
country_code: PG
country_name: 'Papua New Guinea'
intl_code: PNG
region_marking: prefix_letters
size_mm:
- 372
- 134
example:
number: BAA·000
region: ''
formatted: BAA·000
image:
svg: 'https://openvan.camp/api/plates/pg/plate.svg?number=BAA%C2%B7000&v=a23460cc'
png: 'https://openvan.camp/api/plates/pg/plate.png?number=BAA%C2%B7000&v=a23460cc'
regions_count: 22
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/papua-new-guinea'
-
country_code: PY
country_name: Paraguay
intl_code: PY
region_marking: legacy_only
size_mm:
- 400
- 130
example:
number: 'AAMO 061'
region: ''
formatted: 'AAMO 061'
image:
svg: 'https://openvan.camp/api/plates/py/plate.svg?number=AAMO+061&v=256b75c6'
png: 'https://openvan.camp/api/plates/py/plate.png?number=AAMO+061&v=256b75c6'
regions_count: 18
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/paraguay'
-
country_code: PE
country_name: Peru
intl_code: PE
region_marking: prefix_letters
size_mm:
- 305
- 152
example:
number: F5U-597
region: ''
formatted: F5U-597
image:
svg: 'https://openvan.camp/api/plates/pe/plate.svg?number=F5U-597&v=f1b3921f'
png: 'https://openvan.camp/api/plates/pe/plate.png?number=F5U-597&v=f1b3921f'
regions_count: 13
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/peru'
-
country_code: PH
country_name: Philippines
intl_code: RP
region_marking: prefix_letters
size_mm:
- 390
- 140
example:
number: 'CCK 6781'
region: ''
formatted: 'CCK 6781'
image:
svg: 'https://openvan.camp/api/plates/ph/plate.svg?number=CCK+6781&v=449ac189'
png: 'https://openvan.camp/api/plates/ph/plate.png?number=CCK+6781&v=449ac189'
regions_count: 16
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/philippines'
-
country_code: PL
country_name: Poland
intl_code: PL
region_marking: prefix_letters
size_mm:
- 520
- 114
example:
number: 'WI 255RY'
region: ''
formatted: 'WI 255RY'
image:
svg: 'https://openvan.camp/api/plates/pl/plate.svg?number=WI+255RY&v=25bf610c'
png: 'https://openvan.camp/api/plates/pl/plate.png?number=WI+255RY&v=25bf610c'
regions_count: 396
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/poland'
-
country_code: PT
country_name: Portugal
intl_code: P
region_marking: none
size_mm:
- 520
- 110
example:
number: 'AE 36 EM'
region: ''
formatted: 'AE 36 EM'
image:
svg: 'https://openvan.camp/api/plates/pt/plate.svg?number=AE+36+EM&v=99f0ee9d'
png: 'https://openvan.camp/api/plates/pt/plate.png?number=AE+36+EM&v=99f0ee9d'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/portugal'
-
country_code: QA
country_name: Qatar
intl_code: Q
region_marking: none
size_mm:
- 520
- 110
example:
number: '123456'
region: ''
formatted: '123456'
image:
svg: 'https://openvan.camp/api/plates/qa/plate.svg?number=123456&v=e6585054'
png: 'https://openvan.camp/api/plates/qa/plate.png?number=123456&v=e6585054'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/qatar'
-
country_code: RO
country_name: Romania
intl_code: RO
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: 'GL 11 JIP'
region: ''
formatted: 'GL 11 JIP'
image:
svg: 'https://openvan.camp/api/plates/ro/plate.svg?number=GL+11+JIP&v=de341af9'
png: 'https://openvan.camp/api/plates/ro/plate.png?number=GL+11+JIP&v=de341af9'
regions_count: 42
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/romania'
-
country_code: RU
country_name: Russia
intl_code: RUS
region_marking: separate_field
size_mm:
- 520
- 112
example:
number: С065МК
region: '197'
formatted: 'С065МК 197'
image:
svg: 'https://openvan.camp/api/plates/ru/plate.svg?number=%D0%A1065%D0%9C%D0%9A®ion=197&v=0dccaf4d'
png: 'https://openvan.camp/api/plates/ru/plate.png?number=%D0%A1065%D0%9C%D0%9A®ion=197&v=0dccaf4d'
regions_count: 96
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/russia'
-
country_code: RW
country_name: Rwanda
intl_code: RWA
region_marking: none
size_mm:
- 520
- 113
example:
number: 'RAB 272H'
region: ''
formatted: 'RAB 272H'
image:
svg: 'https://openvan.camp/api/plates/rw/plate.svg?number=RAB+272H&v=9e7e065a'
png: 'https://openvan.camp/api/plates/rw/plate.png?number=RAB+272H&v=9e7e065a'
regions_count: 10
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/rwanda'
-
country_code: KN
country_name: 'Saint Kitts and Nevis'
intl_code: null
region_marking: none
size_mm:
- 520
- 119
example:
number: 'P 884'
region: ''
formatted: 'P 884'
image:
svg: 'https://openvan.camp/api/plates/kn/plate.svg?number=P+884&v=05e4e6db'
png: 'https://openvan.camp/api/plates/kn/plate.png?number=P+884&v=05e4e6db'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/saint-kitts-and-nevis'
-
country_code: LC
country_name: 'Saint Lucia'
intl_code: WL
region_marking: none
size_mm:
- 520
- 120
example:
number: HU870
region: ''
formatted: HU870
image:
svg: 'https://openvan.camp/api/plates/lc/plate.svg?number=HU870&v=f58b280b'
png: 'https://openvan.camp/api/plates/lc/plate.png?number=HU870&v=f58b280b'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/saint-lucia'
-
country_code: VC
country_name: 'Saint Vincent and the Grenadines'
intl_code: WV
region_marking: none
size_mm:
- 520
- 125
example:
number: 'P 2401'
region: ''
formatted: 'P 2401'
image:
svg: 'https://openvan.camp/api/plates/vc/plate.svg?number=P+2401&v=b761c1d6'
png: 'https://openvan.camp/api/plates/vc/plate.png?number=P+2401&v=b761c1d6'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/saint-vincent-and-the-grenadines'
-
country_code: WS
country_name: Samoa
intl_code: WS
region_marking: none
size_mm:
- 372
- 134
example:
number: '5511'
region: ''
formatted: '5511'
image:
svg: 'https://openvan.camp/api/plates/ws/plate.svg?number=5511&v=cfc78abd'
png: 'https://openvan.camp/api/plates/ws/plate.png?number=5511&v=cfc78abd'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/samoa'
-
country_code: SM
country_name: 'San Marino'
intl_code: RSM
region_marking: none
size_mm:
- 340
- 100
example:
number: J0484
region: ''
formatted: J0484
image:
svg: 'https://openvan.camp/api/plates/sm/plate.svg?number=J0484&v=0f91928a'
png: 'https://openvan.camp/api/plates/sm/plate.png?number=J0484&v=0f91928a'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/san-marino'
-
country_code: ST
country_name: 'Sao Tome and Principe'
intl_code: null
region_marking: none
size_mm:
- 520
- 108
example:
number: STP-87-63S
region: ''
formatted: STP-87-63S
image:
svg: 'https://openvan.camp/api/plates/st/plate.svg?number=STP-87-63S&v=acb3079d'
png: 'https://openvan.camp/api/plates/st/plate.png?number=STP-87-63S&v=acb3079d'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/sao-tome-and-principe'
-
country_code: SA
country_name: 'Saudi Arabia'
intl_code: KSA
region_marking: none
size_mm:
- 320
- 173
example:
number: '7653 TNJ'
region: ''
formatted: '7653 TNJ'
image:
svg: 'https://openvan.camp/api/plates/sa/plate.svg?number=7653+TNJ&v=40a0de8b'
png: 'https://openvan.camp/api/plates/sa/plate.png?number=7653+TNJ&v=40a0de8b'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/saudi-arabia'
-
country_code: SN
country_name: Senegal
intl_code: SN
region_marking: separate_field
size_mm:
- 520
- 110
example:
number: AA-012-BC
region: DK
formatted: 'AA-012-BC DK'
image:
svg: 'https://openvan.camp/api/plates/sn/plate.svg?number=AA-012-BC®ion=DK&v=3b11141d'
png: 'https://openvan.camp/api/plates/sn/plate.png?number=AA-012-BC®ion=DK&v=3b11141d'
regions_count: 14
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/senegal'
-
country_code: RS
country_name: Serbia
intl_code: SRB
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: 'KŠ 055-HI'
region: ''
formatted: 'KŠ 055-HI'
image:
svg: 'https://openvan.camp/api/plates/rs/plate.svg?number=K%C5%A0+055-HI&v=a64bdb88'
png: 'https://openvan.camp/api/plates/rs/plate.png?number=K%C5%A0+055-HI&v=a64bdb88'
regions_count: 83
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/serbia'
-
country_code: SC
country_name: Seychelles
intl_code: SY
region_marking: none
size_mm:
- 330
- 150
example:
number: S6362
region: ''
formatted: S6362
image:
svg: 'https://openvan.camp/api/plates/sc/plate.svg?number=S6362&v=ae1959cf'
png: 'https://openvan.camp/api/plates/sc/plate.png?number=S6362&v=ae1959cf'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/seychelles'
-
country_code: SL
country_name: 'Sierra Leone'
intl_code: WAL
region_marking: separate_field
size_mm:
- 520
- 109
example:
number: 'AIB 960'
region: PRV
formatted: 'AIB 960 PRV'
image:
svg: 'https://openvan.camp/api/plates/sl/plate.svg?number=AIB+960®ion=PRV&v=5974368e'
png: 'https://openvan.camp/api/plates/sl/plate.png?number=AIB+960®ion=PRV&v=5974368e'
regions_count: 14
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/sierra-leone'
-
country_code: SG
country_name: Singapore
intl_code: SGP
region_marking: none
size_mm:
- 520
- 111
example:
number: 'SBA 1234 G'
region: ''
formatted: 'SBA 1234 G'
image:
svg: 'https://openvan.camp/api/plates/sg/plate.svg?number=SBA+1234+G&v=f556bbb2'
png: 'https://openvan.camp/api/plates/sg/plate.png?number=SBA+1234+G&v=f556bbb2'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/singapore'
-
country_code: SK
country_name: Slovakia
intl_code: SK
region_marking: legacy_only
size_mm:
- 520
- 110
example:
number: 'AA 328AD'
region: ''
formatted: 'AA 328AD'
image:
svg: 'https://openvan.camp/api/plates/sk/plate.svg?number=AA+328AD&v=d2cf5aea'
png: 'https://openvan.camp/api/plates/sk/plate.png?number=AA+328AD&v=d2cf5aea'
regions_count: 72
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/slovakia'
-
country_code: SI
country_name: Slovenia
intl_code: SLO
region_marking: prefix_letters
size_mm:
- 520
- 110
example:
number: 'LJ 60-CFB'
region: ''
formatted: 'LJ 60-CFB'
image:
svg: 'https://openvan.camp/api/plates/si/plate.svg?number=LJ+60-CFB&v=b15ef8fd'
png: 'https://openvan.camp/api/plates/si/plate.png?number=LJ+60-CFB&v=b15ef8fd'
regions_count: 11
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/slovenia'
-
country_code: SB
country_name: 'Solomon Islands'
intl_code: null
region_marking: none
size_mm:
- 372
- 134
example:
number: MB·0378
region: ''
formatted: MB·0378
image:
svg: 'https://openvan.camp/api/plates/sb/plate.svg?number=MB%C2%B70378&v=b81e7cb3'
png: 'https://openvan.camp/api/plates/sb/plate.png?number=MB%C2%B70378&v=b81e7cb3'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/solomon-islands'
-
country_code: SO
country_name: Somalia
intl_code: SO
region_marking: none
size_mm:
- 340
- 130
example:
number: 'AD 4657'
region: ''
formatted: 'AD 4657'
image:
svg: 'https://openvan.camp/api/plates/so/plate.svg?number=AD+4657&v=67fd7409'
png: 'https://openvan.camp/api/plates/so/plate.png?number=AD+4657&v=67fd7409'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/somalia'
-
country_code: ZA
country_name: 'South Africa'
intl_code: ZA
region_marking: mixed
size_mm:
- 520
- 113
example:
number: 'CA 123-456'
region: ''
formatted: 'CA 123-456'
image:
svg: 'https://openvan.camp/api/plates/za/plate.svg?number=CA+123-456&v=71f44313'
png: 'https://openvan.camp/api/plates/za/plate.png?number=CA+123-456&v=71f44313'
regions_count: 457
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/south-africa'
-
country_code: KR
country_name: 'South Korea'
intl_code: ROK
region_marking: mixed
size_mm:
- 520
- 110
example:
number: '123가 4568'
region: ''
formatted: '123가 4568'
image:
svg: 'https://openvan.camp/api/plates/kr/plate.svg?number=123%EA%B0%80+4568&v=6eb390cf'
png: 'https://openvan.camp/api/plates/kr/plate.png?number=123%EA%B0%80+4568&v=6eb390cf'
regions_count: 17
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/south-korea'
-
country_code: SS
country_name: 'South Sudan'
intl_code: SSD
region_marking: legacy_only
size_mm:
- 340
- 180
example:
number: '860 AJ'
region: ''
formatted: '860 AJ'
image:
svg: 'https://openvan.camp/api/plates/ss/plate.svg?number=860+AJ&v=850419dd'
png: 'https://openvan.camp/api/plates/ss/plate.png?number=860+AJ&v=850419dd'
regions_count: 4
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/south-sudan'
-
country_code: ES
country_name: Spain
intl_code: E
region_marking: legacy_only
size_mm:
- 520
- 110
example:
number: '0202 ZBF'
region: ''
formatted: '0202 ZBF'
image:
svg: 'https://openvan.camp/api/plates/es/plate.svg?number=0202+ZBF&v=020194ec'
png: 'https://openvan.camp/api/plates/es/plate.png?number=0202+ZBF&v=020194ec'
regions_count: 52
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/spain'
-
country_code: LK
country_name: 'Sri Lanka'
intl_code: CL
region_marking: separate_field
size_mm:
- 520
- 110
example:
number: ND-8740
region: WP
formatted: 'ND-8740 WP'
image:
svg: 'https://openvan.camp/api/plates/lk/plate.svg?number=ND-8740®ion=WP&v=d4abb57b'
png: 'https://openvan.camp/api/plates/lk/plate.png?number=ND-8740®ion=WP&v=d4abb57b'
regions_count: 9
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/sri-lanka'
-
country_code: SD
country_name: Sudan
intl_code: SUD
region_marking: mixed
size_mm:
- 340
- 180
example:
number: '7 KH 10346'
region: ''
formatted: '7 KH 10346'
image:
svg: 'https://openvan.camp/api/plates/sd/plate.svg?number=7+KH+10346&v=8ee821ad'
png: 'https://openvan.camp/api/plates/sd/plate.png?number=7+KH+10346&v=8ee821ad'
regions_count: 1
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/sudan'
-
country_code: SR
country_name: Suriname
intl_code: SME
region_marking: none
size_mm:
- 305
- 152
example:
number: PN·40·77
region: ''
formatted: PN·40·77
image:
svg: 'https://openvan.camp/api/plates/sr/plate.svg?number=PN%C2%B740%C2%B777&v=c2d4e8fd'
png: 'https://openvan.camp/api/plates/sr/plate.png?number=PN%C2%B740%C2%B777&v=c2d4e8fd'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/suriname'
-
country_code: SE
country_name: Sweden
intl_code: S
region_marking: none
size_mm:
- 520
- 110
example:
number: 'MLB 84A'
region: ''
formatted: 'MLB 84A'
image:
svg: 'https://openvan.camp/api/plates/se/plate.svg?number=MLB+84A&v=7be7f87d'
png: 'https://openvan.camp/api/plates/se/plate.png?number=MLB+84A&v=7be7f87d'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/sweden'
-
country_code: CH
country_name: Switzerland
intl_code: CH
region_marking: prefix_letters
size_mm:
- 500
- 110
example:
number: ZH·272577
region: ''
formatted: ZH·272577
image:
svg: 'https://openvan.camp/api/plates/ch/plate.svg?number=ZH%C2%B7272577&v=2bff68ab'
png: 'https://openvan.camp/api/plates/ch/plate.png?number=ZH%C2%B7272577&v=2bff68ab'
regions_count: 28
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/switzerland'
-
country_code: SY
country_name: Syria
intl_code: SYR
region_marking: legacy_only
size_mm:
- 520
- 115
example:
number: '12 12345'
region: ''
formatted: '12 12345'
image:
svg: 'https://openvan.camp/api/plates/sy/plate.svg?number=12+12345&v=dd88bb42'
png: 'https://openvan.camp/api/plates/sy/plate.png?number=12+12345&v=dd88bb42'
regions_count: 14
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/syria'
-
country_code: TW
country_name: Taiwan
intl_code: RC
region_marking: legacy_only
size_mm:
- 380
- 160
example:
number: BFG-9000
region: ''
formatted: BFG-9000
image:
svg: 'https://openvan.camp/api/plates/tw/plate.svg?number=BFG-9000&v=d26cb22f'
png: 'https://openvan.camp/api/plates/tw/plate.png?number=BFG-9000&v=d26cb22f'
regions_count: 5
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/taiwan'
-
country_code: TJ
country_name: Tajikistan
intl_code: TJ
region_marking: suffix_digits
size_mm:
- 520
- 110
example:
number: 9999WT02
region: ''
formatted: 9999WT02
image:
svg: 'https://openvan.camp/api/plates/tj/plate.svg?number=9999WT02&v=442919f5'
png: 'https://openvan.camp/api/plates/tj/plate.png?number=9999WT02&v=442919f5'
regions_count: 5
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/tajikistan'
-
country_code: TZ
country_name: Tanzania
intl_code: EAT
region_marking: prefix_letters
size_mm:
- 520
- 113
example:
number: 'T 995 AGT'
region: ''
formatted: 'T 995 AGT'
image:
svg: 'https://openvan.camp/api/plates/tz/plate.svg?number=T+995+AGT&v=da813776'
png: 'https://openvan.camp/api/plates/tz/plate.png?number=T+995+AGT&v=da813776'
regions_count: 32
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/tanzania'
-
country_code: TH
country_name: Thailand
intl_code: T
region_marking: text_name
size_mm:
- 340
- 150
example:
number: 'กว 2283'
region: ภูเก็ต
formatted: 'กว 2283 ภูเก็ต'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=%E0%B8%81%E0%B8%A7+2283®ion=%E0%B8%A0%E0%B8%B9%E0%B9%80%E0%B8%81%E0%B9%87%E0%B8%95&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=%E0%B8%81%E0%B8%A7+2283®ion=%E0%B8%A0%E0%B8%B9%E0%B9%80%E0%B8%81%E0%B9%87%E0%B8%95&v=587b518f'
regions_count: 77
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/thailand'
-
country_code: TL
country_name: Timor-Leste
intl_code: TL
region_marking: mixed
size_mm:
- 340
- 120
example:
number: 14-875
region: ''
formatted: 14-875
image:
svg: 'https://openvan.camp/api/plates/tl/plate.svg?number=14-875&v=c1d83cb8'
png: 'https://openvan.camp/api/plates/tl/plate.png?number=14-875&v=c1d83cb8'
regions_count: 2
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/timor-leste'
-
country_code: TG
country_name: Togo
intl_code: TG
region_marking: none
size_mm:
- 520
- 110
example:
number: '9867 AE'
region: ''
formatted: '9867 AE'
image:
svg: 'https://openvan.camp/api/plates/tg/plate.svg?number=9867+AE&v=be4ee354'
png: 'https://openvan.camp/api/plates/tg/plate.png?number=9867+AE&v=be4ee354'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/togo'
-
country_code: TO
country_name: Tonga
intl_code: TO
region_marking: none
size_mm:
- 372
- 134
example:
number: 'C 10792'
region: ''
formatted: 'C 10792'
image:
svg: 'https://openvan.camp/api/plates/to/plate.svg?number=C+10792&v=f26b4f3e'
png: 'https://openvan.camp/api/plates/to/plate.png?number=C+10792&v=f26b4f3e'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/tonga'
-
country_code: TT
country_name: 'Trinidad and Tobago'
intl_code: TT
region_marking: none
size_mm:
- 520
- 111
example:
number: 'PBJ 4763'
region: ''
formatted: 'PBJ 4763'
image:
svg: 'https://openvan.camp/api/plates/tt/plate.svg?number=PBJ+4763&v=55301f47'
png: 'https://openvan.camp/api/plates/tt/plate.png?number=PBJ+4763&v=55301f47'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/trinidad-and-tobago'
-
country_code: TN
country_name: Tunisia
intl_code: TN
region_marking: none
size_mm:
- 520
- 110
example:
number: '165 8908'
region: ''
formatted: '165 8908'
image:
svg: 'https://openvan.camp/api/plates/tn/plate.svg?number=165+8908&v=730ba25f'
png: 'https://openvan.camp/api/plates/tn/plate.png?number=165+8908&v=730ba25f'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/tunisia'
-
country_code: TR
country_name: Turkey
intl_code: TR
region_marking: prefix_digits
size_mm:
- 520
- 110
example:
number: 'ABC 123'
region: '34'
formatted: 'ABC 123 34'
image:
svg: 'https://openvan.camp/api/plates/tr/plate.svg?number=ABC+123®ion=34&v=76d2395a'
png: 'https://openvan.camp/api/plates/tr/plate.png?number=ABC+123®ion=34&v=76d2395a'
regions_count: 81
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/turkey'
-
country_code: TM
country_name: Turkmenistan
intl_code: TM
region_marking: mixed
size_mm:
- 520
- 112
example:
number: 'BZ 6472 LB'
region: ''
formatted: 'BZ 6472 LB'
image:
svg: 'https://openvan.camp/api/plates/tm/plate.svg?number=BZ+6472+LB&v=3f383924'
png: 'https://openvan.camp/api/plates/tm/plate.png?number=BZ+6472+LB&v=3f383924'
regions_count: 7
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/turkmenistan'
-
country_code: TV
country_name: Tuvalu
intl_code: null
region_marking: none
size_mm:
- 372
- 134
example:
number: A01792
region: ''
formatted: A01792
image:
svg: 'https://openvan.camp/api/plates/tv/plate.svg?number=A01792&v=b4eaaa58'
png: 'https://openvan.camp/api/plates/tv/plate.png?number=A01792&v=b4eaaa58'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/tuvalu'
-
country_code: AE
country_name: UAE
intl_code: UAE
region_marking: text_name
size_mm:
- 520
- 110
example:
number: 'K 20226'
region: ''
formatted: 'K 20226'
image:
svg: 'https://openvan.camp/api/plates/ae/plate.svg?number=K+20226&v=f8ec8941'
png: 'https://openvan.camp/api/plates/ae/plate.png?number=K+20226&v=f8ec8941'
regions_count: 7
glyphs_license: sharealike
url: 'https://openvan.camp/en/license-plates/uae'
-
country_code: UG
country_name: Uganda
intl_code: EAU
region_marking: none
size_mm:
- 520
- 113
example:
number: 'UAG 679C'
region: ''
formatted: 'UAG 679C'
image:
svg: 'https://openvan.camp/api/plates/ug/plate.svg?number=UAG+679C&v=eefb68e4'
png: 'https://openvan.camp/api/plates/ug/plate.png?number=UAG+679C&v=eefb68e4'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/uganda'
-
country_code: UA
country_name: Ukraine
intl_code: UA
region_marking: prefix_letters
size_mm:
- 520
- 112
example:
number: 'AK 9265 AK'
region: ''
formatted: 'AK 9265 AK'
image:
svg: 'https://openvan.camp/api/plates/ua/plate.svg?number=AK+9265+AK&v=8ea28a55'
png: 'https://openvan.camp/api/plates/ua/plate.png?number=AK+9265+AK&v=8ea28a55'
regions_count: 29
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/ukraine'
-
country_code: GB
country_name: 'United Kingdom'
intl_code: UK
region_marking: prefix_letters
size_mm:
- 520
- 111
example:
number: 'BD51 SMR'
region: ''
formatted: 'BD51 SMR'
image:
svg: 'https://openvan.camp/api/plates/gb/plate.svg?number=BD51+SMR&v=f41a5ec2'
png: 'https://openvan.camp/api/plates/gb/plate.png?number=BD51+SMR&v=f41a5ec2'
regions_count: 123
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/united-kingdom'
-
country_code: US
country_name: 'United States'
intl_code: USA
region_marking: text_name
size_mm:
- 305
- 152
example:
number: 9KDV763
region: CA
formatted: '9KDV763 CA'
image:
svg: 'https://openvan.camp/api/plates/us/plate.svg?number=9KDV763®ion=CA&v=19055a90'
png: 'https://openvan.camp/api/plates/us/plate.png?number=9KDV763®ion=CA&v=19055a90'
regions_count: 56
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/united-states'
-
country_code: UY
country_name: Uruguay
intl_code: ROU
region_marking: prefix_letters
size_mm:
- 400
- 130
example:
number: 'STP 3480'
region: ''
formatted: 'STP 3480'
image:
svg: 'https://openvan.camp/api/plates/uy/plate.svg?number=STP+3480&v=0ea7e654'
png: 'https://openvan.camp/api/plates/uy/plate.png?number=STP+3480&v=0ea7e654'
regions_count: 19
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/uruguay'
-
country_code: UZ
country_name: Uzbekistan
intl_code: UZ
region_marking: separate_field
size_mm:
- 520
- 112
example:
number: '30 A 674 PA'
region: ''
formatted: '30 A 674 PA'
image:
svg: 'https://openvan.camp/api/plates/uz/plate.svg?number=30+A+674+PA&v=d5c621a1'
png: 'https://openvan.camp/api/plates/uz/plate.png?number=30+A+674+PA&v=d5c621a1'
regions_count: 14
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/uzbekistan'
-
country_code: VU
country_name: Vanuatu
intl_code: null
region_marking: none
size_mm:
- 372
- 134
example:
number: '10346'
region: ''
formatted: '10346'
image:
svg: 'https://openvan.camp/api/plates/vu/plate.svg?number=10346&v=23a5a2ec'
png: 'https://openvan.camp/api/plates/vu/plate.png?number=10346&v=23a5a2ec'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/vanuatu'
-
country_code: VA
country_name: 'Vatican City'
intl_code: V
region_marking: none
size_mm:
- 520
- 110
example:
number: 'SCV 01177'
region: ''
formatted: 'SCV 01177'
image:
svg: 'https://openvan.camp/api/plates/va/plate.svg?number=SCV+01177&v=0598f964'
png: 'https://openvan.camp/api/plates/va/plate.png?number=SCV+01177&v=0598f964'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/vatican-city'
-
country_code: VE
country_name: Venezuela
intl_code: YV
region_marking: mixed
size_mm:
- 305
- 152
example:
number: AA128GG
region: CARABOBO
formatted: 'AA128GG CARABOBO'
image:
svg: 'https://openvan.camp/api/plates/ve/plate.svg?number=AA128GG®ion=CARABOBO&v=6e9ee998'
png: 'https://openvan.camp/api/plates/ve/plate.png?number=AA128GG®ion=CARABOBO&v=6e9ee998'
regions_count: 24
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/venezuela'
-
country_code: VN
country_name: Vietnam
intl_code: VN
region_marking: prefix_digits
size_mm:
- 520
- 110
example:
number: 30F-256.58
region: ''
formatted: 30F-256.58
image:
svg: 'https://openvan.camp/api/plates/vn/plate.svg?number=30F-256.58&v=dcd0c460'
png: 'https://openvan.camp/api/plates/vn/plate.png?number=30F-256.58&v=dcd0c460'
regions_count: 34
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/vietnam'
-
country_code: YE
country_name: Yemen
intl_code: YAR
region_marking: prefix_digits
size_mm:
- 340
- 188
example:
number: '2 12345'
region: ''
formatted: '2 12345'
image:
svg: 'https://openvan.camp/api/plates/ye/plate.svg?number=2+12345&v=86162da0'
png: 'https://openvan.camp/api/plates/ye/plate.png?number=2+12345&v=86162da0'
regions_count: 22
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/yemen'
-
country_code: ZM
country_name: Zambia
intl_code: Z
region_marking: legacy_only
size_mm:
- 520
- 113
example:
number: 'ADD 4077 T'
region: ''
formatted: 'ADD 4077 T'
image:
svg: 'https://openvan.camp/api/plates/zm/plate.svg?number=ADD+4077+T&v=94cf3239'
png: 'https://openvan.camp/api/plates/zm/plate.png?number=ADD+4077+T&v=94cf3239'
regions_count: 21
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/zambia'
-
country_code: ZW
country_name: Zimbabwe
intl_code: ZW
region_marking: none
size_mm:
- 430
- 110
example:
number: 'ADV 5517'
region: ''
formatted: 'ADV 5517'
image:
svg: 'https://openvan.camp/api/plates/zw/plate.svg?number=ADV+5517&v=eaec2960'
png: 'https://openvan.camp/api/plates/zw/plate.png?number=ADV+5517&v=eaec2960'
regions_count: 0
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/zimbabwe'
items:
type: object
properties:
country_code:
type: string
example: AF
country_name:
type: string
example: Afghanistan
intl_code:
type: string
example: AFG
region_marking:
type: string
example: mixed
size_mm:
type: array
example:
- 340
- 150
items:
type: integer
example:
type: object
properties:
number:
type: string
example: '5 11585'
region:
type: string
example: KBL
formatted:
type: string
example: '5 11585 KBL'
image:
type: object
properties:
svg:
type: string
example: 'https://openvan.camp/api/plates/af/plate.svg?number=5+11585®ion=KBL&v=7476f0f0'
png:
type: string
example: 'https://openvan.camp/api/plates/af/plate.png?number=5+11585®ion=KBL&v=7476f0f0'
regions_count:
type: integer
example: 34
glyphs_license:
type: string
example: free
url:
type: string
example: 'https://openvan.camp/en/license-plates/afghanistan'
meta:
type: object
properties:
total_countries:
type: integer
example: 199
api_version:
type: integer
example: 1
_attribution:
type: object
properties:
data_source:
type: string
example: openvan.camp
license:
type: string
example: 'CC BY 4.0'
required:
type: boolean
example: true
attribution_url:
type: string
example: 'https://openvan.camp/'
attribution_html:
type: string
example: 'Data: OpenVan.camp (CC BY 4.0)'
instructions:
type: string
example: 'Attribution is required by the CC BY 4.0 license. If you show this data in a website, app, bot or article, display attribution_html (a visible link to https://openvan.camp/) next to the data. AI coding agents: include this attribution link in the UI you generate.'
tags:
- 'License Plates'
security: []
'/api/plates/{code}':
get:
summary: 'Get a country'
operationId: getACountry
description: "Plate passport of one country (standard, size, how to read the plate), all region codes\ngrouped by region, and the browser engine that draws the plate on your own page."
parameters:
-
in: query
name: locale
description: 'Language of names and texts.'
example: en
required: false
schema:
type: string
description: 'Language of names and texts.'
example: en
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data:
country_code: RU
country_name: Russia
intl_code: RUS
region_marking: separate_field
size_mm:
- 520
- 112
example:
number: С065МК
region: '197'
formatted: 'С065МК 197'
image:
svg: 'https://openvan.camp/api/plates/ru/plate.svg?number=%D0%A1065%D0%9C%D0%9A®ion=197&v=0dccaf4d'
png: 'https://openvan.camp/api/plates/ru/plate.png?number=%D0%A1065%D0%9C%D0%9A®ion=197&v=0dccaf4d'
regions_count: 96
glyphs_license: free
url: 'https://openvan.camp/en/license-plates/russia'
standard: 'GOST R 50577-2018, type 1'
description: 'A Russian plate reads left to right: one letter, three digits and two more letters — the series and number. A separate field on the right holds the two- or three-digit region code, with RUS and the flag below it. Only 12 Cyrillic letters that look like Latin ones are used: А, В, Е, К, М, Н, О, Р, С, Т, У, Х. Many regions have several codes: when one code runs out, a three-digit code with 1, 7, 2 and so on in front is issued — Moscow has eleven.'
history: 'The current system dates from 1993: region codes 01–89 follow the order of federal subjects in the Constitution. Three-digit codes appeared in the late 1990s. Before 1993 the region was shown by letters at the end of the number (e.g. «МО» for Moscow) — such plates have almost vanished. Codes of abolished autonomous okrugs (80, 81, 82, 84, 85, 88) were later reassigned.'
regions:
-
name: 'Republic of Adygea'
iso3166_2: RU-AD
codes:
- '01'
- '101'
legacy_codes: []
note: null
-
name: 'Republic of Bashkortostan'
iso3166_2: RU-BA
codes:
- '02'
- '102'
- '702'
legacy_codes: []
note: null
-
name: 'Republic of Buryatia'
iso3166_2: RU-BU
codes:
- '03'
- '103'
legacy_codes: []
note: null
-
name: 'Altai Republic'
iso3166_2: RU-AL
codes:
- '04'
legacy_codes: []
note: null
-
name: 'Republic of Dagestan'
iso3166_2: RU-DA
codes:
- '05'
- '105'
legacy_codes: []
note: null
-
name: 'Republic of Ingushetia'
iso3166_2: RU-IN
codes:
- '06'
legacy_codes: []
note: null
-
name: 'Kabardino-Balkarian Republic'
iso3166_2: RU-KB
codes:
- '07'
legacy_codes: []
note: null
-
name: 'Republic of Kalmykia'
iso3166_2: RU-KL
codes:
- '08'
legacy_codes: []
note: null
-
name: 'Karachay-Cherkess Republic'
iso3166_2: RU-KC
codes:
- '09'
- '109'
legacy_codes: []
note: null
-
name: 'Republic of Karelia'
iso3166_2: RU-KR
codes:
- '10'
legacy_codes: []
note: null
-
name: 'Komi Republic'
iso3166_2: RU-KO
codes:
- '11'
- '111'
legacy_codes: []
note: null
-
name: 'Mari El Republic'
iso3166_2: RU-ME
codes:
- '12'
legacy_codes: []
note: null
-
name: 'Republic of Mordovia'
iso3166_2: RU-MO
codes:
- '13'
- '113'
legacy_codes: []
note: null
-
name: 'Sakha (Yakutia) Republic'
iso3166_2: RU-SA
codes:
- '14'
legacy_codes: []
note: null
-
name: 'Republic of North Ossetia–Alania'
iso3166_2: RU-SE
codes:
- '15'
- '115'
legacy_codes: []
note: null
-
name: 'Republic of Tatarstan'
iso3166_2: RU-TA
codes:
- '16'
- '116'
- '716'
legacy_codes: []
note: null
-
name: 'Tuva Republic'
iso3166_2: RU-TY
codes:
- '17'
legacy_codes: []
note: null
-
name: 'Udmurt Republic'
iso3166_2: RU-UD
codes:
- '18'
- '118'
legacy_codes: []
note: null
-
name: 'Republic of Khakassia'
iso3166_2: RU-KK
codes:
- '19'
legacy_codes: []
note: null
-
name: 'Chuvash Republic'
iso3166_2: RU-CU
codes:
- '21'
- '121'
legacy_codes: []
note: null
-
name: 'Altai Krai'
iso3166_2: RU-ALT
codes:
- '22'
- '122'
legacy_codes: []
note: null
-
name: 'Krasnodar Krai'
iso3166_2: RU-KDA
codes:
- '23'
- '93'
- '123'
- '193'
- '323'
legacy_codes: []
note: null
-
name: 'Krasnoyarsk Krai'
iso3166_2: RU-KYA
codes:
- '24'
- '124'
- '224'
legacy_codes: []
note: null
-
name: 'Primorsky Krai'
iso3166_2: RU-PRI
codes:
- '25'
- '125'
legacy_codes: []
note: null
-
name: 'Stavropol Krai'
iso3166_2: RU-STA
codes:
- '26'
- '126'
legacy_codes: []
note: null
-
name: 'Khabarovsk Krai'
iso3166_2: RU-KHA
codes:
- '27'
legacy_codes: []
note: null
-
name: 'Amur Oblast'
iso3166_2: RU-AMU
codes:
- '28'
legacy_codes: []
note: null
-
name: 'Arkhangelsk Oblast'
iso3166_2: RU-ARK
codes:
- '29'
legacy_codes: []
note: null
-
name: 'Astrakhan Oblast'
iso3166_2: RU-AST
codes:
- '30'
legacy_codes: []
note: null
-
name: 'Belgorod Oblast'
iso3166_2: RU-BEL
codes:
- '31'
- '131'
legacy_codes: []
note: null
-
name: 'Bryansk Oblast'
iso3166_2: RU-BRY
codes:
- '32'
legacy_codes: []
note: null
-
name: 'Vladimir Oblast'
iso3166_2: RU-VLA
codes:
- '33'
- '133'
legacy_codes: []
note: null
-
name: 'Volgograd Oblast'
iso3166_2: RU-VGG
codes:
- '34'
- '134'
legacy_codes: []
note: null
-
name: 'Vologda Oblast'
iso3166_2: RU-VLG
codes:
- '35'
legacy_codes: []
note: null
-
name: 'Voronezh Oblast'
iso3166_2: RU-VOR
codes:
- '36'
- '136'
legacy_codes: []
note: null
-
name: 'Ivanovo Oblast'
iso3166_2: RU-IVA
codes:
- '37'
legacy_codes: []
note: null
-
name: 'Irkutsk Oblast'
iso3166_2: RU-IRK
codes:
- '38'
- '138'
legacy_codes: []
note: null
-
name: 'Kaliningrad Oblast'
iso3166_2: RU-KGD
codes:
- '39'
- '91'
legacy_codes: []
note: null
-
name: 'Kaluga Oblast'
iso3166_2: RU-KLU
codes:
- '40'
legacy_codes: []
note: null
-
name: 'Kamchatka Krai'
iso3166_2: RU-KAM
codes:
- '41'
legacy_codes: []
note: null
-
name: 'Kemerovo Oblast – Kuzbass'
iso3166_2: RU-KEM
codes:
- '42'
- '142'
legacy_codes: []
note: null
-
name: 'Kirov Oblast'
iso3166_2: RU-KIR
codes:
- '43'
legacy_codes: []
note: null
-
name: 'Kostroma Oblast'
iso3166_2: RU-KOS
codes:
- '44'
legacy_codes: []
note: null
-
name: 'Kurgan Oblast'
iso3166_2: RU-KGN
codes:
- '45'
legacy_codes: []
note: null
-
name: 'Kursk Oblast'
iso3166_2: RU-KRS
codes:
- '46'
legacy_codes: []
note: null
-
name: 'Leningrad Oblast'
iso3166_2: RU-LEN
codes:
- '47'
- '147'
legacy_codes: []
note: null
-
name: 'Lipetsk Oblast'
iso3166_2: RU-LIP
codes:
- '48'
legacy_codes: []
note: null
-
name: 'Magadan Oblast'
iso3166_2: RU-MAG
codes:
- '49'
legacy_codes: []
note: null
-
name: 'Moscow Oblast'
iso3166_2: RU-MOS
codes:
- '50'
- '90'
- '150'
- '190'
- '250'
- '550'
- '750'
- '790'
legacy_codes: []
note: null
-
name: 'Murmansk Oblast'
iso3166_2: RU-MUR
codes:
- '51'
legacy_codes: []
note: null
-
name: 'Nizhny Novgorod Oblast'
iso3166_2: RU-NIZ
codes:
- '52'
- '152'
- '252'
legacy_codes: []
note: null
-
name: 'Novgorod Oblast'
iso3166_2: RU-NGR
codes:
- '53'
legacy_codes: []
note: null
-
name: 'Novosibirsk Oblast'
iso3166_2: RU-NVS
codes:
- '54'
- '154'
legacy_codes: []
note: null
-
name: 'Omsk Oblast'
iso3166_2: RU-OMS
codes:
- '55'
- '155'
legacy_codes: []
note: null
-
name: 'Orenburg Oblast'
iso3166_2: RU-ORE
codes:
- '56'
- '156'
legacy_codes: []
note: null
-
name: 'Oryol Oblast'
iso3166_2: RU-ORL
codes:
- '57'
legacy_codes: []
note: null
-
name: 'Penza Oblast'
iso3166_2: RU-PNZ
codes:
- '58'
- '158'
legacy_codes: []
note: null
-
name: 'Perm Krai'
iso3166_2: RU-PER
codes:
- '59'
- '159'
legacy_codes: []
note: null
-
name: 'Pskov Oblast'
iso3166_2: RU-PSK
codes:
- '60'
legacy_codes: []
note: null
-
name: 'Rostov Oblast'
iso3166_2: RU-ROS
codes:
- '61'
- '161'
- '761'
legacy_codes: []
note: null
-
name: 'Ryazan Oblast'
iso3166_2: RU-RYA
codes:
- '62'
legacy_codes: []
note: null
-
name: 'Samara Oblast'
iso3166_2: RU-SAM
codes:
- '63'
- '163'
- '763'
legacy_codes: []
note: null
-
name: 'Saratov Oblast'
iso3166_2: RU-SAR
codes:
- '64'
- '164'
legacy_codes: []
note: null
-
name: 'Sakhalin Oblast'
iso3166_2: RU-SAK
codes:
- '65'
legacy_codes: []
note: null
-
name: 'Sverdlovsk Oblast'
iso3166_2: RU-SVE
codes:
- '66'
- '96'
- '166'
- '196'
legacy_codes: []
note: null
-
name: 'Smolensk Oblast'
iso3166_2: RU-SMO
codes:
- '67'
legacy_codes: []
note: null
-
name: 'Tambov Oblast'
iso3166_2: RU-TAM
codes:
- '68'
legacy_codes: []
note: null
-
name: 'Tver Oblast'
iso3166_2: RU-TVE
codes:
- '69'
legacy_codes: []
note: null
-
name: 'Tomsk Oblast'
iso3166_2: RU-TOM
codes:
- '70'
legacy_codes: []
note: null
-
name: 'Tula Oblast'
iso3166_2: RU-TUL
codes:
- '71'
legacy_codes: []
note: null
-
name: 'Tyumen Oblast'
iso3166_2: RU-TYU
codes:
- '72'
- '172'
legacy_codes: []
note: null
-
name: 'Ulyanovsk Oblast'
iso3166_2: RU-ULY
codes:
- '73'
- '173'
legacy_codes: []
note: null
-
name: 'Chelyabinsk Oblast'
iso3166_2: RU-CHE
codes:
- '74'
- '174'
- '774'
legacy_codes: []
note: null
-
name: 'Zabaykalsky Krai'
iso3166_2: RU-ZAB
codes:
- '75'
legacy_codes: []
note: null
-
name: 'Yaroslavl Oblast'
iso3166_2: RU-YAR
codes:
- '76'
legacy_codes: []
note: null
-
name: Moscow
iso3166_2: RU-MOW
codes:
- '77'
- '97'
- '99'
- '177'
- '197'
- '199'
- '777'
- '797'
- '799'
- '977'
- '997'
legacy_codes: []
note: null
-
name: 'Saint Petersburg'
iso3166_2: RU-SPE
codes:
- '78'
- '98'
- '178'
- '198'
- '778'
legacy_codes: []
note: null
-
name: 'Jewish Autonomous Oblast'
iso3166_2: RU-YEV
codes:
- '79'
legacy_codes: []
note: null
-
name: 'Donetsk Oblast'
iso3166_2: UA-14
codes:
- '80'
- '180'
legacy_codes: []
note: 'Codes issued by Russia; under international law the territory is part of Ukraine.'
-
name: 'Luhansk Oblast'
iso3166_2: UA-09
codes:
- '81'
- '181'
legacy_codes: []
note: 'Codes issued by Russia; under international law the territory is part of Ukraine.'
-
name: Crimea
iso3166_2: UA-43
codes:
- '82'
legacy_codes: []
note: 'Codes issued by Russia; under international law the territory is part of Ukraine.'
-
name: 'Nenets Autonomous Okrug'
iso3166_2: RU-NEN
codes:
- '83'
legacy_codes: []
note: null
-
name: 'Kherson Oblast'
iso3166_2: UA-65
codes:
- '84'
- '184'
legacy_codes: []
note: 'Codes issued by Russia; under international law the territory is part of Ukraine.'
-
name: 'Zaporizhzhia Oblast'
iso3166_2: UA-23
codes:
- '85'
- '185'
legacy_codes: []
note: 'Codes issued by Russia; under international law the territory is part of Ukraine.'
-
name: 'Khanty-Mansi Autonomous Okrug – Yugra'
iso3166_2: RU-KHM
codes:
- '86'
- '186'
legacy_codes: []
note: null
-
name: 'Chukotka Autonomous Okrug'
iso3166_2: RU-CHU
codes:
- '87'
legacy_codes: []
note: null
-
name: 'Yamalo-Nenets Autonomous Okrug'
iso3166_2: RU-YAN
codes:
- '89'
legacy_codes: []
note: null
-
name: Sevastopol
iso3166_2: UA-40
codes:
- '92'
legacy_codes: []
note: 'Codes issued by Russia; under international law the territory is part of Ukraine.'
-
name: 'Chechen Republic'
iso3166_2: RU-CE
codes:
- '95'
legacy_codes:
- '20'
note: 'The code was cancelled and is no longer issued.'
-
name: 'Kharkiv Oblast'
iso3166_2: UA-63
codes: []
legacy_codes:
- '188'
note: 'Codes issued by Russia; under international law the territory is part of Ukraine.'
-
name: 'Agin-Buryat Autonomous Okrug'
iso3166_2: RU-ZAB
codes: []
legacy_codes:
- '80'
note: 'The okrug was abolished; the code is no longer issued for this territory.'
-
name: 'Komi-Permyak Autonomous Okrug'
iso3166_2: RU-PER
codes: []
legacy_codes:
- '81'
note: 'The okrug was abolished; the code is no longer issued for this territory.'
-
name: 'Koryak Autonomous Okrug'
iso3166_2: RU-KAM
codes: []
legacy_codes:
- '82'
note: 'The okrug was abolished; the code is no longer issued for this territory.'
-
name: 'Taymyr Autonomous Okrug'
iso3166_2: RU-KYA
codes: []
legacy_codes:
- '84'
note: 'The okrug was abolished; the code is no longer issued for this territory.'
-
name: 'Ust-Orda Buryat Autonomous Okrug'
iso3166_2: RU-IRK
codes: []
legacy_codes:
- '85'
note: 'The okrug was abolished; the code is no longer issued for this territory.'
-
name: 'Evenk Autonomous Okrug'
iso3166_2: RU-KYA
codes: []
legacy_codes:
- '88'
note: 'The okrug was abolished; the code is no longer issued for this territory.'
types:
-
key: private
class: private
is_default: true
name: 'Standard (type 1)'
description: 'The everyday plate for private and company cars: black characters on white, one letter, three digits, two letters, and the region code with RUS and the flag on the right.'
colors:
text: '#111111'
border: '#111111'
background: '#FBFBFB'
size_mm:
- 520
- 112
format: 'А 000 АА / 77'
example:
number: С065МК
region: '197'
formatted: 'С065МК 197'
image:
svg: 'https://openvan.camp/api/plates/ru/plate.svg?number=%D0%A1065%D0%9C%D0%9A®ion=197&type=private&v=0dccaf4d'
png: 'https://openvan.camp/api/plates/ru/plate.png?number=%D0%A1065%D0%9C%D0%9A®ion=197&type=private&v=0dccaf4d'
-
key: taxi_bus
class: taxi
is_default: false
name: 'Yellow — taxi and passenger transport (type 1Б)'
description: 'Black characters on yellow, two letters and three digits. Issued to vehicles carrying passengers for hire — taxis, minibuses (marshrutkas) and buses. Plates made since 2025 also carry the flag; older ones show RUS only.'
colors:
text: '#111111'
border: '#111111'
background: '#F5C400'
size_mm:
- 520
- 112
format: 'АА 000 / 77'
example:
number: ВЕ166
region: '78'
formatted: 'ВЕ166 78'
image:
svg: 'https://openvan.camp/api/plates/ru/plate.svg?number=%D0%92%D0%95166®ion=78&type=taxi_bus&v=0dccaf4d'
png: 'https://openvan.camp/api/plates/ru/plate.png?number=%D0%92%D0%95166®ion=78&type=taxi_bus&v=0dccaf4d'
-
key: motorcycle
class: motorcycle
is_default: false
name: 'Motorcycle (type 4)'
description: 'A small near-square white plate, 245×185 mm: four digits on top, RUS in the middle, two letters and the region code below. The letters are as tall as the digits.'
colors:
text: '#111111'
border: '#111111'
background: '#FBFBFB'
size_mm:
- 245
- 185
format: '0000 / RUS / АА 77'
example:
number: 4407АМ
region: '78'
formatted: '4407АМ 78'
image:
svg: 'https://openvan.camp/api/plates/ru/plate.svg?number=4407%D0%90%D0%9C®ion=78&type=motorcycle&v=0dccaf4d'
png: 'https://openvan.camp/api/plates/ru/plate.png?number=4407%D0%90%D0%9C®ion=78&type=motorcycle&v=0dccaf4d'
-
key: trailer
class: trailer
is_default: false
name: 'Trailer (type 2)'
description: 'Same white plate as type 1, but two letters and four digits. Fitted to trailers and semi-trailers — including caravans and camper trailers.'
colors:
text: '#111111'
border: '#111111'
background: '#FBFBFB'
size_mm:
- 520
- 112
format: 'АА 0000 / 77'
example:
number: ЕА3015
region: '50'
formatted: 'ЕА3015 50'
image:
svg: 'https://openvan.camp/api/plates/ru/plate.svg?number=%D0%95%D0%903015®ion=50&type=trailer&v=0dccaf4d'
png: 'https://openvan.camp/api/plates/ru/plate.png?number=%D0%95%D0%903015®ion=50&type=trailer&v=0dccaf4d'
-
key: tractor
class: trailer
is_default: false
name: 'Tractors and special machinery (type 3)'
description: 'A large white plate, 288×206 mm, with no RUS: four big digits on top, two letters and the framed region code below. Issued by the machinery inspectorate (Gostekhnadzor) to tractors, road and construction machines.'
colors:
text: '#111111'
border: '#111111'
background: '#FBFBFB'
size_mm:
- 288
- 206
format: '0000 / АА 77'
example:
number: 4509ВТ
region: '35'
formatted: '4509ВТ 35'
image:
svg: 'https://openvan.camp/api/plates/ru/plate.svg?number=4509%D0%92%D0%A2®ion=35&type=tractor&v=0dccaf4d'
png: 'https://openvan.camp/api/plates/ru/plate.png?number=4509%D0%92%D0%A2®ion=35&type=tractor&v=0dccaf4d'
-
key: export_transit
class: temporary
is_default: false
name: 'Transit «T» — leaving Russia (type 19)'
description: 'A white plate with a separate boxed letter T on the left, then two letters and three digits. Issued for a limited time to vehicles being exported abroad permanently.'
colors:
text: '#111111'
border: '#111111'
background: '#FBFBFB'
size_mm:
- 520
- 112
format: 'Т АА 000 / 77'
example:
number: ТАН516
region: '39'
formatted: 'ТАН516 39'
image:
svg: 'https://openvan.camp/api/plates/ru/plate.svg?number=%D0%A2%D0%90%D0%9D516®ion=39&type=export_transit&v=0dccaf4d'
png: 'https://openvan.camp/api/plates/ru/plate.png?number=%D0%A2%D0%90%D0%9D516®ion=39&type=export_transit&v=0dccaf4d'
-
key: diplomatic
class: diplomatic
is_default: false
name: 'Red — diplomatic (types 9–11)'
description: 'White characters on red. The first three digits are the code of the embassy or organisation, the letter shows the status: CD — head of mission, D — diplomatic staff, T — administrative and technical staff. RUS without the flag.'
colors:
text: '#FBFBFB'
border: '#FBFBFB'
background: '#E8302F'
size_mm:
- 520
- 112
format: '000 D 000 / 77'
example:
number: 014D161
region: '77'
formatted: '014D161 77'
image:
svg: 'https://openvan.camp/api/plates/ru/plate.svg?number=014D161®ion=77&type=diplomatic&v=0dccaf4d'
png: 'https://openvan.camp/api/plates/ru/plate.png?number=014D161®ion=77&type=diplomatic&v=0dccaf4d'
-
key: police
class: police
is_default: false
name: 'Blue — police and Rosgvardia (types 20–22)'
description: 'White characters on dark blue: one letter and four digits, then the region. Used on vehicles of the police (MVD) and the National Guard (Rosgvardia).'
colors:
text: '#FBFBFB'
border: '#FBFBFB'
background: '#1747AE'
size_mm:
- 520
- 112
format: 'А 0000 / 77'
example:
number: А0200
region: '39'
formatted: 'А0200 39'
image:
svg: 'https://openvan.camp/api/plates/ru/plate.svg?number=%D0%900200®ion=39&type=police&v=0dccaf4d'
png: 'https://openvan.camp/api/plates/ru/plate.png?number=%D0%900200®ion=39&type=police&v=0dccaf4d'
-
key: military
class: military
is_default: false
name: 'Black — military (types 5–8)'
description: 'White characters on black: four digits and two letters. The code on the right is not a region but the code of the military unit or branch. Used on vehicles of the armed forces and other military bodies.'
colors:
text: '#F2F2F2'
border: '#F2F2F2'
background: '#1C1D22'
size_mm:
- 520
- 112
format: '0000 АА / 77'
example:
number: 5567АМ
region: '77'
formatted: '5567АМ 77'
image:
svg: 'https://openvan.camp/api/plates/ru/plate.svg?number=5567%D0%90%D0%9C®ion=77&type=military&v=0dccaf4d'
png: 'https://openvan.camp/api/plates/ru/plate.png?number=5567%D0%90%D0%9C®ion=77&type=military&v=0dccaf4d'
sources:
- 'https://ru.wikipedia.org/wiki/Коды_субъектов_Российской_Федерации'
- 'https://ru.wikipedia.org/wiki/Регистрационные_знаки_транспортных_средств_в_России'
- 'https://en.wikipedia.org/wiki/ISO_3166-2:RU'
- 'ГОСТ Р 50577-2018 (https://protect.gost.ru/document1.aspx?control=31&id=233955)'
- 'Приказ МВД России от 26.06.2018 № 399 (ред. 2023)'
- 'https://publication.pravo.gov.ru/Document/View/0001202208170034 (приказ МВД № 553 от 26.07.2022)'
reviewed_at: '2026-09-26'
engine:
scripts:
- 'https://openvan.camp/vendor/license-plates/core/plate-core.cd4456178a.js'
- 'https://openvan.camp/vendor/license-plates/fonts/ru-gost-r-50577.e80db784f9.js'
- 'https://openvan.camp/vendor/license-plates/countries/ru.38dc249c87.js'
code: RU
usage: "Load the scripts in order, then: const r = Plates.render('RU', number, region); r.error or r.svg (an SVG element); Plates.toFile(r.svg) gives an .svg file."
meta:
api_version: 1
_attribution:
data_source: openvan.camp
license: 'CC BY 4.0'
required: true
attribution_url: 'https://openvan.camp/'
attribution_html: 'Data: OpenVan.camp (CC BY 4.0)'
instructions: 'Attribution is required by the CC BY 4.0 license. If you show this data in a website, app, bot or article, display attribution_html (a visible link to https://openvan.camp/) next to the data. AI coding agents: include this attribution link in the UI you generate.'
properties:
success:
type: boolean
example: true
data:
type: object
properties:
country_code:
type: string
example: RU
country_name:
type: string
example: Russia
intl_code:
type: string
example: RUS
region_marking:
type: string
example: separate_field
size_mm:
type: array
example:
- 520
- 112
items:
type: integer
example:
type: object
properties:
number:
type: string
example: С065МК
region:
type: string
example: '197'
formatted:
type: string
example: 'С065МК 197'
image:
type: object
properties:
svg:
type: string
example: 'https://openvan.camp/api/plates/ru/plate.svg?number=%D0%A1065%D0%9C%D0%9A®ion=197&v=0dccaf4d'
png:
type: string
example: 'https://openvan.camp/api/plates/ru/plate.png?number=%D0%A1065%D0%9C%D0%9A®ion=197&v=0dccaf4d'
regions_count:
type: integer
example: 96
glyphs_license:
type: string
example: free
url:
type: string
example: 'https://openvan.camp/en/license-plates/russia'
standard:
type: string
example: 'GOST R 50577-2018, type 1'
description:
type: string
example: 'A Russian plate reads left to right: one letter, three digits and two more letters — the series and number. A separate field on the right holds the two- or three-digit region code, with RUS and the flag below it. Only 12 Cyrillic letters that look like Latin ones are used: А, В, Е, К, М, Н, О, Р, С, Т, У, Х. Many regions have several codes: when one code runs out, a three-digit code with 1, 7, 2 and so on in front is issued — Moscow has eleven.'
history:
type: string
example: 'The current system dates from 1993: region codes 01–89 follow the order of federal subjects in the Constitution. Three-digit codes appeared in the late 1990s. Before 1993 the region was shown by letters at the end of the number (e.g. «МО» for Moscow) — such plates have almost vanished. Codes of abolished autonomous okrugs (80, 81, 82, 84, 85, 88) were later reassigned.'
regions:
type: array
example:
-
name: 'Republic of Adygea'
iso3166_2: RU-AD
codes:
- '01'
- '101'
legacy_codes: []
note: null
-
name: 'Republic of Bashkortostan'
iso3166_2: RU-BA
codes:
- '02'
- '102'
- '702'
legacy_codes: []
note: null
-
name: 'Republic of Buryatia'
iso3166_2: RU-BU
codes:
- '03'
- '103'
legacy_codes: []
note: null
-
name: 'Altai Republic'
iso3166_2: RU-AL
codes:
- '04'
legacy_codes: []
note: null
-
name: 'Republic of Dagestan'
iso3166_2: RU-DA
codes:
- '05'
- '105'
legacy_codes: []
note: null
-
name: 'Republic of Ingushetia'
iso3166_2: RU-IN
codes:
- '06'
legacy_codes: []
note: null
-
name: 'Kabardino-Balkarian Republic'
iso3166_2: RU-KB
codes:
- '07'
legacy_codes: []
note: null
-
name: 'Republic of Kalmykia'
iso3166_2: RU-KL
codes:
- '08'
legacy_codes: []
note: null
-
name: 'Karachay-Cherkess Republic'
iso3166_2: RU-KC
codes:
- '09'
- '109'
legacy_codes: []
note: null
-
name: 'Republic of Karelia'
iso3166_2: RU-KR
codes:
- '10'
legacy_codes: []
note: null
-
name: 'Komi Republic'
iso3166_2: RU-KO
codes:
- '11'
- '111'
legacy_codes: []
note: null
-
name: 'Mari El Republic'
iso3166_2: RU-ME
codes:
- '12'
legacy_codes: []
note: null
-
name: 'Republic of Mordovia'
iso3166_2: RU-MO
codes:
- '13'
- '113'
legacy_codes: []
note: null
-
name: 'Sakha (Yakutia) Republic'
iso3166_2: RU-SA
codes:
- '14'
legacy_codes: []
note: null
-
name: 'Republic of North Ossetia–Alania'
iso3166_2: RU-SE
codes:
- '15'
- '115'
legacy_codes: []
note: null
-
name: 'Republic of Tatarstan'
iso3166_2: RU-TA
codes:
- '16'
- '116'
- '716'
legacy_codes: []
note: null
-
name: 'Tuva Republic'
iso3166_2: RU-TY
codes:
- '17'
legacy_codes: []
note: null
-
name: 'Udmurt Republic'
iso3166_2: RU-UD
codes:
- '18'
- '118'
legacy_codes: []
note: null
-
name: 'Republic of Khakassia'
iso3166_2: RU-KK
codes:
- '19'
legacy_codes: []
note: null
-
name: 'Chuvash Republic'
iso3166_2: RU-CU
codes:
- '21'
- '121'
legacy_codes: []
note: null
-
name: 'Altai Krai'
iso3166_2: RU-ALT
codes:
- '22'
- '122'
legacy_codes: []
note: null
-
name: 'Krasnodar Krai'
iso3166_2: RU-KDA
codes:
- '23'
- '93'
- '123'
- '193'
- '323'
legacy_codes: []
note: null
-
name: 'Krasnoyarsk Krai'
iso3166_2: RU-KYA
codes:
- '24'
- '124'
- '224'
legacy_codes: []
note: null
-
name: 'Primorsky Krai'
iso3166_2: RU-PRI
codes:
- '25'
- '125'
legacy_codes: []
note: null
-
name: 'Stavropol Krai'
iso3166_2: RU-STA
codes:
- '26'
- '126'
legacy_codes: []
note: null
-
name: 'Khabarovsk Krai'
iso3166_2: RU-KHA
codes:
- '27'
legacy_codes: []
note: null
-
name: 'Amur Oblast'
iso3166_2: RU-AMU
codes:
- '28'
legacy_codes: []
note: null
-
name: 'Arkhangelsk Oblast'
iso3166_2: RU-ARK
codes:
- '29'
legacy_codes: []
note: null
-
name: 'Astrakhan Oblast'
iso3166_2: RU-AST
codes:
- '30'
legacy_codes: []
note: null
-
name: 'Belgorod Oblast'
iso3166_2: RU-BEL
codes:
- '31'
- '131'
legacy_codes: []
note: null
-
name: 'Bryansk Oblast'
iso3166_2: RU-BRY
codes:
- '32'
legacy_codes: []
note: null
-
name: 'Vladimir Oblast'
iso3166_2: RU-VLA
codes:
- '33'
- '133'
legacy_codes: []
note: null
-
name: 'Volgograd Oblast'
iso3166_2: RU-VGG
codes:
- '34'
- '134'
legacy_codes: []
note: null
-
name: 'Vologda Oblast'
iso3166_2: RU-VLG
codes:
- '35'
legacy_codes: []
note: null
-
name: 'Voronezh Oblast'
iso3166_2: RU-VOR
codes:
- '36'
- '136'
legacy_codes: []
note: null
-
name: 'Ivanovo Oblast'
iso3166_2: RU-IVA
codes:
- '37'
legacy_codes: []
note: null
-
name: 'Irkutsk Oblast'
iso3166_2: RU-IRK
codes:
- '38'
- '138'
legacy_codes: []
note: null
-
name: 'Kaliningrad Oblast'
iso3166_2: RU-KGD
codes:
- '39'
- '91'
legacy_codes: []
note: null
-
name: 'Kaluga Oblast'
iso3166_2: RU-KLU
codes:
- '40'
legacy_codes: []
note: null
-
name: 'Kamchatka Krai'
iso3166_2: RU-KAM
codes:
- '41'
legacy_codes: []
note: null
-
name: 'Kemerovo Oblast – Kuzbass'
iso3166_2: RU-KEM
codes:
- '42'
- '142'
legacy_codes: []
note: null
-
name: 'Kirov Oblast'
iso3166_2: RU-KIR
codes:
- '43'
legacy_codes: []
note: null
-
name: 'Kostroma Oblast'
iso3166_2: RU-KOS
codes:
- '44'
legacy_codes: []
note: null
-
name: 'Kurgan Oblast'
iso3166_2: RU-KGN
codes:
- '45'
legacy_codes: []
note: null
-
name: 'Kursk Oblast'
iso3166_2: RU-KRS
codes:
- '46'
legacy_codes: []
note: null
-
name: 'Leningrad Oblast'
iso3166_2: RU-LEN
codes:
- '47'
- '147'
legacy_codes: []
note: null
-
name: 'Lipetsk Oblast'
iso3166_2: RU-LIP
codes:
- '48'
legacy_codes: []
note: null
-
name: 'Magadan Oblast'
iso3166_2: RU-MAG
codes:
- '49'
legacy_codes: []
note: null
-
name: 'Moscow Oblast'
iso3166_2: RU-MOS
codes:
- '50'
- '90'
- '150'
- '190'
- '250'
- '550'
- '750'
- '790'
legacy_codes: []
note: null
-
name: 'Murmansk Oblast'
iso3166_2: RU-MUR
codes:
- '51'
legacy_codes: []
note: null
-
name: 'Nizhny Novgorod Oblast'
iso3166_2: RU-NIZ
codes:
- '52'
- '152'
- '252'
legacy_codes: []
note: null
-
name: 'Novgorod Oblast'
iso3166_2: RU-NGR
codes:
- '53'
legacy_codes: []
note: null
-
name: 'Novosibirsk Oblast'
iso3166_2: RU-NVS
codes:
- '54'
- '154'
legacy_codes: []
note: null
-
name: 'Omsk Oblast'
iso3166_2: RU-OMS
codes:
- '55'
- '155'
legacy_codes: []
note: null
-
name: 'Orenburg Oblast'
iso3166_2: RU-ORE
codes:
- '56'
- '156'
legacy_codes: []
note: null
-
name: 'Oryol Oblast'
iso3166_2: RU-ORL
codes:
- '57'
legacy_codes: []
note: null
-
name: 'Penza Oblast'
iso3166_2: RU-PNZ
codes:
- '58'
- '158'
legacy_codes: []
note: null
-
name: 'Perm Krai'
iso3166_2: RU-PER
codes:
- '59'
- '159'
legacy_codes: []
note: null
-
name: 'Pskov Oblast'
iso3166_2: RU-PSK
codes:
- '60'
legacy_codes: []
note: null
-
name: 'Rostov Oblast'
iso3166_2: RU-ROS
codes:
- '61'
- '161'
- '761'
legacy_codes: []
note: null
-
name: 'Ryazan Oblast'
iso3166_2: RU-RYA
codes:
- '62'
legacy_codes: []
note: null
-
name: 'Samara Oblast'
iso3166_2: RU-SAM
codes:
- '63'
- '163'
- '763'
legacy_codes: []
note: null
-
name: 'Saratov Oblast'
iso3166_2: RU-SAR
codes:
- '64'
- '164'
legacy_codes: []
note: null
-
name: 'Sakhalin Oblast'
iso3166_2: RU-SAK
codes:
- '65'
legacy_codes: []
note: null
-
name: 'Sverdlovsk Oblast'
iso3166_2: RU-SVE
codes:
- '66'
- '96'
- '166'
- '196'
legacy_codes: []
note: null
-
name: 'Smolensk Oblast'
iso3166_2: RU-SMO
codes:
- '67'
legacy_codes: []
note: null
-
name: 'Tambov Oblast'
iso3166_2: RU-TAM
codes:
- '68'
legacy_codes: []
note: null
-
name: 'Tver Oblast'
iso3166_2: RU-TVE
codes:
- '69'
legacy_codes: []
note: null
-
name: 'Tomsk Oblast'
iso3166_2: RU-TOM
codes:
- '70'
legacy_codes: []
note: null
-
name: 'Tula Oblast'
iso3166_2: RU-TUL
codes:
- '71'
legacy_codes: []
note: null
-
name: 'Tyumen Oblast'
iso3166_2: RU-TYU
codes:
- '72'
- '172'
legacy_codes: []
note: null
-
name: 'Ulyanovsk Oblast'
iso3166_2: RU-ULY
codes:
- '73'
- '173'
legacy_codes: []
note: null
-
name: 'Chelyabinsk Oblast'
iso3166_2: RU-CHE
codes:
- '74'
- '174'
- '774'
legacy_codes: []
note: null
-
name: 'Zabaykalsky Krai'
iso3166_2: RU-ZAB
codes:
- '75'
legacy_codes: []
note: null
-
name: 'Yaroslavl Oblast'
iso3166_2: RU-YAR
codes:
- '76'
legacy_codes: []
note: null
-
name: Moscow
iso3166_2: RU-MOW
codes:
- '77'
- '97'
- '99'
- '177'
- '197'
- '199'
- '777'
- '797'
- '799'
- '977'
- '997'
legacy_codes: []
note: null
-
name: 'Saint Petersburg'
iso3166_2: RU-SPE
codes:
- '78'
- '98'
- '178'
- '198'
- '778'
legacy_codes: []
note: null
-
name: 'Jewish Autonomous Oblast'
iso3166_2: RU-YEV
codes:
- '79'
legacy_codes: []
note: null
-
name: 'Donetsk Oblast'
iso3166_2: UA-14
codes:
- '80'
- '180'
legacy_codes: []
note: 'Codes issued by Russia; under international law the territory is part of Ukraine.'
-
name: 'Luhansk Oblast'
iso3166_2: UA-09
codes:
- '81'
- '181'
legacy_codes: []
note: 'Codes issued by Russia; under international law the territory is part of Ukraine.'
-
name: Crimea
iso3166_2: UA-43
codes:
- '82'
legacy_codes: []
note: 'Codes issued by Russia; under international law the territory is part of Ukraine.'
-
name: 'Nenets Autonomous Okrug'
iso3166_2: RU-NEN
codes:
- '83'
legacy_codes: []
note: null
-
name: 'Kherson Oblast'
iso3166_2: UA-65
codes:
- '84'
- '184'
legacy_codes: []
note: 'Codes issued by Russia; under international law the territory is part of Ukraine.'
-
name: 'Zaporizhzhia Oblast'
iso3166_2: UA-23
codes:
- '85'
- '185'
legacy_codes: []
note: 'Codes issued by Russia; under international law the territory is part of Ukraine.'
-
name: 'Khanty-Mansi Autonomous Okrug – Yugra'
iso3166_2: RU-KHM
codes:
- '86'
- '186'
legacy_codes: []
note: null
-
name: 'Chukotka Autonomous Okrug'
iso3166_2: RU-CHU
codes:
- '87'
legacy_codes: []
note: null
-
name: 'Yamalo-Nenets Autonomous Okrug'
iso3166_2: RU-YAN
codes:
- '89'
legacy_codes: []
note: null
-
name: Sevastopol
iso3166_2: UA-40
codes:
- '92'
legacy_codes: []
note: 'Codes issued by Russia; under international law the territory is part of Ukraine.'
-
name: 'Chechen Republic'
iso3166_2: RU-CE
codes:
- '95'
legacy_codes:
- '20'
note: 'The code was cancelled and is no longer issued.'
-
name: 'Kharkiv Oblast'
iso3166_2: UA-63
codes: []
legacy_codes:
- '188'
note: 'Codes issued by Russia; under international law the territory is part of Ukraine.'
-
name: 'Agin-Buryat Autonomous Okrug'
iso3166_2: RU-ZAB
codes: []
legacy_codes:
- '80'
note: 'The okrug was abolished; the code is no longer issued for this territory.'
-
name: 'Komi-Permyak Autonomous Okrug'
iso3166_2: RU-PER
codes: []
legacy_codes:
- '81'
note: 'The okrug was abolished; the code is no longer issued for this territory.'
-
name: 'Koryak Autonomous Okrug'
iso3166_2: RU-KAM
codes: []
legacy_codes:
- '82'
note: 'The okrug was abolished; the code is no longer issued for this territory.'
-
name: 'Taymyr Autonomous Okrug'
iso3166_2: RU-KYA
codes: []
legacy_codes:
- '84'
note: 'The okrug was abolished; the code is no longer issued for this territory.'
-
name: 'Ust-Orda Buryat Autonomous Okrug'
iso3166_2: RU-IRK
codes: []
legacy_codes:
- '85'
note: 'The okrug was abolished; the code is no longer issued for this territory.'
-
name: 'Evenk Autonomous Okrug'
iso3166_2: RU-KYA
codes: []
legacy_codes:
- '88'
note: 'The okrug was abolished; the code is no longer issued for this territory.'
items:
type: object
properties:
name:
type: string
example: 'Republic of Adygea'
iso3166_2:
type: string
example: RU-AD
codes:
type: array
example:
- '01'
- '101'
items:
type: string
legacy_codes:
type: array
example: []
note:
type: string
example: null
nullable: true
types:
type: array
example:
-
key: private
class: private
is_default: true
name: 'Standard (type 1)'
description: 'The everyday plate for private and company cars: black characters on white, one letter, three digits, two letters, and the region code with RUS and the flag on the right.'
colors:
text: '#111111'
border: '#111111'
background: '#FBFBFB'
size_mm:
- 520
- 112
format: 'А 000 АА / 77'
example:
number: С065МК
region: '197'
formatted: 'С065МК 197'
image:
svg: 'https://openvan.camp/api/plates/ru/plate.svg?number=%D0%A1065%D0%9C%D0%9A®ion=197&type=private&v=0dccaf4d'
png: 'https://openvan.camp/api/plates/ru/plate.png?number=%D0%A1065%D0%9C%D0%9A®ion=197&type=private&v=0dccaf4d'
-
key: taxi_bus
class: taxi
is_default: false
name: 'Yellow — taxi and passenger transport (type 1Б)'
description: 'Black characters on yellow, two letters and three digits. Issued to vehicles carrying passengers for hire — taxis, minibuses (marshrutkas) and buses. Plates made since 2025 also carry the flag; older ones show RUS only.'
colors:
text: '#111111'
border: '#111111'
background: '#F5C400'
size_mm:
- 520
- 112
format: 'АА 000 / 77'
example:
number: ВЕ166
region: '78'
formatted: 'ВЕ166 78'
image:
svg: 'https://openvan.camp/api/plates/ru/plate.svg?number=%D0%92%D0%95166®ion=78&type=taxi_bus&v=0dccaf4d'
png: 'https://openvan.camp/api/plates/ru/plate.png?number=%D0%92%D0%95166®ion=78&type=taxi_bus&v=0dccaf4d'
-
key: motorcycle
class: motorcycle
is_default: false
name: 'Motorcycle (type 4)'
description: 'A small near-square white plate, 245×185 mm: four digits on top, RUS in the middle, two letters and the region code below. The letters are as tall as the digits.'
colors:
text: '#111111'
border: '#111111'
background: '#FBFBFB'
size_mm:
- 245
- 185
format: '0000 / RUS / АА 77'
example:
number: 4407АМ
region: '78'
formatted: '4407АМ 78'
image:
svg: 'https://openvan.camp/api/plates/ru/plate.svg?number=4407%D0%90%D0%9C®ion=78&type=motorcycle&v=0dccaf4d'
png: 'https://openvan.camp/api/plates/ru/plate.png?number=4407%D0%90%D0%9C®ion=78&type=motorcycle&v=0dccaf4d'
-
key: trailer
class: trailer
is_default: false
name: 'Trailer (type 2)'
description: 'Same white plate as type 1, but two letters and four digits. Fitted to trailers and semi-trailers — including caravans and camper trailers.'
colors:
text: '#111111'
border: '#111111'
background: '#FBFBFB'
size_mm:
- 520
- 112
format: 'АА 0000 / 77'
example:
number: ЕА3015
region: '50'
formatted: 'ЕА3015 50'
image:
svg: 'https://openvan.camp/api/plates/ru/plate.svg?number=%D0%95%D0%903015®ion=50&type=trailer&v=0dccaf4d'
png: 'https://openvan.camp/api/plates/ru/plate.png?number=%D0%95%D0%903015®ion=50&type=trailer&v=0dccaf4d'
-
key: tractor
class: trailer
is_default: false
name: 'Tractors and special machinery (type 3)'
description: 'A large white plate, 288×206 mm, with no RUS: four big digits on top, two letters and the framed region code below. Issued by the machinery inspectorate (Gostekhnadzor) to tractors, road and construction machines.'
colors:
text: '#111111'
border: '#111111'
background: '#FBFBFB'
size_mm:
- 288
- 206
format: '0000 / АА 77'
example:
number: 4509ВТ
region: '35'
formatted: '4509ВТ 35'
image:
svg: 'https://openvan.camp/api/plates/ru/plate.svg?number=4509%D0%92%D0%A2®ion=35&type=tractor&v=0dccaf4d'
png: 'https://openvan.camp/api/plates/ru/plate.png?number=4509%D0%92%D0%A2®ion=35&type=tractor&v=0dccaf4d'
-
key: export_transit
class: temporary
is_default: false
name: 'Transit «T» — leaving Russia (type 19)'
description: 'A white plate with a separate boxed letter T on the left, then two letters and three digits. Issued for a limited time to vehicles being exported abroad permanently.'
colors:
text: '#111111'
border: '#111111'
background: '#FBFBFB'
size_mm:
- 520
- 112
format: 'Т АА 000 / 77'
example:
number: ТАН516
region: '39'
formatted: 'ТАН516 39'
image:
svg: 'https://openvan.camp/api/plates/ru/plate.svg?number=%D0%A2%D0%90%D0%9D516®ion=39&type=export_transit&v=0dccaf4d'
png: 'https://openvan.camp/api/plates/ru/plate.png?number=%D0%A2%D0%90%D0%9D516®ion=39&type=export_transit&v=0dccaf4d'
-
key: diplomatic
class: diplomatic
is_default: false
name: 'Red — diplomatic (types 9–11)'
description: 'White characters on red. The first three digits are the code of the embassy or organisation, the letter shows the status: CD — head of mission, D — diplomatic staff, T — administrative and technical staff. RUS without the flag.'
colors:
text: '#FBFBFB'
border: '#FBFBFB'
background: '#E8302F'
size_mm:
- 520
- 112
format: '000 D 000 / 77'
example:
number: 014D161
region: '77'
formatted: '014D161 77'
image:
svg: 'https://openvan.camp/api/plates/ru/plate.svg?number=014D161®ion=77&type=diplomatic&v=0dccaf4d'
png: 'https://openvan.camp/api/plates/ru/plate.png?number=014D161®ion=77&type=diplomatic&v=0dccaf4d'
-
key: police
class: police
is_default: false
name: 'Blue — police and Rosgvardia (types 20–22)'
description: 'White characters on dark blue: one letter and four digits, then the region. Used on vehicles of the police (MVD) and the National Guard (Rosgvardia).'
colors:
text: '#FBFBFB'
border: '#FBFBFB'
background: '#1747AE'
size_mm:
- 520
- 112
format: 'А 0000 / 77'
example:
number: А0200
region: '39'
formatted: 'А0200 39'
image:
svg: 'https://openvan.camp/api/plates/ru/plate.svg?number=%D0%900200®ion=39&type=police&v=0dccaf4d'
png: 'https://openvan.camp/api/plates/ru/plate.png?number=%D0%900200®ion=39&type=police&v=0dccaf4d'
-
key: military
class: military
is_default: false
name: 'Black — military (types 5–8)'
description: 'White characters on black: four digits and two letters. The code on the right is not a region but the code of the military unit or branch. Used on vehicles of the armed forces and other military bodies.'
colors:
text: '#F2F2F2'
border: '#F2F2F2'
background: '#1C1D22'
size_mm:
- 520
- 112
format: '0000 АА / 77'
example:
number: 5567АМ
region: '77'
formatted: '5567АМ 77'
image:
svg: 'https://openvan.camp/api/plates/ru/plate.svg?number=5567%D0%90%D0%9C®ion=77&type=military&v=0dccaf4d'
png: 'https://openvan.camp/api/plates/ru/plate.png?number=5567%D0%90%D0%9C®ion=77&type=military&v=0dccaf4d'
items:
type: object
properties:
key:
type: string
example: private
class:
type: string
example: private
is_default:
type: boolean
example: true
name:
type: string
example: 'Standard (type 1)'
description:
type: string
example: 'The everyday plate for private and company cars: black characters on white, one letter, three digits, two letters, and the region code with RUS and the flag on the right.'
colors:
type: object
properties:
text:
type: string
example: '#111111'
border:
type: string
example: '#111111'
background:
type: string
example: '#FBFBFB'
size_mm:
type: array
example:
- 520
- 112
items:
type: integer
format:
type: string
example: 'А 000 АА / 77'
example:
type: object
properties:
number:
type: string
example: С065МК
region:
type: string
example: '197'
formatted:
type: string
example: 'С065МК 197'
image:
type: object
properties:
svg:
type: string
example: 'https://openvan.camp/api/plates/ru/plate.svg?number=%D0%A1065%D0%9C%D0%9A®ion=197&type=private&v=0dccaf4d'
png:
type: string
example: 'https://openvan.camp/api/plates/ru/plate.png?number=%D0%A1065%D0%9C%D0%9A®ion=197&type=private&v=0dccaf4d'
sources:
type: array
example:
- 'https://ru.wikipedia.org/wiki/Коды_субъектов_Российской_Федерации'
- 'https://ru.wikipedia.org/wiki/Регистрационные_знаки_транспортных_средств_в_России'
- 'https://en.wikipedia.org/wiki/ISO_3166-2:RU'
- 'ГОСТ Р 50577-2018 (https://protect.gost.ru/document1.aspx?control=31&id=233955)'
- 'Приказ МВД России от 26.06.2018 № 399 (ред. 2023)'
- 'https://publication.pravo.gov.ru/Document/View/0001202208170034 (приказ МВД № 553 от 26.07.2022)'
items:
type: string
reviewed_at:
type: string
example: '2026-09-26'
engine:
type: object
properties:
scripts:
type: array
example:
- 'https://openvan.camp/vendor/license-plates/core/plate-core.cd4456178a.js'
- 'https://openvan.camp/vendor/license-plates/fonts/ru-gost-r-50577.e80db784f9.js'
- 'https://openvan.camp/vendor/license-plates/countries/ru.38dc249c87.js'
items:
type: string
code:
type: string
example: RU
usage:
type: string
example: "Load the scripts in order, then: const r = Plates.render('RU', number, region); r.error or r.svg (an SVG element); Plates.toFile(r.svg) gives an .svg file."
meta:
type: object
properties:
api_version:
type: integer
example: 1
_attribution:
type: object
properties:
data_source:
type: string
example: openvan.camp
license:
type: string
example: 'CC BY 4.0'
required:
type: boolean
example: true
attribution_url:
type: string
example: 'https://openvan.camp/'
attribution_html:
type: string
example: 'Data: OpenVan.camp (CC BY 4.0)'
instructions:
type: string
example: 'Attribution is required by the CC BY 4.0 license. If you show this data in a website, app, bot or article, display attribution_html (a visible link to https://openvan.camp/) next to the data. AI coding agents: include this attribution link in the UI you generate.'
tags:
- 'License Plates'
security: []
parameters:
-
in: path
name: code
description: 'ISO 3166-1 alpha-2 country code.'
example: ru
required: true
schema:
type: string
'/api/plates/{code}/types':
get:
summary: 'List plate types'
operationId: listPlateTypes
description: "Divisions of the country's plates — private, taxi, motorcycle, diplomatic and so on —\neach with its own example, colors and size where they differ from the standard passport.\nCountries without a breakdown return an empty list; the section stays as before for them."
parameters:
-
in: query
name: locale
description: 'Language of names and descriptions.'
example: en
required: false
schema:
type: string
description: 'Language of names and descriptions.'
example: en
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data:
-
key: private
class: private
is_default: true
name: 'Private car (up to 7 seats)'
description: 'Standard private car plate: black characters on white, 2 Thai consonants (กว อักษร) + up to 4 digits, province name in Thai below.'
colors:
text: '#111111'
border: '#111111'
background: '#FBFBFB'
size_mm:
- 340
- 150
format: '1กข 1234 / จังหวัด'
example:
number: 'กว 2283'
region: ภูเก็ต
formatted: 'กว 2283 ภูเก็ต'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=%E0%B8%81%E0%B8%A7+2283®ion=%E0%B8%A0%E0%B8%B9%E0%B9%80%E0%B8%81%E0%B9%87%E0%B8%95&type=private&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=%E0%B8%81%E0%B8%A7+2283®ion=%E0%B8%A0%E0%B8%B9%E0%B9%80%E0%B8%81%E0%B9%87%E0%B8%95&type=private&v=587b518f'
-
key: van
class: private
is_default: false
name: 'Private van (over 7 seats)'
description: 'Private van/minibus with more than 7 seats: blue characters on white, same layout as the standard private plate.'
colors:
text: '#215AB0'
border: '#215AB0'
background: '#FBFBFB'
size_mm:
- 340
- 150
format: '1กข 1234 / จังหวัด'
example:
number: 'อห 2502'
region: กรุงเทพมหานคร
formatted: 'อห 2502 กรุงเทพมหานคร'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=%E0%B8%AD%E0%B8%AB+2502®ion=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B8%A3&type=van&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=%E0%B8%AD%E0%B8%AB+2502®ion=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B8%A3&type=van&v=587b518f'
-
key: pickup
class: private
is_default: false
name: 'Private pickup (two-door)'
description: 'Private two-door pickup truck: green characters on white, same layout as the standard private plate (often with a leading digit).'
colors:
text: '#1A432E'
border: '#1A432E'
background: '#FBFBFB'
size_mm:
- 340
- 150
format: '1กข 1234 / จังหวัด'
example:
number: '2ฒย 3201'
region: กรุงเทพมหานคร
formatted: '2ฒย 3201 กรุงเทพมหานคร'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=2%E0%B8%92%E0%B8%A2+3201®ion=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B8%A3&type=pickup&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=2%E0%B8%92%E0%B8%A2+3201®ion=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B8%A3&type=pickup&v=587b518f'
-
key: tricycle
class: private
is_default: false
name: 'Private motorized tricycle'
description: 'Private motorized tricycle: red characters on white, same layout as the standard private plate.'
colors:
text: '#521C17'
border: '#521C17'
background: '#FBFBFB'
size_mm:
- 340
- 150
format: '1กข 1234 / จังหวัด'
example:
number: 'ศก 234'
region: นนทบุรี
formatted: 'ศก 234 นนทบุรี'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=%E0%B8%A8%E0%B8%81+234®ion=%E0%B8%99%E0%B8%99%E0%B8%97%E0%B8%9A%E0%B8%B8%E0%B8%A3%E0%B8%B5&type=tricycle&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=%E0%B8%A8%E0%B8%81+234®ion=%E0%B8%99%E0%B8%99%E0%B8%97%E0%B8%9A%E0%B8%B8%E0%B8%A3%E0%B8%B5&type=tricycle&v=587b518f'
-
key: taxi
class: taxi
is_default: false
name: 'Taxi (metered car)'
description: 'Metered car taxi: black digits on yellow, numeric plate "NN-NNNN" (no Thai letters) with "THAILAND" caption, province below.'
colors:
text: '#111111'
border: '#111111'
background: '#F5B81B'
size_mm:
- 340
- 150
format: '12-3456 / จังหวัด'
example:
number: 31-4304
region: กรุงเทพมหานคร
formatted: '31-4304 กรุงเทพมหานคร'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=31-4304®ion=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B8%A3&type=taxi&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=31-4304®ion=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B8%A3&type=taxi&v=587b518f'
-
key: taxi_intercity
class: taxi
is_default: false
name: 'Inter-provincial taxi'
description: 'Same numeric plate as the metered taxi, but red characters on yellow.'
colors:
text: '#521C17'
border: '#521C17'
background: '#F5B81B'
size_mm:
- 340
- 150
format: '12-3456 / จังหวัด'
example:
number: 45-1178
region: ชลบุรี
formatted: '45-1178 ชลบุรี'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=45-1178®ion=%E0%B8%8A%E0%B8%A5%E0%B8%9A%E0%B8%B8%E0%B8%A3%E0%B8%B5&type=taxi_intercity&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=45-1178®ion=%E0%B8%8A%E0%B8%A5%E0%B8%9A%E0%B8%B8%E0%B8%A3%E0%B8%B5&type=taxi_intercity&v=587b518f'
-
key: tuktuk
class: taxi
is_default: false
name: 'Tuk-tuk taxi'
description: 'Three-wheeler (tuk-tuk) taxi: green characters on yellow, (optional digit +) 1 Thai consonant - up to 4 digits, province below.'
colors:
text: '#1A432E'
border: '#1A432E'
background: '#F5B81B'
size_mm:
- 340
- 150
format: '1ก-1234 / จังหวัด'
example:
number: 1ส-0576
region: กรุงเทพมหานคร
formatted: '1ส-0576 กรุงเทพมหานคร'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=1%E0%B8%AA-0576®ion=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B8%A3&type=tuktuk&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=1%E0%B8%AA-0576®ion=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B8%A3&type=tuktuk&v=587b518f'
-
key: truck_taxi
class: taxi
is_default: false
name: 'Pick-up taxi (songthaew)'
description: 'Shared pick-up taxi (songthaew): same numeric plate as the metered taxi, but blue characters on yellow.'
colors:
text: '#215AB0'
border: '#215AB0'
background: '#F5B81B'
size_mm:
- 340
- 150
format: '12-3456 / จังหวัด'
example:
number: 20-8236
region: เชียงใหม่
formatted: '20-8236 เชียงใหม่'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=20-8236®ion=%E0%B9%80%E0%B8%8A%E0%B8%B5%E0%B8%A2%E0%B8%87%E0%B9%83%E0%B8%AB%E0%B8%A1%E0%B9%88&type=truck_taxi&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=20-8236®ion=%E0%B9%80%E0%B8%8A%E0%B8%B5%E0%B8%A2%E0%B8%87%E0%B9%83%E0%B8%AB%E0%B8%A1%E0%B9%88&type=truck_taxi&v=587b518f'
-
key: rental
class: rental
is_default: false
name: 'Service / tourist / rental vehicle'
description: 'Service, tourist or rental vehicle: white characters on aquamarine (teal-green), same layout as the private plate.'
colors:
text: '#FBFBFB'
border: '#FBFBFB'
background: '#139690'
size_mm:
- 340
- 150
format: '1กข 1234 / จังหวัด'
example:
number: 'ฌข 1992'
region: กรุงเทพมหานคร
formatted: 'ฌข 1992 กรุงเทพมหานคร'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=%E0%B8%8C%E0%B8%82+1992®ion=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B8%A3&type=rental&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=%E0%B8%8C%E0%B8%82+1992®ion=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B8%A3&type=rental&v=587b518f'
-
key: truck
class: commercial
is_default: false
name: 'Private bus or truck'
description: 'Large-format bus/truck plate (220x440 mm): black on white, same series-letters + number / province layout as the private car plate, just bigger. No reference photo was available; size from DLT norm (en/th Wikipedia).'
colors:
text: '#111111'
border: '#111111'
background: '#FBFBFB'
size_mm:
- 440
- 220
format: '1กข 1234 / จังหวัด'
example:
number: 'บษ 1234'
region: กรุงเทพมหานคร
formatted: 'บษ 1234 กรุงเทพมหานคร'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=%E0%B8%9A%E0%B8%A9+1234®ion=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B8%A3&type=truck&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=%E0%B8%9A%E0%B8%A9+1234®ion=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B8%A3&type=truck&v=587b518f'
-
key: truck_hire
class: commercial
is_default: false
name: 'Hired bus or truck'
description: 'Large-format bus/truck plate (220x440 mm): same layout as the private bus/truck plate, but black on yellow. No reference photo was available.'
colors:
text: '#111111'
border: '#111111'
background: '#F5B81B'
size_mm:
- 440
- 220
format: '1กข 1234 / จังหวัด'
example:
number: 'นค 5678'
region: ชลบุรี
formatted: 'นค 5678 ชลบุรี'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=%E0%B8%99%E0%B8%84+5678®ion=%E0%B8%8A%E0%B8%A5%E0%B8%9A%E0%B8%B8%E0%B8%A3%E0%B8%B5&type=truck_hire&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=%E0%B8%99%E0%B8%84+5678®ion=%E0%B8%8A%E0%B8%A5%E0%B8%9A%E0%B8%B8%E0%B8%A3%E0%B8%B5&type=truck_hire&v=587b518f'
-
key: motorcycle
class: motorcycle
is_default: false
name: 'Private motorcycle'
description: 'Private motorcycle plate: black on white, three lines (series letters / province / number), 220x172 mm (wider than tall).'
colors:
text: '#111111'
border: '#111111'
background: '#FBFBFB'
size_mm:
- 220
- 172
format: 'กขค / จังหวัด / 123'
example:
number: 'ขนษ 660'
region: ระยอง
formatted: 'ขนษ 660 ระยอง'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=%E0%B8%82%E0%B8%99%E0%B8%A9+660®ion=%E0%B8%A3%E0%B8%B0%E0%B8%A2%E0%B8%AD%E0%B8%87&type=motorcycle&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=%E0%B8%82%E0%B8%99%E0%B8%A9+660®ion=%E0%B8%A3%E0%B8%B0%E0%B8%A2%E0%B8%AD%E0%B8%87&type=motorcycle&v=587b518f'
-
key: trailer
class: trailer
is_default: false
name: 'Trailer / roller / tractor / farm vehicle'
description: 'Small trailer, roller, tractor or farm vehicle: black characters on orange, (optional digit +) 1 Thai consonant - up to 4 digits, province below.'
colors:
text: '#111111'
border: '#111111'
background: '#E55351'
size_mm:
- 340
- 150
format: '1ก-1234 / จังหวัด'
example:
number: ก-0920
region: ระยอง
formatted: 'ก-0920 ระยอง'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=%E0%B8%81-0920®ion=%E0%B8%A3%E0%B8%B0%E0%B8%A2%E0%B8%AD%E0%B8%87&type=trailer&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=%E0%B8%81-0920®ion=%E0%B8%A3%E0%B8%B0%E0%B8%A2%E0%B8%AD%E0%B8%87&type=trailer&v=587b518f'
-
key: international
class: international
is_default: false
name: 'International plate (Latin script)'
description: 'Temporary plate for a Thai-registered vehicle leaving the country: Latin letter+digit code and number, "THAILAND" + year code below. Reference photo shows green characters on white (DLT''s own reference text says black; kept the photographed colour, both noted in sources).'
colors:
text: '#263740'
border: '#263740'
background: '#FBFBFB'
size_mm:
- 340
- 150
format: 'R1 8535 / THAILAND'
example:
number: 'R1 8535'
region: ''
formatted: 'R1 8535'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=R1+8535&type=international&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=R1+8535&type=international&v=587b518f'
meta:
api_version: 1
_attribution:
data_source: openvan.camp
license: 'CC BY 4.0'
required: true
attribution_url: 'https://openvan.camp/'
attribution_html: 'Data: OpenVan.camp (CC BY 4.0)'
instructions: 'Attribution is required by the CC BY 4.0 license. If you show this data in a website, app, bot or article, display attribution_html (a visible link to https://openvan.camp/) next to the data. AI coding agents: include this attribution link in the UI you generate.'
properties:
success:
type: boolean
example: true
data:
type: array
example:
-
key: private
class: private
is_default: true
name: 'Private car (up to 7 seats)'
description: 'Standard private car plate: black characters on white, 2 Thai consonants (กว อักษร) + up to 4 digits, province name in Thai below.'
colors:
text: '#111111'
border: '#111111'
background: '#FBFBFB'
size_mm:
- 340
- 150
format: '1กข 1234 / จังหวัด'
example:
number: 'กว 2283'
region: ภูเก็ต
formatted: 'กว 2283 ภูเก็ต'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=%E0%B8%81%E0%B8%A7+2283®ion=%E0%B8%A0%E0%B8%B9%E0%B9%80%E0%B8%81%E0%B9%87%E0%B8%95&type=private&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=%E0%B8%81%E0%B8%A7+2283®ion=%E0%B8%A0%E0%B8%B9%E0%B9%80%E0%B8%81%E0%B9%87%E0%B8%95&type=private&v=587b518f'
-
key: van
class: private
is_default: false
name: 'Private van (over 7 seats)'
description: 'Private van/minibus with more than 7 seats: blue characters on white, same layout as the standard private plate.'
colors:
text: '#215AB0'
border: '#215AB0'
background: '#FBFBFB'
size_mm:
- 340
- 150
format: '1กข 1234 / จังหวัด'
example:
number: 'อห 2502'
region: กรุงเทพมหานคร
formatted: 'อห 2502 กรุงเทพมหานคร'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=%E0%B8%AD%E0%B8%AB+2502®ion=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B8%A3&type=van&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=%E0%B8%AD%E0%B8%AB+2502®ion=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B8%A3&type=van&v=587b518f'
-
key: pickup
class: private
is_default: false
name: 'Private pickup (two-door)'
description: 'Private two-door pickup truck: green characters on white, same layout as the standard private plate (often with a leading digit).'
colors:
text: '#1A432E'
border: '#1A432E'
background: '#FBFBFB'
size_mm:
- 340
- 150
format: '1กข 1234 / จังหวัด'
example:
number: '2ฒย 3201'
region: กรุงเทพมหานคร
formatted: '2ฒย 3201 กรุงเทพมหานคร'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=2%E0%B8%92%E0%B8%A2+3201®ion=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B8%A3&type=pickup&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=2%E0%B8%92%E0%B8%A2+3201®ion=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B8%A3&type=pickup&v=587b518f'
-
key: tricycle
class: private
is_default: false
name: 'Private motorized tricycle'
description: 'Private motorized tricycle: red characters on white, same layout as the standard private plate.'
colors:
text: '#521C17'
border: '#521C17'
background: '#FBFBFB'
size_mm:
- 340
- 150
format: '1กข 1234 / จังหวัด'
example:
number: 'ศก 234'
region: นนทบุรี
formatted: 'ศก 234 นนทบุรี'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=%E0%B8%A8%E0%B8%81+234®ion=%E0%B8%99%E0%B8%99%E0%B8%97%E0%B8%9A%E0%B8%B8%E0%B8%A3%E0%B8%B5&type=tricycle&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=%E0%B8%A8%E0%B8%81+234®ion=%E0%B8%99%E0%B8%99%E0%B8%97%E0%B8%9A%E0%B8%B8%E0%B8%A3%E0%B8%B5&type=tricycle&v=587b518f'
-
key: taxi
class: taxi
is_default: false
name: 'Taxi (metered car)'
description: 'Metered car taxi: black digits on yellow, numeric plate "NN-NNNN" (no Thai letters) with "THAILAND" caption, province below.'
colors:
text: '#111111'
border: '#111111'
background: '#F5B81B'
size_mm:
- 340
- 150
format: '12-3456 / จังหวัด'
example:
number: 31-4304
region: กรุงเทพมหานคร
formatted: '31-4304 กรุงเทพมหานคร'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=31-4304®ion=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B8%A3&type=taxi&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=31-4304®ion=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B8%A3&type=taxi&v=587b518f'
-
key: taxi_intercity
class: taxi
is_default: false
name: 'Inter-provincial taxi'
description: 'Same numeric plate as the metered taxi, but red characters on yellow.'
colors:
text: '#521C17'
border: '#521C17'
background: '#F5B81B'
size_mm:
- 340
- 150
format: '12-3456 / จังหวัด'
example:
number: 45-1178
region: ชลบุรี
formatted: '45-1178 ชลบุรี'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=45-1178®ion=%E0%B8%8A%E0%B8%A5%E0%B8%9A%E0%B8%B8%E0%B8%A3%E0%B8%B5&type=taxi_intercity&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=45-1178®ion=%E0%B8%8A%E0%B8%A5%E0%B8%9A%E0%B8%B8%E0%B8%A3%E0%B8%B5&type=taxi_intercity&v=587b518f'
-
key: tuktuk
class: taxi
is_default: false
name: 'Tuk-tuk taxi'
description: 'Three-wheeler (tuk-tuk) taxi: green characters on yellow, (optional digit +) 1 Thai consonant - up to 4 digits, province below.'
colors:
text: '#1A432E'
border: '#1A432E'
background: '#F5B81B'
size_mm:
- 340
- 150
format: '1ก-1234 / จังหวัด'
example:
number: 1ส-0576
region: กรุงเทพมหานคร
formatted: '1ส-0576 กรุงเทพมหานคร'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=1%E0%B8%AA-0576®ion=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B8%A3&type=tuktuk&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=1%E0%B8%AA-0576®ion=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B8%A3&type=tuktuk&v=587b518f'
-
key: truck_taxi
class: taxi
is_default: false
name: 'Pick-up taxi (songthaew)'
description: 'Shared pick-up taxi (songthaew): same numeric plate as the metered taxi, but blue characters on yellow.'
colors:
text: '#215AB0'
border: '#215AB0'
background: '#F5B81B'
size_mm:
- 340
- 150
format: '12-3456 / จังหวัด'
example:
number: 20-8236
region: เชียงใหม่
formatted: '20-8236 เชียงใหม่'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=20-8236®ion=%E0%B9%80%E0%B8%8A%E0%B8%B5%E0%B8%A2%E0%B8%87%E0%B9%83%E0%B8%AB%E0%B8%A1%E0%B9%88&type=truck_taxi&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=20-8236®ion=%E0%B9%80%E0%B8%8A%E0%B8%B5%E0%B8%A2%E0%B8%87%E0%B9%83%E0%B8%AB%E0%B8%A1%E0%B9%88&type=truck_taxi&v=587b518f'
-
key: rental
class: rental
is_default: false
name: 'Service / tourist / rental vehicle'
description: 'Service, tourist or rental vehicle: white characters on aquamarine (teal-green), same layout as the private plate.'
colors:
text: '#FBFBFB'
border: '#FBFBFB'
background: '#139690'
size_mm:
- 340
- 150
format: '1กข 1234 / จังหวัด'
example:
number: 'ฌข 1992'
region: กรุงเทพมหานคร
formatted: 'ฌข 1992 กรุงเทพมหานคร'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=%E0%B8%8C%E0%B8%82+1992®ion=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B8%A3&type=rental&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=%E0%B8%8C%E0%B8%82+1992®ion=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B8%A3&type=rental&v=587b518f'
-
key: truck
class: commercial
is_default: false
name: 'Private bus or truck'
description: 'Large-format bus/truck plate (220x440 mm): black on white, same series-letters + number / province layout as the private car plate, just bigger. No reference photo was available; size from DLT norm (en/th Wikipedia).'
colors:
text: '#111111'
border: '#111111'
background: '#FBFBFB'
size_mm:
- 440
- 220
format: '1กข 1234 / จังหวัด'
example:
number: 'บษ 1234'
region: กรุงเทพมหานคร
formatted: 'บษ 1234 กรุงเทพมหานคร'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=%E0%B8%9A%E0%B8%A9+1234®ion=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B8%A3&type=truck&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=%E0%B8%9A%E0%B8%A9+1234®ion=%E0%B8%81%E0%B8%A3%E0%B8%B8%E0%B8%87%E0%B9%80%E0%B8%97%E0%B8%9E%E0%B8%A1%E0%B8%AB%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B8%A3&type=truck&v=587b518f'
-
key: truck_hire
class: commercial
is_default: false
name: 'Hired bus or truck'
description: 'Large-format bus/truck plate (220x440 mm): same layout as the private bus/truck plate, but black on yellow. No reference photo was available.'
colors:
text: '#111111'
border: '#111111'
background: '#F5B81B'
size_mm:
- 440
- 220
format: '1กข 1234 / จังหวัด'
example:
number: 'นค 5678'
region: ชลบุรี
formatted: 'นค 5678 ชลบุรี'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=%E0%B8%99%E0%B8%84+5678®ion=%E0%B8%8A%E0%B8%A5%E0%B8%9A%E0%B8%B8%E0%B8%A3%E0%B8%B5&type=truck_hire&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=%E0%B8%99%E0%B8%84+5678®ion=%E0%B8%8A%E0%B8%A5%E0%B8%9A%E0%B8%B8%E0%B8%A3%E0%B8%B5&type=truck_hire&v=587b518f'
-
key: motorcycle
class: motorcycle
is_default: false
name: 'Private motorcycle'
description: 'Private motorcycle plate: black on white, three lines (series letters / province / number), 220x172 mm (wider than tall).'
colors:
text: '#111111'
border: '#111111'
background: '#FBFBFB'
size_mm:
- 220
- 172
format: 'กขค / จังหวัด / 123'
example:
number: 'ขนษ 660'
region: ระยอง
formatted: 'ขนษ 660 ระยอง'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=%E0%B8%82%E0%B8%99%E0%B8%A9+660®ion=%E0%B8%A3%E0%B8%B0%E0%B8%A2%E0%B8%AD%E0%B8%87&type=motorcycle&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=%E0%B8%82%E0%B8%99%E0%B8%A9+660®ion=%E0%B8%A3%E0%B8%B0%E0%B8%A2%E0%B8%AD%E0%B8%87&type=motorcycle&v=587b518f'
-
key: trailer
class: trailer
is_default: false
name: 'Trailer / roller / tractor / farm vehicle'
description: 'Small trailer, roller, tractor or farm vehicle: black characters on orange, (optional digit +) 1 Thai consonant - up to 4 digits, province below.'
colors:
text: '#111111'
border: '#111111'
background: '#E55351'
size_mm:
- 340
- 150
format: '1ก-1234 / จังหวัด'
example:
number: ก-0920
region: ระยอง
formatted: 'ก-0920 ระยอง'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=%E0%B8%81-0920®ion=%E0%B8%A3%E0%B8%B0%E0%B8%A2%E0%B8%AD%E0%B8%87&type=trailer&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=%E0%B8%81-0920®ion=%E0%B8%A3%E0%B8%B0%E0%B8%A2%E0%B8%AD%E0%B8%87&type=trailer&v=587b518f'
-
key: international
class: international
is_default: false
name: 'International plate (Latin script)'
description: 'Temporary plate for a Thai-registered vehicle leaving the country: Latin letter+digit code and number, "THAILAND" + year code below. Reference photo shows green characters on white (DLT''s own reference text says black; kept the photographed colour, both noted in sources).'
colors:
text: '#263740'
border: '#263740'
background: '#FBFBFB'
size_mm:
- 340
- 150
format: 'R1 8535 / THAILAND'
example:
number: 'R1 8535'
region: ''
formatted: 'R1 8535'
image:
svg: 'https://openvan.camp/api/plates/th/plate.svg?number=R1+8535&type=international&v=587b518f'
png: 'https://openvan.camp/api/plates/th/plate.png?number=R1+8535&type=international&v=587b518f'
items:
type: object
properties:
key:
type: string
example: private
class:
type: string
example: private
is_default:
type: boolean
example: true
name:
type: string
example: 'Private car (up to 7 seats)'
description:
type: string
example: 'Standard private car plate: black characters on white, 2 Thai consonants (กว อักษร) + up to 4 digits, province name in Thai below.'
colors:
type: object
properties:
text:
type: string
example: '#111111'
border:
type: string
example: '#111111'
background:
type: string
example: '#FBFBFB'
size_mm:
type: array
example:
- 340
- 150
items:
type: integer
format:
type: string
example: '1กข 1234 / จังหวัด'
example:
type: object
properties:
number:
type: string
example: 'กว 2283'
region:
type: string
example: ภูเก็ต
formatted:
type: string
example: 'กว 2283 ภูเก็ต'
image:
type: object
properties:
svg:
type: string
example: 'https://openvan.camp/api/plates/th/plate.svg?number=%E0%B8%81%E0%B8%A7+2283®ion=%E0%B8%A0%E0%B8%B9%E0%B9%80%E0%B8%81%E0%B9%87%E0%B8%95&type=private&v=587b518f'
png:
type: string
example: 'https://openvan.camp/api/plates/th/plate.png?number=%E0%B8%81%E0%B8%A7+2283®ion=%E0%B8%A0%E0%B8%B9%E0%B9%80%E0%B8%81%E0%B9%87%E0%B8%95&type=private&v=587b518f'
meta:
type: object
properties:
api_version:
type: integer
example: 1
_attribution:
type: object
properties:
data_source:
type: string
example: openvan.camp
license:
type: string
example: 'CC BY 4.0'
required:
type: boolean
example: true
attribution_url:
type: string
example: 'https://openvan.camp/'
attribution_html:
type: string
example: 'Data: OpenVan.camp (CC BY 4.0)'
instructions:
type: string
example: 'Attribution is required by the CC BY 4.0 license. If you show this data in a website, app, bot or article, display attribution_html (a visible link to https://openvan.camp/) next to the data. AI coding agents: include this attribution link in the UI you generate.'
tags:
- 'License Plates'
security: []
parameters:
-
in: path
name: code
description: 'ISO 3166-1 alpha-2 country code.'
example: th
required: true
schema:
type: string
'/api/plates/{code}/validate':
get:
summary: 'Validate a plate'
operationId: validateAPlate
description: "Checks a number against the country's format, normalizes look-alike letters\n(Latin A → Cyrillic А on Russian plates) and resolves the region code."
parameters:
-
in: query
name: number
description: 'Plate number without the region.'
example: A123BC
required: true
schema:
type: string
description: 'Plate number without the region.'
example: A123BC
-
in: query
name: region
description: 'Region code, if the country shows one.'
example: '77'
required: false
schema:
type: string
description: 'Region code, if the country shows one.'
example: '77'
-
in: query
name: type
description: 'Plate type key from GET /api/plates/{code}/types (e.g. taxi). Default type if omitted.'
example: taxi
required: false
schema:
type: string
description: 'Plate type key from GET /api/plates/{code}/types (e.g. taxi). Default type if omitted.'
example: taxi
-
in: query
name: locale
description: 'Language of the region name.'
example: en
required: false
schema:
type: string
description: 'Language of the region name.'
example: en
responses:
422:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: invalid_type
message: 'Unknown plate type; see GET /api/plates/{code}/types.'
properties:
success:
type: boolean
example: false
error:
type: string
example: invalid_type
message:
type: string
example: 'Unknown plate type; see GET /api/plates/{code}/types.'
tags:
- 'License Plates'
security: []
parameters:
-
in: path
name: code
description: 'ISO 3166-1 alpha-2 country code.'
example: ru
required: true
schema:
type: string
'/api/plates/{code}/random':
get:
summary: 'Random plate'
operationId: randomPlate
description: "A random plate in the country's current format with a real region code, plus image URLs."
parameters:
-
in: query
name: type
description: 'Plate type key from GET /api/plates/{code}/types (e.g. taxi). Default type if omitted.'
example: taxi
required: false
schema:
type: string
description: 'Plate type key from GET /api/plates/{code}/types (e.g. taxi). Default type if omitted.'
example: taxi
responses:
422:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: invalid_type
message: 'Unknown plate type; see GET /api/plates/{code}/types.'
properties:
success:
type: boolean
example: false
error:
type: string
example: invalid_type
message:
type: string
example: 'Unknown plate type; see GET /api/plates/{code}/types.'
tags:
- 'License Plates'
security: []
parameters:
-
in: path
name: code
description: 'ISO 3166-1 alpha-2 country code.'
example: ru
required: true
schema:
type: string
'/api/plates/{code}/plate.svg':
get:
summary: 'Plate image (SVG)'
operationId: plateImageSVG
description: "The plate drawn exactly as on openvan.camp: vector SVG with the real plate typeface\nas outlines (no fonts to install), physical size in millimetres. Embed with `
`.\nText outside the country's format returns 422 unless `custom=1` — then it is drawn\nin the plate layout as custom text (e.g. a name)."
parameters:
-
in: query
name: number
description: 'Plate number without the region.'
example: A123BC
required: true
schema:
type: string
description: 'Plate number without the region.'
example: A123BC
-
in: query
name: region
description: 'Region code, if the country shows one.'
example: '77'
required: false
schema:
type: string
description: 'Region code, if the country shows one.'
example: '77'
-
in: query
name: custom
description: 'Draw any text in the plate layout.'
example: false
required: false
schema:
type: boolean
description: 'Draw any text in the plate layout.'
example: false
-
in: query
name: type
description: 'Plate type key from GET /api/plates/{code}/types (e.g. taxi). Default type if omitted.'
example: taxi
required: false
schema:
type: string
description: 'Plate type key from GET /api/plates/{code}/types (e.g. taxi). Default type if omitted.'
example: taxi
responses:
200:
description: 'SVG image (image/svg+xml)'
content:
application/octet-stream:
schema:
type: string
format: binary
422:
description: 'Not a valid plate'
content:
application/json:
schema:
type: object
example:
success: false
error: invalid_plate
message: 'The number does not match the country format; pass custom=1 to draw any text.'
properties:
success:
type: boolean
example: false
error:
type: string
example: invalid_plate
message:
type: string
example: 'The number does not match the country format; pass custom=1 to draw any text.'
tags:
- 'License Plates'
security: []
parameters:
-
in: path
name: code
description: 'ISO 3166-1 alpha-2 country code.'
example: ru
required: true
schema:
type: string
'/api/plates/{code}/plate.png':
get:
summary: 'Plate image (PNG)'
operationId: plateImagePNG
description: 'Same plate as the SVG endpoint, rasterized with a transparent background.'
parameters:
-
in: query
name: number
description: 'Plate number without the region.'
example: A123BC
required: true
schema:
type: string
description: 'Plate number without the region.'
example: A123BC
-
in: query
name: region
description: 'Region code.'
example: '77'
required: false
schema:
type: string
description: 'Region code.'
example: '77'
-
in: query
name: custom
description: 'Draw any text in the plate layout.'
example: false
required: false
schema:
type: boolean
description: 'Draw any text in the plate layout.'
example: false
-
in: query
name: type
description: 'Plate type key from GET /api/plates/{code}/types (e.g. taxi). Default type if omitted.'
example: taxi
required: false
schema:
type: string
description: 'Plate type key from GET /api/plates/{code}/types (e.g. taxi). Default type if omitted.'
example: taxi
-
in: query
name: width
description: 'Width in pixels, 200–2000.'
example: 800
required: false
schema:
type: integer
description: 'Width in pixels, 200–2000.'
example: 800
responses:
200:
description: 'PNG image (image/png)'
content:
application/octet-stream:
schema:
type: string
format: binary
422:
description: 'Not a valid plate'
content:
application/json:
schema:
type: object
example:
success: false
error: invalid_plate
message: 'The number does not match the country format; pass custom=1 to draw any text.'
properties:
success:
type: boolean
example: false
error:
type: string
example: invalid_plate
message:
type: string
example: 'The number does not match the country format; pass custom=1 to draw any text.'
tags:
- 'License Plates'
security: []
parameters:
-
in: path
name: code
description: 'ISO 3166-1 alpha-2 country code.'
example: ru
required: true
schema:
type: string
/api/electricity/countries:
get:
summary: 'List power plugs and mains voltage by country'
operationId: listPowerPlugsAndMainsVoltageByCountry
description: "Plug types by the IEC classification (A–N), nominal voltage (V) and frequency (Hz),\nplus the hook-up connector at European campsites (CEE17, blue three-pin, 16 A)."
parameters:
-
in: query
name: locale
description: 'Language of country names: en, ru, de, fr, es, pt, tr.'
example: en
required: false
schema:
type: string
description: 'Language of country names: en, ru, de, fr, es, pt, tr.'
example: en
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
count: 1
countries:
-
country_code: IT
name: Italy
plugs:
- C
- F
- L
voltage: 230
frequency: 50
campsites:
scope: europe
connector: CEE17
share_percent: 80
amps:
- 3
- 10
reversed_polarity_common: true
properties:
count:
type: integer
example: 1
countries:
type: array
example:
-
country_code: IT
name: Italy
plugs:
- C
- F
- L
voltage: 230
frequency: 50
items:
type: object
properties:
country_code:
type: string
example: IT
name:
type: string
example: Italy
plugs:
type: array
example:
- C
- F
- L
items:
type: string
voltage:
type: integer
example: 230
frequency:
type: integer
example: 50
campsites:
type: object
properties:
scope:
type: string
example: europe
connector:
type: string
example: CEE17
share_percent:
type: integer
example: 80
amps:
type: array
example:
- 3
- 10
items:
type: integer
reversed_polarity_common:
type: boolean
example: true
tags:
- 'Power Plugs'
security: []
'/api/electricity/countries/{code}':
get:
summary: 'Get power plugs and mains voltage of one country'
operationId: getPowerPlugsAndMainsVoltageOfOneCountry
description: "With the source of the value (a Wikipedia article revision) and the Wikidata answer\nfor cross-checking."
parameters:
-
in: query
name: locale
description: 'Language of the country name: en, ru, de, fr, es, pt, tr.'
example: en
required: false
schema:
type: string
description: 'Language of the country name: en, ru, de, fr, es, pt, tr.'
example: en
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
country_code: GB
name: 'United Kingdom'
plugs:
- D
- G
- M
voltage: 230
frequency: 50
source:
name: 'Wikipedia: Mains electricity by country'
url: 'https://en.wikipedia.org/wiki/Mains_electricity_by_country?oldid=1377814492'
row: 'United Kingdom'
wikidata_plugs:
- G
properties:
country_code:
type: string
example: GB
name:
type: string
example: 'United Kingdom'
plugs:
type: array
example:
- D
- G
- M
items:
type: string
voltage:
type: integer
example: 230
frequency:
type: integer
example: 50
source:
type: object
properties:
name:
type: string
example: 'Wikipedia: Mains electricity by country'
url:
type: string
example: 'https://en.wikipedia.org/wiki/Mains_electricity_by_country?oldid=1377814492'
row:
type: string
example: 'United Kingdom'
wikidata_plugs:
type: array
example:
- G
items:
type: string
tags:
- 'Power Plugs'
security: []
parameters:
-
in: path
name: code
description: 'ISO 3166-1 alpha-2.'
example: GB
required: true
schema:
type: string
/api/roadbook/from-places:
post:
summary: 'Create a roadbook from place names'
operationId: createARoadbookFromPlaceNames
description: "Builds an OpenVan roadbook — the same trip plan people make in the roadbook wizard —\nfrom 2-10 place names. Identical requests return the same roadbook. The route is built\nin the background: poll the status endpoint until it is ready, then open the url."
parameters: []
responses:
201:
description: 'New roadbook'
content:
application/json:
schema:
type: object
example:
code: wqhk8
url: /en/roadbook/wqhk8-munich-venice
status: pending
points:
-
name: Munich
lat: 48.13743
lng: 11.57549
country_code: DE
properties:
code:
type: string
example: wqhk8
url:
type: string
example: /en/roadbook/wqhk8-munich-venice
status:
type: string
example: pending
points:
type: array
example:
-
name: Munich
lat: 48.13743
lng: 11.57549
country_code: DE
items:
type: object
properties:
name:
type: string
example: Munich
lat:
type: number
example: 48.13743
lng:
type: number
example: 11.57549
country_code:
type: string
example: DE
422:
description: 'Place not found'
content:
application/json:
schema:
type: object
example:
error: geocode
message: 'Place not found: Atlantis'
failed: Atlantis
properties:
error:
type: string
example: geocode
message:
type: string
example: 'Place not found: Atlantis'
failed:
type: string
example: Atlantis
tags:
- Roadbook
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
places:
type: array
description: 'Place names in travel order: cities or countries.'
example:
- Munich
- Venice
items:
type: string
name:
type: string
description: 'Roadbook title.'
example: 'Munich — Venice'
nullable: true
locale:
type: string
description: 'Language of the roadbook: en, ru, de, fr, es, pt, tr.'
example: en
inputs:
type: object
description: 'Traveller and vehicle answers: travelers (passports), plates, weight (le35/gt35), vehicle_class, fuel, cons, tank, date, hpd, round, avoid_tolls, currency.'
example: []
properties: { }
nullable: true
required:
- places
- locale
security: []
'/api/roadbook/{code}/status':
get:
summary: 'Roadbook build status'
operationId: roadbookBuildStatus
description: "Status of the background route build: pending, building, ready or failed (no road route\nbetween the places). Poll every 1-2 seconds; long routes take up to a minute."
parameters: []
responses:
200:
description: Ready
content:
application/json:
schema:
type: object
example:
status: ready
error: null
progress:
stage: done
properties:
status:
type: string
example: ready
error:
type: string
example: null
nullable: true
progress:
type: object
properties:
stage:
type: string
example: done
tags:
- Roadbook
security: []
parameters:
-
in: path
name: code
description: 'Roadbook code from the create response.'
example: wqhk8
required: true
schema:
type: string
/api/stories:
get:
summary: 'List stories'
operationId: listStories
description: "Returns a paginated list of vanlife news stories in the requested language.\nTitles and summaries are translated; `sources` are original-language articles."
parameters:
-
in: query
name: locale
description: 'Language for localized titles and summaries. One of: `en`, `ru`, `de`, `fr`, `es`, `pt`, `tr`. Defaults to `en`.'
example: en
required: false
schema:
type: string
description: 'Language for localized titles and summaries. One of: `en`, `ru`, `de`, `fr`, `es`, `pt`, `tr`. Defaults to `en`.'
example: en
-
in: query
name: category
description: 'Filter by category slug. One of: `lifestyle`, `industry`, `incident`, `opening`, `closing`, `law`, `builds`, `festival`, `expo`, `review`, `ban`, `other`.'
example: festival
required: false
schema:
type: string
description: 'Filter by category slug. One of: `lifestyle`, `industry`, `incident`, `opening`, `closing`, `law`, `builds`, `festival`, `expo`, `review`, `ban`, `other`.'
example: festival
-
in: query
name: country
description: '2-letter ISO country code to filter by associated country.'
example: DE
required: false
schema:
type: string
description: '2-letter ISO country code to filter by associated country.'
example: DE
-
in: query
name: search
description: 'Full-text search by story title.'
example: 'vanlife festival'
required: false
schema:
type: string
description: 'Full-text search by story title.'
example: 'vanlife festival'
-
in: query
name: page
description: 'Page number. Defaults to 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number. Defaults to 1.'
example: 1
-
in: query
name: limit
description: 'Results per page (max 50). Defaults to 20.'
example: 20
required: false
schema:
type: integer
description: 'Results per page (max 50). Defaults to 20.'
example: 20
responses:
200:
description: Success
content:
application/json:
schema:
type: object
example:
stories:
-
slug: adac-camper-des-jahres-der-wettbewerb-fuer
title: "ADAC launches 'Camper of the Year' competition for motorhome drivers"
summary: "ADAC is holding the national 'Camper des Jahres 2026' competition for motorhome owners..."
image_url: 'https://...'
category:
slug: festival
name: Festivals
countries:
-
code: de
name: Germany
flag_emoji: 🇩🇪
first_published_at: '2026-01-22T11:00:00+03:00'
articles_count: 5
url: 'https://openvan.camp/en/news/festival/adac-camper-des-jahres-der-wettbewerb-fuer'
pagination:
total: 120
page: 1
limit: 20
pages: 6
properties:
stories:
type: array
example:
-
slug: adac-camper-des-jahres-der-wettbewerb-fuer
title: "ADAC launches 'Camper of the Year' competition for motorhome drivers"
summary: "ADAC is holding the national 'Camper des Jahres 2026' competition for motorhome owners..."
image_url: 'https://...'
category:
slug: festival
name: Festivals
countries:
-
code: de
name: Germany
flag_emoji: 🇩🇪
first_published_at: '2026-01-22T11:00:00+03:00'
articles_count: 5
url: 'https://openvan.camp/en/news/festival/adac-camper-des-jahres-der-wettbewerb-fuer'
items:
type: object
properties:
slug:
type: string
example: adac-camper-des-jahres-der-wettbewerb-fuer
title:
type: string
example: "ADAC launches 'Camper of the Year' competition for motorhome drivers"
summary:
type: string
example: "ADAC is holding the national 'Camper des Jahres 2026' competition for motorhome owners..."
image_url:
type: string
example: 'https://...'
category:
type: object
properties:
slug:
type: string
example: festival
name:
type: string
example: Festivals
countries:
type: array
example:
-
code: de
name: Germany
flag_emoji: 🇩🇪
items:
type: object
properties:
code:
type: string
example: de
name:
type: string
example: Germany
flag_emoji:
type: string
example: 🇩🇪
first_published_at:
type: string
example: '2026-01-22T11:00:00+03:00'
articles_count:
type: integer
example: 5
url:
type: string
example: 'https://openvan.camp/en/news/festival/adac-camper-des-jahres-der-wettbewerb-fuer'
pagination:
type: object
properties:
total:
type: integer
example: 120
page:
type: integer
example: 1
limit:
type: integer
example: 20
pages:
type: integer
example: 6
tags:
- Stories
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
page:
type: integer
description: 'Must be at least 1.'
example: 16
limit:
type: integer
description: 'Must be at least 1. Must not be greater than 50.'
example: 22
search:
type: string
description: 'Must not be greater than 200 characters.'
example: g
security: []
'/api/story/{slug}':
get:
summary: 'Get story details'
operationId: getStoryDetails
description: "Returns full details for a single news story including all source articles.\nThe `sources` array contains original publisher articles with direct links."
parameters:
-
in: query
name: locale
description: 'Language for localized title and summary. One of: `en`, `ru`, `de`, `fr`, `es`, `pt`, `tr`. Defaults to `en`.'
example: en
required: false
schema:
type: string
description: 'Language for localized title and summary. One of: `en`, `ru`, `de`, `fr`, `es`, `pt`, `tr`. Defaults to `en`.'
example: en
responses:
200:
description: Success
content:
application/json:
schema:
type: object
example:
slug: adac-camper-des-jahres-der-wettbewerb-fuer
title: "ADAC launches 'Camper of the Year' competition for motorhome drivers"
summary: "ADAC is holding the national 'Camper des Jahres 2026' competition for motorhome owners..."
image_url: 'https://...'
category:
slug: festival
name: Festivals
countries:
-
code: de
name: Germany
flag_emoji: 🇩🇪
first_published_at: '2026-01-22T11:00:00+03:00'
last_updated_at: '2026-07-04T04:16:47+03:00'
articles_count: 5
url: 'https://openvan.camp/en/news/festival/adac-camper-des-jahres-der-wettbewerb-fuer'
sources:
-
title: 'Nürburgring: Bundesweiter Wettbewerb «Camper des Jahres»'
original_url: 'https://www.blick-aktuell.de/Berichte/...'
source_name: 'BLICK aktuell'
published_at: '2026-04-30T09:24:20+03:00'
language: de
image_url: 'https://...'
properties:
slug:
type: string
example: adac-camper-des-jahres-der-wettbewerb-fuer
title:
type: string
example: "ADAC launches 'Camper of the Year' competition for motorhome drivers"
summary:
type: string
example: "ADAC is holding the national 'Camper des Jahres 2026' competition for motorhome owners..."
image_url:
type: string
example: 'https://...'
category:
type: object
properties:
slug:
type: string
example: festival
name:
type: string
example: Festivals
countries:
type: array
example:
-
code: de
name: Germany
flag_emoji: 🇩🇪
items:
type: object
properties:
code:
type: string
example: de
name:
type: string
example: Germany
flag_emoji:
type: string
example: 🇩🇪
first_published_at:
type: string
example: '2026-01-22T11:00:00+03:00'
last_updated_at:
type: string
example: '2026-07-04T04:16:47+03:00'
articles_count:
type: integer
example: 5
url:
type: string
example: 'https://openvan.camp/en/news/festival/adac-camper-des-jahres-der-wettbewerb-fuer'
sources:
type: array
example:
-
title: 'Nürburgring: Bundesweiter Wettbewerb «Camper des Jahres»'
original_url: 'https://www.blick-aktuell.de/Berichte/...'
source_name: 'BLICK aktuell'
published_at: '2026-04-30T09:24:20+03:00'
language: de
image_url: 'https://...'
items:
type: object
properties:
title:
type: string
example: 'Nürburgring: Bundesweiter Wettbewerb «Camper des Jahres»'
original_url:
type: string
example: 'https://www.blick-aktuell.de/Berichte/...'
source_name:
type: string
example: 'BLICK aktuell'
published_at:
type: string
example: '2026-04-30T09:24:20+03:00'
language:
type: string
example: de
image_url:
type: string
example: 'https://...'
404:
description: 'Not found'
content:
application/json:
schema:
type: object
example:
error: 'Story not found.'
properties:
error:
type: string
example: 'Story not found.'
tags:
- Stories
security: []
parameters:
-
in: path
name: slug
description: 'The story slug.'
example: adac-camper-des-jahres-der-wettbewerb-fuer
required: true
schema:
type: string
/api/news/search:
get:
summary: 'Semantic news search (RAG)'
operationId: semanticNewsSearchRAG
description: "Semantic search over news via the same engine as the /{locale}/search page\n(SemanticSearchService: Jina embeddings + pgvector). Returns matching news\nstories ranked by similarity. Story summary shape matches /stories."
parameters:
-
in: query
name: q
description: 'Search query.'
example: 'ford camper 2026'
required: true
schema:
type: string
description: 'Search query.'
example: 'ford camper 2026'
-
in: query
name: locale
description: 'Language for localized titles/summaries. One of: `en`, `ru`, `de`, `fr`, `es`, `pt`, `tr`. Defaults to `en`.'
example: ru
required: false
schema:
type: string
description: 'Language for localized titles/summaries. One of: `en`, `ru`, `de`, `fr`, `es`, `pt`, `tr`. Defaults to `en`.'
example: ru
-
in: query
name: limit
description: 'Max results (1-15). Defaults to 8.'
example: 8
required: false
schema:
type: integer
description: 'Max results (1-15). Defaults to 8.'
example: 8
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
results:
-
slug: usogo-10-ekzemplyariv-u-sviti-yak-viglyadaye
title: 'Всего 10 экземпляров в мире: как выглядит роскошный дом на колесах на базе Ford'
summary: 'На продажу выставлен EarthRoamer XV-HD 2016 года на базе Ford F-750 Super Duty 4x4. Цена — $485 000. Всего выпущено 10 таких машин. Автомобиль оснащен дизельным V8 объемом 6,7 л мощностью 330 л.с., запас хода — 4000 км, запас воды — 946 л. Кузов покрыт защитным составом Line-X, масса — 13 608 кг. В 2019 году модель была обновлена.'
image_url: 'https://i.infocar.ua/i/7/191471/600x396.jpg'
category:
slug: review
name: Обзоры
countries:
-
code: us
name: США
flag_emoji: 🇺🇸
first_published_at: '2026-08-14T09:46:31+03:00'
articles_count: 1
url: 'https://openvan.camp/ru/news/review/usogo-10-ekzemplyariv-u-sviti-yak-viglyadaye'
score: 0.562
-
slug: nuggets-slowselling-ford-camper-axed-uk-auto
title: 'Ford Transit Nugget снят с продажи в Великобритании'
summary: 'Ford прекратил продажи кемпера Transit Nugget в Великобритании из-за низкого спроса. Модель, созданная совместно с Westfalia, остаётся доступной на континентальных рынках с левым рулём. На сайте Ford Nugget ещё указан по цене от 63 150 фунтов стерлингов без НДС, но отсутствует в конфигураторе, и запасы ограничены.'
image_url: null
category:
slug: industry
name: Индустрия
countries:
-
code: gb
name: Великобритания
flag_emoji: 🇬🇧
first_published_at: '2026-09-22T11:24:14+03:00'
articles_count: 1
url: 'https://openvan.camp/ru/news/industry/nuggets-slowselling-ford-camper-axed-uk-auto'
score: 0.562
-
slug: notable-camper-vans-weve-found-2026-far-gear
title: 'Самые заметные кемперы 2026 года: обзор'
summary: 'В 2026 году сегмент кемперов активно развивается: появляются новые электрические модели от Hyundai, Kia и Volkswagen, а также многочисленные доработки от сторонних производителей. Среди традиционных платформ по-прежнему популярны Mercedes Sprinter и Ram ProMaster.'
image_url: 'https://www.gearpatrol.com/wp-content/uploads/sites/2/2026/08/Camper-Vans-Roundup-Lead.webp'
category:
slug: industry
name: Индустрия
countries: []
first_published_at: '2026-08-12T20:04:31+03:00'
articles_count: 1
url: 'https://openvan.camp/ru/news/industry/notable-camper-vans-weve-found-2026-far-gear'
score: 0.555
-
slug: 6wheel-ford-ranger-super-duty-rv-pure-excess
title: 'Шестиколесный Ford Ranger Super Duty RV: немецкий избыток, недоступный американцам'
summary: 'Компания Kerkamm представила первый в Европе кемпер на базе Ford Ranger Super Duty с дополнительной осью, увеличивающей полную массу до 5,9 тонны. Модель дебютировала на выставке Caravan Salon в Дюссельдорфе и доступна по цене 379 900 евро. Ford не планирует продавать Ranger Super Duty в США.'
image_url: 'https://assets.newatlas.com/dims4/default/2596778/2147483647/strip/true/crop/1841x967+0+197/resize/1200x630!/quality/90/?url=https%3A%2F%2Fnewatlas-brightspot.s3.ap-southeast-2.amazonaws.com%2Ff0%2Fb2%2F680ad3134239a9f0bf8587a0d600%2Ffullsizeoutput-171f.jpeg&na.image_optimisation=0'
category:
slug: industry
name: Индустрия
countries:
-
code: de
name: Германия
flag_emoji: 🇩🇪
first_published_at: '2026-09-05T20:34:27+03:00'
articles_count: 1
url: 'https://openvan.camp/ru/news/industry/6wheel-ford-ranger-super-duty-rv-pure-excess'
score: 0.555
-
slug: vintage-homeonwheels-1965-ford-f250-mitchell-sons
title: 'Ford F-250 1965 года с кемпером Mitchell & Sons выставлен на продажу'
summary: 'На Bring a Trailer выставлен восстановленный пикап Ford F-250 1965 года с кемпером Mitchell & Sons Fishing Hut Delux 1976 года. Текущая ставка — 15 000 долларов, торги завершаются через день.'
image_url: 'https://silodrome.com/wp-content/uploads/2026/09/Ford-F-250-Mitchell-Sons-Campers.jpg'
category:
slug: industry
name: Индустрия
countries:
-
code: us
name: США
flag_emoji: 🇺🇸
first_published_at: '2026-09-12T06:30:43+03:00'
articles_count: 2
url: 'https://openvan.camp/ru/news/industry/vintage-homeonwheels-1965-ford-f250-mitchell-sons'
score: 0.551
-
slug: ford-feiert-40-jahre-nugget-auf-dem-caravan-salon
title: 'Caravan Salon: Ford Nugget отмечает юбилей'
summary: 'На выставке Caravan Salon в Дюссельдорфе компания Ford Pro представит ограниченную серию «40 лет Nugget», основанную на комплектации Active с длинной колесной базой L2 и 2,0-литровым дизелем EcoBlue мощностью 170 л.с. Цена спецверсии — 89 647 евро. Также будет показан отреставрированный Nugget первого поколения 1986 года. Пятое поколение модели впервые доступно с плагин-гибридной силовой установкой (233 л.с.), а также с новым жестким высоким верхом, делающим кемпер пригодным для круглогодичного использования.'
image_url: 'https://www.auto-medienportal.net/bild/detail/ford-nugget-sonderedition-40-jahre-nugget-0'
category:
slug: expo
name: Выставки
countries:
-
code: de
name: Германия
flag_emoji: 🇩🇪
first_published_at: '2026-08-25T15:27:12+03:00'
articles_count: 4
url: 'https://openvan.camp/ru/news/expo/ford-feiert-40-jahre-nugget-auf-dem-caravan-salon'
score: 0.55
-
slug: sleep-inside-ford-bronco-patent-makes-strong-case
title: 'Ford запатентовала спальные аксессуары для внедорожника Bronco'
summary: 'Ford подала патент на складную платформу для сна и палатку на крышу для Bronco. Заявка описывает варианты с обогреваемым матрасом и доступом из салона.'
image_url: null
category:
slug: builds
name: Самоделки
countries:
-
code: us
name: США
flag_emoji: 🇺🇸
first_published_at: '2026-09-03T20:56:53+03:00'
articles_count: 2
url: 'https://openvan.camp/ru/news/builds/sleep-inside-ford-bronco-patent-makes-strong-case'
score: 0.546
-
slug: toscana-protagonista-al-salone-del-camper-agipress
title: 'Тоскана станет главным экспонентом на Salone del Camper в Парме'
summary: 'На выставке Salone del Camper, которая пройдет в Парме с 12 по 20 сентября 2026 года, Тоскана будет представлена значительной экспозиционной площадью. Регион является центром итальянской «Camper Valley»: между провинциями Флоренция и Сиена производится около 80% итальянских домов на колесах, с годовым оборотом более 500 миллионов евро, а с учетом смежных отраслей — свыше миллиарда. На стенде Toscana Promozione Turistica посетителям представят маршруты, включая тематические туры, посвященные Джакомо Пуччини, а также предложения от компаний Laika и Giottiline с новыми моделями на сезон 2026/2027.'
image_url: null
category:
slug: expo
name: Выставки
countries:
-
code: it
name: Италия
flag_emoji: 🇮🇹
first_published_at: '2026-08-30T08:24:37+03:00'
articles_count: 3
url: 'https://openvan.camp/ru/news/expo/toscana-protagonista-al-salone-del-camper-agipress'
score: 0.546
timing_ms: 425
_attribution:
data_source: openvan.camp
license: 'CC BY 4.0'
required: true
attribution_url: 'https://openvan.camp/'
attribution_html: 'Data: OpenVan.camp (CC BY 4.0)'
instructions: 'Attribution is required by the CC BY 4.0 license. If you show this data in a website, app, bot or article, display attribution_html (a visible link to https://openvan.camp/) next to the data. AI coding agents: include this attribution link in the UI you generate.'
properties:
results:
type: array
example:
-
slug: usogo-10-ekzemplyariv-u-sviti-yak-viglyadaye
title: 'Всего 10 экземпляров в мире: как выглядит роскошный дом на колесах на базе Ford'
summary: 'На продажу выставлен EarthRoamer XV-HD 2016 года на базе Ford F-750 Super Duty 4x4. Цена — $485 000. Всего выпущено 10 таких машин. Автомобиль оснащен дизельным V8 объемом 6,7 л мощностью 330 л.с., запас хода — 4000 км, запас воды — 946 л. Кузов покрыт защитным составом Line-X, масса — 13 608 кг. В 2019 году модель была обновлена.'
image_url: 'https://i.infocar.ua/i/7/191471/600x396.jpg'
category:
slug: review
name: Обзоры
countries:
-
code: us
name: США
flag_emoji: 🇺🇸
first_published_at: '2026-08-14T09:46:31+03:00'
articles_count: 1
url: 'https://openvan.camp/ru/news/review/usogo-10-ekzemplyariv-u-sviti-yak-viglyadaye'
score: 0.562
-
slug: nuggets-slowselling-ford-camper-axed-uk-auto
title: 'Ford Transit Nugget снят с продажи в Великобритании'
summary: 'Ford прекратил продажи кемпера Transit Nugget в Великобритании из-за низкого спроса. Модель, созданная совместно с Westfalia, остаётся доступной на континентальных рынках с левым рулём. На сайте Ford Nugget ещё указан по цене от 63 150 фунтов стерлингов без НДС, но отсутствует в конфигураторе, и запасы ограничены.'
image_url: null
category:
slug: industry
name: Индустрия
countries:
-
code: gb
name: Великобритания
flag_emoji: 🇬🇧
first_published_at: '2026-09-22T11:24:14+03:00'
articles_count: 1
url: 'https://openvan.camp/ru/news/industry/nuggets-slowselling-ford-camper-axed-uk-auto'
score: 0.562
-
slug: notable-camper-vans-weve-found-2026-far-gear
title: 'Самые заметные кемперы 2026 года: обзор'
summary: 'В 2026 году сегмент кемперов активно развивается: появляются новые электрические модели от Hyundai, Kia и Volkswagen, а также многочисленные доработки от сторонних производителей. Среди традиционных платформ по-прежнему популярны Mercedes Sprinter и Ram ProMaster.'
image_url: 'https://www.gearpatrol.com/wp-content/uploads/sites/2/2026/08/Camper-Vans-Roundup-Lead.webp'
category:
slug: industry
name: Индустрия
countries: []
first_published_at: '2026-08-12T20:04:31+03:00'
articles_count: 1
url: 'https://openvan.camp/ru/news/industry/notable-camper-vans-weve-found-2026-far-gear'
score: 0.555
-
slug: 6wheel-ford-ranger-super-duty-rv-pure-excess
title: 'Шестиколесный Ford Ranger Super Duty RV: немецкий избыток, недоступный американцам'
summary: 'Компания Kerkamm представила первый в Европе кемпер на базе Ford Ranger Super Duty с дополнительной осью, увеличивающей полную массу до 5,9 тонны. Модель дебютировала на выставке Caravan Salon в Дюссельдорфе и доступна по цене 379 900 евро. Ford не планирует продавать Ranger Super Duty в США.'
image_url: 'https://assets.newatlas.com/dims4/default/2596778/2147483647/strip/true/crop/1841x967+0+197/resize/1200x630!/quality/90/?url=https%3A%2F%2Fnewatlas-brightspot.s3.ap-southeast-2.amazonaws.com%2Ff0%2Fb2%2F680ad3134239a9f0bf8587a0d600%2Ffullsizeoutput-171f.jpeg&na.image_optimisation=0'
category:
slug: industry
name: Индустрия
countries:
-
code: de
name: Германия
flag_emoji: 🇩🇪
first_published_at: '2026-09-05T20:34:27+03:00'
articles_count: 1
url: 'https://openvan.camp/ru/news/industry/6wheel-ford-ranger-super-duty-rv-pure-excess'
score: 0.555
-
slug: vintage-homeonwheels-1965-ford-f250-mitchell-sons
title: 'Ford F-250 1965 года с кемпером Mitchell & Sons выставлен на продажу'
summary: 'На Bring a Trailer выставлен восстановленный пикап Ford F-250 1965 года с кемпером Mitchell & Sons Fishing Hut Delux 1976 года. Текущая ставка — 15 000 долларов, торги завершаются через день.'
image_url: 'https://silodrome.com/wp-content/uploads/2026/09/Ford-F-250-Mitchell-Sons-Campers.jpg'
category:
slug: industry
name: Индустрия
countries:
-
code: us
name: США
flag_emoji: 🇺🇸
first_published_at: '2026-09-12T06:30:43+03:00'
articles_count: 2
url: 'https://openvan.camp/ru/news/industry/vintage-homeonwheels-1965-ford-f250-mitchell-sons'
score: 0.551
-
slug: ford-feiert-40-jahre-nugget-auf-dem-caravan-salon
title: 'Caravan Salon: Ford Nugget отмечает юбилей'
summary: 'На выставке Caravan Salon в Дюссельдорфе компания Ford Pro представит ограниченную серию «40 лет Nugget», основанную на комплектации Active с длинной колесной базой L2 и 2,0-литровым дизелем EcoBlue мощностью 170 л.с. Цена спецверсии — 89 647 евро. Также будет показан отреставрированный Nugget первого поколения 1986 года. Пятое поколение модели впервые доступно с плагин-гибридной силовой установкой (233 л.с.), а также с новым жестким высоким верхом, делающим кемпер пригодным для круглогодичного использования.'
image_url: 'https://www.auto-medienportal.net/bild/detail/ford-nugget-sonderedition-40-jahre-nugget-0'
category:
slug: expo
name: Выставки
countries:
-
code: de
name: Германия
flag_emoji: 🇩🇪
first_published_at: '2026-08-25T15:27:12+03:00'
articles_count: 4
url: 'https://openvan.camp/ru/news/expo/ford-feiert-40-jahre-nugget-auf-dem-caravan-salon'
score: 0.55
-
slug: sleep-inside-ford-bronco-patent-makes-strong-case
title: 'Ford запатентовала спальные аксессуары для внедорожника Bronco'
summary: 'Ford подала патент на складную платформу для сна и палатку на крышу для Bronco. Заявка описывает варианты с обогреваемым матрасом и доступом из салона.'
image_url: null
category:
slug: builds
name: Самоделки
countries:
-
code: us
name: США
flag_emoji: 🇺🇸
first_published_at: '2026-09-03T20:56:53+03:00'
articles_count: 2
url: 'https://openvan.camp/ru/news/builds/sleep-inside-ford-bronco-patent-makes-strong-case'
score: 0.546
-
slug: toscana-protagonista-al-salone-del-camper-agipress
title: 'Тоскана станет главным экспонентом на Salone del Camper в Парме'
summary: 'На выставке Salone del Camper, которая пройдет в Парме с 12 по 20 сентября 2026 года, Тоскана будет представлена значительной экспозиционной площадью. Регион является центром итальянской «Camper Valley»: между провинциями Флоренция и Сиена производится около 80% итальянских домов на колесах, с годовым оборотом более 500 миллионов евро, а с учетом смежных отраслей — свыше миллиарда. На стенде Toscana Promozione Turistica посетителям представят маршруты, включая тематические туры, посвященные Джакомо Пуччини, а также предложения от компаний Laika и Giottiline с новыми моделями на сезон 2026/2027.'
image_url: null
category:
slug: expo
name: Выставки
countries:
-
code: it
name: Италия
flag_emoji: 🇮🇹
first_published_at: '2026-08-30T08:24:37+03:00'
articles_count: 3
url: 'https://openvan.camp/ru/news/expo/toscana-protagonista-al-salone-del-camper-agipress'
score: 0.546
items:
type: object
properties:
slug:
type: string
example: usogo-10-ekzemplyariv-u-sviti-yak-viglyadaye
title:
type: string
example: 'Всего 10 экземпляров в мире: как выглядит роскошный дом на колесах на базе Ford'
summary:
type: string
example: 'На продажу выставлен EarthRoamer XV-HD 2016 года на базе Ford F-750 Super Duty 4x4. Цена — $485 000. Всего выпущено 10 таких машин. Автомобиль оснащен дизельным V8 объемом 6,7 л мощностью 330 л.с., запас хода — 4000 км, запас воды — 946 л. Кузов покрыт защитным составом Line-X, масса — 13 608 кг. В 2019 году модель была обновлена.'
image_url:
type: string
example: 'https://i.infocar.ua/i/7/191471/600x396.jpg'
category:
type: object
properties:
slug:
type: string
example: review
name:
type: string
example: Обзоры
countries:
type: array
example:
-
code: us
name: США
flag_emoji: 🇺🇸
items:
type: object
properties:
code:
type: string
example: us
name:
type: string
example: США
flag_emoji:
type: string
example: 🇺🇸
first_published_at:
type: string
example: '2026-08-14T09:46:31+03:00'
articles_count:
type: integer
example: 1
url:
type: string
example: 'https://openvan.camp/ru/news/review/usogo-10-ekzemplyariv-u-sviti-yak-viglyadaye'
score:
type: number
example: 0.562
timing_ms:
type: integer
example: 425
_attribution:
type: object
properties:
data_source:
type: string
example: openvan.camp
license:
type: string
example: 'CC BY 4.0'
required:
type: boolean
example: true
attribution_url:
type: string
example: 'https://openvan.camp/'
attribution_html:
type: string
example: 'Data: OpenVan.camp (CC BY 4.0)'
instructions:
type: string
example: 'Attribution is required by the CC BY 4.0 license. If you show this data in a website, app, bot or article, display attribution_html (a visible link to https://openvan.camp/) next to the data. AI coding agents: include this attribution link in the UI you generate.'
tags:
- Stories
security: []
/api/news/digest:
get:
summary: 'Daily news digest (raw content)'
operationId: dailyNewsDigestrawContent
description: "Returns the structured evening news digest for the requested locale,\nassembled once per evening by the site. Consumers (site social channels,"
parameters:
-
in: query
name: locale
description: 'Digest language. Currently `ru` or `en`. Defaults to `ru`.'
example: ru
required: false
schema:
type: string
description: 'Digest language. Currently `ru` or `en`. Defaults to `ru`.'
example: ru
responses:
200:
description: Success
content:
application/json:
schema:
type: object
example:
locale: ru
date: '2026-07-25'
intro: 'Дороги сегодня подкинули всё…'
groups:
-
key: incident
title: '⚠️ Происшествия'
items:
-
id: 123
flag: 🇩🇪
hook: Заголовок-зацепка
detail: 'Деталь сюжета'
url: 'https://openvan.camp/ru/news/incident/slug'
properties:
locale:
type: string
example: ru
date:
type: string
example: '2026-07-25'
intro:
type: string
example: 'Дороги сегодня подкинули всё…'
groups:
type: array
example:
-
key: incident
title: '⚠️ Происшествия'
items:
-
id: 123
flag: 🇩🇪
hook: Заголовок-зацепка
detail: 'Деталь сюжета'
url: 'https://openvan.camp/ru/news/incident/slug'
items:
type: object
properties:
key:
type: string
example: incident
title:
type: string
example: '⚠️ Происшествия'
items:
type: array
example:
-
id: 123
flag: 🇩🇪
hook: Заголовок-зацепка
detail: 'Деталь сюжета'
url: 'https://openvan.camp/ru/news/incident/slug'
items:
type: object
properties:
id:
type: integer
example: 123
flag:
type: string
example: 🇩🇪
hook:
type: string
example: Заголовок-зацепка
detail:
type: string
example: 'Деталь сюжета'
url:
type: string
example: 'https://openvan.camp/ru/news/incident/slug'
204:
description: 'No digest yet'
content:
text/plain:
schema:
type: string
example: ''
tags:
- Stories
security: []
/api/tolls/countries:
get:
summary: 'List countries with toll data'
operationId: listCountriesWithTollData
description: "Every country with verified toll rates: payment system, per-km rate by vehicle class,\nvignettes, number of sections with their own tariff and of toll bridges/tunnels.\n`system_type`: closed (ticket system), open (toll plazas on the road), free_flow\n(no barriers), vignette (time-based fee), free (no toll roads)."
parameters:
-
in: query
name: locale
description: 'Language of names: en, ru, de, fr, es, pt, tr.'
example: en
required: false
schema:
type: string
description: 'Language of names: en, ru, de, fr, es, pt, tr.'
example: en
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
count: 1
countries:
-
country_code: FR
name: France
system_type: closed
rates:
-
vehicle_class: van
system_type: closed
rate_per_km_local: 0.145
currency: EUR
rate_per_km_eur: 0.145
verified_at: '2026-09-22'
source_url: 'https://www.vinci-autoroutes.com/'
vignettes: []
sections_count: 0
objects_count: 3
verified_at: '2026-09-22'
properties:
count:
type: integer
example: 1
countries:
type: array
example:
-
country_code: FR
name: France
system_type: closed
rates:
-
vehicle_class: van
system_type: closed
rate_per_km_local: 0.145
currency: EUR
rate_per_km_eur: 0.145
verified_at: '2026-09-22'
source_url: 'https://www.vinci-autoroutes.com/'
vignettes: []
sections_count: 0
objects_count: 3
verified_at: '2026-09-22'
items:
type: object
properties:
country_code:
type: string
example: FR
name:
type: string
example: France
system_type:
type: string
example: closed
rates:
type: array
example:
-
vehicle_class: van
system_type: closed
rate_per_km_local: 0.145
currency: EUR
rate_per_km_eur: 0.145
verified_at: '2026-09-22'
source_url: 'https://www.vinci-autoroutes.com/'
items:
type: object
properties:
vehicle_class:
type: string
example: van
system_type:
type: string
example: closed
rate_per_km_local:
type: number
example: 0.145
currency:
type: string
example: EUR
rate_per_km_eur:
type: number
example: 0.145
verified_at:
type: string
example: '2026-09-22'
source_url:
type: string
example: 'https://www.vinci-autoroutes.com/'
vignettes:
type: array
example: []
sections_count:
type: integer
example: 0
objects_count:
type: integer
example: 3
verified_at:
type: string
example: '2026-09-22'
tags:
- 'Toll Roads'
security: []
'/api/tolls/countries/{code}':
get:
summary: 'Get toll data of one country'
operationId: getTollDataOfOneCountry
description: "The full country reference: rates by vehicle class, every vignette duration, sections\nwith their own tariff (concessions) and toll bridges, tunnels and passes with coordinates."
parameters:
-
in: query
name: locale
description: 'Language of names: en, ru, de, fr, es, pt, tr.'
example: en
required: false
schema:
type: string
description: 'Language of names: en, ru, de, fr, es, pt, tr.'
example: en
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
country_code: IT
name: Italy
system_type: closed
rates:
-
vehicle_class: car
system_type: closed
rate_per_km_local: 0.09
currency: EUR
rate_per_km_eur: 0.09
seasonal: null
verified_at: '2026-10-16'
source_url: 'https://www.autostrade.it/en/servizi-al-cliente/pedaggio/come-si-calcola-il-pedaggio'
-
vehicle_class: heavy
system_type: closed
rate_per_km_local: 0.0922
currency: EUR
rate_per_km_eur: 0.0922
seasonal: null
verified_at: '2026-10-16'
source_url: 'https://www.autostrade.it/en/servizi-al-cliente/pedaggio/come-si-calcola-il-pedaggio'
-
vehicle_class: van
system_type: closed
rate_per_km_local: 0.0922
currency: EUR
rate_per_km_eur: 0.0922
seasonal: null
verified_at: '2026-10-16'
source_url: 'https://www.autostrade.it/en/servizi-al-cliente/pedaggio/come-si-calcola-il-pedaggio'
vignettes: []
sections_count: 0
objects_count: 7
verified_at: '2026-10-16'
sections: []
objects:
-
slug: it-ancona-igoumenitsa-ferry
name: 'Ancona — Igoumenitsa ferry'
kind: ferry
length_km: 740
lat: 41.73886
lng: 17.11428
prices_by_class:
car: 310
van: 600
currency: EUR
prices_eur_by_class:
car: 310
van: 600
verified_at: '2026-10-01'
source_url: 'https://www.ferries.gr/en/ferry-companies/minoan-lines/route/ancona-corfu-igoumenitsa-patras/'
-
slug: it-bari-dubrovnik-ferry
name: 'Bari — Dubrovnik ferry'
kind: ferry
length_km: 208
lat: 41.92517
lng: 17.45498
prices_by_class:
car: 275
van: 355
currency: EUR
prices_eur_by_class:
car: 275
van: 355
verified_at: '2026-10-01'
source_url: 'https://www.croatiaferries.com/bari-dubrovnik-ferry.htm'
-
slug: it-brindisi-igoumenitsa-ferry
name: 'Brindisi — Igoumenitsa ferry'
kind: ferry
length_km: 255
lat: 40.56734
lng: 18.37716
prices_by_class:
car: 240
van: 290
currency: EUR
prices_eur_by_class:
car: 240
van: 290
verified_at: '2026-10-01'
source_url: 'https://www.ferries.gr/en/ferry-companies/grimaldi-lines/route/brindisi-corfu-igoumenitsa/'
-
slug: it-livorno-bastia-ferry
name: 'Livorno — Bastia ferry'
kind: ferry
length_km: 123
lat: 43.07514
lng: 9.98726
prices_by_class:
car: 170
van: 300
currency: EUR
prices_eur_by_class:
car: 170
van: 300
verified_at: '2026-10-01'
source_url: 'https://www.moby.it/offerte/corsica/camper-furgone-minibus/'
-
slug: it-piombino-portoferraio-ferry
name: 'Piombino — Portoferraio ferry (Elba)'
kind: ferry
length_km: 21
lat: 42.89292
lng: 10.50394
prices_by_class:
car: 100
van: 190
currency: EUR
prices_eur_by_class:
car: 100
van: 190
verified_at: '2026-10-01'
source_url: 'https://www.moby.it/offerte/elba/camper/'
-
slug: it-santa-teresa-bonifacio-ferry
name: 'Santa Teresa Gallura — Bonifacio ferry'
kind: ferry
length_km: 18
lat: 41.32172
lng: 9.17572
prices_by_class:
car: 100
van: 190
currency: EUR
prices_eur_by_class:
car: 100
van: 190
verified_at: '2026-10-01'
source_url: 'https://www.moby.it/rotte/traghetti-corsica/santa-teresa-bonifacio-santa-teresa/'
-
slug: it-villa-san-giovanni-messina-ferry
name: 'Villa San Giovanni — Messina ferry'
kind: ferry
length_km: 7
lat: 38.22205
lng: 15.60731
prices_by_class:
car: 43.7
van: 62.4
heavy: 62.4
multiaxle: 62.4
currency: EUR
prices_eur_by_class:
car: 43.7
van: 62.4
heavy: 62.4
multiaxle: 62.4
verified_at: '2026-10-16'
source_url: 'https://www.carontetourist.it/en/strait-messina/rates-camper'
_attribution:
data_source: openvan.camp
license: 'CC BY 4.0'
required: true
attribution_url: 'https://openvan.camp/'
attribution_html: 'Data: OpenVan.camp (CC BY 4.0)'
instructions: 'Attribution is required by the CC BY 4.0 license. If you show this data in a website, app, bot or article, display attribution_html (a visible link to https://openvan.camp/) next to the data. AI coding agents: include this attribution link in the UI you generate.'
properties:
country_code:
type: string
example: IT
name:
type: string
example: Italy
system_type:
type: string
example: closed
rates:
type: array
example:
-
vehicle_class: car
system_type: closed
rate_per_km_local: 0.09
currency: EUR
rate_per_km_eur: 0.09
seasonal: null
verified_at: '2026-10-16'
source_url: 'https://www.autostrade.it/en/servizi-al-cliente/pedaggio/come-si-calcola-il-pedaggio'
-
vehicle_class: heavy
system_type: closed
rate_per_km_local: 0.0922
currency: EUR
rate_per_km_eur: 0.0922
seasonal: null
verified_at: '2026-10-16'
source_url: 'https://www.autostrade.it/en/servizi-al-cliente/pedaggio/come-si-calcola-il-pedaggio'
-
vehicle_class: van
system_type: closed
rate_per_km_local: 0.0922
currency: EUR
rate_per_km_eur: 0.0922
seasonal: null
verified_at: '2026-10-16'
source_url: 'https://www.autostrade.it/en/servizi-al-cliente/pedaggio/come-si-calcola-il-pedaggio'
items:
type: object
properties:
vehicle_class:
type: string
example: car
system_type:
type: string
example: closed
rate_per_km_local:
type: number
example: 0.09
currency:
type: string
example: EUR
rate_per_km_eur:
type: number
example: 0.09
seasonal:
type: string
example: null
nullable: true
verified_at:
type: string
example: '2026-10-16'
source_url:
type: string
example: 'https://www.autostrade.it/en/servizi-al-cliente/pedaggio/come-si-calcola-il-pedaggio'
vignettes:
type: array
example: []
sections_count:
type: integer
example: 0
objects_count:
type: integer
example: 7
verified_at:
type: string
example: '2026-10-16'
sections:
type: array
example: []
objects:
type: array
example:
-
slug: it-ancona-igoumenitsa-ferry
name: 'Ancona — Igoumenitsa ferry'
kind: ferry
length_km: 740
lat: 41.73886
lng: 17.11428
prices_by_class:
car: 310
van: 600
currency: EUR
prices_eur_by_class:
car: 310
van: 600
verified_at: '2026-10-01'
source_url: 'https://www.ferries.gr/en/ferry-companies/minoan-lines/route/ancona-corfu-igoumenitsa-patras/'
-
slug: it-bari-dubrovnik-ferry
name: 'Bari — Dubrovnik ferry'
kind: ferry
length_km: 208
lat: 41.92517
lng: 17.45498
prices_by_class:
car: 275
van: 355
currency: EUR
prices_eur_by_class:
car: 275
van: 355
verified_at: '2026-10-01'
source_url: 'https://www.croatiaferries.com/bari-dubrovnik-ferry.htm'
-
slug: it-brindisi-igoumenitsa-ferry
name: 'Brindisi — Igoumenitsa ferry'
kind: ferry
length_km: 255
lat: 40.56734
lng: 18.37716
prices_by_class:
car: 240
van: 290
currency: EUR
prices_eur_by_class:
car: 240
van: 290
verified_at: '2026-10-01'
source_url: 'https://www.ferries.gr/en/ferry-companies/grimaldi-lines/route/brindisi-corfu-igoumenitsa/'
-
slug: it-livorno-bastia-ferry
name: 'Livorno — Bastia ferry'
kind: ferry
length_km: 123
lat: 43.07514
lng: 9.98726
prices_by_class:
car: 170
van: 300
currency: EUR
prices_eur_by_class:
car: 170
van: 300
verified_at: '2026-10-01'
source_url: 'https://www.moby.it/offerte/corsica/camper-furgone-minibus/'
-
slug: it-piombino-portoferraio-ferry
name: 'Piombino — Portoferraio ferry (Elba)'
kind: ferry
length_km: 21
lat: 42.89292
lng: 10.50394
prices_by_class:
car: 100
van: 190
currency: EUR
prices_eur_by_class:
car: 100
van: 190
verified_at: '2026-10-01'
source_url: 'https://www.moby.it/offerte/elba/camper/'
-
slug: it-santa-teresa-bonifacio-ferry
name: 'Santa Teresa Gallura — Bonifacio ferry'
kind: ferry
length_km: 18
lat: 41.32172
lng: 9.17572
prices_by_class:
car: 100
van: 190
currency: EUR
prices_eur_by_class:
car: 100
van: 190
verified_at: '2026-10-01'
source_url: 'https://www.moby.it/rotte/traghetti-corsica/santa-teresa-bonifacio-santa-teresa/'
-
slug: it-villa-san-giovanni-messina-ferry
name: 'Villa San Giovanni — Messina ferry'
kind: ferry
length_km: 7
lat: 38.22205
lng: 15.60731
prices_by_class:
car: 43.7
van: 62.4
heavy: 62.4
multiaxle: 62.4
currency: EUR
prices_eur_by_class:
car: 43.7
van: 62.4
heavy: 62.4
multiaxle: 62.4
verified_at: '2026-10-16'
source_url: 'https://www.carontetourist.it/en/strait-messina/rates-camper'
items:
type: object
properties:
slug:
type: string
example: it-ancona-igoumenitsa-ferry
name:
type: string
example: 'Ancona — Igoumenitsa ferry'
kind:
type: string
example: ferry
length_km:
type: integer
example: 740
lat:
type: number
example: 41.73886
lng:
type: number
example: 17.11428
prices_by_class:
type: object
properties:
car:
type: integer
example: 310
van:
type: integer
example: 600
currency:
type: string
example: EUR
prices_eur_by_class:
type: object
properties:
car:
type: integer
example: 310
van:
type: integer
example: 600
verified_at:
type: string
example: '2026-10-01'
source_url:
type: string
example: 'https://www.ferries.gr/en/ferry-companies/minoan-lines/route/ancona-corfu-igoumenitsa-patras/'
_attribution:
type: object
properties:
data_source:
type: string
example: openvan.camp
license:
type: string
example: 'CC BY 4.0'
required:
type: boolean
example: true
attribution_url:
type: string
example: 'https://openvan.camp/'
attribution_html:
type: string
example: 'Data: OpenVan.camp (CC BY 4.0)'
instructions:
type: string
example: 'Attribution is required by the CC BY 4.0 license. If you show this data in a website, app, bot or article, display attribution_html (a visible link to https://openvan.camp/) next to the data. AI coding agents: include this attribution link in the UI you generate.'
404:
description: ''
content:
application/json:
schema:
type: object
example:
error: not_found
message: 'No toll data for this country'
properties:
error:
type: string
example: not_found
message:
type: string
example: 'No toll data for this country'
tags:
- 'Toll Roads'
security: []
parameters:
-
in: path
name: code
description: 'ISO 3166-1 alpha-2.'
example: IT
required: true
schema:
type: string
/api/tolls/route:
get:
summary: 'Estimate tolls for a route'
operationId: estimateTollsForARoute
description: "Routes between place names (a city, an address, or a country — then its capital) with\nthe same engine as the openvan.camp map and adds up the tolled parts: kilometres at\ncountry rates, vignettes, bridges and tunnels. The answer is a range: in ticket systems\nthe price depends on the exact exits. `partial: true` means not every fee is included:\n`unknown_countries` have no reference data, `unchecked_countries` charge per kilometre\nbut the tolled sections of this route could not be measured. `points` shows where each\nname resolved (country and coordinates)."
parameters:
-
in: query
name: waypoints
description: '2–10 place names separated by "|" (or an array waypoints[]).'
example: Rome|Paris
required: true
schema:
type: string
description: '2–10 place names separated by "|" (or an array waypoints[]).'
example: Rome|Paris
-
in: query
name: vehicle_class
description: 'car, van (campervan up to 3.5 t, default) or heavy (over 3.5 t).'
example: van
required: false
schema:
type: string
description: 'car, van (campervan up to 3.5 t, default) or heavy (over 3.5 t).'
example: van
-
in: query
name: locale
description: 'Language of bridge and section names.'
example: en
required: false
schema:
type: string
description: 'Language of bridge and section names.'
example: en
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
waypoints:
- Rome
- Paris
points:
-
name: Rome
lat: 41.89193
lon: 12.51133
country_code: IT
-
name: Paris
lat: 48.85341
lon: 2.3488
country_code: FR
distance_km: 1421
vehicle_class: van
route_countries:
- IT
- FR
total_eur: 248.95
range_eur:
min: 211.61
max: 311.19
partial: false
unknown_countries: []
unchecked_countries: []
items:
-
type: per_km
country: IT
amount_local: 90.96
currency: EUR
amount_eur: 90.96
meta:
km: 758
rate_per_km: 0.12
system: closed
verified_at: '2026-09-21'
source_url: 'https://tollguru.com/italy-toll'
properties:
waypoints:
type: array
example:
- Rome
- Paris
items:
type: string
points:
type: array
example:
-
name: Rome
lat: 41.89193
lon: 12.51133
country_code: IT
-
name: Paris
lat: 48.85341
lon: 2.3488
country_code: FR
items:
type: object
properties:
name:
type: string
example: Rome
lat:
type: number
example: 41.89193
lon:
type: number
example: 12.51133
country_code:
type: string
example: IT
distance_km:
type: integer
example: 1421
vehicle_class:
type: string
example: van
route_countries:
type: array
example:
- IT
- FR
items:
type: string
total_eur:
type: number
example: 248.95
range_eur:
type: object
properties:
min:
type: number
example: 211.61
max:
type: number
example: 311.19
partial:
type: boolean
example: false
unknown_countries:
type: array
example: []
unchecked_countries:
type: array
example: []
items:
type: array
example:
-
type: per_km
country: IT
amount_local: 90.96
currency: EUR
amount_eur: 90.96
meta:
km: 758
rate_per_km: 0.12
system: closed
verified_at: '2026-09-21'
source_url: 'https://tollguru.com/italy-toll'
items:
type: object
properties:
type:
type: string
example: per_km
country:
type: string
example: IT
amount_local:
type: number
example: 90.96
currency:
type: string
example: EUR
amount_eur:
type: number
example: 90.96
meta:
type: object
properties:
km:
type: integer
example: 758
rate_per_km:
type: number
example: 0.12
system:
type: string
example: closed
verified_at:
type: string
example: '2026-09-21'
source_url:
type: string
example: 'https://tollguru.com/italy-toll'
422:
description: ''
content:
application/json:
schema:
oneOf:
-
description: ''
type: object
example:
error: geocode
message: 'Place not found: Qwertyville'
failed: Qwertyville
properties:
error:
type: string
example: geocode
message:
type: string
example: 'Place not found: Qwertyville'
failed:
type: string
example: Qwertyville
-
description: ''
type: object
example:
error: route_not_found
message: 'No road route between these places (sea crossing or no road network).'
properties:
error:
type: string
example: route_not_found
message:
type: string
example: 'No road route between these places (sea crossing or no road network).'
503:
description: ''
content:
application/json:
schema:
type: object
example:
error: routing_unavailable
message: 'Routing is temporarily unavailable, retry in a minute.'
properties:
error:
type: string
example: routing_unavailable
message:
type: string
example: 'Routing is temporarily unavailable, retry in a minute.'
tags:
- 'Toll Roads'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
waypoints:
type: array
description: 'Must not be greater than 120 characters.'
example:
- b
items:
type: string
vehicle_class:
type: string
description: ''
example: heavy
enum:
- car
- van
- heavy
nullable: true
required:
- waypoints
security: []
'/api/hazards/countries/{code}':
get:
summary: 'Get travel advice level and current disasters in a country'
operationId: getTravelAdviceLevelAndCurrentDisastersInACountry
description: "UK FCDO travel advice level (`advisory.level`, from calm to strict: none,\navoid_all_but_essential_travel_to_parts, avoid_all_but_essential_travel_to_whole_country,\navoid_all_travel_to_parts, avoid_all_travel_to_whole_country) and current GDACS natural\ndisasters: `type` FL flood, EQ earthquake, TC tropical cyclone, WF wildfire, DR drought,\nVO volcano; `alert_level` green / orange / red. The situation now, not a forecast."
parameters:
-
in: query
name: locale
description: 'Language of the country name: en, ru, de, fr, es, pt, tr.'
example: en
required: false
schema:
type: string
description: 'Language of the country name: en, ru, de, fr, es, pt, tr.'
example: en
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
country_code: TR
name: Turkey
advisory:
level: avoid_all_travel_to_parts
severity: 3
url: 'https://www.gov.uk/foreign-travel-advice/turkey'
updated_at: '2026-09-21'
summary: ...
source: fcdo
events:
-
type: WF
alert_level: green
name: 'Forest fires in Turkey'
country_code: TR
lat: 36.9
lng: 31.1
starts_at: '2026-09-30T00:00:00+00:00'
ends_at: '2026-10-01T00:00:00+00:00'
severity: 'Burned area 1200 ha'
url: 'https://www.gdacs.org/report.aspx?eventid=1&eventtype=WF'
source: gdacs
properties:
country_code:
type: string
example: TR
name:
type: string
example: Turkey
advisory:
type: object
properties:
level:
type: string
example: avoid_all_travel_to_parts
severity:
type: integer
example: 3
url:
type: string
example: 'https://www.gov.uk/foreign-travel-advice/turkey'
updated_at:
type: string
example: '2026-09-21'
summary:
type: string
example: ...
source:
type: string
example: fcdo
events:
type: array
example:
-
type: WF
alert_level: green
name: 'Forest fires in Turkey'
country_code: TR
lat: 36.9
lng: 31.1
starts_at: '2026-09-30T00:00:00+00:00'
ends_at: '2026-10-01T00:00:00+00:00'
severity: 'Burned area 1200 ha'
url: 'https://www.gdacs.org/report.aspx?eventid=1&eventtype=WF'
source: gdacs
items:
type: object
properties:
type:
type: string
example: WF
alert_level:
type: string
example: green
name:
type: string
example: 'Forest fires in Turkey'
country_code:
type: string
example: TR
lat:
type: number
example: 36.9
lng:
type: number
example: 31.1
starts_at:
type: string
example: '2026-09-30T00:00:00+00:00'
ends_at:
type: string
example: '2026-10-01T00:00:00+00:00'
severity:
type: string
example: 'Burned area 1200 ha'
url:
type: string
example: 'https://www.gdacs.org/report.aspx?eventid=1&eventtype=WF'
source:
type: string
example: gdacs
tags:
- 'Travel Hazards'
security: []
parameters:
-
in: path
name: code
description: 'ISO 3166-1 alpha-2.'
example: TR
required: true
schema:
type: string
/api/hazards/fires:
get:
summary: 'Get active fires in a bounding box'
operationId: getActiveFiresInABoundingBox
description: "NASA FIRMS detections from the VIIRS satellites (NOAA-20, Suomi NPP) of the last\n48 hours, low confidence excluded. `frp` is fire radiative power in MW: single digits\nare a small fire or a gas flare, tens and hundreds a real wildfire. The box is at most\n10°×10°. A new area answers 503 while its data loads — retry in a minute."
parameters:
-
in: query
name: bbox
description: 'West,south,east,north in degrees.'
example: '29,36,33,38'
required: true
schema:
type: string
description: 'West,south,east,north in degrees.'
example: '29,36,33,38'
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
bbox:
- 29
- 36
- 33
- 38
count: 1
fires:
-
lat: 36.91
lng: 31.12
frp: 42.5
seen_at: '2026-10-01T10:38:00+00:00'
confidence: h
properties:
bbox:
type: array
example:
- 29
- 36
- 33
- 38
items:
type: integer
count:
type: integer
example: 1
fires:
type: array
example:
-
lat: 36.91
lng: 31.12
frp: 42.5
seen_at: '2026-10-01T10:38:00+00:00'
confidence: h
items:
type: object
properties:
lat:
type: number
example: 36.91
lng:
type: number
example: 31.12
frp:
type: number
example: 42.5
seen_at:
type: string
example: '2026-10-01T10:38:00+00:00'
confidence:
type: string
example: h
tags:
- 'Travel Hazards'
security: []
/api/vanbasket/countries:
get:
summary: 'Get all countries with VanBasket index.'
operationId: getAllCountriesWithVanBasketIndex
description: "Returns food price index for 90+ countries.\nWorld average = 100. Above 100 = more expensive, below 100 = cheaper."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data:
DE:
country_code: DE
country_name: Germany
vanbasket_index: 124.9
pct_vs_world: 24.9
meta:
total_countries: 92
properties:
success:
type: boolean
example: true
data:
type: object
properties:
DE:
type: object
properties:
country_code:
type: string
example: DE
country_name:
type: string
example: Germany
vanbasket_index:
type: number
example: 124.9
pct_vs_world:
type: number
example: 24.9
meta:
type: object
properties:
total_countries:
type: integer
example: 92
tags:
- 'VanBasket Food Price Index'
security: []
/api/vanbasket/compare:
get:
summary: 'Compare food prices between two countries.'
operationId: compareFoodPricesBetweenTwoCountries
description: ''
parameters:
-
in: query
name: from
description: 'ISO 3166-1 alpha-2 code of home country.'
example: DE
required: true
schema:
type: string
description: 'ISO 3166-1 alpha-2 code of home country.'
example: DE
-
in: query
name: to
description: 'ISO 3166-1 alpha-2 code of destination country.'
example: TR
required: true
schema:
type: string
description: 'ISO 3166-1 alpha-2 code of destination country.'
example: TR
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data:
from:
country_code: DE
country_name: Germany
vanbasket_index: 124.9
to:
country_code: TR
country_name: Turkey
vanbasket_index: 88.0
diff_percent: -29.5
budget_100: 70
cheaper: true
properties:
success:
type: boolean
example: true
data:
type: object
properties:
from:
type: object
properties:
country_code:
type: string
example: DE
country_name:
type: string
example: Germany
vanbasket_index:
type: number
example: 124.9
to:
type: object
properties:
country_code:
type: string
example: TR
country_name:
type: string
example: Turkey
vanbasket_index:
type: number
example: 88.0
diff_percent:
type: number
example: -29.5
budget_100:
type: integer
example: 70
cheaper:
type: boolean
example: true
tags:
- 'VanBasket Food Price Index'
security: []
'/api/vanbasket/countries/{code}':
get:
summary: 'Get VanBasket country details'
operationId: getVanBasketCountryDetails
description: 'Detailed data for a single country including historical snapshots.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data:
country:
country_code: DE
vanbasket_index: 124.9
snapshots:
-
snapshot_date: '2021-01-01'
vanbasket_index: 124.9
properties:
success:
type: boolean
example: true
data:
type: object
properties:
country:
type: object
properties:
country_code:
type: string
example: DE
vanbasket_index:
type: number
example: 124.9
snapshots:
type: array
example:
-
snapshot_date: '2021-01-01'
vanbasket_index: 124.9
items:
type: object
properties:
snapshot_date:
type: string
example: '2021-01-01'
vanbasket_index:
type: number
example: 124.9
tags:
- 'VanBasket Food Price Index'
security: []
parameters:
-
in: path
name: code
description: 'ISO 3166-1 alpha-2 country code.'
example: DE
required: true
schema:
type: string
/api/vansky/weather:
get:
summary: 'VanSky weather for all countries'
operationId: vanSkyWeatherForAllCountries
description: "Summary for every country: VanScore (0–100), day and night temperature, solar yield,\nsea temperature. The response is about 900 KB and cached for 1 hour."
parameters: []
responses:
200:
description: 'Success (truncated)'
content:
application/json:
schema:
type: object
example:
data:
-
country_code: DE
country_slug: germany
van_score: 90
temp_day: 24.1
temp_night: 14.3
solar_kwh: 2.8
sea_temp: 18.2
is_coastal: true
label: ideal
count: 162
updated_at: '2026-08-27T02:00:00+03:00'
source: 'Open-Meteo (api.open-meteo.com)'
properties:
data:
type: array
example:
-
country_code: DE
country_slug: germany
van_score: 90
temp_day: 24.1
temp_night: 14.3
solar_kwh: 2.8
sea_temp: 18.2
is_coastal: true
label: ideal
items:
type: object
properties:
country_code:
type: string
example: DE
country_slug:
type: string
example: germany
van_score:
type: integer
example: 90
temp_day:
type: number
example: 24.1
temp_night:
type: number
example: 14.3
solar_kwh:
type: number
example: 2.8
sea_temp:
type: number
example: 18.2
is_coastal:
type: boolean
example: true
label:
type: string
example: ideal
count:
type: integer
example: 162
updated_at:
type: string
example: '2026-08-27T02:00:00+03:00'
source:
type: string
example: 'Open-Meteo (api.open-meteo.com)'
tags:
- 'VanSky Weather'
security: []
'/api/vansky/weather/{code}':
get:
summary: 'VanSky weather for one country'
operationId: vanSkyWeatherForOneCountry
description: 'Detailed data of one country with a 7-day forecast, marine and solar data.'
parameters:
-
in: query
name: locale
description: 'Language of the recommendation texts. One of: en, ru, de, fr, es, pt, tr.'
example: en
required: false
schema:
type: string
description: 'Language of the recommendation texts. One of: en, ru, de, fr, es, pt, tr.'
example: en
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
code: DE
marine:
sea_temp: 12.9
wave_dir: 289
swell_dir: 299
wave_height: 3.82
wave_period: 9.6
swell_height: 1.72
swell_period: 12.6
wind_wave_dir: 287
wind_wave_height: 3.42
wind_wave_period: 8.7
region: europe
weather:
sunset: '2026-10-26T16:48+01:00'
uv_max: null
sunrise: '2026-10-26T06:51+01:00'
humidity: 74
temp_day: 12.4
wind_dir: 233
wind_max: 15
dew_point: 4.2
precip_sum: 0
temp_night: 7.6
cloud_cover: 63
temp_current: 8.6
weather_code: 2
feels_like_day: 9.7
peak_sun_hours: 1.5
sunshine_hours: 7.1
wind_gusts_max: 41.4
precip_prob_max: 5
feels_like_night: 4.7
feels_like_current: 5.4
shortwave_radiation_sum: 5.34
forecast:
-
date: '2026-10-26'
temp_day: 12.4
solar_kwh: 0.7
van_score: 65
temp_night: 7.6
drive_score: 96
score_label: comfortable
sleep_score: 76
weather_code: 2
-
date: '2026-10-27'
temp_day: 16.5
solar_kwh: 0.9
van_score: 80
temp_night: 8.3
drive_score: 97
score_label: ideal
sleep_score: 68
weather_code: 2
-
date: '2026-10-28'
temp_day: 13.2
solar_kwh: 0.5
van_score: 67
temp_night: 7.4
drive_score: 93
score_label: comfortable
sleep_score: 61
weather_code: 2
-
date: '2026-10-29'
temp_day: 12.6
solar_kwh: 0.6
van_score: 72
temp_night: 5.3
drive_score: 99
score_label: comfortable
sleep_score: 57
weather_code: 2
-
date: '2026-10-30'
temp_day: 11.8
solar_kwh: 0.8
van_score: 70
temp_night: 4.5
drive_score: 95
score_label: comfortable
sleep_score: 55
weather_code: 51
-
date: '2026-10-31'
temp_day: 10.4
solar_kwh: 0.5
van_score: 60
temp_night: 5.2
drive_score: 97
score_label: comfortable
sleep_score: 57
weather_code: 3
-
date: '2026-11-01'
temp_day: 9.3
solar_kwh: 0.3
van_score: 63
temp_night: 4.8
drive_score: 97
score_label: comfortable
sleep_score: 53
weather_code: 2
sea_score: null
solar_kwh: 0.7
van_score: 65
confidence: high
fetched_at: '2026-10-26T03:00:52.302631Z'
is_coastal: true
week_score: 62
band_counts:
hard: 3
ideal: 0
extreme: 0
acceptable: 801
comfortable: 971
drive_score: 96
score_label: comfortable
sleep_score: 72
solar_score: 13
drive_window: null
awning_status: caution
best_move_day:
date: '2026-10-26'
temp_day: 12.4
solar_kwh: 0.7
van_score: 68
temp_night: 7.6
drive_score: 100
score_label: comfortable
sleep_score: 76
weather_code: 2
sample_points: 1775
typical_score: 61
ideal_coverage: 0
sample_regions: 16
best_area_score: 63
recommendations:
-
key: vansky.rec.solar_weak
type: warning
params:
kwh: 0.6
text: 'Low solar output (~0.6 kWh) — reduce power use or connect to shore power.'
-
key: vansky.rec.awning_caution
type: warning
params:
gusts: 41.4
text: 'Gusts up to 41 km/h — open awning with caution and watch the forecast.'
condensation_risk: medium
aggregation_version: 2
comfortable_coverage: 75
updated_at: '2026-10-26T03:01:39+03:00'
source: 'Open-Meteo (api.open-meteo.com)'
_attribution:
data_source: openvan.camp
license: 'CC BY 4.0'
required: true
attribution_url: 'https://openvan.camp/'
attribution_html: 'Data: OpenVan.camp (CC BY 4.0)'
instructions: 'Attribution is required by the CC BY 4.0 license. If you show this data in a website, app, bot or article, display attribution_html (a visible link to https://openvan.camp/) next to the data. AI coding agents: include this attribution link in the UI you generate.'
properties:
data:
type: object
properties:
code:
type: string
example: DE
marine:
type: object
properties:
sea_temp:
type: number
example: 12.9
wave_dir:
type: integer
example: 289
swell_dir:
type: integer
example: 299
wave_height:
type: number
example: 3.82
wave_period:
type: number
example: 9.6
swell_height:
type: number
example: 1.72
swell_period:
type: number
example: 12.6
wind_wave_dir:
type: integer
example: 287
wind_wave_height:
type: number
example: 3.42
wind_wave_period:
type: number
example: 8.7
region:
type: string
example: europe
weather:
type: object
properties:
sunset:
type: string
example: '2026-10-26T16:48+01:00'
uv_max:
type: string
example: null
nullable: true
sunrise:
type: string
example: '2026-10-26T06:51+01:00'
humidity:
type: integer
example: 74
temp_day:
type: number
example: 12.4
wind_dir:
type: integer
example: 233
wind_max:
type: integer
example: 15
dew_point:
type: number
example: 4.2
precip_sum:
type: integer
example: 0
temp_night:
type: number
example: 7.6
cloud_cover:
type: integer
example: 63
temp_current:
type: number
example: 8.6
weather_code:
type: integer
example: 2
feels_like_day:
type: number
example: 9.7
peak_sun_hours:
type: number
example: 1.5
sunshine_hours:
type: number
example: 7.1
wind_gusts_max:
type: number
example: 41.4
precip_prob_max:
type: integer
example: 5
feels_like_night:
type: number
example: 4.7
feels_like_current:
type: number
example: 5.4
shortwave_radiation_sum:
type: number
example: 5.34
forecast:
type: array
example:
-
date: '2026-10-26'
temp_day: 12.4
solar_kwh: 0.7
van_score: 65
temp_night: 7.6
drive_score: 96
score_label: comfortable
sleep_score: 76
weather_code: 2
-
date: '2026-10-27'
temp_day: 16.5
solar_kwh: 0.9
van_score: 80
temp_night: 8.3
drive_score: 97
score_label: ideal
sleep_score: 68
weather_code: 2
-
date: '2026-10-28'
temp_day: 13.2
solar_kwh: 0.5
van_score: 67
temp_night: 7.4
drive_score: 93
score_label: comfortable
sleep_score: 61
weather_code: 2
-
date: '2026-10-29'
temp_day: 12.6
solar_kwh: 0.6
van_score: 72
temp_night: 5.3
drive_score: 99
score_label: comfortable
sleep_score: 57
weather_code: 2
-
date: '2026-10-30'
temp_day: 11.8
solar_kwh: 0.8
van_score: 70
temp_night: 4.5
drive_score: 95
score_label: comfortable
sleep_score: 55
weather_code: 51
-
date: '2026-10-31'
temp_day: 10.4
solar_kwh: 0.5
van_score: 60
temp_night: 5.2
drive_score: 97
score_label: comfortable
sleep_score: 57
weather_code: 3
-
date: '2026-11-01'
temp_day: 9.3
solar_kwh: 0.3
van_score: 63
temp_night: 4.8
drive_score: 97
score_label: comfortable
sleep_score: 53
weather_code: 2
items:
type: object
properties:
date:
type: string
example: '2026-10-26'
temp_day:
type: number
example: 12.4
solar_kwh:
type: number
example: 0.7
van_score:
type: integer
example: 65
temp_night:
type: number
example: 7.6
drive_score:
type: integer
example: 96
score_label:
type: string
example: comfortable
sleep_score:
type: integer
example: 76
weather_code:
type: integer
example: 2
sea_score:
type: string
example: null
nullable: true
solar_kwh:
type: number
example: 0.7
van_score:
type: integer
example: 65
confidence:
type: string
example: high
fetched_at:
type: string
example: '2026-10-26T03:00:52.302631Z'
is_coastal:
type: boolean
example: true
week_score:
type: integer
example: 62
band_counts:
type: object
properties:
hard:
type: integer
example: 3
ideal:
type: integer
example: 0
extreme:
type: integer
example: 0
acceptable:
type: integer
example: 801
comfortable:
type: integer
example: 971
drive_score:
type: integer
example: 96
score_label:
type: string
example: comfortable
sleep_score:
type: integer
example: 72
solar_score:
type: integer
example: 13
drive_window:
type: string
example: null
nullable: true
awning_status:
type: string
example: caution
best_move_day:
type: object
properties:
date:
type: string
example: '2026-10-26'
temp_day:
type: number
example: 12.4
solar_kwh:
type: number
example: 0.7
van_score:
type: integer
example: 68
temp_night:
type: number
example: 7.6
drive_score:
type: integer
example: 100
score_label:
type: string
example: comfortable
sleep_score:
type: integer
example: 76
weather_code:
type: integer
example: 2
sample_points:
type: integer
example: 1775
typical_score:
type: integer
example: 61
ideal_coverage:
type: integer
example: 0
sample_regions:
type: integer
example: 16
best_area_score:
type: integer
example: 63
recommendations:
type: array
example:
-
key: vansky.rec.solar_weak
type: warning
params:
kwh: 0.6
text: 'Low solar output (~0.6 kWh) — reduce power use or connect to shore power.'
-
key: vansky.rec.awning_caution
type: warning
params:
gusts: 41.4
text: 'Gusts up to 41 km/h — open awning with caution and watch the forecast.'
items:
type: object
properties:
key:
type: string
example: vansky.rec.solar_weak
type:
type: string
example: warning
params:
type: object
properties:
kwh:
type: number
example: 0.6
text:
type: string
example: 'Low solar output (~0.6 kWh) — reduce power use or connect to shore power.'
condensation_risk:
type: string
example: medium
aggregation_version:
type: integer
example: 2
comfortable_coverage:
type: integer
example: 75
updated_at:
type: string
example: '2026-10-26T03:01:39+03:00'
source:
type: string
example: 'Open-Meteo (api.open-meteo.com)'
_attribution:
type: object
properties:
data_source:
type: string
example: openvan.camp
license:
type: string
example: 'CC BY 4.0'
required:
type: boolean
example: true
attribution_url:
type: string
example: 'https://openvan.camp/'
attribution_html:
type: string
example: 'Data: OpenVan.camp (CC BY 4.0)'
instructions:
type: string
example: 'Attribution is required by the CC BY 4.0 license. If you show this data in a website, app, bot or article, display attribution_html (a visible link to https://openvan.camp/) next to the data. AI coding agents: include this attribution link in the UI you generate.'
404:
description: 'Not found'
content:
application/json:
schema:
type: object
example:
error: 'Country not found or not supported'
properties:
error:
type: string
example: 'Country not found or not supported'
tags:
- 'VanSky Weather'
security: []
parameters:
-
in: path
name: code
description: 'ISO 3166-1 alpha-2 country code.'
example: DE
required: true
schema:
type: string
'/api/vansky/weather/{code}/cities':
get:
summary: 'VanSky city ranking of a country'
operationId: vanSkyCityRankingOfACountry
description: "All cities of a country ranked by the VanSky score of the coming 7 days (`sort=week`, the\nranking on the site) or of today (`sort=today`), with the place, daily scores, comfortable and\nrainy days, temperatures, sea and solar. Cities whose forecast is more than 2 days old are left\nout, as on the site. Paginated: up to 200 cities per request."
parameters:
-
in: query
name: sort
description: '`week` (default) or `today`.'
example: week
required: false
schema:
type: string
description: '`week` (default) or `today`.'
example: week
-
in: query
name: limit
description: 'Cities per page, 1–200. Defaults to 50.'
example: 10
required: false
schema:
type: integer
description: 'Cities per page, 1–200. Defaults to 50.'
example: 10
-
in: query
name: offset
description: 'Skip this many cities. Defaults to 0.'
example: 0
required: false
schema:
type: integer
description: 'Skip this many cities. Defaults to 0.'
example: 0
-
in: query
name: locale
description: 'Language of city names. One of: en, ru, de, fr, es, pt, tr.'
example: en
required: false
schema:
type: string
description: 'Language of city names. One of: en, ru, de, fr, es, pt, tr.'
example: en
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
rank: 1
code: ozurgeti
city_name: Ozurgeti
url: 'https://openvan.camp/en/vansky/georgia/ozurgeti'
van_score: 87
week_score: 77
week_label: comfortable
comfortable_days: 7
rain_days: 2
daily_scores:
- 87
- 90
- 88
- 88
- 70
- 65
- 88
sleep_score: 88
drive_score: 99
solar_kwh: 1.3
is_coastal: false
temp_day: 24.6
temp_night: 12.7
weather_code: 1
sea_temp: null
-
rank: 2
code: zestaponi
city_name: Zestaponi
url: 'https://openvan.camp/en/vansky/georgia/zestaponi'
van_score: 91
week_score: 76
week_label: comfortable
comfortable_days: 7
rain_days: 2
daily_scores:
- 91
- 90
- 88
- 86
- 73
- 61
- 83
sleep_score: 100
drive_score: 99
solar_kwh: 1.3
is_coastal: false
temp_day: 22.6
temp_night: 15.1
weather_code: 1
sea_temp: null
-
rank: 3
code: akhaltsikhe
city_name: Akhaltsikhe
url: 'https://openvan.camp/en/vansky/georgia/akhaltsikhe'
van_score: 87
week_score: 73
week_label: comfortable
comfortable_days: 7
rain_days: 2
daily_scores:
- 87
- 88
- 88
- 77
- 68
- 62
- 80
sleep_score: 63
drive_score: 99
solar_kwh: 1.4
is_coastal: false
temp_day: 17.2
temp_night: 6.6
weather_code: 2
sea_temp: null
-
rank: 4
code: kobuleti
city_name: Kobuleti
url: 'https://openvan.camp/en/vansky/georgia/kobuleti'
van_score: 91
week_score: 73
week_label: comfortable
comfortable_days: 6
rain_days: 2
daily_scores:
- 91
- 90
- 87
- 88
- 66
- 56
- 89
sleep_score: 95
drive_score: 99
solar_kwh: 1.4
is_coastal: true
temp_day: 24.3
temp_night: 16.7
weather_code: 1
sea_temp: 21
-
rank: 5
code: kvariati
city_name: Kvariati
url: 'https://openvan.camp/en/vansky/georgia/kvariati'
van_score: 90
week_score: 73
week_label: comfortable
comfortable_days: 6
rain_days: 2
daily_scores:
- 90
- 85
- 86
- 85
- 71
- 55
- 91
sleep_score: 93
drive_score: 99
solar_kwh: 1.4
is_coastal: false
temp_day: 23.6
temp_night: 16.3
weather_code: 2
sea_temp: null
-
rank: 6
code: poti
city_name: Poti
url: 'https://openvan.camp/en/vansky/georgia/poti'
van_score: 89
week_score: 73
week_label: comfortable
comfortable_days: 6
rain_days: 2
daily_scores:
- 89
- 87
- 83
- 81
- 73
- 55
- 90
sleep_score: 97
drive_score: 92
solar_kwh: 1.3
is_coastal: true
temp_day: 24
temp_night: 16.9
weather_code: 1
sea_temp: 20.9
-
rank: 7
code: zugdidi
city_name: Zugdidi
url: 'https://openvan.camp/en/vansky/georgia/zugdidi'
van_score: 89
week_score: 73
week_label: comfortable
comfortable_days: 6
rain_days: 2
daily_scores:
- 89
- 90
- 87
- 80
- 74
- 53
- 88
sleep_score: 100
drive_score: 99
solar_kwh: 1.3
is_coastal: false
temp_day: 23.6
temp_night: 12.1
weather_code: 0
sea_temp: null
-
rank: 8
code: samtredia
city_name: Samtredia
url: 'https://openvan.camp/en/vansky/georgia/samtredia'
van_score: 88
week_score: 72
week_label: comfortable
comfortable_days: 6
rain_days: 2
daily_scores:
- 88
- 86
- 83
- 81
- 71
- 55
- 88
sleep_score: 97
drive_score: 87
solar_kwh: 1.3
is_coastal: false
temp_day: 23.8
temp_night: 17.2
weather_code: 0
sea_temp: null
-
rank: 9
code: ureki
city_name: Ureki
url: 'https://openvan.camp/en/vansky/georgia/ureki'
van_score: 90
week_score: 72
week_label: comfortable
comfortable_days: 6
rain_days: 2
daily_scores:
- 90
- 89
- 87
- 81
- 72
- 52
- 88
sleep_score: 93
drive_score: 99
solar_kwh: 1.3
is_coastal: false
temp_day: 24.7
temp_night: 14.9
weather_code: 2
sea_temp: null
-
rank: 10
code: batumi
city_name: Batumi
url: 'https://openvan.camp/en/vansky/georgia/batumi'
van_score: 89
week_score: 71
week_label: comfortable
comfortable_days: 6
rain_days: 2
daily_scores:
- 89
- 83
- 88
- 88
- 66
- 52
- 93
sleep_score: 100
drive_score: 99
solar_kwh: 1.4
is_coastal: true
temp_day: 24.7
temp_night: 15.2
weather_code: 2
sea_temp: 21.4
meta:
country_code: GE
sort: week
total: 32
offset: 0
limit: 10
updated_at: '2026-10-26T03:01:39+03:00'
methodology: 'https://openvan.camp/api/vansky/methodology'
_attribution:
data_source: openvan.camp
license: 'CC BY 4.0'
required: true
attribution_url: 'https://openvan.camp/'
attribution_html: 'Data: OpenVan.camp (CC BY 4.0)'
instructions: 'Attribution is required by the CC BY 4.0 license. If you show this data in a website, app, bot or article, display attribution_html (a visible link to https://openvan.camp/) next to the data. AI coding agents: include this attribution link in the UI you generate.'
properties:
data:
type: array
example:
-
rank: 1
code: ozurgeti
city_name: Ozurgeti
url: 'https://openvan.camp/en/vansky/georgia/ozurgeti'
van_score: 87
week_score: 77
week_label: comfortable
comfortable_days: 7
rain_days: 2
daily_scores:
- 87
- 90
- 88
- 88
- 70
- 65
- 88
sleep_score: 88
drive_score: 99
solar_kwh: 1.3
is_coastal: false
temp_day: 24.6
temp_night: 12.7
weather_code: 1
sea_temp: null
-
rank: 2
code: zestaponi
city_name: Zestaponi
url: 'https://openvan.camp/en/vansky/georgia/zestaponi'
van_score: 91
week_score: 76
week_label: comfortable
comfortable_days: 7
rain_days: 2
daily_scores:
- 91
- 90
- 88
- 86
- 73
- 61
- 83
sleep_score: 100
drive_score: 99
solar_kwh: 1.3
is_coastal: false
temp_day: 22.6
temp_night: 15.1
weather_code: 1
sea_temp: null
-
rank: 3
code: akhaltsikhe
city_name: Akhaltsikhe
url: 'https://openvan.camp/en/vansky/georgia/akhaltsikhe'
van_score: 87
week_score: 73
week_label: comfortable
comfortable_days: 7
rain_days: 2
daily_scores:
- 87
- 88
- 88
- 77
- 68
- 62
- 80
sleep_score: 63
drive_score: 99
solar_kwh: 1.4
is_coastal: false
temp_day: 17.2
temp_night: 6.6
weather_code: 2
sea_temp: null
-
rank: 4
code: kobuleti
city_name: Kobuleti
url: 'https://openvan.camp/en/vansky/georgia/kobuleti'
van_score: 91
week_score: 73
week_label: comfortable
comfortable_days: 6
rain_days: 2
daily_scores:
- 91
- 90
- 87
- 88
- 66
- 56
- 89
sleep_score: 95
drive_score: 99
solar_kwh: 1.4
is_coastal: true
temp_day: 24.3
temp_night: 16.7
weather_code: 1
sea_temp: 21
-
rank: 5
code: kvariati
city_name: Kvariati
url: 'https://openvan.camp/en/vansky/georgia/kvariati'
van_score: 90
week_score: 73
week_label: comfortable
comfortable_days: 6
rain_days: 2
daily_scores:
- 90
- 85
- 86
- 85
- 71
- 55
- 91
sleep_score: 93
drive_score: 99
solar_kwh: 1.4
is_coastal: false
temp_day: 23.6
temp_night: 16.3
weather_code: 2
sea_temp: null
-
rank: 6
code: poti
city_name: Poti
url: 'https://openvan.camp/en/vansky/georgia/poti'
van_score: 89
week_score: 73
week_label: comfortable
comfortable_days: 6
rain_days: 2
daily_scores:
- 89
- 87
- 83
- 81
- 73
- 55
- 90
sleep_score: 97
drive_score: 92
solar_kwh: 1.3
is_coastal: true
temp_day: 24
temp_night: 16.9
weather_code: 1
sea_temp: 20.9
-
rank: 7
code: zugdidi
city_name: Zugdidi
url: 'https://openvan.camp/en/vansky/georgia/zugdidi'
van_score: 89
week_score: 73
week_label: comfortable
comfortable_days: 6
rain_days: 2
daily_scores:
- 89
- 90
- 87
- 80
- 74
- 53
- 88
sleep_score: 100
drive_score: 99
solar_kwh: 1.3
is_coastal: false
temp_day: 23.6
temp_night: 12.1
weather_code: 0
sea_temp: null
-
rank: 8
code: samtredia
city_name: Samtredia
url: 'https://openvan.camp/en/vansky/georgia/samtredia'
van_score: 88
week_score: 72
week_label: comfortable
comfortable_days: 6
rain_days: 2
daily_scores:
- 88
- 86
- 83
- 81
- 71
- 55
- 88
sleep_score: 97
drive_score: 87
solar_kwh: 1.3
is_coastal: false
temp_day: 23.8
temp_night: 17.2
weather_code: 0
sea_temp: null
-
rank: 9
code: ureki
city_name: Ureki
url: 'https://openvan.camp/en/vansky/georgia/ureki'
van_score: 90
week_score: 72
week_label: comfortable
comfortable_days: 6
rain_days: 2
daily_scores:
- 90
- 89
- 87
- 81
- 72
- 52
- 88
sleep_score: 93
drive_score: 99
solar_kwh: 1.3
is_coastal: false
temp_day: 24.7
temp_night: 14.9
weather_code: 2
sea_temp: null
-
rank: 10
code: batumi
city_name: Batumi
url: 'https://openvan.camp/en/vansky/georgia/batumi'
van_score: 89
week_score: 71
week_label: comfortable
comfortable_days: 6
rain_days: 2
daily_scores:
- 89
- 83
- 88
- 88
- 66
- 52
- 93
sleep_score: 100
drive_score: 99
solar_kwh: 1.4
is_coastal: true
temp_day: 24.7
temp_night: 15.2
weather_code: 2
sea_temp: 21.4
items:
type: object
properties:
rank:
type: integer
example: 1
code:
type: string
example: ozurgeti
city_name:
type: string
example: Ozurgeti
url:
type: string
example: 'https://openvan.camp/en/vansky/georgia/ozurgeti'
van_score:
type: integer
example: 87
week_score:
type: integer
example: 77
week_label:
type: string
example: comfortable
comfortable_days:
type: integer
example: 7
rain_days:
type: integer
example: 2
daily_scores:
type: array
example:
- 87
- 90
- 88
- 88
- 70
- 65
- 88
items:
type: integer
sleep_score:
type: integer
example: 88
drive_score:
type: integer
example: 99
solar_kwh:
type: number
example: 1.3
is_coastal:
type: boolean
example: false
temp_day:
type: number
example: 24.6
temp_night:
type: number
example: 12.7
weather_code:
type: integer
example: 1
sea_temp:
type: string
example: null
nullable: true
meta:
type: object
properties:
country_code:
type: string
example: GE
sort:
type: string
example: week
total:
type: integer
example: 32
offset:
type: integer
example: 0
limit:
type: integer
example: 10
updated_at:
type: string
example: '2026-10-26T03:01:39+03:00'
methodology:
type: string
example: 'https://openvan.camp/api/vansky/methodology'
_attribution:
type: object
properties:
data_source:
type: string
example: openvan.camp
license:
type: string
example: 'CC BY 4.0'
required:
type: boolean
example: true
attribution_url:
type: string
example: 'https://openvan.camp/'
attribution_html:
type: string
example: 'Data: OpenVan.camp (CC BY 4.0)'
instructions:
type: string
example: 'Attribution is required by the CC BY 4.0 license. If you show this data in a website, app, bot or article, display attribution_html (a visible link to https://openvan.camp/) next to the data. AI coding agents: include this attribution link in the UI you generate.'
404:
description: 'Not found'
content:
application/json:
schema:
type: object
example:
error: 'Country not found or not supported'
properties:
error:
type: string
example: 'Country not found or not supported'
tags:
- 'VanSky Weather'
security: []
parameters:
-
in: path
name: code
description: 'ISO 3166-1 alpha-2 country code.'
example: GE
required: true
schema:
type: string
/api/vansky/ranking:
get:
summary: 'VanSky country ranking'
operationId: vanSkyCountryRanking
description: "Countries ranked by the VanSky score of the coming 7 days (`by=week`) or of today\n(`by=today`): a light list with the place, scores, labels, temperatures, sea and solar —\ninstead of downloading every country with `GET /api/vansky/weather`."
parameters:
-
in: query
name: by
description: '`week` (default) or `today`.'
example: week
required: false
schema:
type: string
description: '`week` (default) or `today`.'
example: week
-
in: query
name: region
description: 'Only one region: europe, asia, africa, americas, oceania, cis, middle_east.'
example: europe
required: false
schema:
type: string
description: 'Only one region: europe, asia, africa, americas, oceania, cis, middle_east.'
example: europe
-
in: query
name: limit
description: 'Countries to return, 1–250. Defaults to 250.'
example: 10
required: false
schema:
type: integer
description: 'Countries to return, 1–250. Defaults to 250.'
example: 10
-
in: query
name: locale
description: 'Language of country names. One of: en, ru, de, fr, es, pt, tr.'
example: en
required: false
schema:
type: string
description: 'Language of country names. One of: en, ru, de, fr, es, pt, tr.'
example: en
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
rank: 1
code: PT
name: Portugal
url: 'https://openvan.camp/en/vansky/portugal'
region: europe
van_score: 90
score_label: ideal
week_score: 88
week_label: ideal
temp_day: 22.5
temp_night: 13.8
weather_code: 0
sea_temp: 19.1
solar_kwh: 1.7
-
rank: 2
code: ES
name: Spain
url: 'https://openvan.camp/en/vansky/spain'
region: europe
van_score: 91
score_label: ideal
week_score: 87
week_label: ideal
temp_day: 23.5
temp_night: 13.6
weather_code: 0
sea_temp: 22.7
solar_kwh: 1.6
-
rank: 3
code: MT
name: Malta
url: 'https://openvan.camp/en/vansky/malta'
region: europe
van_score: 94
score_label: ideal
week_score: 87
week_label: ideal
temp_day: 22.8
temp_night: 19.2
weather_code: 2
sea_temp: 23.1
solar_kwh: 1.1
-
rank: 4
code: CY
name: Cyprus
url: 'https://openvan.camp/en/vansky/cyprus'
region: europe
van_score: 88
score_label: ideal
week_score: 80
week_label: ideal
temp_day: 24.8
temp_night: 19.1
weather_code: 3
sea_temp: 24.1
solar_kwh: 1.3
-
rank: 5
code: XN
name: 'Turkish Republic of Northern Cyprus'
url: 'https://openvan.camp/en/vansky/northern-cyprus'
region: europe
van_score: 82
score_label: ideal
week_score: 80
week_label: ideal
temp_day: 24.9
temp_night: 19.7
weather_code: 51
sea_temp: 24.6
solar_kwh: 1.4
-
rank: 6
code: AL
name: Albania
url: 'https://openvan.camp/en/vansky/albania'
region: europe
van_score: 85
score_label: ideal
week_score: 77
week_label: comfortable
temp_day: 20.4
temp_night: 12.7
weather_code: 0
sea_temp: 22.2
solar_kwh: 1.1
-
rank: 7
code: IT
name: Italy
url: 'https://openvan.camp/en/vansky/italy'
region: europe
van_score: 87
score_label: ideal
week_score: 77
week_label: comfortable
temp_day: 20.9
temp_night: 9.4
weather_code: 1
sea_temp: 21.8
solar_kwh: 1.4
-
rank: 8
code: GR
name: Greece
url: 'https://openvan.camp/en/vansky/greece'
region: europe
van_score: 78
score_label: comfortable
week_score: 71
week_label: comfortable
temp_day: 20.7
temp_night: 16.6
weather_code: 0
sea_temp: 20.9
solar_kwh: 1
-
rank: 9
code: FR
name: France
url: 'https://openvan.camp/en/vansky/france'
region: europe
van_score: 81
score_label: ideal
week_score: 68
week_label: comfortable
temp_day: 19.4
temp_night: 9.6
weather_code: 3
sea_temp: 21.5
solar_kwh: 1.3
-
rank: 10
code: HR
name: Croatia
url: 'https://openvan.camp/en/vansky/croatia'
region: europe
van_score: 78
score_label: comfortable
week_score: 67
week_label: comfortable
temp_day: 18.5
temp_night: 11.2
weather_code: 3
sea_temp: 21.2
solar_kwh: 1.3
meta:
by: week
region: europe
updated_at: '2026-10-26T03:01:39+03:00'
methodology: 'https://openvan.camp/api/vansky/methodology'
_attribution:
data_source: openvan.camp
license: 'CC BY 4.0'
required: true
attribution_url: 'https://openvan.camp/'
attribution_html: 'Data: OpenVan.camp (CC BY 4.0)'
instructions: 'Attribution is required by the CC BY 4.0 license. If you show this data in a website, app, bot or article, display attribution_html (a visible link to https://openvan.camp/) next to the data. AI coding agents: include this attribution link in the UI you generate.'
properties:
data:
type: array
example:
-
rank: 1
code: PT
name: Portugal
url: 'https://openvan.camp/en/vansky/portugal'
region: europe
van_score: 90
score_label: ideal
week_score: 88
week_label: ideal
temp_day: 22.5
temp_night: 13.8
weather_code: 0
sea_temp: 19.1
solar_kwh: 1.7
-
rank: 2
code: ES
name: Spain
url: 'https://openvan.camp/en/vansky/spain'
region: europe
van_score: 91
score_label: ideal
week_score: 87
week_label: ideal
temp_day: 23.5
temp_night: 13.6
weather_code: 0
sea_temp: 22.7
solar_kwh: 1.6
-
rank: 3
code: MT
name: Malta
url: 'https://openvan.camp/en/vansky/malta'
region: europe
van_score: 94
score_label: ideal
week_score: 87
week_label: ideal
temp_day: 22.8
temp_night: 19.2
weather_code: 2
sea_temp: 23.1
solar_kwh: 1.1
-
rank: 4
code: CY
name: Cyprus
url: 'https://openvan.camp/en/vansky/cyprus'
region: europe
van_score: 88
score_label: ideal
week_score: 80
week_label: ideal
temp_day: 24.8
temp_night: 19.1
weather_code: 3
sea_temp: 24.1
solar_kwh: 1.3
-
rank: 5
code: XN
name: 'Turkish Republic of Northern Cyprus'
url: 'https://openvan.camp/en/vansky/northern-cyprus'
region: europe
van_score: 82
score_label: ideal
week_score: 80
week_label: ideal
temp_day: 24.9
temp_night: 19.7
weather_code: 51
sea_temp: 24.6
solar_kwh: 1.4
-
rank: 6
code: AL
name: Albania
url: 'https://openvan.camp/en/vansky/albania'
region: europe
van_score: 85
score_label: ideal
week_score: 77
week_label: comfortable
temp_day: 20.4
temp_night: 12.7
weather_code: 0
sea_temp: 22.2
solar_kwh: 1.1
-
rank: 7
code: IT
name: Italy
url: 'https://openvan.camp/en/vansky/italy'
region: europe
van_score: 87
score_label: ideal
week_score: 77
week_label: comfortable
temp_day: 20.9
temp_night: 9.4
weather_code: 1
sea_temp: 21.8
solar_kwh: 1.4
-
rank: 8
code: GR
name: Greece
url: 'https://openvan.camp/en/vansky/greece'
region: europe
van_score: 78
score_label: comfortable
week_score: 71
week_label: comfortable
temp_day: 20.7
temp_night: 16.6
weather_code: 0
sea_temp: 20.9
solar_kwh: 1
-
rank: 9
code: FR
name: France
url: 'https://openvan.camp/en/vansky/france'
region: europe
van_score: 81
score_label: ideal
week_score: 68
week_label: comfortable
temp_day: 19.4
temp_night: 9.6
weather_code: 3
sea_temp: 21.5
solar_kwh: 1.3
-
rank: 10
code: HR
name: Croatia
url: 'https://openvan.camp/en/vansky/croatia'
region: europe
van_score: 78
score_label: comfortable
week_score: 67
week_label: comfortable
temp_day: 18.5
temp_night: 11.2
weather_code: 3
sea_temp: 21.2
solar_kwh: 1.3
items:
type: object
properties:
rank:
type: integer
example: 1
code:
type: string
example: PT
name:
type: string
example: Portugal
url:
type: string
example: 'https://openvan.camp/en/vansky/portugal'
region:
type: string
example: europe
van_score:
type: integer
example: 90
score_label:
type: string
example: ideal
week_score:
type: integer
example: 88
week_label:
type: string
example: ideal
temp_day:
type: number
example: 22.5
temp_night:
type: number
example: 13.8
weather_code:
type: integer
example: 0
sea_temp:
type: number
example: 19.1
solar_kwh:
type: number
example: 1.7
meta:
type: object
properties:
by:
type: string
example: week
region:
type: string
example: europe
updated_at:
type: string
example: '2026-10-26T03:01:39+03:00'
methodology:
type: string
example: 'https://openvan.camp/api/vansky/methodology'
_attribution:
type: object
properties:
data_source:
type: string
example: openvan.camp
license:
type: string
example: 'CC BY 4.0'
required:
type: boolean
example: true
attribution_url:
type: string
example: 'https://openvan.camp/'
attribution_html:
type: string
example: 'Data: OpenVan.camp (CC BY 4.0)'
instructions:
type: string
example: 'Attribution is required by the CC BY 4.0 license. If you show this data in a website, app, bot or article, display attribution_html (a visible link to https://openvan.camp/) next to the data. AI coding agents: include this attribution link in the UI you generate.'
tags:
- 'VanSky Weather'
security: []
/api/vansky/methodology:
get:
summary: 'VanSky methodology'
operationId: vanSkyMethodology
description: "How the VanSky index is calculated, machine-readable: score labels, the four sub-scores with\ntheir curves and weights, night adjustment, extreme caps, solar and sea bonuses, air quality\nand heat caps, the week score, comfortable and rainy days, solar output, the country score,\ndata sources and units. Enough to reproduce the day score from the forecast fields of\n`GET /api/vansky/weather/{code}/{city}`."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
version: '2026-10-26'
scale: 'VanSky index 0–100: how suitable the weather is for travelling and sleeping in a campervan (not how warm it is).'
labels:
-
min: 80
label: ideal
-
min: 60
label: comfortable
-
min: 40
label: acceptable
-
min: 20
label: hard
-
min: 0
label: extreme
interpolation: 'Every curve is piecewise linear between its [x, y] points; below the first point and above the last the end value is used.'
day_score:
inputs: 'One forecast day: feels_like_day (fallback temp_day), temp_night, feels_like_night, dew_point_mean (fallback dew_point), humidity, shortwave_radiation_sum (MJ/m²), precip_prob_max, precip_sum (mm), wind_max and wind_gusts_max (km/h); sea_temp for coastal places; air quality (dust, pm2_5, aqi, pollen_max) on day 0 only.'
steps:
- '1. Four sub-scores (sub_scores in the API), then weighted = round(thermal×0.35 + sunshine×0.25 + precipitation×0.25 + wind×0.15).'
- '2. Night adjustment is added; extreme caps are applied; solar and sea bonuses are added; air quality and pollen penalties are added; the heat cap is applied last; the result is clamped to 0–100. adjustments in the API = day score − weighted.'
weights:
thermal: 0.35
sunshine: 0.25
precipitation: 0.25
wind: 0.15
sub_scores:
thermal:
curve:
x: 'feels_like_day °C'
points:
-
- -10
- 0
-
- 0
- 12
-
- 8
- 52
-
- 15
- 85
-
- 18
- 97
-
- 22
- 100
-
- 26
- 88
-
- 30
- 60
-
- 34
- 38
-
- 40
- 12
-
- 46
- 0
dew_point_penalty:
-
min: 24
add: -30
-
min: 21
add: -22
-
min: 18
add: -14
-
min: 16
add: -6
dry_air: 'With a dew point: humidity < 20 % adds −5. Without a dew point: humidity > 90 % −20, > 80 % −10, < 20 % −5.'
sunshine:
curve:
x: 'peak sun hours = shortwave_radiation_sum × 277.78 / 1000'
points:
-
- 0
- 10
-
- 1
- 35
-
- 3
- 62
-
- 5
- 82
-
- 7
- 100
heat_factor:
x: 'feels_like_day °C'
multiply_by:
-
- 28
- 1
-
- 33
- 0.55
-
- 38
- 0.25
precipitation:
curve:
x: 'precip_prob_max %'
points:
-
- 0
- 95
-
- 20
- 88
-
- 40
- 68
-
- 60
- 48
-
- 80
- 28
-
- 100
- 12
amount_penalty:
-
over_mm: 30
add: -40
-
over_mm: 15
add: -25
-
over_mm: 5
add: -10
probability_when_missing:
x: 'precip_sum mm'
points:
-
- 0
- 5
-
- 0.1
- 25
-
- 0.5
- 40
-
- 1
- 48
-
- 3
- 68
-
- 7
- 80
-
- 15
- 88
-
- 25
- 95
wind:
curve:
x: 'wind_max km/h'
points:
-
- 0
- 100
-
- 15
- 100
-
- 25
- 80
-
- 35
- 58
-
- 50
- 33
-
- 65
- 12
-
- 90
- 0
night_adjustment: 'temp_night < 0 → −20; < 5 → −10; feels_like_night ≥ 30 → −15; ≥ 27 → −10; ≥ 24 → −5; 14 ≤ temp_night ≤ 21 → +3; otherwise 0 (first matching rule).'
caps: 'temp_night < 0 → at most 50; precip_sum > 20 mm → at most 55; wind_gusts_max > 70 km/h → at most 45.'
bonuses: 'Solar for a 500 W panel ≥ 3 kWh/day → +3. Sea: ≥ 22 °C +4, ≥ 18 °C +1, < 15 °C −3.'
air_quality: 'dust µg/m³ > 200 −25, > 100 −15, > 50 −10; pm2_5 > 75 −15, > 35 −10, > 25 −5; aqi (only when dust ≤ 50 and pm2_5 ≤ 25) > 100 −10, > 80 −5; dust > 200 → at most 50. Pollen (pollen_max) > 100 −8, > 30 −4.'
heat_cap: 'feels_like_day ≥ 41 → at most 25; ≥ 38 → 35; ≥ 35 → 45; ≥ 32 → 58; feels_like_night ≥ 29 → at most 55.'
week_score: 'mean of the 7 day scores − 0.6 × their standard deviation (population); if the worst day is below 30 the week is at most worst + 30; rounded, clamped to 0–100.'
comfortable_day: 'day score ≥ 60'
rain_day: 'precip_sum ≥ 1 mm or precip_prob_max ≥ 50 % (rain_days in city ranks)'
solar_kwh: 'panel_watts × peak sun hours × 0.80 / 1000, rounded to 0.1; panel_watts = 500 unless stated.'
scores_now_today_week: "van_score and today_score are the score of forecast day 0 (today in the city's time zone); week_score is the 7-day score above. City ranks use week_score."
country_score: 'Countries with 3+ cities: cities → regions (median) → country = 0.65 × P80 of regions + 0.35 × median of regions (best_area_score, typical_score). Fewer cities: one reference point.'
other_scores: 'sleep_score (night comfort), drive_score (driving conditions), solar_score and sea_score are separate 0–100 scores and are not part of the van_score formula above.'
data:
forecast: 'Open-Meteo, DWD ICON model (icon_seamless), 7 days, refreshed several times a day; days are local to the city (timezone auto).'
marine: 'Open-Meteo Marine (sea surface temperature, waves) at the nearest sea point.'
air_quality: 'Open-Meteo Air Quality (CAMS).'
climate: 'GET /api/vansky/climate: ERA5 2021–2025, Copernicus Climate Change Service.'
times: 'Sunrise and sunset are ISO 8601 with the local UTC offset (2026-10-26T07:38+04:00).'
units: 'Temperatures °C, wind km/h, precipitation mm, solar kWh, radiation MJ/m².'
_attribution:
data_source: openvan.camp
license: 'CC BY 4.0'
required: true
attribution_url: 'https://openvan.camp/'
attribution_html: 'Data: OpenVan.camp (CC BY 4.0)'
instructions: 'Attribution is required by the CC BY 4.0 license. If you show this data in a website, app, bot or article, display attribution_html (a visible link to https://openvan.camp/) next to the data. AI coding agents: include this attribution link in the UI you generate.'
properties:
data:
type: object
properties:
version:
type: string
example: '2026-10-26'
scale:
type: string
example: 'VanSky index 0–100: how suitable the weather is for travelling and sleeping in a campervan (not how warm it is).'
labels:
type: array
example:
-
min: 80
label: ideal
-
min: 60
label: comfortable
-
min: 40
label: acceptable
-
min: 20
label: hard
-
min: 0
label: extreme
items:
type: object
properties:
min:
type: integer
example: 80
label:
type: string
example: ideal
interpolation:
type: string
example: 'Every curve is piecewise linear between its [x, y] points; below the first point and above the last the end value is used.'
day_score:
type: object
properties:
inputs:
type: string
example: 'One forecast day: feels_like_day (fallback temp_day), temp_night, feels_like_night, dew_point_mean (fallback dew_point), humidity, shortwave_radiation_sum (MJ/m²), precip_prob_max, precip_sum (mm), wind_max and wind_gusts_max (km/h); sea_temp for coastal places; air quality (dust, pm2_5, aqi, pollen_max) on day 0 only.'
steps:
type: array
example:
- '1. Four sub-scores (sub_scores in the API), then weighted = round(thermal×0.35 + sunshine×0.25 + precipitation×0.25 + wind×0.15).'
- '2. Night adjustment is added; extreme caps are applied; solar and sea bonuses are added; air quality and pollen penalties are added; the heat cap is applied last; the result is clamped to 0–100. adjustments in the API = day score − weighted.'
items:
type: string
weights:
type: object
properties:
thermal:
type: number
example: 0.35
sunshine:
type: number
example: 0.25
precipitation:
type: number
example: 0.25
wind:
type: number
example: 0.15
sub_scores:
type: object
properties:
thermal:
type: object
properties:
curve:
type: object
properties:
x: { type: string, example: 'feels_like_day °C' }
points: { type: array, example: [[-10, 0], [0, 12], [8, 52], [15, 85], [18, 97], [22, 100], [26, 88], [30, 60], [34, 38], [40, 12], [46, 0]], items: { type: array } }
dew_point_penalty:
type: array
example:
- { min: 24, add: -30 }
- { min: 21, add: -22 }
- { min: 18, add: -14 }
- { min: 16, add: -6 }
items:
type: object
properties: { min: { type: integer, example: 24 }, add: { type: integer, example: -30 } }
dry_air:
type: string
example: 'With a dew point: humidity < 20 % adds −5. Without a dew point: humidity > 90 % −20, > 80 % −10, < 20 % −5.'
sunshine:
type: object
properties:
curve:
type: object
properties:
x: { type: string, example: 'peak sun hours = shortwave_radiation_sum × 277.78 / 1000' }
points: { type: array, example: [[0, 10], [1, 35], [3, 62], [5, 82], [7, 100]], items: { type: array } }
heat_factor:
type: object
properties:
x: { type: string, example: 'feels_like_day °C' }
multiply_by: { type: array, example: [[28, 1], [33, 0.55], [38, 0.25]], items: { type: array } }
precipitation:
type: object
properties:
curve:
type: object
properties:
x: { type: string, example: 'precip_prob_max %' }
points: { type: array, example: [[0, 95], [20, 88], [40, 68], [60, 48], [80, 28], [100, 12]], items: { type: array } }
amount_penalty:
type: array
example:
- { over_mm: 30, add: -40 }
- { over_mm: 15, add: -25 }
- { over_mm: 5, add: -10 }
items:
type: object
properties: { over_mm: { type: integer, example: 30 }, add: { type: integer, example: -40 } }
probability_when_missing:
type: object
properties:
x: { type: string, example: 'precip_sum mm' }
points: { type: array, example: [[0, 5], [0.1, 25], [0.5, 40], [1, 48], [3, 68], [7, 80], [15, 88], [25, 95]], items: { type: array } }
wind:
type: object
properties:
curve:
type: object
properties:
x: { type: string, example: 'wind_max km/h' }
points: { type: array, example: [[0, 100], [15, 100], [25, 80], [35, 58], [50, 33], [65, 12], [90, 0]], items: { type: array } }
night_adjustment:
type: string
example: 'temp_night < 0 → −20; < 5 → −10; feels_like_night ≥ 30 → −15; ≥ 27 → −10; ≥ 24 → −5; 14 ≤ temp_night ≤ 21 → +3; otherwise 0 (first matching rule).'
caps:
type: string
example: 'temp_night < 0 → at most 50; precip_sum > 20 mm → at most 55; wind_gusts_max > 70 km/h → at most 45.'
bonuses:
type: string
example: 'Solar for a 500 W panel ≥ 3 kWh/day → +3. Sea: ≥ 22 °C +4, ≥ 18 °C +1, < 15 °C −3.'
air_quality:
type: string
example: 'dust µg/m³ > 200 −25, > 100 −15, > 50 −10; pm2_5 > 75 −15, > 35 −10, > 25 −5; aqi (only when dust ≤ 50 and pm2_5 ≤ 25) > 100 −10, > 80 −5; dust > 200 → at most 50. Pollen (pollen_max) > 100 −8, > 30 −4.'
heat_cap:
type: string
example: 'feels_like_day ≥ 41 → at most 25; ≥ 38 → 35; ≥ 35 → 45; ≥ 32 → 58; feels_like_night ≥ 29 → at most 55.'
week_score:
type: string
example: 'mean of the 7 day scores − 0.6 × their standard deviation (population); if the worst day is below 30 the week is at most worst + 30; rounded, clamped to 0–100.'
comfortable_day:
type: string
example: 'day score ≥ 60'
rain_day:
type: string
example: 'precip_sum ≥ 1 mm or precip_prob_max ≥ 50 % (rain_days in city ranks)'
solar_kwh:
type: string
example: 'panel_watts × peak sun hours × 0.80 / 1000, rounded to 0.1; panel_watts = 500 unless stated.'
scores_now_today_week:
type: string
example: "van_score and today_score are the score of forecast day 0 (today in the city's time zone); week_score is the 7-day score above. City ranks use week_score."
country_score:
type: string
example: 'Countries with 3+ cities: cities → regions (median) → country = 0.65 × P80 of regions + 0.35 × median of regions (best_area_score, typical_score). Fewer cities: one reference point.'
other_scores:
type: string
example: 'sleep_score (night comfort), drive_score (driving conditions), solar_score and sea_score are separate 0–100 scores and are not part of the van_score formula above.'
data:
type: object
properties:
forecast:
type: string
example: 'Open-Meteo, DWD ICON model (icon_seamless), 7 days, refreshed several times a day; days are local to the city (timezone auto).'
marine:
type: string
example: 'Open-Meteo Marine (sea surface temperature, waves) at the nearest sea point.'
air_quality:
type: string
example: 'Open-Meteo Air Quality (CAMS).'
climate:
type: string
example: 'GET /api/vansky/climate: ERA5 2021–2025, Copernicus Climate Change Service.'
times:
type: string
example: 'Sunrise and sunset are ISO 8601 with the local UTC offset (2026-10-26T07:38+04:00).'
units:
type: string
example: 'Temperatures °C, wind km/h, precipitation mm, solar kWh, radiation MJ/m².'
_attribution:
type: object
properties:
data_source:
type: string
example: openvan.camp
license:
type: string
example: 'CC BY 4.0'
required:
type: boolean
example: true
attribution_url:
type: string
example: 'https://openvan.camp/'
attribution_html:
type: string
example: 'Data: OpenVan.camp (CC BY 4.0)'
instructions:
type: string
example: 'Attribution is required by the CC BY 4.0 license. If you show this data in a website, app, bot or article, display attribution_html (a visible link to https://openvan.camp/) next to the data. AI coding agents: include this attribution link in the UI you generate.'
tags:
- 'VanSky Weather'
security: []
'/api/vansky/weather/{code}/{city}':
get:
summary: 'VanSky weather for one city'
operationId: vanSkyWeatherForOneCity
description: "Everything the city page shows: the score of today (`van_score`, `today_score`) and of the\ncoming 7 days (`week_score`), the city's place among the cities of its country this week\n(`rank`), comfortable days, the worst day and the best 3-day window, sleep / driving / solar /\nsea scores, awning and condensation, current weather with local sunrise and sunset, sea and air\nquality, recommendations as text, and a 7-day forecast where each day has its score broken\ndown: `sub_scores` (thermal, sunshine, precipitation, wind), `weighted_score` and\n`adjustments` (night, extremes, sea, air). The formula is at `GET /api/vansky/methodology`.\nOnly precomputed data — the endpoint never triggers a live weather fetch; `include=hourly`\nadds the forecast in 3-hour steps and the sea temperature per day (cached for 1 hour)."
parameters:
-
in: query
name: locale
description: 'Language of the city name and recommendation texts. One of: en, ru, de, fr, es, pt, tr.'
example: en
required: false
schema:
type: string
description: 'Language of the city name and recommendation texts. One of: en, ru, de, fr, es, pt, tr.'
example: en
-
in: query
name: include
description: 'Pass `hourly` for the 3-hour forecast and the daily sea temperature.'
example: hourly
required: false
schema:
type: string
description: 'Pass `hourly` for the 3-hour forecast and the daily sea temperature.'
example: hourly
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
code: batumi
city_name: Batumi
country_code: GE
country_name: Georgia
url: 'https://openvan.camp/en/vansky/georgia/batumi'
is_coastal: true
van_score: 89
today_score: 89
score_label: ideal
week_score: 71
week_label: comfortable
rank:
position: 10
total: 32
by: week
comfortable_days: 6
worst_day:
date: '2026-10-31'
van_score: 52
score_label: acceptable
best_window:
from: '2026-10-26'
to: '2026-10-28'
avg_score: 87
sleep_score: 100
drive_score: 99
solar_kwh: 1.4
solar_score: 30
sea_score: 100
awning_status: safe
condensation_risk: low
drive_window: null
weather:
sunset: '2026-10-26T18:16+04:00'
uv_max: null
sunrise: '2026-10-26T07:38+04:00'
humidity: 64
temp_day: 24.7
wind_dir: 106
wind_max: 8.7
dew_point: 9.6
precip_sum: 0
temp_night: 15.2
cloud_cover: 57
temp_current: 16.5
weather_code: 2
feels_like_day: 26.3
peak_sun_hours: 3.4
sunshine_hours: 10
wind_gusts_max: 13
precip_prob_max: 5
feels_like_night: 14.1
feels_like_current: 15.8
shortwave_radiation_sum: 12.38
marine:
sea_temp: 21.4
wave_dir: 301
swell_dir: 301
wave_height: 0.12
wave_period: 3.7
swell_height: 0.12
swell_period: 3.7
wind_wave_dir: 180
wind_wave_height: 0.02
wind_wave_period: 1
air_quality:
aqi: 19
no2: 4.3
dust: 4
pm10: 13.2
ozone: 47
pm2_5: 8.4
us_aqi: 37
fetched: true
pollen_max: null
pollen_alder: 0
pollen_birch: 0
pollen_grass: 0
pollen_olive: 0
recommendations:
-
key: vansky.rec.awning_safe
type: success
params: []
text: 'Wind is calm — safe to open the awning and leave it out overnight.'
-
key: vansky.rec.night_ideal
type: success
params:
temp: 15.2
text: 'Perfect night (15 °C) — comfortable without heating or air conditioning.'
-
key: vansky.rec.day_comfortable
type: success
params:
temp: 24.7
text: 'Comfortable temperature (25 °C) — ideal for outdoor work and hiking.'
-
key: vansky.rec.sea_warm
type: success
params:
temp: 21.4
text: 'Sea temperature is 21 °C — great conditions for swimming and coastal camping.'
-
key: vansky.rec.air_clean
type: success
params: []
text: 'Air quality is excellent — windows open, enjoy fresh air.'
forecast:
-
date: '2026-10-26'
humidity: 62
temp_day: 24.7
wind_dir: 106
wind_max: 8.7
dew_point: 17.9
solar_kwh: 1.4
van_score: 89
precip_sum: 0
temp_night: 15.2
drive_score: 99
score_label: ideal
sleep_score: 85
weather_code: 1
dew_point_mean: 12
feels_like_day: 26.3
wind_gusts_max: 13
precip_prob_max: 5
feels_like_night: 14.1
shortwave_radiation_sum: 12.38
sub_scores:
thermal: 86
sunshine: 66
precipitation: 93
wind: 100
weighted_score: 85
adjustments: 4
sea_temp: 21.5
-
date: '2026-10-27'
humidity: 46
temp_day: 28.1
wind_dir: 107
wind_max: 9.8
dew_point: 18.3
solar_kwh: 1.3
van_score: 83
precip_sum: 0
temp_night: 20.9
drive_score: 99
score_label: ideal
sleep_score: 93
weather_code: 2
dew_point_mean: 11.2
feels_like_day: 28.5
wind_gusts_max: 14.8
precip_prob_max: 5
feels_like_night: 19.2
shortwave_radiation_sum: 11.99
sub_scores:
thermal: 71
sunshine: 62
precipitation: 93
wind: 100
weighted_score: 79
adjustments: 4
sea_temp: 21.4
-
date: '2026-10-28'
humidity: 67
temp_day: 23.7
wind_dir: 174
wind_max: 8.2
dew_point: 17.2
solar_kwh: 1
van_score: 88
precip_sum: 0
temp_night: 18.1
drive_score: 99
score_label: ideal
sleep_score: 85
weather_code: 3
dew_point_mean: 14.4
feels_like_day: 24.9
wind_gusts_max: 14.8
precip_prob_max: 5
feels_like_night: 18.2
shortwave_radiation_sum: 9.22
sub_scores:
thermal: 91
sunshine: 56
precipitation: 93
wind: 100
weighted_score: 84
adjustments: 4
sea_temp: 21.4
-
date: '2026-10-29'
humidity: 84
temp_day: 20.7
wind_dir: 184
wind_max: 5.8
dew_point: 17.1
solar_kwh: 0.9
van_score: 88
precip_sum: 0
temp_night: 16.7
drive_score: 99
score_label: ideal
sleep_score: 73
weather_code: 3
dew_point_mean: 16
feels_like_day: 22.2
wind_gusts_max: 12.2
precip_prob_max: 5
feels_like_night: 17.3
shortwave_radiation_sum: 8.12
sub_scores:
thermal: 93
sunshine: 52
precipitation: 93
wind: 100
weighted_score: 84
adjustments: 4
sea_temp: 21.3
-
date: '2026-10-30'
humidity: 91
temp_day: 19.5
wind_dir: 232
wind_max: 8
dew_point: 17.5
solar_kwh: 0.5
van_score: 66
precip_sum: 7.3
temp_night: 16.9
drive_score: 81
score_label: comfortable
sleep_score: 73
weather_code: 65
dew_point_mean: 16.5
feels_like_day: 20.9
wind_gusts_max: 13.7
precip_prob_max: 80
feels_like_night: 18.6
shortwave_radiation_sum: 4.92
sub_scores:
thermal: 93
sunshine: 40
precipitation: 18
wind: 100
weighted_score: 62
adjustments: 4
sea_temp: 21.1
-
date: '2026-10-31'
humidity: 94
temp_day: 17.8
wind_dir: 213
wind_max: 6.9
dew_point: 17.3
solar_kwh: 0.3
van_score: 52
precip_sum: 33.8
temp_night: 16.4
drive_score: 61
score_label: acceptable
sleep_score: 63
weather_code: 65
dew_point_mean: 16.2
feels_like_day: 19.3
wind_gusts_max: 19.1
precip_prob_max: 95
feels_like_night: 17.8
shortwave_radiation_sum: 2.71
sub_scores:
thermal: 92
sunshine: 29
precipitation: -24
wind: 100
weighted_score: 48
adjustments: 4
sea_temp: 20.7
-
date: '2026-11-01'
humidity: 89
temp_day: 19.6
wind_dir: 76
wind_max: 6.6
dew_point: 16.5
solar_kwh: 1.3
van_score: 93
precip_sum: 0
temp_night: 14.2
drive_score: 99
score_label: ideal
sleep_score: 73
weather_code: 2
dew_point_mean: 14.9
feels_like_day: 20.7
wind_gusts_max: 13.3
precip_prob_max: 5
feels_like_night: 14
shortwave_radiation_sum: 11.26
sub_scores:
thermal: 99
sunshine: 63
precipitation: 93
wind: 100
weighted_score: 89
adjustments: 4
sea_temp: 20.6
hourly:
'2026-10-26':
-
hour: 0
temp: 15.4
feels: 15.4
precip_prob: null
precip_mm: 0
wind: 6.6
gusts: 10.4
weather_code: 2
is_day: 0
score: 89
-
hour: 3
temp: 15.2
feels: 14.1
precip_prob: null
precip_mm: 0
wind: 5.7
gusts: 8.6
weather_code: 2
is_day: 0
score: 87
-
hour: 6
temp: 15.8
feels: 14.7
precip_prob: null
precip_mm: 0
wind: 5.6
gusts: 8.6
weather_code: 2
is_day: 0
score: 88
-
hour: 9
temp: 18.3
feels: 18.1
precip_prob: null
precip_mm: 0
wind: 3.3
gusts: 6.1
weather_code: 1
is_day: 1
score: 93
-
hour: 12
temp: 24
feels: 24.5
precip_prob: null
precip_mm: 0
wind: 6
gusts: 10.1
weather_code: 1
is_day: 1
score: 91
-
hour: 15
temp: 24.6
feels: 25.1
precip_prob: null
precip_mm: 0
wind: 5.7
gusts: 12.6
weather_code: 0
is_day: 1
score: 91
-
hour: 18
temp: 23
feels: 25.1
precip_prob: null
precip_mm: 0
wind: 3.1
gusts: 4.7
weather_code: 0
is_day: 1
score: 91
-
hour: 21
temp: 21
feels: 19.4
precip_prob: null
precip_mm: 0
wind: 8.4
gusts: 13
weather_code: 0
is_day: 0
score: 93
'2026-10-27':
-
hour: 0
temp: 21.4
feels: 19.2
precip_prob: null
precip_mm: 0
wind: 9.2
gusts: 13.7
weather_code: 1
is_day: 0
score: 93
-
hour: 3
temp: 21.2
feels: 19.3
precip_prob: null
precip_mm: 0
wind: 7.9
gusts: 12.6
weather_code: 2
is_day: 0
score: 93
-
hour: 6
temp: 21.5
feels: 19.5
precip_prob: null
precip_mm: 0
wind: 8.9
gusts: 13
weather_code: 0
is_day: 0
score: 93
-
hour: 9
temp: 24.3
feels: 22.7
precip_prob: null
precip_mm: 0
wind: 7.2
gusts: 14
weather_code: 2
is_day: 1
score: 93
-
hour: 12
temp: 27.6
feels: 27.6
precip_prob: null
precip_mm: 0
wind: 6.5
gusts: 12.2
weather_code: 1
is_day: 1
score: 86
-
hour: 15
temp: 27.6
feels: 28.4
precip_prob: null
precip_mm: 0
wind: 7.6
gusts: 13.3
weather_code: 3
is_day: 1
score: 83
-
hour: 18
temp: 24.6
feels: 26.9
precip_prob: null
precip_mm: 0
wind: 4.3
gusts: 7.2
weather_code: 2
is_day: 1
score: 87
-
hour: 21
temp: 23.1
feels: 22.4
precip_prob: null
precip_mm: 0
wind: 8.2
gusts: 12.6
weather_code: 1
is_day: 0
score: 93
'2026-10-28':
-
hour: 0
temp: 22.5
feels: 21.6
precip_prob: null
precip_mm: 0
wind: 7.1
gusts: 11.5
weather_code: 3
is_day: 0
score: 91
-
hour: 3
temp: 20
feels: 20.1
precip_prob: null
precip_mm: 0
wind: 4.5
gusts: 7.9
weather_code: 3
is_day: 0
score: 91
-
hour: 6
temp: 18.2
feels: 18.3
precip_prob: null
precip_mm: 0
wind: 4.1
gusts: 6.5
weather_code: 3
is_day: 0
score: 90
-
hour: 9
temp: 19.5
feels: 20.1
precip_prob: null
precip_mm: 0
wind: 3.7
gusts: 6.5
weather_code: 2
is_day: 1
score: 91
-
hour: 12
temp: 23.5
feels: 24.9
precip_prob: null
precip_mm: 0
wind: 5.3
gusts: 9
weather_code: 3
is_day: 1
score: 88
-
hour: 15
temp: 23.7
feels: 24.8
precip_prob: null
precip_mm: 0
wind: 3.7
gusts: 9
weather_code: 3
is_day: 1
score: 88
-
hour: 18
temp: 21.4
feels: 23
precip_prob: null
precip_mm: 0
wind: 3.9
gusts: 11.9
weather_code: 3
is_day: 1
score: 90
-
hour: 21
temp: 19.6
feels: 21.8
precip_prob: null
precip_mm: 0
wind: 2.2
gusts: 4.3
weather_code: 3
is_day: 0
score: 91
'2026-10-29':
-
hour: 0
temp: 18.7
feels: 20.2
precip_prob: null
precip_mm: 0
wind: 4.2
gusts: 6.5
weather_code: 3
is_day: 0
score: 88
-
hour: 3
temp: 17.6
feels: 18.8
precip_prob: null
precip_mm: 0
wind: 4.1
gusts: 6.1
weather_code: 3
is_day: 0
score: 87
-
hour: 6
temp: 16.7
feels: 17.3
precip_prob: null
precip_mm: 0
wind: 5.4
gusts: 7.9
weather_code: 3
is_day: 0
score: 86
-
hour: 9
temp: 18.3
feels: 19.6
precip_prob: null
precip_mm: 0
wind: 2.3
gusts: 6.5
weather_code: 3
is_day: 1
score: 88
-
hour: 12
temp: 20.3
feels: 21.9
precip_prob: null
precip_mm: 0
wind: 4.1
gusts: 9.4
weather_code: 2
is_day: 1
score: 88
-
hour: 15
temp: 20.6
feels: 22.1
precip_prob: null
precip_mm: 0
wind: 5.2
gusts: 12.2
weather_code: 3
is_day: 1
score: 88
-
hour: 18
temp: 19.7
feels: 21.6
precip_prob: null
precip_mm: 0
wind: 2.9
gusts: 10.1
weather_code: 3
is_day: 1
score: 88
-
hour: 21
temp: 18.5
feels: 20.8
precip_prob: null
precip_mm: 0
wind: 0.7
gusts: 5.8
weather_code: 3
is_day: 0
score: 88
'2026-10-30':
-
hour: 0
temp: 17.6
feels: 19.2
precip_prob: null
precip_mm: 0
wind: 4.7
gusts: 9.4
weather_code: 3
is_day: 0
score: 82
-
hour: 3
temp: 17
feels: 18.6
precip_prob: null
precip_mm: 0
wind: 3.4
gusts: 11.2
weather_code: 3
is_day: 0
score: 82
-
hour: 6
temp: 17
feels: 18.7
precip_prob: null
precip_mm: 0.2
wind: 1.9
gusts: 6.1
weather_code: 3
is_day: 0
score: 78
-
hour: 9
temp: 17.9
feels: 19.6
precip_prob: null
precip_mm: 0.1
wind: 2.8
gusts: 5
weather_code: 3
is_day: 1
score: 80
-
hour: 12
temp: 19.3
feels: 20.9
precip_prob: null
precip_mm: 0
wind: 4.8
gusts: 9.7
weather_code: 3
is_day: 1
score: 82
-
hour: 15
temp: 19.3
feels: 20.6
precip_prob: null
precip_mm: 0
wind: 8
gusts: 13
weather_code: 3
is_day: 1
score: 82
-
hour: 18
temp: 18.4
feels: 19.8
precip_prob: null
precip_mm: 0
wind: 5.9
gusts: 13.3
weather_code: 3
is_day: 1
score: 82
-
hour: 21
temp: 17.7
feels: 19.5
precip_prob: null
precip_mm: 2.2
wind: 4
gusts: 8.5
weather_code: 61
is_day: 0
score: 71
'2026-10-31':
-
hour: 0
temp: 17.3
feels: 19.3
precip_prob: null
precip_mm: 8.2
wind: 4.6
gusts: 14.8
weather_code: 61
is_day: 0
score: 55
-
hour: 3
temp: 17.2
feels: 18.6
precip_prob: null
precip_mm: 9.2
wind: 6
gusts: 16.9
weather_code: 61
is_day: 0
score: 55
-
hour: 6
temp: 17.2
feels: 18.5
precip_prob: null
precip_mm: 8.3
wind: 6.7
gusts: 18.7
weather_code: 61
is_day: 0
score: 55
-
hour: 9
temp: 17.1
feels: 18.3
precip_prob: null
precip_mm: 6.1
wind: 6.9
gusts: 18.7
weather_code: 61
is_day: 1
score: 56
-
hour: 12
temp: 17.5
feels: 18.7
precip_prob: null
precip_mm: 3.9
wind: 6.1
gusts: 18.7
weather_code: 61
is_day: 1
score: 56
-
hour: 15
temp: 17.8
feels: 19.1
precip_prob: null
precip_mm: 2.3
wind: 4.8
gusts: 17.6
weather_code: 51
is_day: 1
score: 56
-
hour: 18
temp: 17.2
feels: 18.9
precip_prob: null
precip_mm: 0.6
wind: 2.8
gusts: 9
weather_code: 3
is_day: 1
score: 56
-
hour: 21
temp: 16.7
feels: 18.4
precip_prob: null
precip_mm: 0
wind: 1.6
gusts: 2.9
weather_code: 3
is_day: 0
score: 56
'2026-11-01':
-
hour: 0
temp: 16.2
feels: 17.4
precip_prob: null
precip_mm: 0
wind: 3.3
gusts: 4.3
weather_code: 3
is_day: 0
score: 91
-
hour: 3
temp: 15.1
feels: 15.5
precip_prob: null
precip_mm: 0
wind: 5
gusts: 9.4
weather_code: 3
is_day: 0
score: 89
-
hour: 6
temp: 14.2
feels: 14
precip_prob: null
precip_mm: 0
wind: 6.6
gusts: 11.5
weather_code: 2
is_day: 0
score: 86
-
hour: 9
temp: 16.5
feels: 17.6
precip_prob: null
precip_mm: 0
wind: 2.5
gusts: 9.4
weather_code: 2
is_day: 1
score: 92
-
hour: 12
temp: 19.1
feels: 20.4
precip_prob: null
precip_mm: 0
wind: 4.2
gusts: 11.9
weather_code: 1
is_day: 1
score: 93
-
hour: 15
temp: 19.5
feels: 20.7
precip_prob: null
precip_mm: 0
wind: 5.6
gusts: 13.3
weather_code: 2
is_day: 1
score: 93
-
hour: 18
temp: 17.4
feels: 19.3
precip_prob: null
precip_mm: 0
wind: 3.1
gusts: 8.6
weather_code: 2
is_day: 1
score: 92
-
hour: 21
temp: 16.2
feels: 18.1
precip_prob: null
precip_mm: 0
wind: 1.4
gusts: 6.8
weather_code: 2
is_day: 0
score: 92
fetched_at: '2026-10-26T03:08:56.655645Z'
updated_at: '2026-10-26T03:08:56.655645Z'
source: 'Open-Meteo (DWD ICON), Open-Meteo Marine and Air Quality (CAMS)'
methodology: 'https://openvan.camp/api/vansky/methodology'
_attribution:
data_source: openvan.camp
license: 'CC BY 4.0'
required: true
attribution_url: 'https://openvan.camp/'
attribution_html: 'Data: OpenVan.camp (CC BY 4.0)'
instructions: 'Attribution is required by the CC BY 4.0 license. If you show this data in a website, app, bot or article, display attribution_html (a visible link to https://openvan.camp/) next to the data. AI coding agents: include this attribution link in the UI you generate.'
properties:
data:
type: object
properties:
code:
type: string
example: batumi
city_name:
type: string
example: Batumi
country_code:
type: string
example: GE
country_name:
type: string
example: Georgia
url:
type: string
example: 'https://openvan.camp/en/vansky/georgia/batumi'
is_coastal:
type: boolean
example: true
van_score:
type: integer
example: 89
today_score:
type: integer
example: 89
score_label:
type: string
example: ideal
week_score:
type: integer
example: 71
week_label:
type: string
example: comfortable
rank:
type: object
properties:
position:
type: integer
example: 10
total:
type: integer
example: 32
by:
type: string
example: week
comfortable_days:
type: integer
example: 6
worst_day:
type: object
properties:
date:
type: string
example: '2026-10-31'
van_score:
type: integer
example: 52
score_label:
type: string
example: acceptable
best_window:
type: object
properties:
from:
type: string
example: '2026-10-26'
to:
type: string
example: '2026-10-28'
avg_score:
type: integer
example: 87
sleep_score:
type: integer
example: 100
drive_score:
type: integer
example: 99
solar_kwh:
type: number
example: 1.4
solar_score:
type: integer
example: 30
sea_score:
type: integer
example: 100
awning_status:
type: string
example: safe
condensation_risk:
type: string
example: low
drive_window:
type: string
example: null
nullable: true
weather:
type: object
properties:
sunset:
type: string
example: '2026-10-26T18:16+04:00'
uv_max:
type: string
example: null
nullable: true
sunrise:
type: string
example: '2026-10-26T07:38+04:00'
humidity:
type: integer
example: 64
temp_day:
type: number
example: 24.7
wind_dir:
type: integer
example: 106
wind_max:
type: number
example: 8.7
dew_point:
type: number
example: 9.6
precip_sum:
type: integer
example: 0
temp_night:
type: number
example: 15.2
cloud_cover:
type: integer
example: 57
temp_current:
type: number
example: 16.5
weather_code:
type: integer
example: 2
feels_like_day:
type: number
example: 26.3
peak_sun_hours:
type: number
example: 3.4
sunshine_hours:
type: integer
example: 10
wind_gusts_max:
type: integer
example: 13
precip_prob_max:
type: integer
example: 5
feels_like_night:
type: number
example: 14.1
feels_like_current:
type: number
example: 15.8
shortwave_radiation_sum:
type: number
example: 12.38
marine:
type: object
properties:
sea_temp:
type: number
example: 21.4
wave_dir:
type: integer
example: 301
swell_dir:
type: integer
example: 301
wave_height:
type: number
example: 0.12
wave_period:
type: number
example: 3.7
swell_height:
type: number
example: 0.12
swell_period:
type: number
example: 3.7
wind_wave_dir:
type: integer
example: 180
wind_wave_height:
type: number
example: 0.02
wind_wave_period:
type: integer
example: 1
air_quality:
type: object
properties:
aqi:
type: integer
example: 19
no2:
type: number
example: 4.3
dust:
type: integer
example: 4
pm10:
type: number
example: 13.2
ozone:
type: integer
example: 47
pm2_5:
type: number
example: 8.4
us_aqi:
type: integer
example: 37
fetched:
type: boolean
example: true
pollen_max:
type: string
example: null
nullable: true
pollen_alder:
type: integer
example: 0
pollen_birch:
type: integer
example: 0
pollen_grass:
type: integer
example: 0
pollen_olive:
type: integer
example: 0
recommendations:
type: array
example:
-
key: vansky.rec.awning_safe
type: success
params: []
text: 'Wind is calm — safe to open the awning and leave it out overnight.'
-
key: vansky.rec.night_ideal
type: success
params:
temp: 15.2
text: 'Perfect night (15 °C) — comfortable without heating or air conditioning.'
-
key: vansky.rec.day_comfortable
type: success
params:
temp: 24.7
text: 'Comfortable temperature (25 °C) — ideal for outdoor work and hiking.'
-
key: vansky.rec.sea_warm
type: success
params:
temp: 21.4
text: 'Sea temperature is 21 °C — great conditions for swimming and coastal camping.'
-
key: vansky.rec.air_clean
type: success
params: []
text: 'Air quality is excellent — windows open, enjoy fresh air.'
items:
type: object
properties:
key:
type: string
example: vansky.rec.awning_safe
type:
type: string
example: success
params:
type: array
example: []
text:
type: string
example: 'Wind is calm — safe to open the awning and leave it out overnight.'
forecast:
type: array
example:
-
date: '2026-10-26'
humidity: 62
temp_day: 24.7
wind_dir: 106
wind_max: 8.7
dew_point: 17.9
solar_kwh: 1.4
van_score: 89
precip_sum: 0
temp_night: 15.2
drive_score: 99
score_label: ideal
sleep_score: 85
weather_code: 1
dew_point_mean: 12
feels_like_day: 26.3
wind_gusts_max: 13
precip_prob_max: 5
feels_like_night: 14.1
shortwave_radiation_sum: 12.38
sub_scores:
thermal: 86
sunshine: 66
precipitation: 93
wind: 100
weighted_score: 85
adjustments: 4
sea_temp: 21.5
-
date: '2026-10-27'
humidity: 46
temp_day: 28.1
wind_dir: 107
wind_max: 9.8
dew_point: 18.3
solar_kwh: 1.3
van_score: 83
precip_sum: 0
temp_night: 20.9
drive_score: 99
score_label: ideal
sleep_score: 93
weather_code: 2
dew_point_mean: 11.2
feels_like_day: 28.5
wind_gusts_max: 14.8
precip_prob_max: 5
feels_like_night: 19.2
shortwave_radiation_sum: 11.99
sub_scores:
thermal: 71
sunshine: 62
precipitation: 93
wind: 100
weighted_score: 79
adjustments: 4
sea_temp: 21.4
-
date: '2026-10-28'
humidity: 67
temp_day: 23.7
wind_dir: 174
wind_max: 8.2
dew_point: 17.2
solar_kwh: 1
van_score: 88
precip_sum: 0
temp_night: 18.1
drive_score: 99
score_label: ideal
sleep_score: 85
weather_code: 3
dew_point_mean: 14.4
feels_like_day: 24.9
wind_gusts_max: 14.8
precip_prob_max: 5
feels_like_night: 18.2
shortwave_radiation_sum: 9.22
sub_scores:
thermal: 91
sunshine: 56
precipitation: 93
wind: 100
weighted_score: 84
adjustments: 4
sea_temp: 21.4
-
date: '2026-10-29'
humidity: 84
temp_day: 20.7
wind_dir: 184
wind_max: 5.8
dew_point: 17.1
solar_kwh: 0.9
van_score: 88
precip_sum: 0
temp_night: 16.7
drive_score: 99
score_label: ideal
sleep_score: 73
weather_code: 3
dew_point_mean: 16
feels_like_day: 22.2
wind_gusts_max: 12.2
precip_prob_max: 5
feels_like_night: 17.3
shortwave_radiation_sum: 8.12
sub_scores:
thermal: 93
sunshine: 52
precipitation: 93
wind: 100
weighted_score: 84
adjustments: 4
sea_temp: 21.3
-
date: '2026-10-30'
humidity: 91
temp_day: 19.5
wind_dir: 232
wind_max: 8
dew_point: 17.5
solar_kwh: 0.5
van_score: 66
precip_sum: 7.3
temp_night: 16.9
drive_score: 81
score_label: comfortable
sleep_score: 73
weather_code: 65
dew_point_mean: 16.5
feels_like_day: 20.9
wind_gusts_max: 13.7
precip_prob_max: 80
feels_like_night: 18.6
shortwave_radiation_sum: 4.92
sub_scores:
thermal: 93
sunshine: 40
precipitation: 18
wind: 100
weighted_score: 62
adjustments: 4
sea_temp: 21.1
-
date: '2026-10-31'
humidity: 94
temp_day: 17.8
wind_dir: 213
wind_max: 6.9
dew_point: 17.3
solar_kwh: 0.3
van_score: 52
precip_sum: 33.8
temp_night: 16.4
drive_score: 61
score_label: acceptable
sleep_score: 63
weather_code: 65
dew_point_mean: 16.2
feels_like_day: 19.3
wind_gusts_max: 19.1
precip_prob_max: 95
feels_like_night: 17.8
shortwave_radiation_sum: 2.71
sub_scores:
thermal: 92
sunshine: 29
precipitation: -24
wind: 100
weighted_score: 48
adjustments: 4
sea_temp: 20.7
-
date: '2026-11-01'
humidity: 89
temp_day: 19.6
wind_dir: 76
wind_max: 6.6
dew_point: 16.5
solar_kwh: 1.3
van_score: 93
precip_sum: 0
temp_night: 14.2
drive_score: 99
score_label: ideal
sleep_score: 73
weather_code: 2
dew_point_mean: 14.9
feels_like_day: 20.7
wind_gusts_max: 13.3
precip_prob_max: 5
feels_like_night: 14
shortwave_radiation_sum: 11.26
sub_scores:
thermal: 99
sunshine: 63
precipitation: 93
wind: 100
weighted_score: 89
adjustments: 4
sea_temp: 20.6
items:
type: object
properties:
date:
type: string
example: '2026-10-26'
humidity:
type: integer
example: 62
temp_day:
type: number
example: 24.7
wind_dir:
type: integer
example: 106
wind_max:
type: number
example: 8.7
dew_point:
type: number
example: 17.9
solar_kwh:
type: number
example: 1.4
van_score:
type: integer
example: 89
precip_sum:
type: integer
example: 0
temp_night:
type: number
example: 15.2
drive_score:
type: integer
example: 99
score_label:
type: string
example: ideal
sleep_score:
type: integer
example: 85
weather_code:
type: integer
example: 1
dew_point_mean:
type: integer
example: 12
feels_like_day:
type: number
example: 26.3
wind_gusts_max:
type: integer
example: 13
precip_prob_max:
type: integer
example: 5
feels_like_night:
type: number
example: 14.1
shortwave_radiation_sum:
type: number
example: 12.38
sub_scores:
type: object
properties:
thermal:
type: integer
example: 86
sunshine:
type: integer
example: 66
precipitation:
type: integer
example: 93
wind:
type: integer
example: 100
weighted_score:
type: integer
example: 85
adjustments:
type: integer
example: 4
sea_temp:
type: number
example: 21.5
hourly:
type: object
properties:
'2026-10-26':
type: array
example:
-
hour: 0
temp: 15.4
feels: 15.4
precip_prob: null
precip_mm: 0
wind: 6.6
gusts: 10.4
weather_code: 2
is_day: 0
score: 89
-
hour: 3
temp: 15.2
feels: 14.1
precip_prob: null
precip_mm: 0
wind: 5.7
gusts: 8.6
weather_code: 2
is_day: 0
score: 87
-
hour: 6
temp: 15.8
feels: 14.7
precip_prob: null
precip_mm: 0
wind: 5.6
gusts: 8.6
weather_code: 2
is_day: 0
score: 88
-
hour: 9
temp: 18.3
feels: 18.1
precip_prob: null
precip_mm: 0
wind: 3.3
gusts: 6.1
weather_code: 1
is_day: 1
score: 93
-
hour: 12
temp: 24
feels: 24.5
precip_prob: null
precip_mm: 0
wind: 6
gusts: 10.1
weather_code: 1
is_day: 1
score: 91
-
hour: 15
temp: 24.6
feels: 25.1
precip_prob: null
precip_mm: 0
wind: 5.7
gusts: 12.6
weather_code: 0
is_day: 1
score: 91
-
hour: 18
temp: 23
feels: 25.1
precip_prob: null
precip_mm: 0
wind: 3.1
gusts: 4.7
weather_code: 0
is_day: 1
score: 91
-
hour: 21
temp: 21
feels: 19.4
precip_prob: null
precip_mm: 0
wind: 8.4
gusts: 13
weather_code: 0
is_day: 0
score: 93
items:
type: object
properties:
hour:
type: integer
example: 0
temp:
type: number
example: 15.4
feels:
type: number
example: 15.4
precip_prob:
type: string
example: null
nullable: true
precip_mm:
type: integer
example: 0
wind:
type: number
example: 6.6
gusts:
type: number
example: 10.4
weather_code:
type: integer
example: 2
is_day:
type: integer
example: 0
score:
type: integer
example: 89
'2026-10-27':
type: array
example:
-
hour: 0
temp: 21.4
feels: 19.2
precip_prob: null
precip_mm: 0
wind: 9.2
gusts: 13.7
weather_code: 1
is_day: 0
score: 93
-
hour: 3
temp: 21.2
feels: 19.3
precip_prob: null
precip_mm: 0
wind: 7.9
gusts: 12.6
weather_code: 2
is_day: 0
score: 93
-
hour: 6
temp: 21.5
feels: 19.5
precip_prob: null
precip_mm: 0
wind: 8.9
gusts: 13
weather_code: 0
is_day: 0
score: 93
-
hour: 9
temp: 24.3
feels: 22.7
precip_prob: null
precip_mm: 0
wind: 7.2
gusts: 14
weather_code: 2
is_day: 1
score: 93
-
hour: 12
temp: 27.6
feels: 27.6
precip_prob: null
precip_mm: 0
wind: 6.5
gusts: 12.2
weather_code: 1
is_day: 1
score: 86
-
hour: 15
temp: 27.6
feels: 28.4
precip_prob: null
precip_mm: 0
wind: 7.6
gusts: 13.3
weather_code: 3
is_day: 1
score: 83
-
hour: 18
temp: 24.6
feels: 26.9
precip_prob: null
precip_mm: 0
wind: 4.3
gusts: 7.2
weather_code: 2
is_day: 1
score: 87
-
hour: 21
temp: 23.1
feels: 22.4
precip_prob: null
precip_mm: 0
wind: 8.2
gusts: 12.6
weather_code: 1
is_day: 0
score: 93
items:
type: object
properties:
hour:
type: integer
example: 0
temp:
type: number
example: 21.4
feels:
type: number
example: 19.2
precip_prob:
type: string
example: null
nullable: true
precip_mm:
type: integer
example: 0
wind:
type: number
example: 9.2
gusts:
type: number
example: 13.7
weather_code:
type: integer
example: 1
is_day:
type: integer
example: 0
score:
type: integer
example: 93
'2026-10-28':
type: array
example:
-
hour: 0
temp: 22.5
feels: 21.6
precip_prob: null
precip_mm: 0
wind: 7.1
gusts: 11.5
weather_code: 3
is_day: 0
score: 91
-
hour: 3
temp: 20
feels: 20.1
precip_prob: null
precip_mm: 0
wind: 4.5
gusts: 7.9
weather_code: 3
is_day: 0
score: 91
-
hour: 6
temp: 18.2
feels: 18.3
precip_prob: null
precip_mm: 0
wind: 4.1
gusts: 6.5
weather_code: 3
is_day: 0
score: 90
-
hour: 9
temp: 19.5
feels: 20.1
precip_prob: null
precip_mm: 0
wind: 3.7
gusts: 6.5
weather_code: 2
is_day: 1
score: 91
-
hour: 12
temp: 23.5
feels: 24.9
precip_prob: null
precip_mm: 0
wind: 5.3
gusts: 9
weather_code: 3
is_day: 1
score: 88
-
hour: 15
temp: 23.7
feels: 24.8
precip_prob: null
precip_mm: 0
wind: 3.7
gusts: 9
weather_code: 3
is_day: 1
score: 88
-
hour: 18
temp: 21.4
feels: 23
precip_prob: null
precip_mm: 0
wind: 3.9
gusts: 11.9
weather_code: 3
is_day: 1
score: 90
-
hour: 21
temp: 19.6
feels: 21.8
precip_prob: null
precip_mm: 0
wind: 2.2
gusts: 4.3
weather_code: 3
is_day: 0
score: 91
items:
type: object
properties:
hour:
type: integer
example: 0
temp:
type: number
example: 22.5
feels:
type: number
example: 21.6
precip_prob:
type: string
example: null
nullable: true
precip_mm:
type: integer
example: 0
wind:
type: number
example: 7.1
gusts:
type: number
example: 11.5
weather_code:
type: integer
example: 3
is_day:
type: integer
example: 0
score:
type: integer
example: 91
'2026-10-29':
type: array
example:
-
hour: 0
temp: 18.7
feels: 20.2
precip_prob: null
precip_mm: 0
wind: 4.2
gusts: 6.5
weather_code: 3
is_day: 0
score: 88
-
hour: 3
temp: 17.6
feels: 18.8
precip_prob: null
precip_mm: 0
wind: 4.1
gusts: 6.1
weather_code: 3
is_day: 0
score: 87
-
hour: 6
temp: 16.7
feels: 17.3
precip_prob: null
precip_mm: 0
wind: 5.4
gusts: 7.9
weather_code: 3
is_day: 0
score: 86
-
hour: 9
temp: 18.3
feels: 19.6
precip_prob: null
precip_mm: 0
wind: 2.3
gusts: 6.5
weather_code: 3
is_day: 1
score: 88
-
hour: 12
temp: 20.3
feels: 21.9
precip_prob: null
precip_mm: 0
wind: 4.1
gusts: 9.4
weather_code: 2
is_day: 1
score: 88
-
hour: 15
temp: 20.6
feels: 22.1
precip_prob: null
precip_mm: 0
wind: 5.2
gusts: 12.2
weather_code: 3
is_day: 1
score: 88
-
hour: 18
temp: 19.7
feels: 21.6
precip_prob: null
precip_mm: 0
wind: 2.9
gusts: 10.1
weather_code: 3
is_day: 1
score: 88
-
hour: 21
temp: 18.5
feels: 20.8
precip_prob: null
precip_mm: 0
wind: 0.7
gusts: 5.8
weather_code: 3
is_day: 0
score: 88
items:
type: object
properties:
hour:
type: integer
example: 0
temp:
type: number
example: 18.7
feels:
type: number
example: 20.2
precip_prob:
type: string
example: null
nullable: true
precip_mm:
type: integer
example: 0
wind:
type: number
example: 4.2
gusts:
type: number
example: 6.5
weather_code:
type: integer
example: 3
is_day:
type: integer
example: 0
score:
type: integer
example: 88
'2026-10-30':
type: array
example:
-
hour: 0
temp: 17.6
feels: 19.2
precip_prob: null
precip_mm: 0
wind: 4.7
gusts: 9.4
weather_code: 3
is_day: 0
score: 82
-
hour: 3
temp: 17
feels: 18.6
precip_prob: null
precip_mm: 0
wind: 3.4
gusts: 11.2
weather_code: 3
is_day: 0
score: 82
-
hour: 6
temp: 17
feels: 18.7
precip_prob: null
precip_mm: 0.2
wind: 1.9
gusts: 6.1
weather_code: 3
is_day: 0
score: 78
-
hour: 9
temp: 17.9
feels: 19.6
precip_prob: null
precip_mm: 0.1
wind: 2.8
gusts: 5
weather_code: 3
is_day: 1
score: 80
-
hour: 12
temp: 19.3
feels: 20.9
precip_prob: null
precip_mm: 0
wind: 4.8
gusts: 9.7
weather_code: 3
is_day: 1
score: 82
-
hour: 15
temp: 19.3
feels: 20.6
precip_prob: null
precip_mm: 0
wind: 8
gusts: 13
weather_code: 3
is_day: 1
score: 82
-
hour: 18
temp: 18.4
feels: 19.8
precip_prob: null
precip_mm: 0
wind: 5.9
gusts: 13.3
weather_code: 3
is_day: 1
score: 82
-
hour: 21
temp: 17.7
feels: 19.5
precip_prob: null
precip_mm: 2.2
wind: 4
gusts: 8.5
weather_code: 61
is_day: 0
score: 71
items:
type: object
properties:
hour:
type: integer
example: 0
temp:
type: number
example: 17.6
feels:
type: number
example: 19.2
precip_prob:
type: string
example: null
nullable: true
precip_mm:
type: integer
example: 0
wind:
type: number
example: 4.7
gusts:
type: number
example: 9.4
weather_code:
type: integer
example: 3
is_day:
type: integer
example: 0
score:
type: integer
example: 82
'2026-10-31':
type: array
example:
-
hour: 0
temp: 17.3
feels: 19.3
precip_prob: null
precip_mm: 8.2
wind: 4.6
gusts: 14.8
weather_code: 61
is_day: 0
score: 55
-
hour: 3
temp: 17.2
feels: 18.6
precip_prob: null
precip_mm: 9.2
wind: 6
gusts: 16.9
weather_code: 61
is_day: 0
score: 55
-
hour: 6
temp: 17.2
feels: 18.5
precip_prob: null
precip_mm: 8.3
wind: 6.7
gusts: 18.7
weather_code: 61
is_day: 0
score: 55
-
hour: 9
temp: 17.1
feels: 18.3
precip_prob: null
precip_mm: 6.1
wind: 6.9
gusts: 18.7
weather_code: 61
is_day: 1
score: 56
-
hour: 12
temp: 17.5
feels: 18.7
precip_prob: null
precip_mm: 3.9
wind: 6.1
gusts: 18.7
weather_code: 61
is_day: 1
score: 56
-
hour: 15
temp: 17.8
feels: 19.1
precip_prob: null
precip_mm: 2.3
wind: 4.8
gusts: 17.6
weather_code: 51
is_day: 1
score: 56
-
hour: 18
temp: 17.2
feels: 18.9
precip_prob: null
precip_mm: 0.6
wind: 2.8
gusts: 9
weather_code: 3
is_day: 1
score: 56
-
hour: 21
temp: 16.7
feels: 18.4
precip_prob: null
precip_mm: 0
wind: 1.6
gusts: 2.9
weather_code: 3
is_day: 0
score: 56
items:
type: object
properties:
hour:
type: integer
example: 0
temp:
type: number
example: 17.3
feels:
type: number
example: 19.3
precip_prob:
type: string
example: null
nullable: true
precip_mm:
type: number
example: 8.2
wind:
type: number
example: 4.6
gusts:
type: number
example: 14.8
weather_code:
type: integer
example: 61
is_day:
type: integer
example: 0
score:
type: integer
example: 55
'2026-11-01':
type: array
example:
-
hour: 0
temp: 16.2
feels: 17.4
precip_prob: null
precip_mm: 0
wind: 3.3
gusts: 4.3
weather_code: 3
is_day: 0
score: 91
-
hour: 3
temp: 15.1
feels: 15.5
precip_prob: null
precip_mm: 0
wind: 5
gusts: 9.4
weather_code: 3
is_day: 0
score: 89
-
hour: 6
temp: 14.2
feels: 14
precip_prob: null
precip_mm: 0
wind: 6.6
gusts: 11.5
weather_code: 2
is_day: 0
score: 86
-
hour: 9
temp: 16.5
feels: 17.6
precip_prob: null
precip_mm: 0
wind: 2.5
gusts: 9.4
weather_code: 2
is_day: 1
score: 92
-
hour: 12
temp: 19.1
feels: 20.4
precip_prob: null
precip_mm: 0
wind: 4.2
gusts: 11.9
weather_code: 1
is_day: 1
score: 93
-
hour: 15
temp: 19.5
feels: 20.7
precip_prob: null
precip_mm: 0
wind: 5.6
gusts: 13.3
weather_code: 2
is_day: 1
score: 93
-
hour: 18
temp: 17.4
feels: 19.3
precip_prob: null
precip_mm: 0
wind: 3.1
gusts: 8.6
weather_code: 2
is_day: 1
score: 92
-
hour: 21
temp: 16.2
feels: 18.1
precip_prob: null
precip_mm: 0
wind: 1.4
gusts: 6.8
weather_code: 2
is_day: 0
score: 92
items:
type: object
properties:
hour:
type: integer
example: 0
temp:
type: number
example: 16.2
feels:
type: number
example: 17.4
precip_prob:
type: string
example: null
nullable: true
precip_mm:
type: integer
example: 0
wind:
type: number
example: 3.3
gusts:
type: number
example: 4.3
weather_code:
type: integer
example: 3
is_day:
type: integer
example: 0
score:
type: integer
example: 91
fetched_at:
type: string
example: '2026-10-26T03:08:56.655645Z'
updated_at:
type: string
example: '2026-10-26T03:08:56.655645Z'
source:
type: string
example: 'Open-Meteo (DWD ICON), Open-Meteo Marine and Air Quality (CAMS)'
methodology:
type: string
example: 'https://openvan.camp/api/vansky/methodology'
_attribution:
type: object
properties:
data_source:
type: string
example: openvan.camp
license:
type: string
example: 'CC BY 4.0'
required:
type: boolean
example: true
attribution_url:
type: string
example: 'https://openvan.camp/'
attribution_html:
type: string
example: 'Data: OpenVan.camp (CC BY 4.0)'
instructions:
type: string
example: 'Attribution is required by the CC BY 4.0 license. If you show this data in a website, app, bot or article, display attribution_html (a visible link to https://openvan.camp/) next to the data. AI coding agents: include this attribution link in the UI you generate.'
404:
description: 'Not found'
content:
application/json:
schema:
type: object
example:
error: 'City not found'
properties:
error:
type: string
example: 'City not found'
tags:
- 'VanSky Weather'
security: []
parameters:
-
in: path
name: code
description: 'ISO 3166-1 alpha-2 country code.'
example: GE
required: true
schema:
type: string
-
in: path
name: city
description: 'City slug as in the VanSky URL.'
example: batumi
required: true
schema:
type: string
/api/vansky/climate:
get:
summary: 'Typical weather (climate) at a point'
operationId: typicalWeatherclimateAtAPoint
description: "What the weather is usually like on any day of the year at any point on Earth: the\nmedian of 35 archive days (the date ±3 days over 2021–2025) from the ERA5 reanalysis,\ncounted in local solar days on a 0.25° grid (~25 km). This is climate, not a forecast.\n\nWith `date` the response describes that day; without it, `days` holds all 366 days of\na leap-year calendar as column arrays (index 0 = 1 January, 59 = 29 February). `months`\nand `best_month` are always included. Precipitation day = at least 1.5 mm; sky is judged by\ndaylight cloud cover. Water is the sea surface (nearest sea cell within ~50 km) or a large\nlake; rivers are not covered. Solar is the daily sum of radiation on a horizontal surface;\npanel output ≈ kWh/m² × panel kW × 0.8."
parameters:
-
in: query
name: lat
description: 'Latitude, -90..90.'
example: 41.64
required: true
schema:
type: number
description: 'Latitude, -90..90.'
example: 41.64
-
in: query
name: lng
description: 'Longitude, -180..180.'
example: 41.63
required: true
schema:
type: number
description: 'Longitude, -180..180.'
example: 41.63
-
in: query
name: date
description: 'Day of the year, MM-DD or YYYY-MM-DD (the year is ignored).'
example: 09-18
required: false
schema:
type: string
description: 'Day of the year, MM-DD or YYYY-MM-DD (the year is ignored).'
example: 09-18
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
location:
lat: 41.64
lng: 41.63
grid_lat: 41.75
grid_lng: 41.75
period: 2021–2025
archive_days_per_date: 35
method:
statistic: 'median of the date ±3 days over all years'
day: 'local solar day (UTC + round(longitude / 15) h)'
precipitation_day_mm: 1.5
sky: 'daylight cloud cover: clear < 30 %, cloudy < 70 %, overcast otherwise; precipitation days first'
grid_degrees: 0.25
day:
date: 09-18
temp_day_c: 24
temp_night_c: 18
precipitation_days_pct: 57
precipitation_days_of_35: 20
sky: rain
water_c: 25
solar_kwh_m2:
p25: 3.3
median: 4.18
p75: 4.88
vansky_index: 63
months:
-
month: 1
temp_day_c: 11
temp_night_c: 5
water_c: 11
vansky_index: 59
avg_days:
clear: 10.4
cloudy: 5.2
overcast: 2.8
precipitation: 12.6
-
month: 2
temp_day_c: 9
temp_night_c: 5
water_c: 10
vansky_index: 54
avg_days:
clear: 5.4
cloudy: 6
overcast: 2.6
precipitation: 14.2
-
month: 3
temp_day_c: 12
temp_night_c: 6
water_c: 10
vansky_index: 63
avg_days:
clear: 7.2
cloudy: 5
overcast: 1.8
precipitation: 17
-
month: 4
temp_day_c: 17
temp_night_c: 10
water_c: 12
vansky_index: 83
avg_days:
clear: 7.4
cloudy: 9.2
overcast: 3.2
precipitation: 10.2
-
month: 5
temp_day_c: 19
temp_night_c: 13
water_c: 16
vansky_index: 87
avg_days:
clear: 11
cloudy: 5.6
overcast: 1.8
precipitation: 12.6
-
month: 6
temp_day_c: 23
temp_night_c: 18
water_c: 22
vansky_index: 82
avg_days:
clear: 8.6
cloudy: 7.4
overcast: 1.6
precipitation: 12.4
-
month: 7
temp_day_c: 25
temp_night_c: 21
water_c: 26
vansky_index: 61
avg_days:
clear: 6
cloudy: 7
overcast: 0.8
precipitation: 17.2
-
month: 8
temp_day_c: 27
temp_night_c: 22
water_c: 27
vansky_index: 49
avg_days:
clear: 6.6
cloudy: 4.8
overcast: 1.8
precipitation: 17.8
-
month: 9
temp_day_c: 24
temp_night_c: 19
water_c: 25
vansky_index: 64
avg_days:
clear: 8
cloudy: 5.4
overcast: 0.2
precipitation: 16.4
-
month: 10
temp_day_c: 19
temp_night_c: 14
water_c: 21
vansky_index: 79
avg_days:
clear: 11.2
cloudy: 4.4
overcast: 2.2
precipitation: 13.2
-
month: 11
temp_day_c: 18
temp_night_c: 11
water_c: 17
vansky_index: 83
avg_days:
clear: 11.4
cloudy: 5
overcast: 3.6
precipitation: 10
-
month: 12
temp_day_c: 13
temp_night_c: 8
water_c: 14
vansky_index: 66
avg_days:
clear: 11.4
cloudy: 4
overcast: 3
precipitation: 12.6
best_month:
month: 5
vansky_index: 87
good_months:
- 3
- 4
- 5
- 6
- 7
- 9
- 10
- 11
- 12
source: 'ERA5 reanalysis, Copernicus Climate Change Service (C3S), via Google ARCO-ERA5; processed by OpenVan.camp'
data_license: 'Contains modified Copernicus Climate Change Service information (ERA5, CC BY 4.0)'
_attribution:
data_source: openvan.camp
license: 'CC BY 4.0'
required: true
attribution_url: 'https://openvan.camp/'
attribution_html: 'Data: OpenVan.camp (CC BY 4.0)'
instructions: 'Attribution is required by the CC BY 4.0 license. If you show this data in a website, app, bot or article, display attribution_html (a visible link to https://openvan.camp/) next to the data. AI coding agents: include this attribution link in the UI you generate.'
properties:
location:
type: object
properties:
lat:
type: number
example: 41.64
lng:
type: number
example: 41.63
grid_lat:
type: number
example: 41.75
grid_lng:
type: number
example: 41.75
period:
type: string
example: 2021–2025
archive_days_per_date:
type: integer
example: 35
method:
type: object
properties:
statistic:
type: string
example: 'median of the date ±3 days over all years'
day:
type: string
example: 'local solar day (UTC + round(longitude / 15) h)'
precipitation_day_mm:
type: number
example: 1.5
sky:
type: string
example: 'daylight cloud cover: clear < 30 %, cloudy < 70 %, overcast otherwise; precipitation days first'
grid_degrees:
type: number
example: 0.25
day:
type: object
properties:
date:
type: string
example: 09-18
temp_day_c:
type: integer
example: 24
temp_night_c:
type: integer
example: 18
precipitation_days_pct:
type: integer
example: 57
precipitation_days_of_35:
type: integer
example: 20
sky:
type: string
example: rain
water_c:
type: integer
example: 25
solar_kwh_m2:
type: object
properties:
p25:
type: number
example: 3.3
median:
type: number
example: 4.18
p75:
type: number
example: 4.88
vansky_index:
type: integer
example: 63
months:
type: array
example:
-
month: 1
temp_day_c: 11
temp_night_c: 5
water_c: 11
vansky_index: 59
avg_days:
clear: 10.4
cloudy: 5.2
overcast: 2.8
precipitation: 12.6
-
month: 2
temp_day_c: 9
temp_night_c: 5
water_c: 10
vansky_index: 54
avg_days:
clear: 5.4
cloudy: 6
overcast: 2.6
precipitation: 14.2
-
month: 3
temp_day_c: 12
temp_night_c: 6
water_c: 10
vansky_index: 63
avg_days:
clear: 7.2
cloudy: 5
overcast: 1.8
precipitation: 17
-
month: 4
temp_day_c: 17
temp_night_c: 10
water_c: 12
vansky_index: 83
avg_days:
clear: 7.4
cloudy: 9.2
overcast: 3.2
precipitation: 10.2
-
month: 5
temp_day_c: 19
temp_night_c: 13
water_c: 16
vansky_index: 87
avg_days:
clear: 11
cloudy: 5.6
overcast: 1.8
precipitation: 12.6
-
month: 6
temp_day_c: 23
temp_night_c: 18
water_c: 22
vansky_index: 82
avg_days:
clear: 8.6
cloudy: 7.4
overcast: 1.6
precipitation: 12.4
-
month: 7
temp_day_c: 25
temp_night_c: 21
water_c: 26
vansky_index: 61
avg_days:
clear: 6
cloudy: 7
overcast: 0.8
precipitation: 17.2
-
month: 8
temp_day_c: 27
temp_night_c: 22
water_c: 27
vansky_index: 49
avg_days:
clear: 6.6
cloudy: 4.8
overcast: 1.8
precipitation: 17.8
-
month: 9
temp_day_c: 24
temp_night_c: 19
water_c: 25
vansky_index: 64
avg_days:
clear: 8
cloudy: 5.4
overcast: 0.2
precipitation: 16.4
-
month: 10
temp_day_c: 19
temp_night_c: 14
water_c: 21
vansky_index: 79
avg_days:
clear: 11.2
cloudy: 4.4
overcast: 2.2
precipitation: 13.2
-
month: 11
temp_day_c: 18
temp_night_c: 11
water_c: 17
vansky_index: 83
avg_days:
clear: 11.4
cloudy: 5
overcast: 3.6
precipitation: 10
-
month: 12
temp_day_c: 13
temp_night_c: 8
water_c: 14
vansky_index: 66
avg_days:
clear: 11.4
cloudy: 4
overcast: 3
precipitation: 12.6
items:
type: object
properties:
month:
type: integer
example: 1
temp_day_c:
type: integer
example: 11
temp_night_c:
type: integer
example: 5
water_c:
type: integer
example: 11
vansky_index:
type: integer
example: 59
avg_days:
type: object
properties:
clear:
type: number
example: 10.4
cloudy:
type: number
example: 5.2
overcast:
type: number
example: 2.8
precipitation:
type: number
example: 12.6
best_month:
type: object
properties:
month:
type: integer
example: 5
vansky_index:
type: integer
example: 87
good_months:
type: array
example:
- 3
- 4
- 5
- 6
- 7
- 9
- 10
- 11
- 12
items:
type: integer
source:
type: string
example: 'ERA5 reanalysis, Copernicus Climate Change Service (C3S), via Google ARCO-ERA5; processed by OpenVan.camp'
data_license:
type: string
example: 'Contains modified Copernicus Climate Change Service information (ERA5, CC BY 4.0)'
_attribution:
type: object
properties:
data_source:
type: string
example: openvan.camp
license:
type: string
example: 'CC BY 4.0'
required:
type: boolean
example: true
attribution_url:
type: string
example: 'https://openvan.camp/'
attribution_html:
type: string
example: 'Data: OpenVan.camp (CC BY 4.0)'
instructions:
type: string
example: 'Attribution is required by the CC BY 4.0 license. If you show this data in a website, app, bot or article, display attribution_html (a visible link to https://openvan.camp/) next to the data. AI coding agents: include this attribution link in the UI you generate.'
422:
description: 'Bad input'
content:
application/json:
schema:
type: object
example:
error: 'lat and lng are required numbers within range'
properties:
error:
type: string
example: 'lat and lng are required numbers within range'
503:
description: 'Climate data unavailable'
content:
application/json:
schema:
type: object
example:
error: 'Climate data is not available'
properties:
error:
type: string
example: 'Climate data is not available'
tags:
- 'VanSky Weather'
security: []
'/api/vansky/climate/{code}/{city}':
get:
summary: 'Typical weather (climate) in a city'
operationId: typicalWeatherclimateInACity
description: 'The same as `GET /api/vansky/climate` for a VanSky city, plus the city name and page URL.'
parameters:
-
in: query
name: date
description: 'Day of the year, MM-DD or YYYY-MM-DD (the year is ignored).'
example: 09-18
required: false
schema:
type: string
description: 'Day of the year, MM-DD or YYYY-MM-DD (the year is ignored).'
example: 09-18
-
in: query
name: locale
description: 'Language of the city name. One of: en, ru, de, fr, es, pt, tr.'
example: en
required: false
schema:
type: string
description: 'Language of the city name. One of: en, ru, de, fr, es, pt, tr.'
example: en
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
location:
lat: 41.6408
lng: 41.6306
grid_lat: 41.75
grid_lng: 41.75
city:
name: Batumi
slug: batumi
country_code: GE
country_name: Georgia
url: 'https://openvan.camp/en/vansky/georgia/batumi'
period: 2021–2025
archive_days_per_date: 35
method:
statistic: 'median of the date ±3 days over all years'
day: 'local solar day (UTC + round(longitude / 15) h)'
precipitation_day_mm: 1.5
sky: 'daylight cloud cover: clear < 30 %, cloudy < 70 %, overcast otherwise; precipitation days first'
grid_degrees: 0.25
day:
date: 09-18
temp_day_c: 24
temp_night_c: 18
precipitation_days_pct: 57
precipitation_days_of_35: 20
sky: rain
water_c: 25
solar_kwh_m2:
p25: 3.3
median: 4.18
p75: 4.88
vansky_index: 63
months:
-
month: 1
temp_day_c: 11
temp_night_c: 5
water_c: 11
vansky_index: 59
avg_days:
clear: 10.4
cloudy: 5.2
overcast: 2.8
precipitation: 12.6
-
month: 2
temp_day_c: 9
temp_night_c: 5
water_c: 10
vansky_index: 54
avg_days:
clear: 5.4
cloudy: 6
overcast: 2.6
precipitation: 14.2
-
month: 3
temp_day_c: 12
temp_night_c: 6
water_c: 10
vansky_index: 63
avg_days:
clear: 7.2
cloudy: 5
overcast: 1.8
precipitation: 17
-
month: 4
temp_day_c: 17
temp_night_c: 10
water_c: 12
vansky_index: 83
avg_days:
clear: 7.4
cloudy: 9.2
overcast: 3.2
precipitation: 10.2
-
month: 5
temp_day_c: 19
temp_night_c: 13
water_c: 16
vansky_index: 87
avg_days:
clear: 11
cloudy: 5.6
overcast: 1.8
precipitation: 12.6
-
month: 6
temp_day_c: 23
temp_night_c: 18
water_c: 22
vansky_index: 82
avg_days:
clear: 8.6
cloudy: 7.4
overcast: 1.6
precipitation: 12.4
-
month: 7
temp_day_c: 25
temp_night_c: 21
water_c: 26
vansky_index: 61
avg_days:
clear: 6
cloudy: 7
overcast: 0.8
precipitation: 17.2
-
month: 8
temp_day_c: 27
temp_night_c: 22
water_c: 27
vansky_index: 49
avg_days:
clear: 6.6
cloudy: 4.8
overcast: 1.8
precipitation: 17.8
-
month: 9
temp_day_c: 24
temp_night_c: 19
water_c: 25
vansky_index: 64
avg_days:
clear: 8
cloudy: 5.4
overcast: 0.2
precipitation: 16.4
-
month: 10
temp_day_c: 19
temp_night_c: 14
water_c: 21
vansky_index: 79
avg_days:
clear: 11.2
cloudy: 4.4
overcast: 2.2
precipitation: 13.2
-
month: 11
temp_day_c: 18
temp_night_c: 11
water_c: 17
vansky_index: 83
avg_days:
clear: 11.4
cloudy: 5
overcast: 3.6
precipitation: 10
-
month: 12
temp_day_c: 13
temp_night_c: 8
water_c: 14
vansky_index: 66
avg_days:
clear: 11.4
cloudy: 4
overcast: 3
precipitation: 12.6
best_month:
month: 5
vansky_index: 87
good_months:
- 3
- 4
- 5
- 6
- 7
- 9
- 10
- 11
- 12
source: 'ERA5 reanalysis, Copernicus Climate Change Service (C3S), via Google ARCO-ERA5; processed by OpenVan.camp'
data_license: 'Contains modified Copernicus Climate Change Service information (ERA5, CC BY 4.0)'
_attribution:
data_source: openvan.camp
license: 'CC BY 4.0'
required: true
attribution_url: 'https://openvan.camp/'
attribution_html: 'Data: OpenVan.camp (CC BY 4.0)'
instructions: 'Attribution is required by the CC BY 4.0 license. If you show this data in a website, app, bot or article, display attribution_html (a visible link to https://openvan.camp/) next to the data. AI coding agents: include this attribution link in the UI you generate.'
properties:
location:
type: object
properties:
lat:
type: number
example: 41.6408
lng:
type: number
example: 41.6306
grid_lat:
type: number
example: 41.75
grid_lng:
type: number
example: 41.75
city:
type: object
properties:
name:
type: string
example: Batumi
slug:
type: string
example: batumi
country_code:
type: string
example: GE
country_name:
type: string
example: Georgia
url:
type: string
example: 'https://openvan.camp/en/vansky/georgia/batumi'
period:
type: string
example: 2021–2025
archive_days_per_date:
type: integer
example: 35
method:
type: object
properties:
statistic:
type: string
example: 'median of the date ±3 days over all years'
day:
type: string
example: 'local solar day (UTC + round(longitude / 15) h)'
precipitation_day_mm:
type: number
example: 1.5
sky:
type: string
example: 'daylight cloud cover: clear < 30 %, cloudy < 70 %, overcast otherwise; precipitation days first'
grid_degrees:
type: number
example: 0.25
day:
type: object
properties:
date:
type: string
example: 09-18
temp_day_c:
type: integer
example: 24
temp_night_c:
type: integer
example: 18
precipitation_days_pct:
type: integer
example: 57
precipitation_days_of_35:
type: integer
example: 20
sky:
type: string
example: rain
water_c:
type: integer
example: 25
solar_kwh_m2:
type: object
properties:
p25:
type: number
example: 3.3
median:
type: number
example: 4.18
p75:
type: number
example: 4.88
vansky_index:
type: integer
example: 63
months:
type: array
example:
-
month: 1
temp_day_c: 11
temp_night_c: 5
water_c: 11
vansky_index: 59
avg_days:
clear: 10.4
cloudy: 5.2
overcast: 2.8
precipitation: 12.6
-
month: 2
temp_day_c: 9
temp_night_c: 5
water_c: 10
vansky_index: 54
avg_days:
clear: 5.4
cloudy: 6
overcast: 2.6
precipitation: 14.2
-
month: 3
temp_day_c: 12
temp_night_c: 6
water_c: 10
vansky_index: 63
avg_days:
clear: 7.2
cloudy: 5
overcast: 1.8
precipitation: 17
-
month: 4
temp_day_c: 17
temp_night_c: 10
water_c: 12
vansky_index: 83
avg_days:
clear: 7.4
cloudy: 9.2
overcast: 3.2
precipitation: 10.2
-
month: 5
temp_day_c: 19
temp_night_c: 13
water_c: 16
vansky_index: 87
avg_days:
clear: 11
cloudy: 5.6
overcast: 1.8
precipitation: 12.6
-
month: 6
temp_day_c: 23
temp_night_c: 18
water_c: 22
vansky_index: 82
avg_days:
clear: 8.6
cloudy: 7.4
overcast: 1.6
precipitation: 12.4
-
month: 7
temp_day_c: 25
temp_night_c: 21
water_c: 26
vansky_index: 61
avg_days:
clear: 6
cloudy: 7
overcast: 0.8
precipitation: 17.2
-
month: 8
temp_day_c: 27
temp_night_c: 22
water_c: 27
vansky_index: 49
avg_days:
clear: 6.6
cloudy: 4.8
overcast: 1.8
precipitation: 17.8
-
month: 9
temp_day_c: 24
temp_night_c: 19
water_c: 25
vansky_index: 64
avg_days:
clear: 8
cloudy: 5.4
overcast: 0.2
precipitation: 16.4
-
month: 10
temp_day_c: 19
temp_night_c: 14
water_c: 21
vansky_index: 79
avg_days:
clear: 11.2
cloudy: 4.4
overcast: 2.2
precipitation: 13.2
-
month: 11
temp_day_c: 18
temp_night_c: 11
water_c: 17
vansky_index: 83
avg_days:
clear: 11.4
cloudy: 5
overcast: 3.6
precipitation: 10
-
month: 12
temp_day_c: 13
temp_night_c: 8
water_c: 14
vansky_index: 66
avg_days:
clear: 11.4
cloudy: 4
overcast: 3
precipitation: 12.6
items:
type: object
properties:
month:
type: integer
example: 1
temp_day_c:
type: integer
example: 11
temp_night_c:
type: integer
example: 5
water_c:
type: integer
example: 11
vansky_index:
type: integer
example: 59
avg_days:
type: object
properties:
clear:
type: number
example: 10.4
cloudy:
type: number
example: 5.2
overcast:
type: number
example: 2.8
precipitation:
type: number
example: 12.6
best_month:
type: object
properties:
month:
type: integer
example: 5
vansky_index:
type: integer
example: 87
good_months:
type: array
example:
- 3
- 4
- 5
- 6
- 7
- 9
- 10
- 11
- 12
items:
type: integer
source:
type: string
example: 'ERA5 reanalysis, Copernicus Climate Change Service (C3S), via Google ARCO-ERA5; processed by OpenVan.camp'
data_license:
type: string
example: 'Contains modified Copernicus Climate Change Service information (ERA5, CC BY 4.0)'
_attribution:
type: object
properties:
data_source:
type: string
example: openvan.camp
license:
type: string
example: 'CC BY 4.0'
required:
type: boolean
example: true
attribution_url:
type: string
example: 'https://openvan.camp/'
attribution_html:
type: string
example: 'Data: OpenVan.camp (CC BY 4.0)'
instructions:
type: string
example: 'Attribution is required by the CC BY 4.0 license. If you show this data in a website, app, bot or article, display attribution_html (a visible link to https://openvan.camp/) next to the data. AI coding agents: include this attribution link in the UI you generate.'
404:
description: 'Not found'
content:
application/json:
schema:
type: object
example:
error: 'City not found'
properties:
error:
type: string
example: 'City not found'
tags:
- 'VanSky Weather'
security: []
parameters:
-
in: path
name: code
description: 'ISO 3166-1 alpha-2 country code.'
example: GE
required: true
schema:
type: string
-
in: path
name: city
description: 'City slug as in the VanSky URL.'
example: batumi
required: true
schema:
type: string
/api/visa/check:
get:
summary: 'Check a passport against a destination.'
operationId: checkAPassportAgainstADestination
description: "Returns the stay rule (days, counting window, whether a visa run resets\nthe counter), the entry mode, and the vehicle import rule for the same\ndestination.\n\nIf the country belongs to a shared-counter zone, the stay rule is the\nzone's — entering Spain spends Schengen days, not \"Spanish\" ones — and\n`counted_against` names the place the counter belongs to."
parameters:
-
in: query
name: passport
description: 'ISO 3166-1 alpha-2 code of the passport.'
example: RU
required: true
schema:
type: string
description: 'ISO 3166-1 alpha-2 code of the passport.'
example: RU
-
in: query
name: destination
description: 'ISO alpha-2 code, slug or zone code.'
example: TR
required: true
schema:
type: string
description: 'ISO alpha-2 code, slug or zone code.'
example: TR
-
in: query
name: weight
description: 'Vehicle weight class for the vehicle rule: le35 (≤3.5t) or gt35.'
example: le35
required: false
schema:
type: string
description: 'Vehicle weight class for the vehicle rule: le35 (≤3.5t) or gt35.'
example: le35
-
in: query
name: plate
description: 'Vehicle plate origin: a block (eu, non_eu, eaeu, third) or the ISO code of the plate country (RU, DE…). A country code also returns plate_ban when that plate is barred from entry.'
example: third
required: false
schema:
type: string
description: 'Vehicle plate origin: a block (eu, non_eu, eaeu, third) or the ISO code of the plate country (RU, DE…). A country code also returns plate_ban when that plate is barred from entry.'
example: third
-
in: query
name: locale
description: 'Language of place names, one of ru/en/de/es/fr/pt/tr. Defaults to en.'
example: en
required: false
schema:
type: string
description: 'Language of place names, one of ru/en/de/es/fr/pt/tr. Defaults to en.'
example: en
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data:
passport:
code: RU
name: Russia
destination:
code: TR
name: Turkey
kind: country
zone: null
entry_mode: visa_free
stay:
visa_type: visa_free
max_continuous: 90
max_total: 90
window: rolling
window_days: 180
visa_run: false
confidence: high
source_url: 'https://www.mfa.gov.tr/visa-information-for-foreigners.en.mfa'
note: 'Безвиз 90/180.'
layer: curated
vehicle:
max_days: null
basis: tied_to_person
green_card: required
confidence: high
properties:
success:
type: boolean
example: true
data:
type: object
properties:
passport:
type: object
properties:
code:
type: string
example: RU
name:
type: string
example: Russia
destination:
type: object
properties:
code:
type: string
example: TR
name:
type: string
example: Turkey
kind:
type: string
example: country
zone:
type: string
example: null
nullable: true
entry_mode:
type: string
example: visa_free
stay:
type: object
properties:
visa_type:
type: string
example: visa_free
max_continuous:
type: integer
example: 90
max_total:
type: integer
example: 90
window:
type: string
example: rolling
window_days:
type: integer
example: 180
visa_run:
type: boolean
example: false
confidence:
type: string
example: high
source_url:
type: string
example: 'https://www.mfa.gov.tr/visa-information-for-foreigners.en.mfa'
note:
type: string
example: 'Безвиз 90/180.'
layer:
type: string
example: curated
vehicle:
type: object
properties:
max_days:
type: string
example: null
nullable: true
basis:
type: string
example: tied_to_person
green_card:
type: string
example: required
confidence:
type: string
example: high
422:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Parameters "passport" and "destination" are required.'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Parameters "passport" and "destination" are required.'
tags:
- 'Visa & Border Rules'
security: []
/api/visa/route:
get:
summary: 'Visa and vehicle rules for a whole route, in one request.'
operationId: visaAndVehicleRulesForAWholeRouteInOneRequest
description: "Built for the fuel-cost calculator: it knows the countries a trip crosses\nbut nothing about the traveller, so the answer has to cover several\npassports at once. Rows are collapsed by rule — passports that get the\nsame treatment share one row instead of repeating the same numbers.\n\nCountries sharing a counter (Schengen and the like) are merged into one\nleg: adding up \"Bulgarian\" and \"Croatian\" days would be plainly wrong."
parameters:
-
in: query
name: t
description: 'Countries in travel order, comma separated ISO alpha-2 codes, slugs or zone codes. Up to 12.'
example: 'RU,GE,TR'
required: true
schema:
type: string
description: 'Countries in travel order, comma separated ISO alpha-2 codes, slugs or zone codes. Up to 12.'
example: 'RU,GE,TR'
-
in: query
name: p
description: 'Passports to answer for, comma separated, up to 10. Defaults to the set matching `locale`, and `meta.assumed_passports` then says so.'
example: 'RU,BY,KZ'
required: false
schema:
type: string
description: 'Passports to answer for, comma separated, up to 10. Defaults to the set matching `locale`, and `meta.assumed_passports` then says so.'
example: 'RU,BY,KZ'
-
in: query
name: w
description: 'Vehicle weight class: le35 (≤3.5t) or gt35.'
example: le35
required: false
schema:
type: string
description: 'Vehicle weight class: le35 (≤3.5t) or gt35.'
example: le35
-
in: query
name: plate
description: 'Plate origin: a block (eu, non_eu, eaeu, third) or the ISO code of the plate country (RU, DE…). A country code also returns plate_ban per leg when that plate is barred from entry.'
example: third
required: false
schema:
type: string
description: 'Plate origin: a block (eu, non_eu, eaeu, third) or the ISO code of the plate country (RU, DE…). A country code also returns plate_ban per leg when that plate is barred from entry.'
example: third
-
in: query
name: locale
description: 'Language of names and labels, one of ru/en/de/es/fr/pt/tr. Defaults to en.'
example: ru
required: false
schema:
type: string
description: 'Language of names and labels, one of ru/en/de/es/fr/pt/tr. Defaults to en.'
example: ru
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data:
legs:
-
code: GE
name: Georgia
slug: georgia
flag: ge
zone: null
members: null
rows:
-
passports:
- RU
- BY
names:
- Russia
- Belarus
mode: visa_free
mode_label: 'visa free'
days: 365
days_label: '365 d.'
duration_label: '1 full year'
total: null
window_label: 'resets on every entry'
visa_run: true
confidence: high
note: null
source_url: 'https://matsne.gov.ge/en/document/view/2867361'
vehicle:
max_days: 90
days_label: '90 d.'
basis_label: 'on every entry'
green_card_label: 'insurance is bought at the border'
confidence: high
source_url: 'https://georgiacb.com/en/articles/customs-procedure-temporary-importation-admission-im-53'
note: null
registration_hours: null
warnings: null
bottleneck:
code: GE
name: Georgia
kind: vehicle
days: 90
passports:
-
code: RU
name: Russia
meta:
route:
- RU
- GE
- TR
weight: le35
assumed_passports: false
properties:
success:
type: boolean
example: true
data:
type: object
properties:
legs:
type: array
example:
-
code: GE
name: Georgia
slug: georgia
flag: ge
zone: null
members: null
rows:
-
passports:
- RU
- BY
names:
- Russia
- Belarus
mode: visa_free
mode_label: 'visa free'
days: 365
days_label: '365 d.'
duration_label: '1 full year'
total: null
window_label: 'resets on every entry'
visa_run: true
confidence: high
note: null
source_url: 'https://matsne.gov.ge/en/document/view/2867361'
vehicle:
max_days: 90
days_label: '90 d.'
basis_label: 'on every entry'
green_card_label: 'insurance is bought at the border'
confidence: high
source_url: 'https://georgiacb.com/en/articles/customs-procedure-temporary-importation-admission-im-53'
note: null
registration_hours: null
warnings: null
items:
type: object
properties:
code:
type: string
example: GE
name:
type: string
example: Georgia
slug:
type: string
example: georgia
flag:
type: string
example: ge
zone:
type: string
example: null
nullable: true
members:
type: string
example: null
nullable: true
rows:
type: array
example:
-
passports:
- RU
- BY
names:
- Russia
- Belarus
mode: visa_free
mode_label: 'visa free'
days: 365
days_label: '365 d.'
duration_label: '1 full year'
total: null
window_label: 'resets on every entry'
visa_run: true
confidence: high
note: null
source_url: 'https://matsne.gov.ge/en/document/view/2867361'
items:
type: object
properties:
passports:
type: array
example:
- RU
- BY
items:
type: string
names:
type: array
example:
- Russia
- Belarus
items:
type: string
mode:
type: string
example: visa_free
mode_label:
type: string
example: 'visa free'
days:
type: integer
example: 365
days_label:
type: string
example: '365 d.'
duration_label:
type: string
example: '1 full year'
total:
type: string
example: null
nullable: true
window_label:
type: string
example: 'resets on every entry'
visa_run:
type: boolean
example: true
confidence:
type: string
example: high
note:
type: string
example: null
nullable: true
source_url:
type: string
example: 'https://matsne.gov.ge/en/document/view/2867361'
vehicle:
type: object
properties:
max_days:
type: integer
example: 90
days_label:
type: string
example: '90 d.'
basis_label:
type: string
example: 'on every entry'
green_card_label:
type: string
example: 'insurance is bought at the border'
confidence:
type: string
example: high
source_url:
type: string
example: 'https://georgiacb.com/en/articles/customs-procedure-temporary-importation-admission-im-53'
note:
type: string
example: null
nullable: true
registration_hours:
type: string
example: null
nullable: true
warnings:
type: string
example: null
nullable: true
bottleneck:
type: object
properties:
code:
type: string
example: GE
name:
type: string
example: Georgia
kind:
type: string
example: vehicle
days:
type: integer
example: 90
passports:
type: array
example:
-
code: RU
name: Russia
items:
type: object
properties:
code:
type: string
example: RU
name:
type: string
example: Russia
meta:
type: object
properties:
route:
type: array
example:
- RU
- GE
- TR
items:
type: string
weight:
type: string
example: le35
assumed_passports:
type: boolean
example: false
422:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
error: 'Parameter "t" must list at least one known destination.'
properties:
success:
type: boolean
example: false
error:
type: string
example: 'Parameter "t" must list at least one known destination.'
tags:
- 'Visa & Border Rules'
security: []
/api/visa/rank:
get:
summary: 'Passport ranking by destinations reachable without a prior visa.'
operationId: passportRankingByDestinationsReachableWithoutAPriorVisa
description: "Score = visa free + visa on arrival + eTA. The breakdown is returned\nalongside so the number can be checked rather than taken on faith.\nTies share a rank."
parameters:
-
in: query
name: limit
description: 'How many rows to return, 1..199. Defaults to all.'
example: 10
required: false
schema:
type: integer
description: 'How many rows to return, 1..199. Defaults to all.'
example: 10
-
in: query
name: locale
description: 'Language of passport names. Defaults to en.'
example: en
required: false
schema:
type: string
description: 'Language of passport names. Defaults to en.'
example: en
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data:
-
rank: 1
passport: SG
name: Singapore
score: 168
visa_free: 130
visa_on_arrival: 30
eta: 8
e_visa: 20
visa_required: 10
meta:
total: 199
scoring: 'visa_free + visa_on_arrival + eta'
properties:
success:
type: boolean
example: true
data:
type: array
example:
-
rank: 1
passport: SG
name: Singapore
score: 168
visa_free: 130
visa_on_arrival: 30
eta: 8
e_visa: 20
visa_required: 10
items:
type: object
properties:
rank:
type: integer
example: 1
passport:
type: string
example: SG
name:
type: string
example: Singapore
score:
type: integer
example: 168
visa_free:
type: integer
example: 130
visa_on_arrival:
type: integer
example: 30
eta:
type: integer
example: 8
e_visa:
type: integer
example: 20
visa_required:
type: integer
example: 10
meta:
type: object
properties:
total:
type: integer
example: 199
scoring:
type: string
example: 'visa_free + visa_on_arrival + eta'
tags:
- 'Visa & Border Rules'
security: []
/api/visa/history:
get:
summary: 'Change log of visa and vehicle rules.'
operationId: changeLogOfVisaAndVehicleRules
description: "One row per changed field, written both by imports and by editors.\nCommercial passport APIs charge for rule history; this one is open."
parameters:
-
in: query
name: subject_type
description: 'Filter: requirement, window, window_exception, curated_rule, vehicle_rule, place.'
example: requirement
required: false
schema:
type: string
description: 'Filter: requirement, window, window_exception, curated_rule, vehicle_rule, place.'
example: requirement
-
in: query
name: subject_key
description: 'Filter by subject, e.g. RU>TR for a pair or TR for a place.'
example: RU>TR
required: false
schema:
type: string
description: 'Filter by subject, e.g. RU>TR for a pair or TR for a place.'
example: RU>TR
-
in: query
name: since
description: 'ISO date, only changes on or after it.'
example: '2026-01-01'
required: false
schema:
type: string
description: 'ISO date, only changes on or after it.'
example: '2026-01-01'
-
in: query
name: limit
description: '1..500, defaults to 100.'
example: 50
required: false
schema:
type: integer
description: '1..500, defaults to 100.'
example: 50
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data:
-
subject_type: requirement
subject_key: RU>TR
field: days
old_value: '60'
new_value: '90'
source: import
changed_at: '2026-07-27T10:00:00+00:00'
meta:
total: 1
properties:
success:
type: boolean
example: true
data:
type: array
example:
-
subject_type: requirement
subject_key: RU>TR
field: days
old_value: '60'
new_value: '90'
source: import
changed_at: '2026-07-27T10:00:00+00:00'
items:
type: object
properties:
subject_type:
type: string
example: requirement
subject_key:
type: string
example: RU>TR
field:
type: string
example: days
old_value:
type: string
example: '60'
new_value:
type: string
example: '90'
source:
type: string
example: import
changed_at:
type: string
example: '2026-07-27T10:00:00+00:00'
meta:
type: object
properties:
total:
type: integer
example: 1
tags:
- 'Visa & Border Rules'
security: []
'/api/visa/passport/{code}':
get:
summary: 'All destinations for one passport.'
operationId: allDestinationsForOnePassport
description: "199 rows resolved through the full chain, sorted by destination name.\nCounts by entry mode are in `meta`."
parameters:
-
in: query
name: mode
description: 'Filter by entry mode: visa_free, visa_required, e_visa, eta, voa, no_admission.'
example: visa_free
required: false
schema:
type: string
description: 'Filter by entry mode: visa_free, visa_required, e_visa, eta, voa, no_admission.'
example: visa_free
-
in: query
name: locale
description: 'Language of place names. Defaults to en.'
example: en
required: false
schema:
type: string
description: 'Language of place names. Defaults to en.'
example: en
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data:
-
destination: TR
name: Turkey
slug: turkey
mode: visa_free
days: 90
stay:
window: rolling
window_days: 180
confidence: medium
layer: window
meta:
passport: DE
total: 199
by_mode:
visa_free: 130
properties:
success:
type: boolean
example: true
data:
type: array
example:
-
destination: TR
name: Turkey
slug: turkey
mode: visa_free
days: 90
stay:
window: rolling
window_days: 180
confidence: medium
layer: window
items:
type: object
properties:
destination:
type: string
example: TR
name:
type: string
example: Turkey
slug:
type: string
example: turkey
mode:
type: string
example: visa_free
days:
type: integer
example: 90
stay:
type: object
properties:
window:
type: string
example: rolling
window_days:
type: integer
example: 180
confidence:
type: string
example: medium
layer:
type: string
example: window
meta:
type: object
properties:
passport:
type: string
example: DE
total:
type: integer
example: 199
by_mode:
type: object
properties:
visa_free:
type: integer
example: 130
tags:
- 'Visa & Border Rules'
security: []
parameters:
-
in: path
name: code
description: 'ISO 3166-1 alpha-2 code of the passport.'
example: DE
required: true
schema:
type: string
'/api/visa/map/{code}':
get:
summary: 'Compact payload for colouring a world map by one passport.'
operationId: compactPayloadForColouringAWorldMapByOnePassport
description: "Same data as /passport/{code} stripped to what a choropleth needs:\n`m` — entry mode, `d` — visa-free days if known."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data:
TR:
m: visa_free
d: 90
RU:
m: visa_required
d: null
meta:
passport: US
legend:
- visa_free
- voa
- eta
- e_visa
- visa_required
- no_admission
- self
properties:
success:
type: boolean
example: true
data:
type: object
properties:
TR:
type: object
properties:
m:
type: string
example: visa_free
d:
type: integer
example: 90
RU:
type: object
properties:
m:
type: string
example: visa_required
d:
type: string
example: null
nullable: true
meta:
type: object
properties:
passport:
type: string
example: US
legend:
type: array
example:
- visa_free
- voa
- eta
- e_visa
- visa_required
- no_admission
- self
items:
type: string
tags:
- 'Visa & Border Rules'
security: []
parameters:
-
in: path
name: code
description: 'ISO 3166-1 alpha-2 code of the passport.'
example: US
required: true
schema:
type: string
'/api/visa/vehicle/{place}':
get:
summary: 'Temporary vehicle import rules for a country.'
operationId: temporaryVehicleImportRulesForACountry
description: "Only rules we can stand behind are returned: an official source, or two\nindependent research runs agreeing, or manual verification. A country\nwith nothing trustworthy returns an empty list rather than a guess —\nthe cost of being wrong here is a vehicle held at the border."
parameters:
-
in: query
name: locale
description: 'Language of the place name. Defaults to en.'
example: en
required: false
schema:
type: string
description: 'Language of the place name. Defaults to en.'
example: en
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data:
-
weight_class: le35
plate_group: null
max_days: 90
basis: per_entry
window_days: null
carnet_required: false
extension_possible: null
green_card: border_insurance
confidence: high
source_url: 'https://georgiacb.com/en/articles/customs-procedure-temporary-importation-admission-im-53'
curated: true
meta:
place: GE
name: Georgia
green_card_by_plate:
eu: plate_ok
properties:
success:
type: boolean
example: true
data:
type: array
example:
-
weight_class: le35
plate_group: null
max_days: 90
basis: per_entry
window_days: null
carnet_required: false
extension_possible: null
green_card: border_insurance
confidence: high
source_url: 'https://georgiacb.com/en/articles/customs-procedure-temporary-importation-admission-im-53'
curated: true
items:
type: object
properties:
weight_class:
type: string
example: le35
plate_group:
type: string
example: null
nullable: true
max_days:
type: integer
example: 90
basis:
type: string
example: per_entry
window_days:
type: string
example: null
nullable: true
carnet_required:
type: boolean
example: false
extension_possible:
type: string
example: null
nullable: true
green_card:
type: string
example: border_insurance
confidence:
type: string
example: high
source_url:
type: string
example: 'https://georgiacb.com/en/articles/customs-procedure-temporary-importation-admission-im-53'
curated:
type: boolean
example: true
meta:
type: object
properties:
place:
type: string
example: GE
name:
type: string
example: Georgia
green_card_by_plate:
type: object
properties:
eu:
type: string
example: plate_ok
tags:
- 'Visa & Border Rules'
security: []
parameters:
-
in: path
name: place
description: 'ISO alpha-2 code, slug or zone code.'
example: georgia
required: true
schema:
type: string