schools: Search schools

API: ed.gov:college-scorecard-api
Endpoint: /schools
Response format: text/html
Charset: utf-8
Auth: unknown
Method: GET
Last Status: 404
Latency: 291ms

Description

Search for colleges and universities with various filters and fields.

Parameters (14)

api_key (string, query, optional)

API key for data.gov (optional but recommended)

fields (string, query, optional)

Comma-separated list of fields to return

latest.admissions.admission_rate.overall (number, query, optional)

Filter by admission rate

latest.cost.attendance.academic_year (number, query, optional)

Filter by cost of attendance

latest.student.size (integer, query, optional)

Filter by student enrollment size

page (integer, query, optional, default: 0)

Page number for pagination

per_page (integer, query, optional, default: 20)

Number of results per page (max 100)

Constraints: {'maximum': 100}

school.city (string, query, optional)

Filter by city

school.degrees_awarded.predominant (integer, query, optional)

Filter by predominant degree awarded

school.name (string, query, optional)

Filter by school name (partial match)

school.ownership (integer, query, optional)

Filter by ownership (1=Public, 2=Private nonprofit, 3=Private for-profit)

Constraints: {'enum': [1, 2, 3]}

school.state (string, query, optional)

Filter by state abbreviation (e.g., 'CA', 'NY')

school.zip (string, query, optional)

Filter by ZIP code

sort (string, query, optional)

Field to sort by

Examples (3)

Search colleges by name curl
curl 'https://collegescorecard.ed.gov/schools?school.name=Harvard' \
  -d '"<html>\n<head><title>404 Not Found</title></head>\n<body>\n<h1>404 Not Found</h1>\n<ul>\n<li>Code: NoSuchKey</li>\n<li>Message: The specified key does not exist.</li>\n<li>Key: schools/index.html</li>\n<li>RequestId: JRC4RVQJ345Q8GK8</li>\n<li>HostId: n2cH0GZ5wkMs+Kj3EaRBs9QWP81KEteSghx7+GRRV2RFuic/ryqMuDYUpzvgGYt+ZCAzSr+Sc+UaLHc6SaaOKw031STKwXC3</li>\n</ul>\n<hr/>\n</body>\n</html>\n"'
import requests

