API ВЕГА
English

OpenVan.camp Public API

Бесплатный API без авторизации для получения данных о путешествиях на автодоме: ценах на топливо, стоимости топлива для маршрута, платных дорогах, праздниках и днях пиковой загруженности дорог, дорожных опасностях, типах электрических розеток, таможенных правилах, курсах валют, стоимости продуктов, погодных условиях для путешествий, визовых правилах и правилах ввоза транспортных средств, событиях для любителей путешествий на автодоме, новостях и автомобильных номерах разных стран. Всё в одном месте, регистрация не требуется.

Базовый URL: https://openvan.camp

Авторизация: не требуется

CORS: включён

Лицензия: данные распространяются по лицензии CC BY 4.0; код этого репозитория (SDK, MCP-сервер и примеры) — по лицензии MIT

Обязательное указание источника: указывайте Data: OpenVan.camp везде, где отображаете данные. Подробнее — в разделе Attribution.

SDK для JavaScript/TypeScript: @openvancamp/sdk — npm install @openvancamp/sdk. Не требует настройки, поддерживает типизацию и работает в Node.js, браузере и edge-среде. Документация SDK →

SDK для Python: openvan — pip install openvan. Не имеет зависимостей, совместим с Python 3.9+ и работает с pandas. Документация Python →

Ежедневные CSV-снимки: openvancamp/openvan-travel-data — цены на топливо, курсы валют, индекс стоимости продуктов и погодные оценки в формате CSV/JSON. Один коммит в день с сохранением истории.

MCP-сервер для AI-агентов: mcp-server/ — 29 инструментов только для чтения с интерактивными карточками в Claude и ChatGPT (включая plan_road_trip — маршрутный план всей поездки). Сервер доступен по адресу https://mcp.openvan.camp/mcp. Для локального запуска в Claude Desktop / Cursor / Windsurf используйте npx -y @openvancamp/mcp-server. Инструкция по установке → · Руководство для AI-агентов →

Расширение для Gemini CLI: установите этот репозиторий командой gemini extensions install https://github.com/openvancamp/openvan-camp-public-api. Файл gemini-extension.json в корне репозитория подключает Gemini CLI напрямую к размещённому MCP-серверу OpenVan.camp. API key не требуется.

В AI-ассистенте, без кода: коннектор Claude · приложение ChatGPT · Telegram-бот @OpenVanCampBot — те же данные в виде интерактивных карточек в чате. Как подключиться →


Какие источники считать авторитетными

РесурсНазначение
Этот READMEКраткий обзор и примеры кода
/docsИнтерактивная документация с возможностью протестировать запросы
/docs.openapiПолная спецификация OpenAPI 3.0, всегда актуальная
/docs.postmanКоллекция Postman

Спецификация OpenAPI по адресу /docs.openapi формируется на основе актуальной кодовой базы и является авторитетным описанием API. Числа в этом README (количество стран, событий и новостей) приблизительные и периодически обновляются. Актуальные значения можно проверить в метаданных /api/fuel/prices или в пагинации /api/stories.


Эндпоинты

