Free UK Tax Calculation API
A free, read-only REST API for UK income tax calculations using 2025-26 HMRC rates. Calculate income tax, National Insurance, student loan repayments and take-home pay for any salary.
Endpoint
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| gross | number | Yes | , | Annual gross salary in GBP (0-10,000,000) |
| region | string | No | england | england, scotland, wales, northern-ireland |
| studentLoan | string | No | none | none, plan1, plan2, plan4, plan5, postgrad |
| pensionPercent | number | No | 0 | Pension contribution as percentage of gross (0-100) |
| hoursPerWeek | number | No | 37.5 | Working hours per week, affects netHourly only (1-168) |
Example Request
Calculate take-home pay for a £35,000 salary in England:
With optional parameters (Scotland, Plan 2 student loan, 5% pension):
Example Response
Response for ?gross=35000®ion=england, 200 OK
{
"gross": 35000,
"region": "england",
"personalAllowance": 12570,
"taxableIncome": 22430,
"incomeTax": 4486,
"nationalInsurance": 1794,
"studentLoanRepayment": 0,
"pensionContribution": 0,
"totalDeductions": 6280,
"netPay": 28720,
"netMonthly": 2393,
"netWeekly": 552,
"netDaily": 110,
"netHourly": 14.73,
"effectiveTaxRate": 17.94,
"marginalTaxRate": 28,
"employerNI": 4500,
"totalCostToEmployer": 39500,
"breakdown": {
"incomeTaxBands": [
{
"name": "Personal Allowance",
"rate": 0,
"from": 0,
"to": 12570,
"taxableInBand": 12570,
"taxInBand": 0
},
{
"name": "Basic Rate (20%)",
"rate": 0.2,
"from": 12570,
"to": 50270,
"taxableInBand": 22430,
"taxInBand": 4486
},
{
"name": "Higher Rate (40%)",
"rate": 0.4,
"from": 50270,
"to": 125140,
"taxableInBand": 0,
"taxInBand": 0
},
{
"name": "Additional Rate (45%)",
"rate": 0.45,
"from": 125140,
"to": null,
"taxableInBand": 0,
"taxInBand": 0
}
],
"niBands": [
{
"name": "Below Primary Threshold",
"rate": 0,
"from": 0,
"to": 12570,
"earningsInBand": 12570,
"niInBand": 0
},
{
"name": "Main Rate (8%)",
"rate": 0.08,
"from": 12570,
"to": 50270,
"earningsInBand": 22430,
"niInBand": 1794
},
{
"name": "Upper Rate (2%)",
"rate": 0.02,
"from": 50270,
"to": null,
"earningsInBand": 0,
"niInBand": 0
}
]
},
"_meta": {
"note": "calculatetax.uk API, 2025-26 HMRC rates. Free to use. Please cache responses.",
"taxYear": "2025-26",
"source": "https://calculatetax.uk"
}
} Response Fields
| Field | Type | Description |
|---|---|---|
| gross | number | Annual gross salary (echoed from input) |
| personalAllowance | number | Tax-free personal allowance (tapers above £100,000) |
| taxableIncome | number | Gross minus personal allowance and pension |
| incomeTax | number | Annual income tax liability |
| nationalInsurance | number | Employee NI contributions (Class 1) |
| studentLoanRepayment | number | Annual student loan repayment (0 if no plan) |
| pensionContribution | number | Annual pension contribution (salary sacrifice) |
| totalDeductions | number | Sum of all deductions from gross |
| netPay | number | Annual take-home pay |
| netMonthly | number | Monthly take-home pay (netPay / 12) |
| netWeekly | number | Weekly take-home pay (netPay / 52) |
| netDaily | number | Daily take-home pay (netPay / 260 working days) |
| netHourly | number | Hourly take-home pay (based on hoursPerWeek) |
| effectiveTaxRate | number | Combined IT + NI as percentage of gross |
| marginalTaxRate | number | Combined marginal rate on next pound earned (%) |
| employerNI | number | Employer NI at 15% above £5,000 secondary threshold |
| totalCostToEmployer | number | Gross plus employer NI |
| breakdown | object | Detailed band-by-band breakdown of income tax and NI |
Error Responses
All errors return a JSON object with an error field and the appropriate HTTP status code.
| Status | Cause | Example error message |
|---|---|---|
| 400 | Missing or invalid parameter | Missing required parameter: gross |
| 400 | Gross out of range | Invalid gross: must be a number between 0 and 10,000,000 |
| 400 | Unknown region | Invalid region: must be one of england, scotland, wales, northern-ireland |
{"error":"Missing required parameter: gross"} Usage Notes
- All monetary values in the response are in GBP (£), rounded to the nearest pound, except
netHourlywhich is rounded to 2 decimal places. - Rates reflect 2025-26 HMRC rates. The API will be updated each tax year.
- Pension contributions are treated as salary sacrifice (reduces taxable income but not NI earnings).
- The
breakdownobject includes per-band income tax and NI details useful for building tax calculators. - Responses are cached with
Cache-Control: public, max-age=3600. Please cache on your end too. - Currently free with no rate limits. Subscribe to updates if you depend on this API.
Rate Limits & Updates
Currently free with no rate limits. Please cache responses where possible, the underlying tax rates only change once a year (April). Responses include a 1-hour cache header.
CORS is fully enabled, you can call this API directly from the browser or any frontend application. No API key required.
Subscribe for API updates