---
title: "List VAT rates for all European countries"
method: GET
path: "/v1/rates"
tags: ["VAT rates"]
---

# List VAT rates for all European countries

`GET /v1/rates`

## Request

- Base URL: `https://api.vatnode.dev`
- URL: `https://api.vatnode.dev/v1/rates`
- Auth: none required

## Response `200`

List of VAT rates for all 45 European countries: EU-27, Northern
Ireland (XI), and non-EU countries (e.g. Norway, Switzerland, the
United Kingdom, Ukraine, Turkey). The `isEU` flag distinguishes
member states. These are reference rates only – VAT number
validation covers EU-27 + Northern Ireland.

- object
  - `rates` VatRate[], required
    - `countryCode` string, required
    - `countryName` string, required
    - `isEU` boolean, required: Whether the country is an EU member state. Non-EU countries are reference rates only – VAT number validation covers EU-27 + Northern Ireland.
    - `vatName` string, required
    - `vatAbbr` string, nullable, required
    - `currency` string, required: ISO 4217 currency code.
    - `standardRate` number, required
    - `reducedRates` number[], required
    - `superReducedRate` number, nullable, required
    - `parkingRate` number, nullable, required
    - `vatNumberFormat` string, nullable, required
    - `vatNumberPattern` string, nullable, required
    - `identifiers` CountryIdentifiers, required: Names, never numbers, of the country’s company registrar, company register, register number, business tax number and VAT identification number.
      - `registryAuthorityName` LocalizedName, nullable, required: A name keyed by ISO 639-1 language code – every official language of the country, plus `en`. `null` where no official name could be confirmed.
        - `en` string, required
      - `registryName` LocalizedName, nullable, required: A name keyed by ISO 639-1 language code – every official language of the country, plus `en`. `null` where no official name could be confirmed.
        - `en` string, required
      - `registryCodeName` LocalizedName, nullable, required: A name keyed by ISO 639-1 language code – every official language of the country, plus `en`. `null` where no official name could be confirmed.
        - `en` string, required
      - `taxIdName` LocalizedName, nullable, required: A name keyed by ISO 639-1 language code – every official language of the country, plus `en`. `null` where no official name could be confirmed.
        - `en` string, required
      - `vatIdName` LocalizedName, nullable, required: A name keyed by ISO 639-1 language code – every official language of the country, plus `en`. `null` where no official name could be confirmed.
        - `en` string, required
    - `updatedAt` string, date, required: Date the rate dataset was last updated (ISO 8601).
  - `count` integer, required

## Other responses

- `404`: The path is not recognised. `GET /v1/rates` takes no parameters and requires no authentication, so it produces no client error of its own; the API’s global handler returns the standard `NOT_FOUND` envelope only for an unrecognised path under the rates namespace (for example a mistyped `/v1/rates/{code}`).
- `500`: An unexpected server error occurred. Returns the standard error envelope with code `INTERNAL_ERROR` and a `requestId` for support correlation. The failing request had no side effects the caller can rely on; retry is safe for idempotent operations.

---

[API](https://skmtc.dev/vatnode/apis/vatnode-api.md) · [All operations](https://skmtc.dev/vatnode/apis/vatnode-api/llms.txt) · [OpenAPI document](https://skmtc.dev/vatnode/apis/vatnode-api/revisions/c65828db2037?raw)
