OpenVan.camp API for AI Agents
Free, no-auth, machine-readable vanlife and RV travel data for LLM agents, Custom GPTs, MCP servers and AI search engines.
OpenVan.camp (retrieved YYYY-MM-DD), https://openvan.camp
Discovery files
- /.well-known/ai-plugin.json — legacy AI plugin manifest
- /.well-known/openapi.json — compact OpenAPI for Custom GPT Actions and MCP servers (v1.1)
- /docs.openapi — the same endpoints in YAML, with request/response examples (Scribe-generated)
- /llms.txt — human-readable site index for LLMs
- /llms-full.txt — extended index with content
- /robots.txt — 27+ AI bots explicitly allowed
Public data endpoints
| Endpoint | Description |
|---|---|
| News & stories | |
| /api/stories | Aggregated vanlife news stories (7 languages) |
| /api/story/{slug} | One story with source articles |
| /api/news/search | Semantic search over stories — same engine as the on-site search |
| /api/news/digest | Ready-made daily news digest (en, ru) |
| Events | |
| /api/events | Vanlife events: expos, festivals, meetups, road trips |
| /api/event/{slug} | One event with details and social links |
| /api/event/{slug}/articles | News coverage linked to an event |
| Fuel & route cost | |
| /api/fuel/prices | Current retail fuel prices for 168 countries; price keys are generated from FuelGradeCatalog::ORDER plus the legacy premium alias. Current price keys: gasoline_regular, gasoline, gasoline_premium, gasoline_super, diesel_regular, diesel, diesel_premium, lpg, cng, e85, kerosene, premium |
| POST /api/route-cost | Fuel cost for a route of 2–10 waypoints, per-country prices, border optimisation |
| Visa & border rules | |
| /api/visa/check | Entry rules for one passport → destination: entry mode, length of stay, how days are counted, vehicle import |
| /api/visa/route | A whole route in one call — rules for every country, for up to 10 passports |
| /api/visa/passport/{code} | All 199 destinations for one passport |
| /api/visa/map/{code} | Entry mode per country for one passport — ready for a choropleth map |
| /api/visa/rank | Passport ranking by visa-free access |
| /api/visa/vehicle/{place} | Temporary vehicle import rules for a country |
| /api/visa/history | Change log of the visa dataset (what changed, when, from which source) |
| Money & living costs | |
| /api/currency/rates | Exchange rates for 150+ currencies relative to EUR |
| /api/vanbasket/countries | Food price index by country (world average = 100) |
| /api/vanbasket/countries/{code} | Food price index for one country, per-product breakdown |
| /api/vanbasket/compare | Compare food costs between two countries |
| Weather | |
| /api/vansky/weather | Vanlife weather suitability scores (0–100) with 7-day forecast |
| /api/vansky/weather/{code} | Same for one country, with marine and solar data |
curl examples
# Cheapest diesel in Europe
curl 'https://openvan.camp/api/fuel/prices?source=my-agent' \
| jq '.data | to_entries | map(select(.value.region=="europe")) | sort_by(.value.prices.diesel) | .[0:5]'
# Current fuel price keys returned by the API
curl 'https://openvan.camp/api/fuel/prices?source=my-agent' \
| jq '.data.DE.prices | keys'
# Upcoming vanlife events in Germany
curl 'https://openvan.camp/api/events?country=DE&status=upcoming&source=my-agent'
# Compare food costs: Germany vs Turkey
curl 'https://openvan.camp/api/vanbasket/compare?from=DE&to=TR&source=my-agent'
# Today's van-travel weather score for Spain
curl 'https://openvan.camp/api/vansky/weather/ES?source=my-agent'
# Latest stories in French
curl 'https://openvan.camp/api/stories?locale=fr&limit=10&source=my-agent'
# How long a Russian passport may stay in Turkey, and how the days are counted
curl 'https://openvan.camp/api/visa/check?passport=RU&destination=TR&source=my-agent'
# Visa rules for a whole route in one call
curl 'https://openvan.camp/api/visa/route?t=RU,GE,TR&p=RU&source=my-agent'
# Fuel cost for a route (POST)
curl -X POST 'https://openvan.camp/api/route-cost?source=my-agent' \
-H 'Content-Type: application/json' \
-d '{"waypoints":["Berlin","Prague"],"cons":10,"fuel":"diesel","currency":"EUR"}'
Attribution & rate limits
- Pass
?source=<your-domain-or-app>on every request — it helps us track AI adoption and credit you in public reports. - Rate limit: 120 requests/minute per IP for the endpoints above. Two compute-heavy ones are lower:
POST /api/route-cost— 30/min,POST /api/visa/report/{locale}(PDF) — 12/min. Check theX-RateLimit-Remainingheader. - CORS is enabled for all
/api/*and/.well-known/*.json— safe to call from browser-based agents. - No API key, no signup, no authentication.
- Data updates: currency rates every 6 hours; weather every 3 hours for top destinations and twice a day worldwide; events and stories continuously; visa rules on source change (see
/api/visa/history); fuel prices on a per-country verification cycle — daily to quarterly depending on how the country sets them. Fuel answers carry their ownfetched_atand visa answers ameta.datasetblock — trust those over this paragraph.
For Custom GPT builders
- Open chat.openai.com/gpts/editor
- In Actions → Import from URL, paste:
https://openvan.camp/.well-known/openapi.json - Auth: None. Privacy: openvan.camp/en/privacy
- Logo: vanlife-logo.png
Model Context Protocol (MCP)
@openvancamp/mcp-server exposes 14 read-only tools (fuel, weather, events, food index, currency, news, visa and vehicle-import rules) for any MCP-compatible host: Claude Desktop, Cursor, Windsurf, Continue, ChatGPT Apps SDK.
Remote (Streamable HTTP)
Hosted endpoint, no install — intended for ChatGPT Apps SDK and web-based agents:
https://mcp.openvan.camp/mcp
Local (stdio, via npx)
For Claude Desktop / Cursor / Windsurf add to your MCP config:
{
"mcpServers": {
"openvan": {
"command": "npx",
"args": ["-y", "@openvancamp/mcp-server"]
}
}
}
Source on GitHub: Kopaev/openvan-camp-public-api/mcp-server · npm: @openvancamp/mcp-server
Contact
Questions, integrations, rate-limit requests, corrections: hello@openvan.camp