Register for a free API key at https://api.data.gov/signup; the key is required in every request and the default rate limit is 1,000 requests per IP address per hour.
Construct a GET request to the base endpoint https://api.data.gov/ed/collegescorecard/v1/schools with query parameter api_key=your_api_key; additional parameters filter and shape the response.
Use the fields parameter to request only the variables you need (e.g., fields=id,school.name,school.state,latest.admissions.admission_rate.overall,latest.earnings.10_yrs_after_entry.median); requesting all fields by default returns an extremely large payload.
Filter results using field-based operators: school.state=CA returns California institutions; school.degrees_awarded.predominant=3 filters for institutions predominantly awarding bachelor's degrees; combine filters with & in the query string.
Paginate using per_page (max 100) and page parameters; the response envelope includes metadata.total indicating the total number of matching records — iterate pages until all records are retrieved.
For bulk downloads of the full dataset rather than API queries, download the CSV files from https://collegescorecard.ed.gov/data/ which contain all variables for all institutions and are updated with each annual release.
Known gotchas
Field names follow a dotted-path convention (school.name, latest.admissions.admission_rate.overall) and the nesting structure differs from the JSON response structure — consult the data dictionary at collegescorecard.ed.gov/data/data-documentation to map field names to response paths.
Many data fields are suppressed (returned as null or privacy_suppressed) for institutions with small cohort sizes to protect student privacy; queries filtering on suppressed fields will match records where the field is null, which may not be the intended behavior.
The latest.* prefix retrieves the most recent available data, but availability varies by field — some fields have data only through a specific year while others are current; check the data documentation for each variable's data vintage.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp