A free API for Indian tax calculations
Income tax, capital gains, HRA, TDS on salary, gratuity, EMI, GST and presumptive income as plain JSON. No sign-up, no key — just POST the figures and get the result with its full working.
Pure computation
Every figure comes from the Finance Act rate tables encoded in the engine. Nothing is fetched from government systems and nothing you send is stored.
The working, every time
Each response carries a trace: labelled steps with amounts and section references, so a result can be checked line by line.
Fair-use limits
60 requests a minute and 2,000 a day per IP address, reported in X-RateLimit-* headers. CORS is open for browser use.
Versioned rules
Responses include rulesVersion and a verified flag; a provisional year (such as a copy awaiting the next Finance Act) is marked false.
One request
Base URL: /api/public/calc. All calculators are POST with a JSON body and return 200 with an envelope of ok, engine, result and terms.
Request
curl -s -X POST https://ca.lsync.io/api/public/calc/income-tax \
-H 'Content-Type: application/json' \
-d '{
"fy": "2025-26",
"age": 30,
"regime": "both",
"income": { "salary": 1800000, "savingsInterest": 12000 },
"deductions": { "sec80C": 150000, "sec80D": { "self": 25000 } },
"hra": { "basic": 900000, "hraReceived": 300000, "rentPaid": 240000, "metro": true }
}'Response (abridged)
{
"ok": true,
"engine": "1.0.0",
"result": {
"fy": "2025-26",
"ay": "2026-27",
"rulesVersion": "2025-26.1",
"verified": true,
"new": { "totalIncome": 1725000, "totalTax": 150800, "trace": [ ... ] },
"old": { "totalIncome": 1211000, "totalTax": ..., "trace": [ ... ] },
"recommended": "new",
"savings": ...
},
"terms": "Estimates computed from published Finance Act rate tables, not tax advice. ..."
}From a browser or Node
const res = await fetch("https://ca.lsync.io/api/public/calc/gst", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ amount: 1180, rate: 18, mode: "inclusive", supply: "intra" }),
})
const { result } = await res.json()
// result.taxableValue === 1000, result.cgst === 90, result.sgst === 90
// result.amountInWords === "Rupees One Thousand One Hundred Eighty Only"What you can call
Field names and examples for each request are in the OpenAPI document.
| Method | Path | Purpose |
|---|---|---|
| POST | /api/public/calc/income-tax | Income tax under the new and old regimes, with the recommended regime |
| POST | /api/public/calc/capital-gains | Gain and tax on one asset: equity, mutual funds, property, gold, bonds |
| POST | /api/public/calc/hra | House-rent-allowance exemption under Sec 10(13A) |
| POST | /api/public/calc/tds-salary | Monthly TDS an employer should deduct under Sec 192 |
| POST | /api/public/calc/gratuity | Gratuity per the 1972 Act and the Sec 10(10) exemption |
| POST | /api/public/calc/emi | Loan EMI with a yearly or monthly amortisation schedule |
| POST | /api/public/calc/gst | GST split — inclusive or exclusive, CGST/SGST or IGST, amount in words |
| POST | /api/public/calc/presumptive | Deemed income under Sec 44AD / 44ADA with the turnover tests |
| GET | /api/public/calc/version | Engine version and the rate tables with their verification status |
| GET | /api/public/calc/openapi.json | OpenAPI 3.0 description of this API |
Years covered
- FY 2024-25AY 2025-262024-25.1verified
Finance (No. 2) Act 2024; Income-tax Act 1961 as amended
Rebate u/s 87A against STCG (111A) under the new regime was disputed for this year; this table allows it, matching the position taken in the revised ITR utilities.
- FY 2025-26AY 2026-272025-26.1verified
Finance Act 2025; Income-tax Act 1961 as amended
- FY 2026-27AY 2027-282026-27.0-draftprovisional
Copied from FY 2025-26 pending verification
Verify against Finance Act 2026 / Income-tax Act 2025 before relying on this year. Section references below are to the 1961 Act; the 2025 Act renumbers them. CII for 2026-27 not yet encoded — indexation falls back to the latest index.
Good to know
- Rate limit. 60 requests a minute and 2,000 a day per IP. Over the limit you get
429with aRetry-Afterheader. - Validation. Bad input returns
400with{ ok: false, error, issues }. - Amounts are rupees as numbers; dates are
YYYY-MM-DD; the financial year is written2025-26. - Privacy. Requests are counted, not stored. We log the endpoint and status code only.
Terms
The calculators produce estimates from published rate tables. They are not tax advice and do not account for every provision of the Act. Verify results with a qualified professional before relying on them. The API is offered as-is and may change; the OpenAPI document is the reference.
The same engine runs inside the practice suite
Firms on LSync Practice Suite get these calculators with save-to-client, alongside filing trackers, registry lookups and billing. Register your firm at hub.lsync.io/register-firm.