Global Tax Rate Lookup API

API ID 12968

Returns VAT and GST standard, reduced, zero, and exempt rates for 166 countries by country code, region, or side-by-side comparison. Reverse-search by rate value to find every country at a specific rate. Covers EU, Africa, APAC, and Americas.

API Documentation

Endpoints

Request

Returns VAT and GST standard, reduced, zero, and exempt rates for all 166 supported countries. Each country includes countryCode, countryName, currency, taxName, standard rate, reduced rates array, zero boolean, exempt boolean, digitalGoods rate, and notes.

Endpoint ID: 25921
GET https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25921/get+all+rates
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

This endpoint does not require any input parameters.

API EXAMPLE RESPONSE
JSON
{"Example Response":"No response example available for now."}
Get All Rates — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25921/get+all+rates' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Returns VAT and GST rate data for a single country by ISO 3166-1 alpha-2 country code. Input is automatically uppercased. Returns 404 if the country code is not supported.

Endpoint ID: 25922
GET https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25922/get+rate+by+country
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

API EXAMPLE RESPONSE
JSON
{"success":true,"data":{"countryCode":"DE","countryName":"Germany","currency":"EUR","taxName":"MwSt","standard":0.19,"reduced":[0.07],"zero":true,"exempt":true,"digitalGoods":0.19,"notes":null},"meta":{"disclaimer":"Tax rates are indicative only and subject to change. Always verify current rates with official government sources before filing.","cached":false}}
Get Rate by Country — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25922/get+rate+by+country&countryCode=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Returns VAT and GST rate data for all countries in a specified region. Valid region values are africa, eu, apac, and americas. Returns 404 if the region name is not recognised.

Endpoint ID: 25923
GET https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25923/get+rates+by+region
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

API EXAMPLE RESPONSE
JSON
{"success":true,"data":[{"countryCode":"AT","countryName":"Austria","currency":"EUR","taxName":"MwSt","standard":0.2,"reduced":[0.1,0.13],"zero":true,"exempt":true,"digitalGoods":0.2,"notes":null},{"countryCode":"BE","countryName":"Belgium","currency":"EUR","taxName":"TVA/BTW","standard":0.21,"reduced":[0.06,0.12],"zero":true,"exempt":true,"digitalGoods":0.21,"notes":null},{"countryCode":"BG","countryName":"Bulgaria","currency":"BGN","taxName":"ДДС","standard":0.2,"reduced":[0.09],"zero":true,"exempt":true,"digitalGoods":0.2,"notes":null},{"countryCode":"CY","countryName":"Cyprus","currency":"EUR","taxName":"ΦΠΑ","standard":0.19,"reduced":[0.05,0.09],"zero":true,"exempt":true,"digitalGoods":0.19,"notes":null},{"countryCode":"CZ","countryName":"Czech Republic","currency":"CZK","taxName":"DPH","standard":0.21,"reduced":[0.12],"zero":true,"exempt":true,"digitalGoods":0.21,"notes":null},{"countryCode":"DE","countryName":"Germany","currency":"EUR","taxName":"MwSt","standard":0.19,"reduced":[0.07],"zero":true,"exempt":true,"digitalGoods":0.19,"notes":null},{"countryCode":"DK","countryName":"Denmark","currency":"DKK","taxName":"Moms","standard":0.25,"reduced":[],"zero":true,"exempt":true,"digitalGoods":0.25,"notes":null},{"countryCode":"EE","countryName":"Estonia","currency":"EUR","taxName":"Käibemaks","standard":0.22,"reduced":[0.09],"zero":true,"exempt":true,"digitalGoods":0.22,"notes":"Rate increased from 20% to 22% on 1 January 2024"},{"countryCode":"ES","countryName":"Spain","currency":"EUR","taxName":"IVA","standard":0.21,"reduced":[0.1],"zero":true,"exempt":true,"digitalGoods":0.21,"notes":null},{"countryCode":"FI","countryName":"Finland","currency":"EUR","taxName":"ALV","standard":0.255,"reduced":[0.1,0.14],"zero":true,"exempt":true,"digitalGoods":0.255,"notes":"Standard rate increased from 24% to 25.5% on 1 September 2024"},{"countryCode":"FR","countryName":"France","currency":"EUR","taxName":"TVA","standard":0.2,"reduced":[0.055,0.1],"zero":true,"exempt":true,"digitalGoods":0.2,"notes":null},{"countryCode":"GR","countryName":"Greece","currency":"EUR","taxName":"ΦΠΑ","standard":0.24,"reduced":[0.06,0.13],"zero":true,"exempt":true,"digitalGoods":0.24,"notes":null},{"countryCode":"HR","countryName":"Croatia","currency":"EUR","taxName":"PDV","standard":0.25,"reduced":[0.05,0.13],"zero":true,"exempt":true,"digitalGoods":0.25,"notes":null},{"countryCode":"HU","countryName":"Hungary","currency":"HUF","taxName":"ÁFA","standard":0.27,"reduced":[0.05,0.18],"zero":true,"exempt":true,"digitalGoods":0.27,"notes":"Highest standard VAT rate in the EU"},{"countryCode":"IE","countryName":"Ireland","currency":"EUR","taxName":"VAT","standard":0.23,"reduced":[0.09,0.135],"zero":true,"exempt":true,"digitalGoods":0.23,"notes":null},{"countryCode":"IT","countryName":"Italy","currency":"EUR","taxName":"IVA","standard":0.22,"reduced":[0.05,0.1],"zero":true,"exempt":true,"digitalGoods":0.22,"notes":null},{"countryCode":"LT","countryName":"Lithuania","currency":"EUR","taxName":"PVM","standard":0.21,"reduced":[0.05,0.09],"zero":true,"exempt":true,"digitalGoods":0.21,"notes":null},{"countryCode":"LU","countryName":"Luxembourg","currency":"EUR","taxName":"TVA","standard":0.17,"reduced":[0.08],"zero":true,"exempt":true,"digitalGoods":0.17,"notes":"Lowest standard VAT rate in the EU"},{"countryCode":"LV","countryName":"Latvia","currency":"EUR","taxName":"PVN","standard":0.21,"reduced":[0.12],"zero":true,"exempt":true,"digitalGoods":0.21,"notes":null},{"countryCode":"MT","countryName":"Malta","currency":"EUR","taxName":"VAT","standard":0.18,"reduced":[0.05,0.07],"zero":true,"exempt":true,"digitalGoods":0.18,"notes":null},{"countryCode":"NL","countryName":"Netherlands","currency":"EUR","taxName":"BTW","standard":0.21,"reduced":[0.09],"zero":true,"exempt":true,"digitalGoods":0.21,"notes":null},{"countryCode":"PL","countryName":"Poland","currency":"PLN","taxName":"VAT","standard":0.23,"reduced":[0.05,0.08],"zero":true,"exempt":true,"digitalGoods":0.23,"notes":null},{"countryCode":"PT","countryName":"Portugal","currency":"EUR","taxName":"IVA","standard":0.23,"reduced":[0.06,0.13],"zero":true,"exempt":true,"digitalGoods":0.23,"notes":null},{"countryCode":"RO","countryName":"Romania","currency":"RON","taxName":"TVA","standard":0.19,"reduced":[0.05,0.09],"zero":true,"exempt":true,"digitalGoods":0.19,"notes":null},{"countryCode":"SE","countryName":"Sweden","currency":"SEK","taxName":"Moms","standard":0.25,"reduced":[0.06,0.12],"zero":true,"exempt":true,"digitalGoods":0.25,"notes":null},{"countryCode":"SI","countryName":"Slovenia","currency":"EUR","taxName":"DDV","standard":0.22,"reduced":[0.05,0.095],"zero":true,"exempt":true,"digitalGoods":0.22,"notes":null},{"countryCode":"SK","countryName":"Slovakia","currency":"EUR","taxName":"DPH","standard":0.23,"reduced":[0.1],"zero":true,"exempt":true,"digitalGoods":0.23,"notes":"Standard rate increased from 20% to 23% on 1 January 2025"}],"meta":{"disclaimer":"Tax rates are indicative only and subject to change. Always verify current rates with official government sources before filing.","cached":false,"count":27,"region":"eu"}}
Get Rates by Region — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25923/get+rates+by+region®ion=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Returns side-by-side VAT and GST rate data for 2 to 10 countries in a single call. Pass a comma-separated list of ISO alpha-2 country codes. Returns 400 if fewer than 2 or more than 10 codes are provided.

