Discover/Illinois Report Card API
live

Illinois Report Card APIillinoisreportcard.com

Access Illinois public school and district data: demographics, ELA/math/science achievement, teacher stats, finances, accountability, and environment via 17 endpoints.

Endpoint health
verified 4d ago
get_ela_achievement_profiles
get_school_profile
get_teachers
get_administrators
get_school_finances
17/17 passing latest checkself-healing
Endpoints
17
Updated
26d ago

What is the Illinois Report Card 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.

Try it
Search term (school, district, city, or county name)
api.parse.bot/scraper/add32287-babf-477c-8a70-63e1327b7264/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/add32287-babf-477c-8a70-63e1327b7264/search_schools?query=Springfield' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace illinoisreportcard-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""
Illinois Report Card API - Usage Example

Get your API key from: https://parse.bot/settings
"""
from parse_apis.illinois_report_card_api import IllinoisReportCard, SchoolData, EntityYear

client = IllinoisReportCard(api_key="YOUR_API_KEY")

# Search for schools
for result in client.searchresults.search(query="Springfield"):
    print(result.name, result.type, result.id)

# Get a school's profile data by constructing from a known ID
school = client.school(id="510841860250002")
profile = school.profile()
print(profile.current_year, profile.response_code)

for year_data in profile.entitylist:
    print(year_data.year, year_data.name, year_data.enrollment, year_data.attendancerate)

# Get teacher data for the same school
teacher_data = school.teachers()
for year_data in teacher_data.entitylist:
    print(year_data.year, year_data.averageteachersalary, year_data.instructionalexpperpupil)

# Get district profile
district = client.district(id="51084186025")
district_profile = district.profile()
print(district_profile.current_year, district_profile.response_code)

# Get statewide snapshot
state = client.statedatas.snapshot()
for year_data in state.entitylist:
    print(year_data.year, year_data.enrollment, year_data.hsgraduationrate)
All endpoints · 17 totalmissing one? ·

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.

Input
ParamTypeDescription
queryrequiredstringSearch term (school, district, city, or county name)
Response
{
  "type": "object",
  "fields": {
    "results": "array of search result objects each with type, id, and name"
  },
  "sample": {
    "data": {
      "results": [
        {
          "id": "510841860250002",
          "name": "SPRINGFIELD HIGH SCHOOL",
          "type": "School"
        },
        {
          "id": "51084186025",
          "name": "SPRINGFIELD SD 186",
          "type": "District"
        }
      ]
    },
    "status": "success"
  }
}

About the Illinois Report Card API

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.

Reliability & maintenanceVerified

The Illinois Report Card API is a managed, monitored endpoint for illinoisreportcard.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when illinoisreportcard.com 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 illinoisreportcard.com 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.

Last verified
4d ago
Latest check
17/17 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Track year-over-year ELA and math proficiency trends for a specific Illinois school using get_ela_achievement_profiles and get_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_schools and displays ESSA designation status from get_accountability.
  • Analyze teacher salary and retention data by district using get_teachers fields like averageteachersalary and noviceteacherspct.
  • Aggregate per-pupil expenditure data from get_school_finances to study funding equity across Illinois districts.
  • Monitor statewide graduation rates and enrollment trends using get_state_snapshot without any school-specific inputs.
  • Generate demographic breakdowns by race/ethnicity and correlate with achievement scores using get_students_demographics and get_ela_achievement_profiles.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does illinoisreportcard.com have an official developer API?+
The Illinois State Board of Education publishes data through illinoisreportcard.com but does not offer a documented public developer API with versioned endpoints or API keys. This Parse API provides structured programmatic access to that data.
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?+
A -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?+
No. The API covers Illinois public schools and districts only, as reported through illinoisreportcard.com. Private schools, charter schools not tracked by ISBE, and schools in other states are not included. You can fork this API on Parse and revise it to target a different state's report card source or add a private school data endpoint.
Can I retrieve data filtered by grade level, subject group, or subpopulation within a demographic?+
The endpoints do not accept grade-level or subpopulation filters as inputs. 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.
Page content last updated . Spec covers 17 endpoints from illinoisreportcard.com.
Related APIs in EducationSee all →
cps.edu API
Search Chicago Public Schools by name and filters, retrieve full school listings with key details, and download school attendance boundary GeoJSON for mapping.
niche.com API
Search and retrieve data on K-12 schools and colleges from Niche.com, including rankings, report card grades, stats, and user reviews.
kys.udiseplus.gov.in API
Search for schools across India by geographic region and management type, then access detailed information about any school including academic performance, facilities, and enrollment data. Navigate through states, districts, and blocks to find schools that match your criteria and compare their profiles.
maxpreps.com API
Access high school sports data from MaxPreps. Search for schools, retrieve team rosters and schedules, look up athlete profiles, and browse national or state rankings across all sports.
idoi.illinois.gov API
Search for licensed insurance producers, agents, agencies, and public adjusters in Illinois while accessing their professional credentials and contact information. Quickly verify agent licensing status and retrieve detailed practitioner details through comprehensive site-wide search capabilities.
athletic.net API
Search and analyze cross country and track & field performance data across the US, including athlete profiles, meet results, team rosters, and rankings. Access comprehensive meet information, historical records, and state-level competition data to track athlete progress and discover top performers.
myschool.ng API
Search for Nigerian schools by type, explore courses and admission requirements, and stay updated with the latest education news all in one place. Find detailed information about schools and their programs to make informed decisions about your education.
annualreports.com API
Search for and access thousands of international company annual reports in PDF and HTML formats, while filtering by ticker, exchange, industry, sector, company size, and location. Browse company profiles and financial documents across different markets and industries to find the information you need.