VanLife
OpenVan.campβ Мир автодомов — здесь

OpenVan.camp Public API

Открытые данные о ценах на топливо, курсах валют и ванлайф-событиях. Бесплатно для использования в приложениях, ботах и статьях по лицензии CC BY 4.0.

Лицензия CC BY 4.0 — вы можете свободно использовать, распространять и адаптировать эти данные в любом формате при условии указания авторства OpenVan.camp. creativecommons.org →
For AI Agents & LLM Tools
  • No API key. Call any endpoint directly — no registration, no auth header.
  • CORS enabled. Endpoints can be called from the browser directly.
  • Response format: always { "success": true, "data": {...} }
  • Caching: fuel prices TTL 6h · currency rates TTL 25h · please poll no faster than every 10 min
  • Full OpenAPI 3.0 spec: /docs.openapi · GitHub examples
  • Attribution: add ?source=your-app.com to identify your integration — no auth required, just good practice.

Recommended prompting pattern: "Get current fuel prices for [country] in [currency] using the OpenVan.camp API at https://openvan.camp/api/fuel/prices"

Доступные эндпоинты

GET /api/fuel/prices 117 стран

Актуальные цены на топливо (бензин, дизель, СПГ) для 117 стран. Обновляются еженедельно из официальных государственных источников (EU Oil Bulletin, Statistics Norway, EIA, ANP, NRCan и др.). Кеш 6 часов. Данные о топливе обновлены: 27 апреля 2026.

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

Example response:

{
  "success": true,
  "data": {
    "DE": {
      "country_code": "DE",
      "country_name": "Germany",
      "region": "europe",
      "currency": "EUR",
      "local_currency": "EUR",
      "unit": "liter",          // "gallon" for US and Ecuador
      "prices": {
        "gasoline": 2.13,
        "diesel": 2.28,
        "lpg": 1.11,
        "e85": null,
        "premium": null
      },
      "price_changes": { "gasoline": -0.02, "diesel": 0.01, "lpg": 0.0 },
      "fetched_at": "2026-03-28T13:59:57+03:00",
      "sources": ["Fuelo.net", "EU Weekly Oil Bulletin", "Cargopedia.net"],
      "sources_count": 3,
      "is_excluded": false      // true for heavily subsidized countries
    }
  },
  "meta": { "total_countries": 87, "updated_at": "2026-03-28 13:59:57", "cache_ttl_hours": 6 }
}
GET /api/currency/rates 150+ currencies

Курсы обмена для 150+ валют относительно EUR. Получаются из нескольких открытых API с автоматическим fallback. Кеш 1 час.

curl https://openvan.camp/api/currency/rates

Example response (EUR-based, all rates relative to EUR=1):

{
  "success": true,
  "rates": { "EUR": 1, "USD": 1.08, "GBP": 0.85, "RUB": 98.5, "TRY": 35.2, "GEL": 2.95, "KZT": 520 },
  "cached": true,
  "updated_at": "2026-03-28T07:00:00+00:00"
}
GET /api/vanbasket/countries 90+ countries

VanBasket Food Price Index — how expensive food is relative to world average (World = 100). Based on World Bank ICP 2021, adjusted with IMF CPI.

# 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 history
curl https://openvan.camp/api/vanbasket/countries/DE
GET /api/events vanlife events

Постраничный список ванлайф-событий — выставки, фестивали, встречи, автопробеги. Фильтрация по статусу, типу, стране. Локализованные названия на 7 языках.

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

# Search by name, Russian locale
curl "https://openvan.camp/api/events?search=Nauticampo&locale=ru"

# Event details + linked source articles
curl "https://openvan.camp/api/event/nauticampo-2026?locale=en"
curl "https://openvan.camp/api/event/nauticampo-2026/articles?locale=en"
locale — one of en ru de fr es pt tr. Default: en. Unknown locale silently falls back to en. articles fallback: if no articles match the requested locale, all source articles are returned.
Параметры: locale status type country search page limit Полная документация →
GET /api/stories 7 languages