Endpoint ID: 25924
GET https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25924/compare+rates
INPUT PARAMETERS

Compare Rates — Endpoint Features

Object Description
countries Required Comma-separated ISO alpha-2 country codes. Minimum 2, maximum 10

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

countries
API EXAMPLE RESPONSE
JSON
{"success":true,"data":[{"countryCode":"GB","countryName":"United Kingdom","currency":"GBP","taxName":"VAT","standard":0.2,"reduced":[0.05],"zero":true,"exempt":true,"digitalGoods":0.2,"notes":null},{"countryCode":"DE","countryName":"Germany","currency":"EUR","taxName":"MwSt","standard":0.19,"reduced":[0.07],"zero":true,"exempt":true,"digitalGoods":0.19,"notes":null},{"countryCode":"ZA","countryName":"South Africa","currency":"ZAR","taxName":"VAT","standard":0.15,"reduced":[],"zero":true,"exempt":true,"digitalGoods":0.15,"notes":null},{"countryCode":"AU","countryName":"Australia","currency":"AUD","taxName":"GST","standard":0.1,"reduced":[],"zero":true,"exempt":true,"digitalGoods":0.1,"notes":null}],"meta":{"disclaimer":"Tax rates are indicative only and subject to change. Always verify current rates with official government sources before filing.","cached":false,"count":4,"notFound":[]}}
Compare Rates — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25924/compare+rates?countries=GB,DE,ZA,AU' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Reverse lookup that returns all countries matching a specific rate value. The rate parameter is required and must be a decimal such as 0.20 for 20 percent. The type parameter is optional and filters by standard, reduced, or digitalGoods rate. Defaults to standard if type is not provided.

Endpoint ID: 25925
GET https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25925/search+rates+by+value
INPUT PARAMETERS

Search Rates by Value — Endpoint Features

Object Description
rate Required Rate value as a decimal e.g. 0.20 for 20 percent
type Optional Rate type to search. Valid values: standard, reduced, digitalGoods

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

