VAT Rates

Get current VAT rates for 44 European countries (EU-27 + Norway, Switzerland, UK, and others). This endpoint is free and does not require an API key.

Endpoints

Get Rates for a Country

GET /v1/rates/{countryCode}

Get All Rates

GET /v1/rates

Request Examples

Single Country

Terminal
curl https://api.vatnode.dev/v1/rates/DE

All Countries

Terminal
curl https://api.vatnode.dev/v1/rates

Response

Single Country Response

Response
{
  "countryCode": "DE",
  "countryName": "Germany",
  "vatName": "Umsatzsteuer",
  "vatAbbr": "MwSt",
  "standardRate": 19,
  "reducedRates": [7],
  "superReducedRate": null,
  "parkingRate": null,
  "updatedAt": "2026-03-27"
}

All Countries Response

Response
{
  "rates": [
    {
      "countryCode": "AT",
      "countryName": "Austria",
      "vatName": "Umsatzsteuer",
      "vatAbbr": "USt",
      "standardRate": 20,
      "reducedRates": [19, 13, 10],
      "superReducedRate": null,
      "parkingRate": null,
      "updatedAt": "2026-03-27"
    },
    // ... 43 more countries
  ],
  "count": 44
}

Response Fields

FieldTypeDescription
countryCodestringTwo-letter ISO country code
countryNamestringFull country name in English
vatNamestringOfficial local name of the tax (e.g. "Umsatzsteuer")
vatAbbrstring | nullShort abbreviation (e.g. "MwSt", "TVA", "ALV")
standardRatenumberStandard VAT rate (%)
reducedRatesnumber[]Array of reduced VAT rates (%)
superReducedRatenumber | nullSuper-reduced rate if applicable
parkingRatenumber | nullParking rate if applicable
updatedAtstringLast update timestamp

EU-27 VAT Rates (2026)

CountryCodeStandardReduced
AustriaAT20%10%, 13%, 19%*
BelgiumBE21%6%, 12%
BulgariaBG20%9%
CroatiaHR25%5%, 13%
CyprusCY19%5%, 9%
Czech RepublicCZ21%12%
DenmarkDK25%
EstoniaEE24%9%, 13%
FinlandFI25.5%10%, 13.5%
FranceFR20%0.9%†, 1.05%†, 5.5%, 8.5%, 10%, 13%
GermanyDE19%7%
GreeceGR24%4%*, 6%, 13%, 17%
HungaryHU27%5%, 18%
IrelandIE23%9%, 13.5%
ItalyIT22%5%, 10%
LatviaLV21%5%, 12%
LithuaniaLT21%5%, 12%
LuxembourgLU17%8%, 14%
MaltaMT18%5%, 7%
NetherlandsNL21%9%
PolandPL23%5%, 8%
PortugalPT23%6%, 13%, 16%†, 22%†
RomaniaRO21%11%
SlovakiaSK23%5%, 19%
SloveniaSI22%5%, 9.5%
SpainES21%4%*, 10%
SwedenSE25%6%, 12%

* Super-reduced rate (Greece: basic goods; Spain: food, medicines, books).

* Austria 19%: regional standard rate applying only in Jungholz and Mittelberg municipalities.

† France 0.9% and 1.05%: apply in French Overseas Departments or Corsica.

† Portugal 16% and 22%: territorial rates for Madeira (16% intermediate, 22% standard) and Azores.

Code Examples

JavaScript - Calculate VAT

JavaScript
async function getVatRate(countryCode) {
  const response = await fetch(`https://api.vatnode.dev/v1/rates/${countryCode}`);

  if (!response.ok) throw new Error('Failed to fetch VAT rate');
  return response.json();
}

// Calculate VAT
const rate = await getVatRate('DE');
const netPrice = 100;
const vatAmount = netPrice * (rate.standardRate / 100);
const grossPrice = netPrice + vatAmount;

console.log(`Net: €${netPrice}, VAT: €${vatAmount}, Gross: €${grossPrice}`);
// Output: Net: €100, VAT: €19, Gross: €119

Caching

VAT rates change infrequently. We recommend caching rates on your end for at least 24 hours to minimize API calls.

Data Source

VAT rates are sourced from the European Commission Taxes in Europe Database (TEDB) via its official SOAP web service, checked daily and updated automatically when rates change.

Prefer a zero-dependency solution? If you only need VAT rates (not validation), check out eu-vat-rates-data — a free, open-source package available for JavaScript/TypeScript, Python, PHP, Go, and Ruby. Rates are bundled directly in the package and updated daily via GitHub Actions.