Toll Infrastructure API v1 2026 Data

European toll roads, vignettes, tunnels & bridges — JSON & CSV

Authentication

All endpoints require a valid API key. Pass it via:

// HTTP Header (recommended)
X-API-Key: your_api_key_here

// Or query parameter
?api_key=your_api_key_here

Rate limit: 1,000 requests/day. Check remaining quota via the status endpoint.

Endpoints

GET /api/toll/
Fetch toll infrastructure data with optional filters. Returns JSON or CSV.
GET /api/toll/summary.php
Aggregated stats: toll counts by country and type, price ranges.
GET /api/toll/status.php
Your subscription info, daily usage, and available datasets.

Parameters — /api/toll/

ParamTypeDescription
format optional json | csv Response format. Default: json
country optional string ISO 3166-1 alpha-2 code. Comma-separated for multiple: GR,AT,FR
type optional string vignette | gate | tunnel | bridge | ticket_barrier
barrier optional string mainline | ramp
search optional string Search toll names and info (partial match)
fields optional string Comma-separated fields to include. Available: id, country_code, type, barrier_type, name, price_eur, price_local, currency, info, lat, lng
page optional int Page number. Default: 1
per_page optional int Results per page (1–500). Default: 100

Examples

All toll data (JSON)

GET https://fuel-prices.eu/api/toll/?api_key=YOUR_KEY

Greek tolls as CSV

GET https://fuel-prices.eu/api/toll/?api_key=YOUR_KEY&country=GR&format=csv

All vignettes in AT, CZ, SK, HU

GET https://fuel-prices.eu/api/toll/?api_key=YOUR_KEY&country=AT,CZ,SK,HU&type=vignette

Search for tunnels

GET https://fuel-prices.eu/api/toll/?api_key=YOUR_KEY&search=tunnel

Only coordinates and prices

GET https://fuel-prices.eu/api/toll/?api_key=YOUR_KEY&fields=name,country_code,price_eur,lat,lng

cURL example

curl -H "X-API-Key: YOUR_KEY" \
     "https://fuel-prices.eu/api/toll/?country=FR&type=gate"

Python example

import requests

resp = requests.get(
    "https://fuel-prices.eu/api/toll/",
    headers={"X-API-Key": "YOUR_KEY"},
    params={"country": "FR", "type": "gate"}
)
data = resp.json()
print(f"Found {data['total']} French toll gates")

for toll in data["data"]:
    print(f"  {toll['name']}: €{toll['price_eur']}")

JSON Response Format

{
  "dataset": "toll_infrastructure",
  "version": "2026.1",
  "updated": "2026-03-09",
  "total": 342,
  "page": 1,
  "per_page": 100,
  "pages": 4,
  "filters": {},
  "data": [
    {
      "id": 13,
      "country_code": "AT",
      "type": "tunnel",
      "barrier_type": "mainline",
      "name": "Brenner Pass (A13)",
      "price_eur": 12.50,
      "price_local": null,
      "currency": "EUR",
      "info": "Brenner Pass (2026)",
      "lat": 47.0094,
      "lng": 11.5065
    },
    ...
  ]
}

Data Schema

FieldTypeDescription
idintUnique toll point ID
country_codestringISO 3166-1 alpha-2 (e.g. FR, AT, GR)
typeenumvignette, gate, tunnel, bridge, ticket_barrier
barrier_typeenummainline (primary toll) or ramp (entry/exit)
namestringToll point name
price_eurdecimalPrice in EUR
price_localdecimal|nullPrice in local currency (if non-EUR)
currencystringLocal currency code (EUR, CHF, HUF, etc.)
infostring|nullAdditional details (validity, official site, etc.)
latdecimal|nullLatitude (WGS84). Null for vignettes.
lngdecimal|nullLongitude (WGS84). Null for vignettes.

Coverage

The dataset covers toll infrastructure across 20+ European countries including Austria, Belgium, Bulgaria, Croatia, Czech Republic, Denmark, France, Germany, Greece, Hungary, Ireland, Italy, Moldova, Netherlands, Poland, Portugal, Romania, Serbia, Slovakia, Slovenia, Spain, Switzerland, and Turkey.

Data is verified and updated regularly. Prices reflect 2026 rates for standard passenger vehicles (Category 1 / Class 2A).

Error Codes

CodeMeaning
401Invalid or missing API key
403Subscription inactive
400Invalid parameter value
429Daily rate limit exceeded

Support

Questions about the data, coverage, or your subscription? Email hi@fuel-prices.eu