resp = requests.get(
    "https://collegescorecard.ed.gov/schools",
    params={
        'school.name': 'Harvard',
    },
    json="<html>\n<head><title>404 Not Found</title></head>\n<body>\n<h1>404 Not Found</h1>\n<ul>\n<li>Code: NoSuchKey</li>\n<li>Message: The specified key does not exist.</li>\n<li>Key: schools/index.html</li>\n<li>RequestId: JRC4RVQJ345Q8GK8</li>\n<li>HostId: n2cH0GZ5wkMs+Kj3EaRBs9QWP81KEteSghx7+GRRV2RFuic/ryqMuDYUpzvgGYt+ZCAzSr+Sc+UaLHc6SaaOKw031STKwXC3</li>\n</ul>\n<hr/>\n</body>\n</html>\n",
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("college-scorecard")
result = api.fetch("schools", school.name="Harvard")

for item in result:
    print(item)
const body = "<html>\n<head><title>404 Not Found</title></head>\n<body>\n<h1>404 Not Found</h1>\n<ul>\n<li>Code: NoSuchKey</li>\n<li>Message: The specified key does not exist.</li>\n<li>Key: schools/index.html</li>\n<li>RequestId: JRC4RVQJ345Q8GK8</li>\n<li>HostId: n2cH0GZ5wkMs+Kj3EaRBs9QWP81KEteSghx7+GRRV2RFuic/ryqMuDYUpzvgGYt+ZCAzSr+Sc+UaLHc6SaaOKw031STKwXC3</li>\n</ul>\n<hr/>\n</body>\n</html>\n";

const resp = await fetch("https://collegescorecard.ed.gov/schools?school.name=Harvard", {
  body: JSON.stringify(body),
});
const data = await resp.json();
Search colleges by state with limited fields curl
curl 'https://collegescorecard.ed.gov/schools?school.state=CA&fields=id%2Cschool.name%2Cschool.city%2Clatest.student.size' \
  -d '"<html>\n<head><title>404 Not Found</title></head>\n<body>\n<h1>404 Not Found</h1>\n<ul>\n<li>Code: NoSuchKey</li>\n<li>Message: The specified key does not exist.</li>\n<li>Key: schools/index.html</li>\n<li>RequestId: JRC4RVQJ345Q8GK8</li>\n<li>HostId: n2cH0GZ5wkMs+Kj3EaRBs9QWP81KEteSghx7+GRRV2RFuic/ryqMuDYUpzvgGYt+ZCAzSr+Sc+UaLHc6SaaOKw031STKwXC3</li>\n</ul>\n<hr/>\n</body>\n</html>\n"'
import requests

resp = requests.get(
    "https://collegescorecard.ed.gov/schools",
    params={
        'school.state': 'CA',
        'fields': 'id,school.name,school.city,latest.student.size',
    },
    json="<html>\n<head><title>404 Not Found</title></head>\n<body>\n<h1>404 Not Found</h1>\n<ul>\n<li>Code: NoSuchKey</li>\n<li>Message: The specified key does not exist.</li>\n<li>Key: schools/index.html</li>\n<li>RequestId: JRC4RVQJ345Q8GK8</li>\n<li>HostId: n2cH0GZ5wkMs+Kj3EaRBs9QWP81KEteSghx7+GRRV2RFuic/ryqMuDYUpzvgGYt+ZCAzSr+Sc+UaLHc6SaaOKw031STKwXC3</li>\n</ul>\n<hr/>\n</body>\n</html>\n",
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("college-scorecard")
result = api.fetch("schools", school.state="CA", fields="id,school.name,school.city,latest.student.size")

for item in result:
    print(item)
const body = "<html>\n<head><title>404 Not Found</title></head>\n<body>\n<h1>404 Not Found</h1>\n<ul>\n<li>Code: NoSuchKey</li>\n<li>Message: The specified key does not exist.</li>\n<li>Key: schools/index.html</li>\n<li>RequestId: JRC4RVQJ345Q8GK8</li>\n<li>HostId: n2cH0GZ5wkMs+Kj3EaRBs9QWP81KEteSghx7+GRRV2RFuic/ryqMuDYUpzvgGYt+ZCAzSr+Sc+UaLHc6SaaOKw031STKwXC3</li>\n</ul>\n<hr/>\n</body>\n</html>\n";

const resp = await fetch("https://collegescorecard.ed.gov/schools?school.state=CA&fields=id%2Cschool.name%2Cschool.city%2Clatest.student.size", {
  body: JSON.stringify(body),
});
const data = await resp.json();
Search with pagination curl
curl 'https://collegescorecard.ed.gov/schools?school.city=Boston&_page=0&_per_page=20' \
  -d '"<html>\n<head><title>404 Not Found</title></head>\n<body>\n<h1>404 Not Found</h1>\n<ul>\n<li>Code: NoSuchKey</li>\n<li>Message: The specified key does not exist.</li>\n<li>Key: schools/index.html</li>\n<li>RequestId: JRC4RVQJ345Q8GK8</li>\n<li>HostId: n2cH0GZ5wkMs+Kj3EaRBs9QWP81KEteSghx7+GRRV2RFuic/ryqMuDYUpzvgGYt+ZCAzSr+Sc+UaLHc6SaaOKw031STKwXC3</li>\n</ul>\n<hr/>\n</body>\n</html>\n"'
import requests

resp = requests.get(
    "https://collegescorecard.ed.gov/schools",
    params={
        'school.city': 'Boston',
        '_page': '0',
        '_per_page': '20',
    },
    json="<html>\n<head><title>404 Not Found</title></head>\n<body>\n<h1>404 Not Found</h1>\n<ul>\n<li>Code: NoSuchKey</li>\n<li>Message: The specified key does not exist.</li>\n<li>Key: schools/index.html</li>\n<li>RequestId: JRC4RVQJ345Q8GK8</li>\n<li>HostId: n2cH0GZ5wkMs+Kj3EaRBs9QWP81KEteSghx7+GRRV2RFuic/ryqMuDYUpzvgGYt+ZCAzSr+Sc+UaLHc6SaaOKw031STKwXC3</li>\n</ul>\n<hr/>\n</body>\n</html>\n",
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("college-scorecard")
result = api.fetch("schools", school.city="Boston", _page=0, _per_page=20)

for item in result:
    print(item)
const body = "<html>\n<head><title>404 Not Found</title></head>\n<body>\n<h1>404 Not Found</h1>\n<ul>\n<li>Code: NoSuchKey</li>\n<li>Message: The specified key does not exist.</li>\n<li>Key: schools/index.html</li>\n<li>RequestId: JRC4RVQJ345Q8GK8</li>\n<li>HostId: n2cH0GZ5wkMs+Kj3EaRBs9QWP81KEteSghx7+GRRV2RFuic/ryqMuDYUpzvgGYt+ZCAzSr+Sc+UaLHc6SaaOKw031STKwXC3</li>\n</ul>\n<hr/>\n</body>\n</html>\n";

const resp = await fetch("https://collegescorecard.ed.gov/schools?school.city=Boston&_page=0&_per_page=20", {
  body: JSON.stringify(body),
});
const data = await resp.json();

Probe History

Latency

Status Codes

TimeStatusLatencySize
2026-04-16 03:23:45.123626 404 291ms
2026-04-16 02:33:02.323417 404 280ms
2026-04-16 01:05:40.842861 404 293ms
2026-04-15 03:55:49.036153 404 283ms
2026-04-15 03:49:11.764112 404 542ms
2026-04-15 02:10:37.718720 404 310ms
2026-04-14 03:47:33.957501 404 407ms
2026-04-14 01:41:27.239107 404 290ms
2026-04-14 00:24:44.282916 404 296ms
2026-04-12 16:04:15.057518 404 280ms
2026-04-12 14:09:11.771538 404 285ms
2026-04-12 13:41:58.291384 404 298ms
2026-04-10 06:50:33.361652 404 220ms
2026-04-10 04:26:02.675223 404 230ms
2026-04-10 02:35:04.684364 404 309ms
2026-04-09 03:24:22.614788 404 350ms
2026-04-09 02:56:27.460152 404 830ms
2026-04-09 00:28:22.250413 404 338ms
2026-03-23 10:47:15.880268 404 339ms
2026-03-23 09:48:31.362084 404 310ms
2026-03-23 09:01:40.844953 404 586ms