ЭндпоинтОписаниеОхват
GET /api/fuel/pricesРозничные цены на топливо (бензин, дизельное топливо, LPG, E85)Более 160 стран
POST /api/route-costСтоимость топлива для маршрута с 2–10 точками, с учётом цен в каждой стране—
POST /api/roadbook/from-placesМаршрутный план всей поездки по 2–10 названиям мест: план по дням, бюджет, правила въезда и использования транспортного средства для каждой страны; возвращает страницу, которой можно поделиться—
GET /api/roadbook/{code}/statusСтатус формирования маршрутного плана (проверяйте, пока значение не станет ready)—
GET /api/tolls/countriesПлатные дороги по странам: система оплаты, тарифы за километр для разных классов транспортных средств, виньетки84 страны
GET /api/tolls/routeСтоимость проезда по платным дорогам на маршруте из 2–10 названий мест (легковой автомобиль, фургон, тяжёлый транспорт), диапазон в EUR—
GET /api/holidays/countries/{code}?from=&to=Государственные праздники, школьные каникулы (региональные) и дни пиковой загруженности дорог212 стран
GET /api/hazards/countries/{code}Уровень рекомендаций для путешественников от UK FCDO и текущие природные катастрофы по данным GDACS—
GET /api/hazards/fires?bbox=Активные пожары за последние 48 часов по данным NASA FIRMS в заданной ограничивающей рамке (до 10°×10°)Весь мир
GET /api/electricity/countries/{code}Типы электрических вилок, напряжение и частота электросети, подключение в кемпингах (CEE17)229 стран
GET /api/customs/countries/{code}?from=Таможенные правила въезда на автомобиле: продукты, наличные, алкоголь, табак, топливо в канистре—
GET /api/currency/ratesКурсы валют относительно EURБолее 150 валют
GET /api/vanbasket/countriesИндекс стоимости продуктов относительно среднемирового уровня (100 = среднее по миру)Более 90 стран
GET /api/vanbasket/compare?from=DE&to=TRСравнение стоимости продуктов в двух странах—
GET /api/vanbasket/countries/{code}Данные по одной стране и исторические снимки—
GET /api/vansky/weatherОценки погодных условий для путешествий на автодоме (0–100) с прогнозом на 7 днейБолее 160 стран
GET /api/vansky/weather/{code}Данные по одной стране, включая морские и солнечные показатели—
GET /api/vansky/weather/{code}/{city}Данные по одному городу: оценка на сегодня и на следующие 7 дней—
GET /api/visa/check?passport=RU&destination=TRПравила въезда: способ въезда, срок пребывания, порядок подсчёта дней и правила ввоза транспортного средства199 направлений
GET /api/visa/route?t=RU,GE,TR&p=RUВизовые правила для всего маршрута, до 10 паспортов—
GET /api/visa/passport/{code}Все направления для одного паспорта—
GET /api/visa/vehicle/{place}Правила временного ввоза транспортного средства в страну—
GET /api/eventsСобытия для любителей путешествий на автодоме: выставки, фестивали, встречи, автопробегиБолее 1 100 событий
GET /api/event/{slug}Полная информация о событии с географическими координатами—
GET /api/event/{slug}/articlesСтатьи из источников, связанные с событием—
GET /api/storiesНовости, собранные более чем из 200 источниковБолее 31 000 новостей
GET /api/story/{slug}Полная информация о новости со всеми исходными статьями и прямыми ссылками—
GET /api/news/search?q=...Семантический поиск по новостям—
GET /api/platesАвтомобильные номера разных стран: форматы, региональные коды, примеры199 стран
GET /api/plates/{code}/typesТипы номеров в стране (частные, такси, мотоциклетные, дипломатические и другие); если детализации нет, список пуст—
GET /api/plates/{code}/plate.svgГотовое изображение номера (также доступно в формате .png) — вставьте в ``—

Быстрый старт

# Fuel prices
curl https://openvan.camp/api/fuel/prices

# Currency rates (EUR-based)
curl https://openvan.camp/api/currency/rates

# Food price index
curl https://openvan.camp/api/vanbasket/countries

# Upcoming vanlife events in Germany
curl "https://openvan.camp/api/events?country=DE&status=upcoming&locale=en"

# Latest vanlife news stories in English
curl "https://openvan.camp/api/stories?locale=en"

Цены на топливо — /api/fuel/prices

Еженедельные розничные цены из более чем 45 официальных государственных источников.

Время жизни кеша: 6 часов. Не отправляйте запросы чаще одного раза в 10 минут.

curl https://openvan.camp/api/fuel/prices
{
  "success": true,
  "data": {
    "DE": {
      "country_code": "DE",
      "country_name": "Germany",
      "region": "europe",
      "currency": "EUR",
      "local_currency": "EUR",
      "unit": "liter",
      "prices": {
        "gasoline": 1.79,
        "diesel": 1.69,
        "lpg": 0.89,
        "e85": null,
        "premium": null
      },
      "price_changes": { "gasoline": -0.02, "diesel": 0.01, "lpg": 0.0 },
      "fetched_at": "2026-04-05T10:00:00+00:00",
      "sources": ["EU Weekly Oil Bulletin", "Fuelo.net"],
      "sources_count": 2,
      "is_excluded": false
    }
  },
  "meta": {
    "total_countries": 121,
    "updated_at": "2026-04-05 10:00:00",
    "cache_ttl_hours": 6
  }
}

