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