rate
type
API EXAMPLE RESPONSE
JSON
{"success":true,"data":[{"countryCode":"AT","countryName":"Austria","currency":"EUR","taxName":"MwSt","standard":0.2,"reduced":[0.1,0.13],"zero":true,"exempt":true,"digitalGoods":0.2,"notes":null},{"countryCode":"BG","countryName":"Bulgaria","currency":"BGN","taxName":"ДДС","standard":0.2,"reduced":[0.09],"zero":true,"exempt":true,"digitalGoods":0.2,"notes":null},{"countryCode":"FR","countryName":"France","currency":"EUR","taxName":"TVA","standard":0.2,"reduced":[0.055,0.1],"zero":true,"exempt":true,"digitalGoods":0.2,"notes":null},{"countryCode":"GB","countryName":"United Kingdom","currency":"GBP","taxName":"VAT","standard":0.2,"reduced":[0.05],"zero":true,"exempt":true,"digitalGoods":0.2,"notes":null},{"countryCode":"AL","countryName":"Albania","currency":"ALL","taxName":"TVSH","standard":0.2,"reduced":[],"zero":false,"exempt":true,"digitalGoods":0.2,"notes":null},{"countryCode":"RS","countryName":"Serbia","currency":"RSD","taxName":"PDV","standard":0.2,"reduced":[0.1],"zero":true,"exempt":true,"digitalGoods":0.2,"notes":null},{"countryCode":"MD","countryName":"Moldova","currency":"MDL","taxName":"TVA","standard":0.2,"reduced":[0.08,0.12],"zero":true,"exempt":true,"digitalGoods":0.2,"notes":null},{"countryCode":"UA","countryName":"Ukraine","currency":"UAH","taxName":"ПДВ","standard":0.2,"reduced":[],"zero":true,"exempt":true,"digitalGoods":0.2,"notes":null},{"countryCode":"RU","countryName":"Russia","currency":"RUB","taxName":"НДС","standard":0.2,"reduced":[0.1],"zero":true,"exempt":true,"digitalGoods":0.2,"notes":null},{"countryCode":"BY","countryName":"Belarus","currency":"BYR","taxName":"НДС","standard":0.2,"reduced":[0.1],"zero":true,"exempt":true,"digitalGoods":0.2,"notes":null},{"countryCode":"TR","countryName":"Turkey","currency":"TRY","taxName":"KDV","standard":0.2,"reduced":[0.1],"zero":true,"exempt":true,"digitalGoods":0.2,"notes":"Standard rate increased from 18% to 20% in July 2023"},{"countryCode":"AM","countryName":"Armenia","currency":"AMD","taxName":"ԱԱՀ","standard":0.2,"reduced":[],"zero":true,"exempt":true,"digitalGoods":0.2,"notes":null},{"countryCode":"MA","countryName":"Morocco","currency":"MAD","taxName":"TVA","standard":0.2,"reduced":[0.07,0.1,0.14],"zero":true,"exempt":true,"digitalGoods":0.2,"notes":null},{"countryCode":"MG","countryName":"Madagascar","currency":"MGA","taxName":"TVA","standard":0.2,"reduced":[],"zero":true,"exempt":true,"digitalGoods":0.2,"notes":null}],"meta":{"disclaimer":"Tax rates are indicative only and subject to change. Always verify current rates with official government sources before filing.","cached":false,"count":14,"searchedRate":0.2,"rateType":"standard"}}
Search Rates by Value — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25925/search+rates+by+value?rate=0.2&type=standard' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Returns a lightweight list of all 166 supported countries with countryCode, countryName, currency, and taxName fields only. No rate data is included in this response.

Endpoint ID: 25926
GET https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25926/list+countries
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

This endpoint does not require any input parameters.

API EXAMPLE RESPONSE
JSON
{"Example Response":"No response example available for now."}
List Countries — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25926/list+countries' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Calculates VAT or GST for a single item. Direction add takes a net exclusive price and returns the gross inclusive price and tax amount. Direction remove takes a gross inclusive price and returns the net exclusive price and tax amount. All monetary outputs are rounded to 2 decimal places.

Endpoint ID: 25927
POST https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25927/calculate+vat+gst+single+item
INPUT PARAMETERS

Calculate VAT GST Single Item — Endpoint Features

Object Description
Request Body Required Json

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

API EXAMPLE RESPONSE
JSON
{"success":true,"data":{"countryCode":"GB","taxName":"VAT","rateType":"standard","rate":0.2,"direction":"add","inputAmount":100,"taxAmount":20,"outputAmount":120},"meta":{"disclaimer":"Tax rates are indicative only and subject to change. Always verify current rates with official government sources before filing.","cached":false}}
Calculate VAT GST Single Item — CODE SNIPPETS

curl --location --request POST 'https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25927/calculate+vat+gst+single+item' --header 'Authorization: Bearer YOUR_API_KEY' 

--data-raw '{
  "countryCode": "GB",
  "amount": 100.00,
  "rateType": "standard",
  "direction": "add"
}'

    
Request

Calculates VAT or GST for up to 20 items in a single request. All items are validated before any are processed. If any item is invalid a 400 is returned with per-item errors covering all failures at once. Returns 400 if more than 20 items are submitted.

Endpoint ID: 25928
POST https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25928/calculate+vat+gst+batch
INPUT PARAMETERS

Calculate VAT GST Batch — Endpoint Features

Object Description
Request Body Required Json

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

API EXAMPLE RESPONSE
JSON
{"success":true,"data":[{"countryCode":"GB","taxName":"VAT","rateType":"standard","rate":0.2,"direction":"add","inputAmount":100,"taxAmount":20,"outputAmount":120},{"countryCode":"DE","taxName":"MwSt","rateType":"reduced","rate":0.07,"direction":"add","inputAmount":50,"taxAmount":3.5,"outputAmount":53.5},{"countryCode":"AU","taxName":"GST","rateType":"standard","rate":0.1,"direction":"remove","inputAmount":200,"taxAmount":18.18,"outputAmount":181.82}],"meta":{"disclaimer":"Tax rates are indicative only and subject to change. Always verify current rates with official government sources before filing.","cached":false,"count":3}}
Calculate VAT GST Batch — CODE SNIPPETS

curl --location --request POST 'https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25928/calculate+vat+gst+batch' --header 'Authorization: Bearer YOUR_API_KEY' 

--data-raw '{
  "items": [
    { "countryCode": "GB", "amount": 100.00, "rateType": "standard", "direction": "add" },
    { "countryCode": "DE", "amount": 50.00, "rateType": "reduced", "direction": "add" },
    { "countryCode": "AU", "amount": 200.00, "rateType": "standard", "direction": "remove" }
  ]
}'

    
Request

Calculates VAT or GST for a multi-line invoice with mixed rate types and quantities. Returns per-line tax breakdown including description, quantity, unitAmount, rate, lineTaxAmount, and lineTotal. Also returns invoiceSummary with subtotal, totalTax, and grandTotal. Grand total is guaranteed to equal the exact sum of all line totals.

Endpoint ID: 25929
POST https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25929/calculate+vat+gst+invoice
INPUT PARAMETERS

Calculate VAT GST Invoice — Endpoint Features

Object Description
Request Body Required Json

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

API EXAMPLE RESPONSE
JSON
{"success":true,"data":{"countryCode":"DE","taxName":"MwSt","direction":"add","lineItems":[{"description":"SaaS subscription","quantity":1,"unitAmount":99,"rateType":"standard","rate":0.19,"lineTaxAmount":18.81,"lineTotal":117.81},{"description":"Setup fee","quantity":1,"unitAmount":150,"rateType":"standard","rate":0.19,"lineTaxAmount":28.5,"lineTotal":178.5},{"description":"Export service","quantity":2,"unitAmount":50,"rateType":"zero","rate":0,"lineTaxAmount":0,"lineTotal":100}],"invoiceSummary":{"subtotal":349,"totalTax":47.31,"grandTotal":396.31}},"meta":{"disclaimer":"Tax rates are indicative only and subject to change. Always verify current rates with official government sources before filing.","cached":false}}
Calculate VAT GST Invoice — CODE SNIPPETS

curl --location --request POST 'https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25929/calculate+vat+gst+invoice' --header 'Authorization: Bearer YOUR_API_KEY' 

--data-raw '{
  "countryCode": "DE",
  "direction": "add",
  "items": [
    { "description": "SaaS subscription", "amount": 99.00, "rateType": "standard", "quantity": 1 },
    { "description": "Setup fee", "amount": 150.00, "rateType": "standard", "quantity": 1 },
    { "description": "Export service", "amount": 50.00, "rateType": "zero", "quantity": 2 }
  ]
}'

    
Request

Returns the VAT or GST rate applicable to digital services and SaaS products sold into a country under OSS, MOSS, or local digital services rules. Includes a differsFromStandard flag which is true when the digital goods rate differs from the standard rate. Returns 404 if no digital goods rate is defined.

Endpoint ID: 25930
GET https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25930/get+digital+goods+rate
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

API EXAMPLE RESPONSE
JSON
{"success":true,"data":{"countryCode":"GB","countryName":"United Kingdom","taxName":"VAT","digitalGoodsRate":0.2,"standardRate":0.2,"differsFromStandard":false,"notes":null},"meta":{"disclaimer":"Tax rates are indicative only and subject to change. Always verify current rates with official government sources before filing.","cached":false}}
Get Digital Goods Rate — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25930/get+digital+goods+rate&countryCode=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Returns digital goods VAT rates for all 27 EU member states in a single call sorted by country code. Includes an ossNote in meta explaining the EU One Stop Shop scheme and the 10000 euro annual cross-border threshold for digital services.

Endpoint ID: 25931
GET https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25931/eu+oss+digital+goods+rates
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

This endpoint does not require any input parameters.

