apyhub
Back
▣ VERIFICATION KIT

Get VAT and GST Rates API

What it does

VAT and GST Rates returns standard and reduced tax rates for 61 countries and regions, along with a data version, as-of date, and a verification note for each country.

Send a region, a country or list of countries, or a currency code in the request body to narrow the table. Use region to filter to one of the supported regions, country to look up one country or multiple named entries, and currency to return only countries that use that currency code. Leave those filters out to get the full table.

Use VAT and GST Rates when you need tax reference data for checkout logic, invoicing rules, price display, or country-based compliance checks. The response is a structured lookup you can cache, compare against your internal tax tables, or use to keep product settings aligned with current VAT and GST rates.

POST
VAT and GST rates: standard and reduced rates for 59 countries and regions with a data version, as-of date and verification note per country
https://api.eu.apyhub.com/freedailypro/vat-and-gst-rates/converters/vat-rates

QUICKSTART

GUIDE

Get VAT and GST rates for Germany and the United Kingdom in one request.

cURL

curl -X POST "https://api.apyhub.com/<service-path>" \
  -H "apy-token: YOUR_APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"country": ["Germany", "United Kingdom"]}'

Response

{
  "result": {
    "count": 2,
    "rates": [
      { "country": "Germany", "region": "eu", "standardRatePct": 19, "reducedRatesPct": [7], "currency": "EUR" },
      { "country": "United Kingdom", "region": "other-europe", "standardRatePct": 20, "reducedRatesPct": [5], "currency": "GBP" }
    ]
  }
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*
Only the countries of one region.
A country name, or a list of names (for example Germany, UK, Canada - Ontario HST). Leave out for the whole table.
Only the countries that use this currency code, for example EUR.

About this endpoint

What it does

Returns standard and reduced VAT and GST rates from a maintained rate table. Send nothing to get the whole table, or narrow it by region, country or currency. Every response says which version of the table it comes from, when it was last entered and when it will be reviewed next.

The table currently has 61 countries and regions: 27 EU member states, 6 other European countries, 8 Canadian entries (GST only, plus the provinces with their own rate), and countries in Asia-Pacific, the Middle East and Africa, and the Americas. Use the count field in the response for the exact number. The US is not included because it has no VAT. For US sales tax use the Sales Tax Calculator API.

Request Body

All fields are optional. Send an empty object {} to get the whole table.

ParameterTypeMandatoryDescription
regionENUMNoOnly the countries of one region. Allowed values: eu, other-europe, canada, asia-pacific, middle-east-africa, americas. Lowercase only.
countryString / String ArrayNoA country name, or a list of 1 to 60 names, for example Germany or ["Germany", "UK", "Canada - Ontario HST"]. Names are not case sensitive, and extra spaces are ignored. Common short names such as UK and Czech Republic work. An unknown name returns a 400 error that lists the supported names.
currencyStringNoOnly the countries that use this currency code, for example EUR. If no country in the table uses the code, you get an empty list with count 0.

When you send more than one filter, only the rows that match all of them are returned. For example, region: "canada" with country: "Germany" returns no rows.

Response

The endpoint returns a JSON object with the result under result.

FieldTypeDescription
countIntegerNumber of rows in rates.
ratesArrayOne row per country or region.
rates[].countryStringCountry or region name. Canadian entries are named like Canada — Ontario HST.
rates[].regionStringOne of the region values above.
rates[].standardRatePctNumberStandard rate in percent.
rates[].reducedRatesPctNumber ArrayReduced rates in percent, highest first. Empty when the country has none in the table.
rates[].currencyStringThree-letter currency code.
rates[].verificationStringHow this row was checked.
rates[].labelStringOptional. Tax name, where it helps.
rates[].noteStringOptional. Extra detail for this row.
dataVersionStringVersion of the rate table.
asOfStringThe month the rates are valid for.
taxYearIntegerTax year of the rates.
tableLastEnteredStringDate the table was last updated.
euStandardRatesComparedOnStringDate the EU standard rates were last compared with a published table.
dataStatusStringStatus of the data. estimate means the figures are for information and should be confirmed with the tax authority.
nextReviewStringWhen the table will next be reviewed.
sourcesStringWhere the rates come from.
notesString ArrayScope notes, for example that only standard and common reduced rates are listed.
disclaimerStringUse notice for the data.
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.