16,96,488 schools, searchable by state, district and the grade range a school actually covers.
“Covers grades” means the school’s own range contains the whole band you ask for — a Grade 1–12 school counts as a Grade 8–10 school.
Note. 2,255 centrally-run schools — Kendriya Vidyalayas, Navodaya Vidyalayas and three smaller systems — are filed in the source under their administering body rather than a state. They will not appear under , even when physically located there. Select the organisation by name in the State list to see them.
Choose a filter above to search.
| School | UDISE code | Grades | District | State | PIN |
|---|
Source & contact
UDISE+ school records, Department of School Education & Literacy, Ministry of Education, Government of India.
This directory is published as reference infrastructure for the education sector. To request a correction or removal, write to [email protected].
Dataset v2
A school matches a request for grades LO–HI when its own range starts at or below LO and ends at or above HI. The choice matters: filtering for grades 8–10 returns 271,355 schools under this rule, 752,643 if a school need only offer any of those grades, and 16,292 if its range must be exactly 8–10.
635 schools carry no class range in the source and are shown as Not recorded. They are left exactly as found rather than guessed at, and are excluded whenever you filter by grade. 365 of the 635 are in Tamil Nadu — 57% of the anomalies from 3.6% of the records — which reads as a state reporting convention rather than a real population of pre-primary institutions. We do not describe them as pre-primary, because the data does not support that.
15 records recorded their class range backwards — a start higher than the end. Under the covering rule a reversed range matches nothing, so these schools were invisible in every grade filter without ever raising an error. The two values have been interchanged. All 15 are in Rajasthan; a defect confined to exactly one state out of 41 is not chance. The correction is an inference and has not been confirmed against UDISE directly. The uncorrected records are retained, so the original extract remains reproducible.
2,255 schools are filed under an administering body instead of a state: Kendriya Vidyalaya Sanghathan (1,324), Navodaya Vidyalaya Samiti (664), MSRVVP (118), IAF EC Society (113) and Navy Education Society (36). The source records no geographic state for them anywhere, so a state filter will not find them. They appear in the State list under their own names.
The download returns exactly the rows your filters select, as UTF-8 CSV, with three columns more
than the table shows: school_id, the
source’s own record identifier, plus
igod_state_name and
igod_district_name — the same
places matched to the IGOD directory’s canonical spellings, so
SOUTH TWENTY FOUR PARGANAS also appears as
South 24 Parganas. The UDISE columns are kept
as the source writes them; use whichever suits your join.
Names are reproduced as the source holds them, and the
source is untidy:
2,918 school names contain a line break,
35 contain a double quote and 24,131 have
leading or trailing spaces. These are properly quoted and escaped, so any real CSV reader
— Excel, pandas, R — will load the file correctly. Counting lines with a text editor
or wc -l will overcount, because a
quoted name can span two lines.
There are two download paths, and they differ only in row order. A filtered
download is assembled here in your browser, one district at a time, and is ordered by
school_id within each district
rather than globally. The whole directory is a
pre-built gzipped file — 29 MB compressed,
125 MB expanded — served in a single request and ordered by
school_id throughout. The columns are
identical either way.
A source column marks where each
record came from. 16,95,443 are
UDISE records. A further
1,045 — 779
Cambridge and 266
IB — are international schools that hold
no UDISE code, taken from those boards’ own school finders and carrying the identifiers
CAMBIND-0001 and
IBIND-0001 onwards. Those
directories publish no grade range or pincode, so both are blank for these rows — which also
means they never match a grade filter.
Some of these overlap with UDISE records. Only
656 of the 1,045 are genuinely absent from
UDISE. Another 322 match exactly one UDISE school in the same state, and
67 match several. Both rows are kept — the international listing
records an accreditation that UDISE does not — and the overlap is named rather than hidden:
duplicate_status and
duplicate_of_udise_code let you
collapse them. Matching is exact on the name once punctuation is stripped, within a state, so
these counts are a floor. If you are counting schools
rather than looking them up, exclude rows where
duplicate_status is not
‘unique’.
Coverage is what the source contains, not a census. Nothing here is independently verified against the schools themselves, and the extract is a snapshot rather than a live feed.