Gov APIkys.udiseplus.gov.in ↗
Access Indian school data from UDISE Plus: states, districts, blocks, school categories, management types, and full school profiles via 7 endpoints.
What is the Gov API?
The UDISE Plus Know Your School API exposes 7 endpoints covering India's national school database, from geographic hierarchies (states, districts, blocks) down to individual school profiles. The get_school_details endpoint returns four distinct data sections per school — profile, facility, statistics, and report card — identified by a numeric UDISE school code. Lookup endpoints cover all states and union territories including centrally administered bodies like Kendriya Vidyalaya Sanghathan.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/cf9b943b-9961-4e2b-a62d-a207d488a140/get_academic_years' \ -H 'X-API-Key: $PARSE_API_KEY'
Fetch the list of academic years available in the system. Returns year IDs and descriptions used as parameters in other endpoints. The list is small (typically 5-6 entries) and does not paginate.
No input parameters required.
{
"type": "object",
"fields": {
"data": "array of academic year objects with yearId and yearDesc"
},
"sample": {
"data": {
"data": [
{
"yearId": 0,
"yearDesc": "Real Time"
},
{
"yearId": 11,
"yearDesc": "2024-25"
},
{
"yearId": 10,
"yearDesc": "2023-24"
}
]
},
"status": "success"
}
}About the Gov API
Geographic Hierarchy
Navigation starts with get_states, which returns all Indian states, union territories, and centrally-administered school bodies with their internal stateId and udiseStateCode. Feed the internal stateId into get_districts to retrieve districts for that state. From there, pass a districtId to get_blocks to get block-level divisions. Note that all three of these endpoints accept an optional year_id from get_academic_years; omitting it defaults to real-time data. Always use the internal integer IDs — not the UDISE codes — when chaining calls.
School Lookup Parameters
get_categories and get_managements return small fixed reference lists. Categories cover school levels (Primary, Upper Primary, Secondary, Higher Secondary) via catId and catValue. Management types — roughly 17 entries including Department of Education, Government Aided, and Private Unaided — are returned as managementId and managementName. These lists don't paginate and are stable across requests.
School Details
get_school_details takes a single required parameter: the numeric UDISE school_id. The response aggregates four sections. profile includes address, headmaster details, board affiliation, and medium of instruction. facility covers classrooms, toilets, electricity status, library, playground, and internet availability. statistics provides student and teacher counts. report_card gives location classification, category, management type, and granular teacher/student breakdowns. Sub-sections may be absent if the school hasn't reported that data for the year.
Academic Year Coverage
get_academic_years returns a small list (typically 5–6 entries) of year objects with yearId and yearDesc. The year_id parameter in hierarchy endpoints lets you pull data as reported for a specific academic year rather than the default real-time snapshot.
The Gov API is a managed, monitored endpoint for kys.udiseplus.gov.in — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when kys.udiseplus.gov.in changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official kys.udiseplus.gov.in API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a school finder that lets users drill down from state to district to block and list schools by management type.
- Aggregate facility data (electricity, internet, toilets) across districts to identify infrastructure gaps.
- Compare teacher-to-student ratios across government-aided vs. private unaided schools using statistics fields.
- Track year-over-year enrollment changes for a specific school by querying get_school_details across multiple year_ids.
- Map school distribution by category (Primary, Secondary, etc.) across blocks using geographic hierarchy endpoints.
- Pull school profile fields — board affiliation and medium of instruction — to filter schools for language-specific education research.
- Generate district-level reports on school counts segmented by management type using get_managements reference data.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.