SA Tax & Fiscal Reference API
Machine-readable South African tax parameters — income tax brackets, rebates, thresholds, UIF rates, transfer duty tables, and a calculation endpoint that computes tax liability given an income and age.
Base URL
Authentication
Include your Tax API key in the Authorization header as a Bearer token.
curl -H "Authorization: Bearer db_sars_tax_live_YOUR_KEY" \
https://api.crimate.net/v1/tax/brackets?year=2026Endpoints
/v1/tax/bracketsIncome tax brackets for a given year and type
Parameters: year (optional, defaults to current), type (optional: individual|company|trust)
Example
GET /v1/tax/brackets?year=2026&type=individual/v1/tax/rebatesTax rebates (primary, secondary, tertiary) by year
Parameters: year (optional)
Example
GET /v1/tax/rebates?year=2026/v1/tax/thresholdsTax-free thresholds by age group
Parameters: year (optional)
Example
GET /v1/tax/thresholds?year=2026/v1/tax/transfer-dutyProperty transfer duty brackets
Parameters: year (optional)
Example
GET /v1/tax/transfer-duty?year=2026/v1/tax/uifUIF contribution rates and ceiling
Parameters: year (optional)
Example
GET /v1/tax/uif?year=2026/v1/tax/calculateCalculate income tax for a given income, year, and age
Parameters: income (required, in cents), year (optional), age (optional, default 30)
Example
GET /v1/tax/calculate?income=50000000&year=2026&age=35/v1/tax/yearsList all available fiscal years
Parameters: None
Example
GET /v1/tax/yearsResponse Examples
Tax brackets response:
{
"fiscal_year": "2026",
"tax_type": "individual",
"brackets": [
{ "bracket": 1, "min_income": 0, "max_income": 23710000, "rate": 18.0, "base_tax": 0 },
{ "bracket": 2, "min_income": 23710000, "max_income": 37060000, "rate": 26.0, "base_tax": 426780 },
...
]
}Tax calculation response:
{
"fiscal_year": "2026",
"income": 50000000,
"age": 35,
"tax": 3013880,
"effective_rate": 6.03
}All monetary values are in South African cents (ZAR). Divide by 100 for rand amounts.
Try It
Enter your Tax API key to make a live request. Generate a key in the dashboard.
Try It
Make a live API call from your browser
curl -H "Authorization: Bearer db_sars_tax_live_YOUR_KEY" \
"https://crimate.net/v1/tax/years"Rate Limits
| Tier | Price | Rate Limit |
|---|---|---|
| Free | R0/mo | 30 req/min |
| Pro | R99/mo | 300 req/min |
Free tier includes unlimited access to current-year data. Pro tier adds historical data and higher limits.
Error Codes
All error responses follow a consistent JSON format:
{
"error": "error_code",
"message": "Human-readable description."
}| Status | Error Code | Description |
|---|---|---|
| 400 | invalid_request | The request body or query parameters are malformed. |
| 401 | unauthorized | Missing or invalid API key. |
| 403 | no_subscription | No active subscription for this API product. |
| 403 | quota_exceeded | Daily or monthly quota exceeded. |
| 404 | not_found | The requested resource does not exist. |
| 429 | rate_limit_exceeded | Too many requests. Check X-RateLimit-Remaining header. |
| 500 | internal_error | An unexpected server error occurred. |