Developer API
Stamp Duty + Registration API
A free public API for Indian property registration cost calculation. No signup, no API key. CORS-enabled. Best-effort uptime on Cloudflare Workers.
Quickstart
Three curls
# Calculate via POST (JSON body)
curl -X POST 'https://stampduty.krakelabsindia.com/api/calculate' \
-H 'content-type: application/json' \
-d '{"state":"MH","deedType":"sale","consideration":8500000,"isWomanBuyer":true,"cityTier":"metro"}'
# Or via GET (query params)
curl 'https://stampduty.krakelabsindia.com/api/calculate?state=MH&deedType=sale&consideration=8500000&isWomanBuyer=true&cityTier=metro'
# List supported states + deed types
curl 'https://stampduty.krakelabsindia.com/api/states'
# Dataset metadata
curl 'https://stampduty.krakelabsindia.com/api/meta'Reference
Endpoints
| Method | Path | Params | Description |
|---|---|---|---|
POST | /api/calculate | JSON body — see schema below | Calculate stamp duty + registration fee. |
GET | /api/calculate?… | Same fields as query params | GET version (cache-friendly). |
GET | /api/states | — | List all states + their supported deed types. Use to populate UI dropdowns. |
GET | /api/meta | — | Dataset counts and snapshot date. |
GET | /openapi.json | — | OpenAPI 3.1 spec. Drop into Swagger Editor or Postman. |
Sample request — POST
POST /api/calculate
content-type: application/json
{
"state": "MH", // 2-letter code OR slug ("maharashtra")
"deedType": "sale", // sale | gift | gift-blood-relative | lease | mortgage | exchange | partition
"consideration": 8500000,
"isWomanBuyer": true, // optional, default false
"cityTier": "metro" // optional: metro | other (only matters for states with tier split)
}Sample response
{
"state": { "code": "MH", "name": "Maharashtra" },
"deedType": "sale",
"deedLabel": "Sale deed",
"consideration": 8500000,
"cityTier": "metro",
"isWomanBuyer": true,
"stampDuty": 425000,
"registrationFee": 30000,
"total": 455000,
"breakdown": [
{ "label": "Stamp duty (base)", "amount": 510000, "formula": "6% × ₹85,00,000 (metro)" },
{ "label": "Woman buyer rebate (-1%)", "amount": -85000, "formula": "-1% × ₹85,00,000" },
{ "label": "Registration fee", "amount": 30000, "formula": "1% × ₹85,00,000 (capped at ₹30,000)" }
],
"sourceUrl": "https://igrmaharashtra.gov.in",
"asOf": "2025-04-01",
"honestyNotes": ["...", "..."]
}Fair use
How to be a good citizen
- Cache aggressively. State rates change rarely — responses are safe to cache for ~1 week.
- Fair use, no hard rate limit.Stay under ~10 req/s sustained per origin. We don't currently enforce per-IP limits in code (Cloudflare's edge handles abuse), but reserve the right to block egregious patterns.
- Surface the honesty notes.They're part of the response — pass them to your users so they verify with the source SRO.
- No SLA. Best-effort free service.
Machine-readable
OpenAPI 3.1 spec
Paste https://stampduty.krakelabsindia.com/openapi.json into Swagger Editor or Postman to autogenerate clients.