Developer API
Govt Scheme Eligibility API
A free, deterministic API for matching an Indian citizen's profile against curated central + state schemes. No API key. No signup. CORS-enabled.
Three curls
# Match — POST profile
curl -X POST 'https://schemes.krakelabsindia.com/api/match' \
-H 'content-type: application/json' \
-d '{"age":32,"state":"MH","gender":"female","annualIncome":250000,"isFarmer":false,"isStudent":false,"isBPL":false}'
# Match — GET (curl-friendly)
curl 'https://schemes.krakelabsindia.com/api/match?age=32&state=MH&gender=female&annualIncome=250000'
# Browse the dataset
curl 'https://schemes.krakelabsindia.com/api/schemes?sector=education&state=MH&page=1&limit=20'
# Dataset metadata
curl 'https://schemes.krakelabsindia.com/api/meta'Endpoints
| Method | Path | What it does |
|---|---|---|
POST | /api/match | Profile → eligible schemes (recommended). |
GET | /api/match?... | Same matcher, query-string variant for quick testing. |
GET | /api/schemes | Paginated list of all schemes; filterable by sector, state, keyword. |
GET | /api/meta | Dataset counts + snapshot date. |
GET | /openapi.json | Full OpenAPI 3.1 spec. |
Profile shape
interface Profile {
age: number; // 0-120
state: string; // 2-letter code, e.g. "MH", "TN", "DL"
gender: "male"|"female"|"other";
annualIncome: number; // INR per year
isFarmer: boolean;
isStudent: boolean;
isBPL: boolean;
hasBankAccount: boolean;
occupation:
| "farmer" | "student" | "working"
| "self-employed" | "retired" | "unemployed" | "any";
category: "GEN"|"OBC"|"SC"|"ST"|"MINORITY"|"ANY";
areaType: "urban"|"rural"|"any";
}Honest fine print
Filter-based, not AI-powered.We hard-code a curated set of eligibility predicates per scheme. There's no LLM call, no live MyScheme fetch, no third-party data.
Use as a starting filter only.The official portal has the final word. We can't see your Aadhaar, ration card, income certificate, caste certificate or land record — the scheme authority does.
No SLA. Best-effort free service on Cloudflare Workers. Cache aggressively (responses set Cache-Control: public, max-age=3600).