illinoisreportcard.com APIillinoisreportcard.com ↗
Access Illinois public school and district data: demographics, ELA/math/science achievement, teacher stats, finances, accountability, and environment via 17 endpoints.
curl -X GET 'https://api.parse.bot/scraper/add32287-babf-477c-8a70-63e1327b7264/search_schools?query=Springfield' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for schools, districts, or cities by name. Returns matching results with IDs that can be used with other endpoints. Searches across school, district, and city types simultaneously.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search term (school, district, city, or county name) |
{
"type": "object",
"fields": {
"results": "array of search results, each with type (School/District/City), id (alphanumeric identifier for schools and districts), and name"
},
"sample": {
"data": {
"results": [
{
"id": "510841860250002",
"name": "SPRINGFIELD HIGH SCHOOL",
"type": "School"
},
{
"id": "510841860250003",
"name": "SPRINGFIELD SOUTHEAST HIGH SCH",
"type": "School"
},
{
"id": "51084186025",
"name": "SPRINGFIELD SD 186",
"type": "District"
}
]
},
"status": "success"
}
}About the illinoisreportcard.com API
The Illinois Report Card API exposes 17 endpoints covering Illinois public school and district data, from statewide snapshots to per-school achievement, demographics, and finances. Start with search_schools to find schools or districts by name and retrieve their IDs, then call endpoints like get_school_profile, get_ela_achievement_profiles, or get_teachers to pull year-by-year data including enrollment figures, ESSA designations, average teacher salaries, and per-pupil expenditure.
Search and Identification
All school-specific endpoints require an alphanumeric school_id or district_id. Use search_schools with a query string to find matching schools, districts, or cities simultaneously. Each result includes a type field (School, District, or City) and an id you pass to downstream endpoints. District IDs (e.g. 51084186025) are shorter than school IDs (e.g. 510841860250002); make sure you use the right one for get_district_profile versus school-level endpoints.
Achievement and Growth Data
Academic performance is split across several endpoints. get_ela_achievement_profiles and get_math_achievement_profiles return fields like satelaaveragescore, satmathaveragescore, iarsgpela, and iarsgpmath. get_science_achievement_profiles includes averagescorescience. Growth endpoints get_ela_growth and get_math_growth return student growth percentile fields (iarsgpela, hssgpela, iarsgpmath, hssgpmath); these return -999 when data is unavailable for a school. get_eighth_grade_algebra similarly returns the eighthgradealgebra field as -999 for schools that don't serve 8th grade.
School Environment, Staff, and Finances
get_school_environment surfaces attendance-related metrics including attendancerate, chronicabsenteeism, and averageclasssize. get_teachers returns noteachers, averageteachersalary, percentteacherswmasters, and noviceteacherspct; get_administrators returns noadmins, averageadminsalary, pupiladminratio, and noviceadmin. Both staff endpoints return -999 for fields unavailable at the school level. get_school_finances includes instructionalexpperpupil, operationalexpperpupil, and prioryeartotalrevenue.
Accountability and Demographics
get_accountability returns essadesignation, essadesignationreasoncode, title1status, and school improvement status year by year. get_students_demographics returns a demographic array with race/ethnicity codes, enrollment percentages, and assessment breakdowns per group. All entity-level endpoints return data in an entitylist array indexed by year, alongside a currentYear string and a responseCode field. get_state_snapshot requires no inputs and returns statewide aggregates including graduation rates, teacher statistics, and financial figures.
- Track year-over-year ELA and math proficiency trends for a specific Illinois school using
get_ela_achievement_profilesandget_math_achievement_profiles. - Compare chronic absenteeism and average class size across schools in a district using
get_school_environment. - Build a school finder app that resolves school names to IDs via
search_schoolsand displays ESSA designation status fromget_accountability. - Analyze teacher salary and retention data by district using
get_teachersfields likeaverageteachersalaryandnoviceteacherspct. - Aggregate per-pupil expenditure data from
get_school_financesto study funding equity across Illinois districts. - Monitor statewide graduation rates and enrollment trends using
get_state_snapshotwithout any school-specific inputs. - Generate demographic breakdowns by race/ethnicity and correlate with achievement scores using
get_students_demographicsandget_ela_achievement_profiles.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does illinoisreportcard.com have an official developer API?+
What does `get_school_profile` return versus the subject-specific achievement endpoints?+
get_school_profile returns a broad entitylist covering enrollment, grades served, demographics, contact info, attendance, and financial data in a single call. The subject-specific endpoints (get_ela_achievement_profiles, get_math_achievement_profiles, get_science_achievement_profiles) focus on score fields like satelaaveragescore and averagescorescience. If you only need achievement data, the subject endpoints are more targeted; for a full school snapshot, get_school_profile is the starting point.What does a `-999` value in a response field mean?+
-999 value indicates the data point is unavailable for that school or year. This is common in get_teachers and get_administrators for small schools, in get_eighth_grade_algebra for schools that don't serve 8th grade, and in growth fields like iarsgpela or hssgpmath when sample sizes are too small to report.Does the API cover private schools or schools outside Illinois?+
Can I retrieve data filtered by grade level, subject group, or subpopulation within a demographic?+
get_students_demographics returns a demographic array with multiple race/ethnicity breakdowns per year, but filtering must be done client-side after retrieving the full dataset. You can fork the API on Parse and revise it to add input-level filtering logic.