Compute Indian personal income tax (Old vs New regime) for a selectable assessment year — deterministic, provably-attributed, and fully explainable with a §-level computation trace. No account, no data stored, identical requests return identical results.
POST /api/v1/income-tax/calculate with a JSON body containing your income.result.recommended and each regime’s totalTax.GET /api/v1/usage.Executes a real request against the production API. Import the OpenAPI spec into Swagger UI, Postman, or Insomnia for the full interface.
/api/v1/income-tax/calculatecurl -X POST https://www.esytol.com/api/v1/income-tax/calculate \
-H "Content-Type: application/json" \
-d '{"assessmentYear":"2026-27","income":{"salary":1800000,"other":0}}'| Method | Path | Purpose |
|---|---|---|
| POST | /api/v1/income-tax/calculate | Compute tax (both regimes) |
| GET | /api/v1/health | Liveness probe |
| GET | /api/v1/ready | Readiness probe |
| GET | /api/v1/version | Engine + API version, supported years |
| GET | /api/v1/usage | Your current-month usage for the resolved plan |
| GET | /api/v1/openapi.json | OpenAPI 3.1 document |
const res = await fetch("https://www.esytol.com/api/v1/income-tax/calculate", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
assessmentYear: "2026-27",
income: { salary: 1800000 },
}),
});
const data = await res.json();
console.log(data.result.recommended, data.result[data.result.recommended].totalTax);import requests
res = requests.post(
"https://www.esytol.com/api/v1/income-tax/calculate",
json={"assessmentYear": "2026-27", "income": {"salary": 1800000}},
)
data = res.json()
print(data["result"]["recommended"], data["result"]["new"]["totalTax"])HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://www.esytol.com/api/v1/income-tax/calculate"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(
"{\"assessmentYear\":\"2026-27\",\"income\":{\"salary\":1800000}}"))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());Estimates for computation and integration; verify complex or high-value cases with a tax professional. The engine covers resident individuals below 60 and applies each year’s Finance Act; it does not compute capital-gains special rates or firms/companies.