Vignette ID API documentation

Every endpoint of the public read API, with parameters, responses and examples

The Vignette ID public API answers three questions without a credential: which European countries need a motorway vignette, what each country's toll rules are, and what a vignette costs right now. This page documents every endpoint. It is generated from the OpenAPI document, so it cannot describe anything the API does not actually serve.

Base URL and authentication

Every endpoint below lives under https://e-vignettes.eu/api/v1 and needs no credential, no account and no header. CORS is open, so a browser can call them directly. Issuing a vignette is a different API on a different host and does need a key — see the authentication brief.

Errors

Every failure returns JSON, never an HTML error page, and always the same shape: a stable code to branch on, a human message, a hint naming what to change, the HTTP status and a documentation URL. The codes are not_found, invalid_parameter, method_not_allowed, rate_limited, upstream_unavailable and internal_error. They are part of the contract and are never renamed.

Rate limits and versioning

240 requests per 60 seconds per IP address across this API, and every response carries RateLimit-Policy and RateLimit so a client can self-throttle instead of discovering the limit with a 429. Responses are edge-cached; honour Cache-Control rather than polling.

The API is versioned in the URL path. A breaking change gets a new path rather than altering v1 underneath you, and a retirement is announced in the responses themselves with Deprecation and Sunset headers, at least 12 months ahead. The full policy is on the developer portal.

Beyond REST

The same catalogue is available as MCP tools at https://e-vignettes.eu/mcp, with no credential, for agents that would rather call tools than construct URLs. Any page of this site also answers Accept: text/markdown with Markdown at its own URL.

Endpoints

List every country Vignette ID sells tolls for

get /api/v1/countries

Returns the nine covered countries with their ISO code, the national toll operator, a one-paragraph summary of the toll system and links to the human page and to that country's products. Use this first to discover valid country values for listProducts.

Responses

  • 200The full country list. Never paginated: the list is nine items long.
  • 405The endpoint is read-only; only GET and OPTIONS are supported.
  • 429The per-IP quota for this policy is exhausted. Retry-After gives the seconds to wait; the RateLimit fields carry the same reset.

Example

curl -sS "https://e-vignettes.eu/api/v1/countries"

Get the toll rules for one country

get /api/v1/countries/{code}

Returns everything the country guide states: which roads are tolled, vehicle categories and validity periods, activation and plate registration, fines and enforcement, tolls not covered by the vignette, a country FAQ, and the official sources each fact was checked against. Prices are not included here — call listProducts for those.

Parameters

  • code (path, required, string) ISO 3166-1 alpha-2 country code, lower case. One of: at, ch, cz, sk, hu, si, ro, bg, md.

Responses

  • 200The country guide.
  • 404No country with that code. error.hint lists the valid codes.
  • 405The endpoint is read-only; only GET and OPTIONS are supported.
  • 429The per-IP quota for this policy is exhausted. Retry-After gives the seconds to wait; the RateLimit fields carry the same reset.

Example

curl -sS "https://e-vignettes.eu/api/v1/countries/at"

List vignette and section-toll products with live prices

get /api/v1/products

Returns the active catalogue. Each product is one country plus one vehicle type; its offers array holds one entry per validity period, with the total customer price, the underlying government price and the partner fee stated separately. Omit country to get every country in one call.

Parameters

  • country (query, optional, string) Restrict to one country, by ISO 3166-1 alpha-2 code (lower case). Omit for all nine. One of: at, ch, cz, sk, hu, si, ro, bg, md.
  • type (query, optional, string) vignette for ordinary motorway vignettes, tunnel for the Alpine section tolls that a vignette does not cover. One of: vignette, tunnel. Defaults to vignette.

Responses

  • 200Matching products. An empty data array means the filter matched nothing.
  • 400A query parameter was not one of the allowed values.
  • 405The endpoint is read-only; only GET and OPTIONS are supported.
  • 429The per-IP quota for this policy is exhausted. Retry-After gives the seconds to wait; the RateLimit fields carry the same reset.
  • 502The upstream catalogue could not be reached. Retry shortly.

Example

curl -sS "https://e-vignettes.eu/api/v1/products?country=at&type=vignette"