API EXAMPLE RESPONSE
JSON
{"success":true,"data":[{"countryCode":"AT","countryName":"Austria","taxName":"MwSt","digitalGoodsRate":0.2,"standardRate":0.2},{"countryCode":"BE","countryName":"Belgium","taxName":"TVA/BTW","digitalGoodsRate":0.21,"standardRate":0.21},{"countryCode":"BG","countryName":"Bulgaria","taxName":"ДДС","digitalGoodsRate":0.2,"standardRate":0.2},{"countryCode":"CY","countryName":"Cyprus","taxName":"ΦΠΑ","digitalGoodsRate":0.19,"standardRate":0.19},{"countryCode":"CZ","countryName":"Czech Republic","taxName":"DPH","digitalGoodsRate":0.21,"standardRate":0.21},{"countryCode":"DE","countryName":"Germany","taxName":"MwSt","digitalGoodsRate":0.19,"standardRate":0.19},{"countryCode":"DK","countryName":"Denmark","taxName":"Moms","digitalGoodsRate":0.25,"standardRate":0.25},{"countryCode":"EE","countryName":"Estonia","taxName":"Käibemaks","digitalGoodsRate":0.22,"standardRate":0.22},{"countryCode":"ES","countryName":"Spain","taxName":"IVA","digitalGoodsRate":0.21,"standardRate":0.21},{"countryCode":"FI","countryName":"Finland","taxName":"ALV","digitalGoodsRate":0.255,"standardRate":0.255},{"countryCode":"FR","countryName":"France","taxName":"TVA","digitalGoodsRate":0.2,"standardRate":0.2},{"countryCode":"GR","countryName":"Greece","taxName":"ΦΠΑ","digitalGoodsRate":0.24,"standardRate":0.24},{"countryCode":"HR","countryName":"Croatia","taxName":"PDV","digitalGoodsRate":0.25,"standardRate":0.25},{"countryCode":"HU","countryName":"Hungary","taxName":"ÁFA","digitalGoodsRate":0.27,"standardRate":0.27},{"countryCode":"IE","countryName":"Ireland","taxName":"VAT","digitalGoodsRate":0.23,"standardRate":0.23},{"countryCode":"IT","countryName":"Italy","taxName":"IVA","digitalGoodsRate":0.22,"standardRate":0.22},{"countryCode":"LT","countryName":"Lithuania","taxName":"PVM","digitalGoodsRate":0.21,"standardRate":0.21},{"countryCode":"LU","countryName":"Luxembourg","taxName":"TVA","digitalGoodsRate":0.17,"standardRate":0.17},{"countryCode":"LV","countryName":"Latvia","taxName":"PVN","digitalGoodsRate":0.21,"standardRate":0.21},{"countryCode":"MT","countryName":"Malta","taxName":"VAT","digitalGoodsRate":0.18,"standardRate":0.18},{"countryCode":"NL","countryName":"Netherlands","taxName":"BTW","digitalGoodsRate":0.21,"standardRate":0.21},{"countryCode":"PL","countryName":"Poland","taxName":"VAT","digitalGoodsRate":0.23,"standardRate":0.23},{"countryCode":"PT","countryName":"Portugal","taxName":"IVA","digitalGoodsRate":0.23,"standardRate":0.23},{"countryCode":"RO","countryName":"Romania","taxName":"TVA","digitalGoodsRate":0.19,"standardRate":0.19},{"countryCode":"SE","countryName":"Sweden","taxName":"Moms","digitalGoodsRate":0.25,"standardRate":0.25},{"countryCode":"SI","countryName":"Slovenia","taxName":"DDV","digitalGoodsRate":0.22,"standardRate":0.22},{"countryCode":"SK","countryName":"Slovakia","taxName":"DPH","digitalGoodsRate":0.23,"standardRate":0.23}],"meta":{"disclaimer":"Tax rates are indicative only and subject to change. Always verify current rates with official government sources before filing.","cached":false,"count":27,"ossNote":"EU One Stop Shop (OSS): when annual cross-border B2C digital sales to EU consumers exceed €10,000 combined across all EU member states, non-EU sellers must collect VAT at the rate of each consumer's country, or register for the OSS scheme to file a single quarterly return covering all EU sales. The €10,000 threshold is calculated on total EU-wide cross-border sales, not per country. Below this threshold, sellers may apply their home-country VAT rate. Register via the European Commission Taxation and Customs Union portal."}}
EU OSS Digital Goods Rates — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25931/eu+oss+digital+goods+rates' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Returns the VAT or GST registration threshold for domestic and foreign sellers in a country. Includes domesticThreshold, foreignThreshold, currency, thresholdNote, simplifiedScheme boolean, and simplifiedSchemeNote. Returns 404 if no threshold data is available for the country.

Endpoint ID: 25932
GET https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25932/get+registration+threshold
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

API EXAMPLE RESPONSE
JSON
{"success":true,"data":{"countryCode":"DE","countryName":"Germany","currency":"EUR","domesticThreshold":25000,"foreignThreshold":10000,"thresholdNote":"Kleinunternehmerregelung (small business scheme): threshold raised from €22,000 to €25,000 on 1 January 2025 per EU SME Directive. Foreign EU sellers: €10,000 EU OSS threshold.","simplifiedScheme":true,"simplifiedSchemeNote":"EU One Stop Shop (OSS) available for cross-border EU B2C sales."},"meta":{"disclaimer":"Tax rates are indicative only and subject to change. Always verify current rates with official government sources before filing.","thresholdNote":"Registration thresholds are subject to change. Always verify the current threshold with the relevant national tax authority before advising clients or making registration decisions.","cached":false}}
Get Registration Threshold — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25932/get+registration+threshold&countryCode=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Returns VAT registration thresholds for all 27 EU member states in a single call sorted by country code. Each entry includes domesticThreshold, foreignThreshold, currency, simplifiedScheme boolean, and simplifiedSchemeNote.

