Skip to main content

Tax API Irish PAYE, USC and PRSI as JSON

The engine behind this site, callable directly. Free, no API key, no sign-up.

Quick start

One GET request returns take-home pay for a gross salary. No key, no headers, no rate plan to sign up for.

curl "https://irishpaye.ie/api/v1/calculate?gross=60000&status=single&age=35"

Responses are JSON, cacheable for 24 hours, and CORS is open, so you can call this straight from a browser. Every endpoint is a GET with no side effects.

Endpoints

GET /api/v1/calculate

Take-home pay for a gross salary. gross is required; everything else is optional and falls back to the engine's own defaults.

Parameter Type Notes
grossnumberRequired. Annual gross salary, 1 to 10,000,000.
statusstringFiling status. Defaults to single. See the full list below.
ageintegerDefaults to 35. Drives PRSI exemptions and the age credit.
second_incomenumberOnly for married_two_incomes.
pensionnumberAnnual employee pension contribution.
medical_cardbooleanApplies the reduced USC rates.
single_parent, home_carer, rent_tax_credit, state_pension_contributorybooleanApply the corresponding credit or exemption.

GET /api/v1/rates/2026

Every rate, band, threshold and credit the engine uses, each with the Revenue page it came from. Read directly off the engine's constants, so it cannot drift from what the calculator actually applies.

GET /api/v1/

Machine-readable discovery document listing endpoints, parameters, valid filing statuses and rate limits.

Filing statuses

All twelve statuses Revenue recognises are supported. Pass the value on the left as status.

single                 married_one_income     married_two_incomes
one_parent             widowed_no_children    widowed_children
widowed_bereavement    widowed_parent_y1      widowed_parent_y2
widowed_parent_y3      widowed_parent_y4      widowed_parent_y5

Limits, errors and versioning

Rate limits. 120 requests a minute and 5,000 a day per IP. Exceeding either returns HTTP 429 with a JSON body. If you need more, get in touch.

Errors. A rejected parameter returns HTTP 400 with error.code, a human-readable error.message, and error.fields naming each field that failed. Nothing is guessed or silently coerced.

Versioning. The version is in the path. Within v1 only additive changes are made: new response keys and new optional parameters may appear, but existing keys will not be renamed or removed. A breaking change would ship as /api/v2/.

Dates matter. Employee PRSI steps from 4.20% to 4.35% on 1 October 2026, so the answer for the same salary differs before and after that date. Every response includes computed_for_date, resolved in Irish local time. Re-query rather than storing a figure indefinitely.

Privacy. Nothing you send is stored. There are no accounts, no keys and no request logging beyond an anonymous rate-limit counter, so no salary figure is ever retained.

Accuracy and licence

The API runs the same engine as the website, so a figure here always matches the figure on the page. Rates were last verified against Revenue's published tables on 29 July 2026. See methodology and sources for how that verification works.

Free to use, including commercially, with attribution to IrishPAYE.ie. Results are estimates for planning and are not tax advice.

Building something with it, or need higher limits, historical tax years or a support commitment? Get in touch.