Structured tax data for 111 countries — brackets, social contributions, and net income calculations
https://api.countrytaxcalc.comThe CountryTaxCalc API provides accurate income tax data for 111 countries. All data is sourced from official government tax authorities and updated annually.
To request an API key, contact daniel@countrytaxcalc.com.
All endpoints except /health require an API key, passed as a header:
X-API-Key: your_api_key_here Or as a query parameter: ?api_key=your_api_key_here
Requests without a valid key return 401 Unauthorized.
/api/v1/health Public Status check. No authentication required.
curl https://api.countrytaxcalc.com/api/v1/health {
"status": "healthy",
"timestamp": "2026-04-15T12:00:00.000Z",
"database": "connected"
} /api/v1/countries List all supported countries.
curl https://api.countrytaxcalc.com/api/v1/countries \
-H "X-API-Key: your_key" /api/v1/countries/{code} Country metadata — currency, complexity, available jurisdictions.
curl https://api.countrytaxcalc.com/api/v1/countries/DE \
-H "X-API-Key: your_key" /api/v1/countries/{code}/rates New Raw tax bracket data for a country — no income calculation required. Cached for 1 hour.
curl https://api.countrytaxcalc.com/api/v1/countries/DE/rates \
-H "X-API-Key: your_key" {
"country_code": "DE",
"country_name": "Germany",
"currency": "EUR",
"tax_year": 2026,
"calculation_type": "progressive",
"source_url": "https://www.bundesfinanzministerium.de/",
"last_updated": "2026-04-15",
"brackets": [
{ "from": 0, "to": 11784, "rate": 0, "rate_percent": "0.0%" },
{ "from": 11784, "to": 66761, "rate": 0.14, "rate_percent": "14.0%" },
{ "from": 66761, "to": null, "rate": 0.42, "rate_percent": "42.0%" }
],
"deductions": [...],
"social_contributions": [
{
"name": "Health Insurance (Employee)",
"type": "health_employee",
"employee_rate": 0.0735,
"employer_rate": 0.0735,
"cap_amount": null
}
]
} Optional query params: ?year=2026
/api/v1/calculate Calculate tax for a specific income in a specific country. Returns full breakdown including deductions, social contributions, and net income.
curl -X POST https://api.countrytaxcalc.com/api/v1/calculate \
-H "X-API-Key: your_key" \
-H "Content-Type: application/json" \
-d '{
"country": "DE",
"income": 80000,
"currency": "EUR"
}' {
"country": "Germany",
"country_code": "DE",
"tax_year": 2026,
"currency": "EUR",
"currency_symbol": "€",
"currency_name": "Euro",
"currency_conversion": {
"input_income": 80000,
"input_currency": "USD",
"local_currency": "EUR",
"exchange_rate": 0.9234,
"converted_income": 73872,
"rate_date": "2026-04-25",
"fx_source": "frankfurter",
"fx_rate_age_hours": 18.4
},
"gross_income": 73872,
"breakdown": {
"taxable_income": 62268,
"deductions": [...],
"national_income_tax": {
"amount": 19843,
"effective_rate": 26.86,
"marginal_rate": 42,
"brackets_applied": [...]
},
"social_contributions": [...]
},
"totals": {
"total_tax": 25634,
"net_income": 48238,
"effective_tax_rate": 34.7,
"take_home_percentage": 65.3,
"monthly_net_income": 4019.8
},
"metadata": {
"accuracy_confidence": 0.95,
"data_source": "https://www.bundesfinanzministerium.de/",
"last_updated": "2026-04-15"
},
"warnings": []
} Note: currency_conversion only appears when the input currency differs from the country's local currency. The fx_source field is "frankfurter" (ECB, 30 currencies) or "exchangerate-api" (160+ currencies).
| Field | Type | Required | Description |
|---|---|---|---|
country | string | Yes | ISO 2-letter code (DE) or country name (Germany) |
income | number | Yes | Annual gross income in local currency |
currency | string | No | ISO 4217 code. If different from the country's local currency, auto-conversion is applied. Defaults to local currency. |
jurisdiction | string | No | State/province code for US (CA), Canada (ON), etc. |
tax_year | number | No | Defaults to current year |
/api/v1/summary New All 111 countries ranked by effective tax rate for a given income level. Useful for building country comparison tables.
curl "https://api.countrytaxcalc.com/api/v1/summary?income=100000" \
-H "X-API-Key: your_key" {
"income": 100000,
"currency_note": "Income treated as nominal in each country's local currency.",
"tax_year": 2026,
"total_countries": 111,
"countries": [
{
"rank": 1,
"country_code": "AE",
"country_name": "United Arab Emirates",
"currency": "AED",
"income_tax": 0,
"social_tax": 0,
"total_tax": 0,
"net_income": 100000,
"effective_tax_rate": 0,
"effective_tax_rate_percent": "0.0%"
},
...
]
} Optional query params: ?year=2026
Note: Income is treated as a nominal figure in each country's local currency. This endpoint is designed for relative tax burden comparisons, not absolute take-home pay comparisons across currencies.
/api/v1/compare Compare tax burden across multiple specific countries for the same income.
curl -X POST https://api.countrytaxcalc.com/api/v1/compare \
-H "X-API-Key: your_key" \
-H "Content-Type: application/json" \
-d '{
"income": 100000,
"currency": "USD",
"countries": [
{ "country": "US", "jurisdiction": "CA" },
{ "country": "GB" },
{ "country": "DE" },
{ "country": "SG" }
]
}' Use standard ISO 3166-1 alpha-2 codes (e.g. GB, DE, JP). Country names also accepted (e.g. Germany).
For US state tax, pass "country": "US" with "jurisdiction": "CA" (California), "TX" (Texas), etc.
For Canadian provincial tax, pass "country": "CA" with "jurisdiction": "ON" (Ontario), "BC", etc.
Every /calculate response includes metadata.accuracy_confidence:
| Value | Meaning |
|---|---|
0.95 | DB-backed — sourced directly from official government tax authority |
0.70 | JS fallback — built-in data, may be less current |
API usage requires a visible attribution link near any displayed tax data:
<a href="https://www.countrytaxcalc.com" rel="dofollow">
Powered by CountryTaxCalc.com
</a> The API is available to partners and developers. Email daniel@countrytaxcalc.com with a brief description of your use case.