Endpoint ID: 25933
GET https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25933/get+eu+registration+thresholds
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

This endpoint does not require any input parameters.

API EXAMPLE RESPONSE
JSON
{"Example Response":"No response example available for now."}
Get EU Registration Thresholds — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25933/get+eu+registration+thresholds' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Returns the VAT or GST rate that was in effect on January 1st of the specified year. Resolves to the most recent history entry on or before that date. Returns 400 if the year is not a valid 4-digit number between 1950 and the current year. Returns 404 if no data exists for that country before the requested year.

Endpoint ID: 25934
GET https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25934/get+rate+for+specific+year
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

API EXAMPLE RESPONSE
JSON
{"success":true,"data":{"countryCode":"DE","countryName":"Germany","year":2020,"effectiveDate":"2007-01-01","standard":0.19,"standardPct":19,"reduced":[0.07],"reducedPct":[7],"notes":"Standard rate increased from 16% to 19% to consolidate the federal budget, partially funding labour market reforms."},"meta":{"disclaimer":"Tax rates are indicative only and subject to change. Always verify current rates with official government sources before filing.","cached":false}}
Get Rate for Specific Year — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25934/get+rate+for+specific+year&countryCode=Required&/=Required&year=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Returns locale formatting rules for a country including currencySymbol, currencyCode, decimalSeparator, thousandsSeparator, vatNumberLabel, vatNumberFormat as a regex string, vatNumberExample, and a formattedExample string showing how 1234.56 displays in that locale such as 1.234,56 for Germany or R1 234.56 for South Africa.

Endpoint ID: 25935
GET https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25935/get+locale+formatting
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

API EXAMPLE RESPONSE
JSON
{"success":true,"data":{"countryCode":"DE","countryName":"Germany","currencySymbol":"€","currencyCode":"EUR","decimalSeparator":",","thousandsSeparator":".","formattedExample":"€1.234,56","vatNumberLabel":"USt-IdNr.","vatNumberFormat":"DE[0-9]{9}","vatNumberExample":"DE123456789"},"meta":{"disclaimer":"Tax rates are indicative only and subject to change. Always verify current rates with official government sources before filing.","cached":false}}
Get Locale Formatting — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25935/get+locale+formatting&countryCode=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Returns API status, uptime in seconds, version, countryCount loaded from config, endpointCount, and configLastUpdated date. Use this endpoint to verify the API is running and to confirm the current country count and config version.

Endpoint ID: 25936
GET https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25936/health+check
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

This endpoint does not require any input parameters.

API EXAMPLE RESPONSE
JSON
{"status":"ok","uptime":321629.443241553,"version":"1.0.0","countryCount":166,"endpointCount":18,"configLastUpdated":"2026-06-16"}
Health Check — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25936/health+check' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Returns the full VAT or GST rate change history for a country sorted newest first. Each entry includes effectiveDate, standard rate, reduced rates array, and notes explaining the reason for the change. Returns 404 if no history is available for the country.

Endpoint ID: 25937
GET https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25937/get+rate+history
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

API EXAMPLE RESPONSE
JSON
{"success":true,"data":{"countryCode":"GB","countryName":"United Kingdom","count":5,"entries":[{"effectiveDate":"2011-01-04","standard":0.2,"standardPct":20,"reduced":[0.05],"reducedPct":[5],"notes":"Standard rate increased from 17.5% to 20% following the 2010 emergency budget to reduce the UK fiscal deficit."},{"effectiveDate":"2010-01-01","standard":0.175,"standardPct":17.5,"reduced":[0.05],"reducedPct":[5],"notes":"Rate restored to 17.5% after the temporary reduction to 15% that was applied as economic stimulus during the 2008 global financial crisis."},{"effectiveDate":"2008-12-01","standard":0.15,"standardPct":15,"reduced":[0.05],"reducedPct":[5],"notes":"Temporary reduction from 17.5% to 15% implemented as a fiscal stimulus measure during the global financial crisis. Applied for 13 months."},{"effectiveDate":"1991-04-01","standard":0.175,"standardPct":17.5,"reduced":[],"reducedPct":[],"notes":"Standard rate increased from 15% to 17.5%. The distinct reduced rate structure used today was not yet in place in its current form."},{"effectiveDate":"1979-06-18","standard":0.15,"standardPct":15,"reduced":[],"reducedPct":[],"notes":"Rate increased from 8% (plus a higher rate of 12.5%) to a unified 15% following the Conservative government budget."}]},"meta":{"disclaimer":"Tax rates are indicative only and subject to change. Always verify current rates with official government sources before filing.","cached":false}}
Get Rate History — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/12968/global+tax+rate+lookup+api/25937/get+rate+history&countryCode=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    

API Access Key & Authentication

After signing up, every developer is assigned a personal API access key, a unique combination of letters and digits provided to access to our API endpoint. To authenticate with the Global Tax Rate Lookup API simply include your bearer token in the Authorization header.

Headers
Header Description
Authorization Required Should be Bearer access_key. See "Your API Access Key" above when you are subscribed.

No long-term commitment. Upgrade, downgrade, or cancel anytime. Free Trial includes up to 50 requests.

(Save 2 months with annual billing 🎉)

🚀 Enterprise Plan

Starts at
$ 10,000/Year


  • Custom Volume
  • Custom Rate Limit
  • Specialized Customer Support
  • Real-Time API Monitoring

Overview

Returns VAT and GST rates for 166 countries with three calculator modes, EU OSS digital goods rules, registration thresholds, historical rate data, and locale-aware formatting.

Six modules, 18 endpoints. Rates covers full country lookup, region filtering for EU, Africa, APAC, and Americas, side-by-side country comparison, and reverse rate search. Calculator supports single item, batch up to 20 items, and multi-line invoice with mixed rate types returning per-line breakdown, subtotal, total tax, and grand total. Digital Goods returns the SaaS and digital services rate per country plus a single-call EU OSS summary for all 27 member states. Thresholds covers registration thresholds for domestic and foreign sellers across 38 countries including all EU member states. History resolves the rate in effect for any specific past year, useful for backdated invoices and audits. Formats returns currency symbol, decimal separator, thousands separator, VAT number format, and a pre-formatted display string for all 166 countries.

Africa region coverage includes 46 countries: ZA, NG, KE, EG, GH, ET, TZ, UG, RW, MU, ZM, ZW, CI, SN, CM, and more.

All rates are stored as decimals — 0.20 for 20%. Supported regions are africa, eu, apac, and americas. Rate types are standard, reduced, and zero. Calculator direction add takes a net price and applies VAT, direction remove strips VAT from a gross price.

Rates are maintained in static config with no external calls at runtime. A GitHub Action runs annually, fetches current rates from authoritative sources, and opens a pull request for review before any change is deployed. Every response includes a disclaimer advising subscribers to verify rates with official government sources before filing.

Global Tax Rate Lookup API FAQs

Rates are updated annually. A scheduled process runs each year, fetches current rates from authoritative sources including the OECD and national revenue services, and applies verified changes to the dataset. The disclaimer included in every response advises subscribers to verify rates with official government sources before filing, as rates can change between update cycles.

Direction controls which way the calculation runs. Add takes a net price that does not include tax and returns the gross price with tax applied — for example, a net price of 100 at 20 percent VAT returns an output of 120 with a tax amount of 20. Remove takes a gross price that already includes tax and strips it out — for example, a gross price of 120 at 20 percent VAT returns a net output of 100 with a tax amount of 20.

The US has no federal VAT or GST system. The entry exists with a standard rate of 0 and a notes field explaining that state-level sales tax applies, which varies by state and product category. This prevents a 404 error on US lookups while accurately representing the US tax system.

The digitalGoods rate is the VAT or GST rate applicable to SaaS products and digital services sold into a country. For most countries it matches the standard rate. Notable exceptions include China, which applies 6 percent VAT to digital services versus 13 percent standard. The GET /digital-goods/:countryCode endpoint includes a differsFromStandard boolean flag to make this easy to detect programmatically.

The GET /digital-goods/eu/oss endpoint returns digital goods VAT rates for all 27 EU member states in a single call. It is designed for SaaS founders and digital product businesses selling into the EU who need to build a VAT rate matrix for EU customers. Under EU One Stop Shop rules, businesses exceeding 10,000 euros in annual cross-border digital sales must charge VAT at the rate of the customer's country. The endpoint includes an ossNote in meta explaining the threshold and linking to the official EU OSS information page.

The batch endpoint accepts up to 20 items per request. All items are validated before any are processed. If one or more items are invalid the API returns a 400 with a per-item errors array listing the itemIndex, error code, and message for every failed item at once. No calculations are returned for any item until all items pass validation.

Yes. Each threshold object includes a currency field indicating which currency the threshold amounts are denominated in. EU thresholds are in EUR, UK thresholds are in GBP, and each country uses its own local currency. Threshold amounts should not be compared directly across countries without currency conversion.

FormattedExample is a pre-formatted string showing how the value 1234.56 would display in that country's locale using the country's own currency symbol, decimal separator, and thousands separator. For example Germany returns 1.234,56 with the euro symbol, South Africa returns R1 234.56, and Switzerland returns CHF1'234.56 using an apostrophe as the thousands separator. This field is designed to be used directly in invoice generators and checkout UIs without requiring any additional locale logic.

Each endpoint returns specific VAT and GST rate data, including standard, reduced, zero, and exempt rates for various countries. For example, the GET Get Rate by Country endpoint returns detailed information such as country code, name, currency, tax name, and applicable rates.

Key fields in the response data include countryCode, countryName, currency, taxName, standard rate, reduced rates array, zero boolean, exempt boolean, and digitalGoods rate. These fields provide comprehensive tax information for each country.

Parameters vary by endpoint. For instance, the GET Rates by Region endpoint accepts a region parameter (africa, eu, apac, americas), while the Search Rates by Value endpoint requires a rate value and optionally accepts a type parameter to filter results.

The response data is structured in JSON format, with a success boolean indicating the request status, followed by a data object containing the relevant tax information. Each entry includes detailed fields like rates and notes, making it easy to parse.

Each endpoint provides various information types, such as VAT/GST rates, registration thresholds, historical rate data, and locale formatting. For example, the GET Get Registration Threshold endpoint returns domestic and foreign seller thresholds for VAT registration.

Data accuracy is maintained through an annual update process that fetches rates from authoritative sources like the OECD and national revenue services. Each update undergoes a review process before deployment, ensuring reliable information.

Typical use cases include calculating VAT/GST for invoices, determining applicable tax rates for e-commerce transactions, and ensuring compliance with international tax regulations. Businesses can use the API to automate tax calculations based on location and product type.

Users can utilize the returned data by integrating it into their invoicing systems or e-commerce platforms. For example, the formattedExample field can be directly used in checkout UIs to display prices according to local currency formatting rules.

General FAQs

To obtain your API key, first sign in to your account and navigate to the API you want to use. From the API's Pricing section, choose a plan and complete the subscription process. Once subscribed, return to the API page and you will see your API Access Key displayed at the top of the documentation page. You can use this key to authenticate your requests.

You can’t switch APIs during the free trial. If you subscribe to a different API, your trial will end and the new subscription will start as a paid plan.

The free trial lasts for 7 days and allows you to make up to 50 API requests.

No, the free trial is available only once, so we recommend using it on the API that interests you the most. Most of our APIs offer a free trial, but some may not include this option.

Yes. If the API offers a free trial, you will see a "Free 7-Day Trial" option in its Pricing section. The trial lasts for 7 days and allows up to 50 API requests, enabling you to evaluate the API before subscribing to a paid plan.

Zyla API Hub is like a big store for APIs, where you can find thousands of them all in one place. We also offer dedicated support and real-time monitoring of all APIs. Once you sign up, you can pick and choose which APIs you want to use. Just remember, each API needs its own subscription. But if you subscribe to multiple ones, you'll use the same key for all of them, making things easier for you.

Prices are listed in USD (United States Dollar), EUR (Euro), CAD (Canadian Dollar), AUD (Australian Dollar), and GBP (British Pound). We accept all major debit and credit cards. Our payment system uses the latest security technology and is powered by Stripe, one of the world's most reliable payment companies. If you have any trouble paying by card, just contact us at [email protected]

Additionally, if you already have an active subscription in any of these currencies (USD, EUR, CAD, AUD, GBP), that currency will remain for subsequent subscriptions. You can change the currency at any time as long as you don't have any active subscriptions.
The local currency shown on the pricing page is based on the country of your IP address and is provided for reference only. The actual prices are in USD (United States Dollar). When you make a payment, the charge will appear on your card statement in USD, even if you see the equivalent amount in your local currency on our website. This means you cannot pay directly with your local currency.
Occasionally, a bank may decline the charge due to its fraud protection settings. We suggest reaching out to your bank initially to check if they are blocking our charges. Also, you can access the Billing Portal and change the card associated to make the payment. If these does not work and you need further assistance, please contact our team at [email protected]
Prices are determined by a recurring monthly or yearly subscription, depending on the chosen plan.
API calls are deducted from your plan based on successful requests. Each plan comes with a specific number of calls that you can make per month. Only successful calls, indicated by a Status 200 response, will be counted against your total. This ensures that failed or incomplete requests do not impact your monthly quota.
Zyla API Hub works on a recurring monthly subscription system. Your billing cycle will start the day you purchase one of the paid plans, and it will renew the same day of the next month. So be aware to cancel your subscription beforehand if you want to avoid future charges.
To upgrade your current subscription plan, simply go to the pricing page of the API and select the plan you want to upgrade to. The upgrade will be instant, allowing you to immediately enjoy the features of the new plan. Please note that any remaining calls from your previous plan will not be carried over to the new plan, so be aware of this when upgrading. You will be charged the full amount of the new plan.
To check how many API calls you have left for the current month, refer to the 'X-Zyla-API-Calls-Monthly-Remaining' field in the response header. For example, if your plan allows 1,000 requests per month and you've used 100, this field in the response header will indicate 900 remaining calls.

You can monitor your API usage through the response headers included with every request:

x-zyla-api-calls-monthly-used: Shows the total number of API requests you have used during the current billing period.
x-zyla-api-calls-monthly-remaining: Shows the number of API requests you have remaining for the current billing period.

The 'X-Zyla-RateLimit-Reset' header shows the number of seconds until your rate limit resets. This tells you when your request count will start fresh. For example, if it displays 3,600, it means 3,600 seconds are left until the limit resets.

Yes, you can cancel your subscription at any time. Simply go to the Pricing section of the API you're subscribed to and click the "Unsubscribe" button.

Please note that upgrades, downgrades, and cancellations take effect immediately. Once your subscription is canceled, access to the service will end immediately, regardless of any remaining API calls in your quota.

After 7 days, you will be charged the full amount for the plan you were subscribed to during the trial. Therefore, it's important to cancel before the trial period ends. Refund requests for forgetting to cancel on time are not accepted.
When you subscribe to an API free trial, you can make up to 50 API calls. If you wish to make additional API calls beyond this limit, the API will prompt you to perform an "Start Your Paid Plan." You can find the "Start Your Paid Plan" button in your profile under Subscription -> Choose the API you are subscribed to -> Pricing tab.
You can contact us through our chat channel to receive immediate assistance. We are always online from 8 am to 5 pm (EST). If you reach us after that time, we will get back to you as soon as possible. Additionally, you can contact us via email at [email protected]

Please have a look at our Refund Policy: https://zylalabs.com/terms#refund


Related APIs