Vanlife news stories aggregated from 200+ publishers, translated into 7 languages. Each story includes sources — original publisher articles with direct links, source names, publication dates, and language codes.

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

# Filter by category and country
curl "https://openvan.camp/api/stories?locale=de&category=camping&country=DE"

# Full story with all source articles
curl "https://openvan.camp/api/story/vanlife-festival-germany-2026?locale=en"

Example response for /api/story/{slug}:

{
  "slug": "vanlife-festival-germany-2026",
  "title": "VanLife Festival Germany 2026",
  "summary": "The largest vanlife gathering in Germany returns this summer.",
  "image_url": "https://...",
  "category": { "slug": "events", "name": "Events" },
  "countries": [{ "code": "de", "name": "Germany", "flag_emoji": "🇩🇪" }],
  "first_published_at": "2026-04-01T10:00:00+00:00",
  "last_updated_at": "2026-04-03T08:00:00+00:00",
  "articles_count": 8,
  "url": "https://openvan.camp/en/news/events/vanlife-festival-germany-2026",
  "sources": [
    {
      "title": "Germany's biggest van life festival is back",
      "original_url": "https://campermag.de/festival-2026",
      "source_name": "CamperMag.de",
      "published_at": "2026-04-01T10:00:00+00:00",
      "language": "de",
      "image_url": "https://..."
    }
  ]
}
locale — one of en ru de fr es pt tr. Default: en. Affects title, summary, and category.name. sources[].language is always the original publisher language, independent of locale.
Params: locale category country search page limit Full docs

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

JavaScript — cheapest diesel in Europe

const { data } = await fetch("https://openvan.camp/api/fuel/prices").then(r => r.json());

const cheapest = Object.values(data)
  .filter(c => c.region === "europe" && c.prices.diesel !== null)
  .sort((a, b) => a.prices.diesel - b.prices.diesel)
  .slice(0, 5);

cheapest.forEach(c => console.log(`${c.country_name}: ${c.prices.diesel} ${c.currency}/L`));

JavaScript — convert to USD using currency rates

const [{ data }, { rates }] = await Promise.all([
  fetch("https://openvan.camp/api/fuel/prices").then(r => r.json()),
  fetch("https://openvan.camp/api/currency/rates").then(r => r.json()),
]);

// Convert any price to USD/liter
function toUSD(price, currency, unit) {
  let usd = (price / rates[currency]) * rates["USD"];
  return unit === "gallon" ? usd / 3.78541 : usd;
}

const de = data["DE"];
console.log(`Germany diesel: $${toUSD(de.prices.diesel, de.currency, de.unit).toFixed(3)}/L`);

Python — countries with LPG

import requests

data = requests.get("https://openvan.camp/api/fuel/prices").json()["data"]

lpg = [(v["country_name"], v["prices"]["lpg"], v["currency"])
       for v in data.values() if v["prices"]["lpg"] is not None]

for name, price, currency in sorted(lpg, key=lambda x: x[1])[:10]:
    print(f"{name}: {price} {currency}/L")

More examples (bash, pandas, widget): GitHub →

Атрибуция

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

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

Identify your app — add ?source=yoursite.com

Pass source query parameter with your domain or app name. No registration needed — it helps us understand how data is being used and acknowledge active projects. The value is echoed back in every response under _attribution.your_source.

curl "https://openvan.camp/api/fuel/prices?source=myapp.com"

# Response includes:
# "_attribution": {
#   "data_source": "openvan.camp",
#   "license": "CC BY 4.0",
#   "attribution_url": "https://openvan.camp/",
#   "attribution_html": "Data: <a href=\"https://openvan.camp/\">OpenVan.camp</a> (CC BY 4.0)",
#   "your_source": "myapp.com"
# }

Установите OpenVan.camp

Быстрый доступ и чтение без интернета.

Установка на iOS

  1. 1 Нажмите «Поделиться» в Safari.
  2. 2 Выберите «На экран «Домой»».
  3. 3 Подтвердите кнопкой «Добавить».

Уже установлено

Приложение уже установлено на этом устройстве.

Установка через меню браузера

Используйте меню браузера для установки или добавления на главный экран.