Примечания:

  • Для большинства стран значение unit — "liter", для США и Эквадора — "gallon"

  • is_excluded: true означает, что в стране действуют значительные субсидии на топливо (указанные цены не отражают рыночный уровень)

  • price_changes — изменение цены по сравнению с прошлой неделей


Курсы валют — /api/currency/rates

Курсы валют относительно EUR из нескольких поставщиков данных с открытым исходным кодом и автоматическим переключением на резервный источник.

Срок кэширования (TTL): 25 часов. Обновление ежедневно в 07:00 UTC.

curl https://openvan.camp/api/currency/rates
{
  "success": true,
  "rates": {
    "EUR": 1,
    "USD": 1.08,
    "GBP": 0.85,
    "TRY": 38.5,
    "GEL": 2.95,
    "KZT": 510,
    "RUB": 98.5
  },
  "cached": true,
  "updated_at": "2026-04-08T07:00:00+00:00"
}

Пересчёт в любую валюту:

const priceInUSD = (priceEUR / rates.EUR) * rates.USD;
const priceInTRY = (priceEUR / rates.EUR) * rates.TRY;

Индекс цен на продукты VanBasket — /api/vanbasket/*

Относительная стоимость продуктовой корзины по сравнению со среднемировым уровнем (мир = 100).

Расчёт основан на данных World Bank ICP за 2021 год с поправкой на CPI от IMF.

Источник данных: CC BY 4.0

# All countries
curl https://openvan.camp/api/vanbasket/countries

# Compare two countries
curl "https://openvan.camp/api/vanbasket/compare?from=DE&to=TR"

# Single country with historical snapshots
curl https://openvan.camp/api/vanbasket/countries/DE
{
  "success": true,
  "data": {
    "CH": { "country_code": "CH", "country_name": "Switzerland", "vanbasket_index": 162.3, "pct_vs_world": 62.3 },
    "DE": { "country_code": "DE", "country_name": "Germany",     "vanbasket_index": 118.7, "pct_vs_world": 18.7 },
    "TR": { "country_code": "TR", "country_name": "Turkey",      "vanbasket_index":  82.4, "pct_vs_world": -17.6 },
    "GE": { "country_code": "GE", "country_name": "Georgia",     "vanbasket_index":  64.1, "pct_vs_world": -35.9 }
  },
  "meta": {
    "total_countries": 92,
    "world_avg": 100,
    "base_year": 2021,
    "source": "World Bank ICP 2021",
    "license": "CC BY 4.0"
  }
}

Ответ для сравнения:

{
  "success": true,
  "data": {
    "from": { "country_code": "DE", "country_name": "Germany", "vanbasket_index": 118.7 },
    "to":   { "country_code": "TR", "country_name": "Turkey",  "vanbasket_index":  82.4 },
    "diff_percent": -30.6,
    "budget_100": 69,
    "cheaper": true
  }
}

budget_100: если в стране from вы потратите €100 на продукты, то в стране to на ту же корзину уйдёт €69.


События — /api/events

События для любителей жизни в фургонах: выставки, фестивали, встречи и автопутешествия. Данные обновляются в реальном времени.

Параметры запроса:

ПараметрЗначенияПо умолчанию
localeen ru de fr es pt tren
statusupcoming ongoing past allupcoming
typeexpo festival forum meetup roadtrip—
countryISO 3166-1 alpha-2—
searchтекст—
pageцелое число1
limitцелое число (максимум 100)30
# Upcoming events in Germany
curl "https://openvan.camp/api/events?country=DE&status=upcoming&locale=en"

# Event details
curl "https://openvan.camp/api/event/fit-camper-2026?locale=en"

# Source articles linked to an event
curl "https://openvan.camp/api/event/fit-camper-2026/articles?locale=en"
{
  "events": [
    {
      "id": 493,
      "slug": "fit-camper-2026",
      "event_name": "Fit Your Camper",
      "event_type": "expo",
      "event_type_label": "Exhibition",
      "start_date": "2026-04-09",
      "end_date": "2026-04-12",
      "city": "Bologna",
      "country_code": "IT",
      "country": { "code": "it", "name": "Italy", "flag_emoji": "🇮🇹" },
      "venue_name": "BolognaFiere",
      "status": "upcoming",
      "articles_count": 7,
      "url": "https://openvan.camp/en/event/fit-camper-2026"
    }
  ],
  "pagination": { "total": 48, "page": 1, "limit": 30, "pages": 2 }
}

Примечания:

  • Если locale не указан или его значение не поддерживается, по умолчанию используется en

  • /api/event/{slug}/articles возвращает исходные статьи с учётом фильтра locale. Если подходящих статей нет, возвращаются все статьи — возможно, на языке оригинала издателя


Истории и новости — /api/stories

Новости о жизни в фургонах собираются из более чем 200 источников и переводятся на 7 языков. Каждая история объединяет несколько исходных статей на одну тему.

Параметры запроса:

ПараметрЗначенияПо умолчанию
localeen ru de fr es pt tren
categoryидентификатор категории (например, camping, travel, gear, incident)—
countryISO 3166-1 alpha-2—
searchтекст—
pageцелое число1
limitцелое число (максимум 50)20
# Latest stories in English
curl "https://openvan.camp/api/stories?locale=en"

# German vanlife news in Germany
curl "https://openvan.camp/api/stories?locale=de&country=DE"

# Full story with all source links
curl "https://openvan.camp/api/story/free-overnight-parking-netherlands?locale=en"
{
  "slug": "free-overnight-parking-netherlands",
  "title": "Free Overnight Parking for Motorhomes in the Netherlands",
  "summary": "The Dutch motorhome community is pushing for more designated free overnight spots...",
  "image_url": "https://...",
  "category": { "slug": "travel", "name": "Travel" },
  "countries": [{ "code": "nl", "name": "Netherlands", "flag_emoji": "🇳🇱" }],
  "first_published_at": "2026-04-01T10:00:00+00:00",
  "last_updated_at": "2026-04-03T08:00:00+00:00",
  "articles_count": 5,
  "url": "https://openvan.camp/en/news/travel/free-overnight-parking-netherlands",
  "sources": [
    {
      "title": "Gratis overnachten in je camper: de beste plekken",
      "original_url": "https://www.campermagazine.nl/overnachten/gratis-plaatsen",
      "source_name": "CamperMagazine.nl",
      "published_at": "2026-04-01T10:00:00+00:00",
      "language": "nl",
      "image_url": "https://..."
    }
  ]
}

Примечания:

  • title и summary переводятся на язык, указанный в locale

  • sources[].language всегда указывает язык оригинала издателя, независимо от значения locale

  • sources[].original_url содержит прямую ссылку на статью издателя


Номерные знаки — /api/plates/*

Номерные знаки со всего мира: форматы, коды регионов с группировкой по регионам (включая подразделения ISO 3166-2),

проверка номера и изображение самого знака. Изображения создаются тем же движком, что и на странице

openvan.camp/en/license-plates. Шрифт номерного знака встроен

в виде векторных контуров, поэтому устанавливать шрифты не нужно.

Самый простой способ интеграции — обычное изображение:

  • plate.png?width=800 — изображение PNG шириной от 200 до 2000 px с прозрачным фоном

  • Похожие по начертанию латинские буквы автоматически заменяются кириллическими (A123BC → А123ВС на российских номерах)

  • Если номер не соответствует формату страны, API возвращает 422. Добавьте custom=1, чтобы вывести произвольный текст, например имя

  • Для изображений действует заголовок Cache-Control: public, max-age=31536000, immutable. В URL изображений, возвращаемых API,

указывается параметр v=, поэтому после обновления движка изображения будут доступны по новым URL

curl https://openvan.camp/api/plates                                        # countries
curl "https://openvan.camp/api/plates/ru?locale=en"                         # format, regions, codes, engine
curl "https://openvan.camp/api/plates/ru/validate?number=A123BC&region=799" # valid? which region?
curl https://openvan.camp/api/plates/ru/random                              # random plate + image URLs

Типы номеров — специальные номера имеют собственный цвет и формат. Список доступен по адресу GET /api/plates/{code}/types

(для российских номеров это private, diplomatic — красные, police — синие, military — чёрные, taxi_bus — жёлтые,

motorcycle, trailer, tractor, export_transit). Для каждого типа указан пример номера. Передавайте type при запросе изображения,

/random и /validate; ответ указывает использованный type:

curl "https://openvan.camp/api/plates/ru/random?type=police"                # a valid blue police plate + image URLs
curl "https://openvan.camp/api/plates/ru/validate?number=У7962&region=790&type=police"

Чтобы самостоятельно создавать изображения номеров в браузере, например для интерактивного генератора, загрузите скрипты в порядке,

указанном в data.engine.scripts ответа /api/plates/{code}, и вызовите

Plates.render(code, number, region) → {svg} (элемент SVG) или {error}.

Изображения и движок доступны для стран, номерные шрифты которых разрешено распространять

(glyphs_license: free или sharealike). Для остальных стран по-прежнему доступны конечные точки с данными.

Ограничение частоты запросов: 60 запросов в минуту для изображений и /random, 120 — для остальных конечных точек.

Roadbook — /api/roadbook/from-places

Полный план поездки — такой же roadbook, который можно составить в мастере: маршрут, дни в пути и места ночёвок, бюджет (топливо, платные дороги, виньетки, паромы), а также правила въезда и требования к автомобилю для каждой страны по маршруту с учётом паспортов и номеров, праздники, безопасность и электроснабжение. При одинаковых запросах возвращается один и тот же roadbook.

# 1. Create (all inputs are optional)
curl -X POST "https://openvan.camp/api/roadbook/from-places?source=your-app" \
  -H "Content-Type: application/json" \
  -d '{"places":["Munich","Venice"],"locale":"en","inputs":{"travelers":["DE"],"cons":10,"fuel":"diesel"}}'
# → {"code":"wqhk8","url":"/en/roadbook/wqhk8-munich-venice","status":"pending","points":[...]}

# 2. Poll until "ready" (long routes take up to a minute), then open https://openvan.camp + url
curl https://openvan.camp/api/roadbook/wqhk8/status

Не более 10 roadbook в минуту с одного IP-адреса. Инструмент MCP plan_road_trip выполняет все эти действия и возвращает сам план.


Праздники, опасности, электровилки и таможня

Данные для планирования поездки по стране, в которую вы собираетесь въехать на автомобиле. Список доступных стран можно получить через эндпоинт

/countries; передайте параметр locale, чтобы получить переведённые названия.

# Public, school (with ISO 3166-2 regions) and peak traffic days; kind=public|school|traffic
curl "https://openvan.camp/api/holidays/countries/FR?from=2026-10-01&to=2026-11-15"

# FCDO travel advice level + current GDACS disasters (flood, earthquake, cyclone, wildfire…)
curl https://openvan.camp/api/hazards/countries/TR

# NASA FIRMS fire detections of the last 48 h; bbox = minLon,minLat,maxLon,maxLat, up to 10°×10°
curl "https://openvan.camp/api/hazards/fires?bbox=-1,38,1,40"

# Plug types, voltage, frequency, campsite hook-up connector
curl https://openvan.camp/api/electricity/countries/GB

# Customs rules on entry by car, optionally from a given country; each rule quotes the official source
curl "https://openvan.camp/api/customs/countries/NO?from=DE"
  • Если данные о праздниках или таможенных правилах для страны отсутствуют, API вернёт соответствующую ошибку. Это не означает, что в стране «нет праздников» или «нет ограничений».

  • Данные об опасностях отражают текущую ситуацию, а не прогноз. При первом запросе данные о пожарах в новом регионе могут ещё загружаться; в этом случае повторите запрос через минуту.


Формат ответа

Все JSON-эндпоинты используют единый формат:

{ "success": true, "data": { ... }, "meta": { ... }, "_attribution": { ... } }

Каждый ответ содержит объект _attribution:

"_attribution": {
  "data_source": "openvan.camp",
  "license": "CC BY 4.0",
  "required": true,
  "attribution_url": "https://openvan.camp/",
  "attribution_html": "Data: <a href=\"https://openvan.camp/\">OpenVan.camp</a> (CC BY 4.0)",
  "instructions": "Attribution is required by the CC BY 4.0 license. ..."
}

Ошибки:

{ "success": false, "error": "Description of the error." }

Если не передать заголовок Accept: application/json, некоторые ответы с ошибками могут быть возвращены в формате HTML. Всегда указывайте заголовок:

Accept: application/json

Ограничение частоты запросов

120 запросов в минуту с одного IP-адреса. Используйте API ответственно:

  • Кэшируйте цены на топливо не менее 6 часов.

  • Кэшируйте курсы валют не менее 1 часа.

  • Кэшируйте истории и события не менее 15 минут.


Атрибуция

Лицензия CC BY 4.0 требует указания источника. Везде, где вы показываете данные — на сайте, в приложении, боте, панели мониторинга или статье — размещайте рядом заметную ссылку:

Data: <a href="https://openvan.camp/">OpenVan.camp</a> (CC BY 4.0)

Эта же строка содержится в каждом ответе в поле _attribution.attribution_html, а также в заголовке ответа X-Attribution-Required.

Разрабатываете с помощью AI coding agent? Попросите его сохранить эту ссылку в созданном интерфейсе или используйте значение _attribution.instructions из любого ответа.

Идентификация интеграции

Добавьте ?source=yoursite.com к любому запросу — регистрация не требуется. Переданное значение возвращается в _attribution.your_source, чтобы вы могли проверить, что всё настроено правильно:

curl "https://openvan.camp/api/fuel/prices?source=myapp.com"
{
  "success": true,
  "data": { "..." },
  "meta": { "..." },
  "_attribution": {
    "data_source": "openvan.camp",
    "license": "CC BY 4.0",
    "required": true,
    "attribution_url": "https://openvan.camp/",
    "attribution_html": "Data: <a href=\"https://openvan.camp/\">OpenVan.camp</a> (CC BY 4.0)",
    "instructions": "Attribution is required by the CC BY 4.0 license. ...",
    "your_source": "myapp.com"
  }
}

Эти сведения помогают нам понять, как используются данные, и отметить активные проекты.


Проекты на базе OpenVan

Публичные проекты, использующие API:

ПроектОписаниеИспользуемые данные
cyfuelКарта цен на топливо, которая находит «выгодную заправку» с учётом стоимости топлива в баке и топлива, потраченного на дорогу до АЗС (cyfuel.cybush.uk)цены на топливо
DriveLogВеб-приложение для учёта поездок и топливацены на топливо
E-LogisticЛогистическая платформа с ценами на дизельное топливо в странах ЕСцены на топливо

Создали проект с использованием этих данных? Добавьте его в таблицу через pull request или расскажите о нём в разделе Обсуждения.


SDK для JavaScript / TypeScript

npm install @openvancamp/sdk
# or: pnpm add @openvancamp/sdk
import { OpenVan } from "@openvancamp/sdk";

const ov = new OpenVan();

// Cheapest diesel in Europe (top 5, EUR-normalized)
const top5 = await ov.fuel.cheapest("diesel", 5);
top5.forEach(c => console.log(c.country_name, c.prices.diesel, c.currency));

// Is Portugal cheaper than Germany for van living?
const comp = await ov.basket.compare("DE", "PT");
console.log(`Portugal is ${Math.abs(comp.diff_percent)}% cheaper`);

// Vanlife weather suitability — top 10 countries right now
const weather = await ov.weather.top({ limit: 10 });

Нативная поддержка ESM, полная типизация (включая TypeScript), совместимость с Node.js ≥ 18, браузерами, Cloudflare Workers, Deno и Bun. API key не требуется.

npm: @openvancamp/sdk · Полная документация SDK →


Ресурсы

Те же данные на сайте

Цены на топливо по странам ·

Проверка паспортных и визовых требований ·

Планировщик поездок Roadbook ·

Погода VanSky ·

Индекс стоимости продуктов ·

Мероприятия Vanlife ·

Новости Vanlife