ATverify
API referenceRates

Get VAT rates for a single country

Return VAT rates for a single country by ISO 3166-1 alpha-2 code (case-insensitive). Public endpoint — no API key required. Same rate limit and cache semantics as `GET /v1/rates`.

Try it live
playground
Path

30 requests per hour per IP · demo key used automatically

Path parameters

countryrequiredstring

Two-letter ISO 3166-1 alpha-2 country code (case-insensitive).

example de
200

Response

Country rate object

datarequiredobject
data.country_coderequiredstring

ISO 3166-1 alpha-2 code, lowercase.

example de
data.country_namerequiredstring

English country name.

example Germany
data.country_name_localrequiredstring

Country name in its official local language.

example Deutschland
data.currencyrequiredstring

ISO 4217 currency code used for invoicing in this country.

example EUR
data.is_eu_memberrequiredboolean

True for the 27 EU member states plus XI (Northern Ireland under the Brexit protocol).

example true
data.supports_live_validationrequiredboolean

True when /v1/validate can verify a VAT number for this country against a live registry.

example true
data.standard_raterequirednumber

Standard VAT rate as a percentage, e.g. 19 for 19%.

example 19
data.reduced_ratesrequiredarray<number>

Ordered array of reduced rates; empty if none.

example [7]
data.super_reduced_raterequirednumber | null

Super-reduced rate if applicable, otherwise null.

example null
data.parking_raterequirednumber | null

Transitional parking rate if applicable, otherwise null.

example null
data.vat_namerequiredstring

Local tax name in the country language.

example Umsatzsteuer
data.vat_abbrrequiredstring

Local tax abbreviation.

example USt
data.vat_number_formatrequiredstring

Human-readable description of the VAT number format.

example DE + 9 digits
data.vat_number_regexrequiredstring

Regex pattern for client-side format validation.

example ^DE\d{9}$
data.registration_thresholdrequiredobject | null

VAT registration thresholds; null when we do not track thresholds for this country.

data.registration_threshold.domesticrequirednumber | null

Revenue above which a seller based in this country must register for VAT. Null when no threshold exists (VAT mandatory from €0) or when we do not track a threshold for this country.

example 22000
data.registration_threshold.distance_sellingrequirednumber | null

EU-wide OSS cross-border B2C threshold (uniform €10,000 since July 2021). Null for non-EU countries.

example 10000
data.registration_threshold.currencyrequiredstring

ISO 4217 currency for the thresholds.

example EUR
data.updated_atrequiredstring

ISO date (YYYY-MM-DD) of the last verified refresh for this country row. Not a full datetime — precision is day-level.

example 2026-04-13
metarequiredobject
meta.request_idrequiredstring

UUID v7 identifying this specific HTTP request.

example 0190f8ea-a5b2-7000-a123-000000000000
meta.data_versionrequiredstring

ISO date (YYYY-MM-DD) of the underlying rates dataset. Use as an ETag key.

example 2026-04-13
meta.cachedrequiredboolean

Always true for /v1/rates — data is loaded in-process at startup.

example true

Error responses

304Not modified
400Malformed country code (not 2 letters)
404Country not in our dataset
429Rate limit exceeded
import { Vatverify } from '@vatverify/node';
const client = new Vatverify();

const result = await client.getRate();
{
  "data": {
    "country_code": "de",
    "country_name": "Germany",
    "country_name_local": "Deutschland",
    "currency": "EUR",
    "is_eu_member": true,
    "supports_live_validation": true,
    "standard_rate": 19,
    "reduced_rates": [
      7
    ],
    "super_reduced_rate": null,
    "parking_rate": null,
    "vat_name": "Umsatzsteuer",
    "vat_abbr": "USt",
    "vat_number_format": "DE + 9 digits",
    "vat_number_regex": "^DE\\d{9}$",
    "registration_threshold": {
      "domestic": 22000,
      "distance_selling": 10000,
      "currency": "EUR"
    },
    "updated_at": "2026-04-13"
  },
  "meta": {
    "request_id": "0190f8ea-a5b2-7000-a123-000000000000",
    "data_version": "2026-04-13",
    "cached": true,
    "latency_ms": 47
  }
}