NCES School Lookup — US School Directory & Locations avatar

NCES School Lookup — US School Directory & Locations

Pricing

from $4.00 / 1,000 school record returneds

Go to Apify Store
NCES School Lookup — US School Directory & Locations

NCES School Lookup — US School Directory & Locations

Look up US public schools by NCES ID for name, address, coordinates, district, grade span and website from the NCES public directory. USD 5 per 1,000 records.

Pricing

from $4.00 / 1,000 school record returneds

Rating

0.0

(0)

Developer

Muhammad Afzal

Muhammad Afzal

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

15 days ago

Last modified

Features

Limited permissions

Share

NCES School Lookup turns 12-digit NCES school IDs into structured US public-school directory and location records (name, address, state, ZIP, coordinates, district, school type, grade span and website) from the National Center for Education Statistics. An optional nearby-schools mode with GreatSchools ratings is described below; its access was not configured on 2026-10-27. It is built for education researchers, ed-tech and real-estate data teams, and AI agents that need clean school records, and it costs USD 5.00 per 1,000 school records on the FREE tier (USD 4.00 per 1,000 on GOLD).

Free users: maximum 20 results per run.

What data does NCES School Lookup return?

Each dataset row is one school. Fields a source does not provide are null.

FieldWhat it contains
schoolNameSchool name from the source
sourcences or greatschoolsApi
ncesSchoolId12-digit NCES school ID
greatSchoolsUniversalId, greatSchoolsRatingGreatSchools ID and 1–10 rating (GreatSchools mode only)
address, city, state, postalCodeLocation; state is the two-letter code
latitude, longitudeCoordinates when the source provides them
districtNameSchool district (LEA) name
schoolTypeFor example Regular school
gradeLevelsGrade span, for example 7 - 8
websiteSchool website when published
sourceUrl, scrapedAtThe source URL and the retrieval time

The OUTPUT key-value record lists the mode used, the number of schools returned and charged, the stop reason, and a warning for every ID or request that failed.

How do I look up a school by NCES ID?

Paste one or more 12-digit IDs into NCES school IDs, keep Data source on nces or auto, and run. IDs must be 12 digits (the input form rejects other formats) and are de-duplicated; an ID that NCES cannot find is reported as a warning instead of stopping the run.

{
"sourceMode": "nces",
"ncesSchoolIds": ["010000500870", "060177000041"],
"maxResults": 10
}

For each ID the Actor reads the NCES directory record, or the school's page in the NCES School Locator when the directory has no match, for the district, school type, grade span and website. It then fills the street, city, ZIP and coordinates from the NCES current public-school locations file, as in the example below.

How do I find schools near an address with GreatSchools ratings?

Set GreatSchools API location to the latitude and longitude of the address and an optional radius, and the Actor returns nearby schools from the GreatSchools NearbySchools API, each with its GreatSchools rating, NCES ID, address, district, type and grade level.

{
"sourceMode": "greatschoolsApi",
"greatSchoolsLocation": { "latitude": 37.7940627, "longitude": -122.2680029, "distanceMiles": 5 },
"maxResults": 20
}

The Actor handles API access, so you do not supply a key. The radius is 1 to 50 miles (default 5). In auto mode a location selects this mode and NCES IDs are then ignored. If GreatSchools access is unavailable, the run fails with a clear status message and charges no school records. On 2026-10-27 GreatSchools access was not configured for this Actor, so use NCES mode until it is restored.

When should I use NCES School Lookup, and when not?

Use it when you hold NCES IDs from a spreadsheet, grant file or state report and need official directory fields, or when you need a short list of rated schools around one point for a property or relocation workflow.

Use another Actor when:

  • You need full GreatSchools profile pages with test scores, equity data, demographics and reviews: GreatSchools Scraper.
  • You need neighborhood demographics or income data: US Census Bureau Data API Scraper.
  • You need to search schools by name or city without IDs, private schools, or schools outside the United States. This Actor does not search by name and covers US public schools only.

Use it from an AI assistant

NCES School Lookup works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add it with https://mcp.apify.com/?tools=muhammadafzal/greatschools-nces-directory, then ask, for example: "Look up NCES school 010000500870 and tell me its district, grade span and website."

Run it with the API

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('muhammadafzal/greatschools-nces-directory').call({
sourceMode: 'nces',
ncesSchoolIds: ['010000500870'],
maxResults: 5,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0].schoolName, items[0].districtName);

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("muhammadafzal/greatschools-nces-directory").call(
run_input={
"sourceMode": "greatschoolsApi",
"greatSchoolsLocation": {"latitude": 41.8781, "longitude": -87.6298, "distanceMiles": 3},
"maxResults": 20,
}
)
for s in client.dataset(run.default_dataset_id).iterate_items():
print(s["schoolName"], s["greatSchoolsRating"], s["gradeLevels"])

What does the output look like?

An NCES record from a 2026-10-27 run, and the shape of a GreatSchools record (values illustrative):

[
{
"schoolName": "Albertville Middle School",
"source": "nces",
"ncesSchoolId": "010000500870",
"greatSchoolsUniversalId": null,
"greatSchoolsRating": null,
"address": "600 E Alabama Ave",
"city": "Albertville",
"state": "AL",
"postalCode": "35950",
"latitude": 34.2602,
"longitude": -86.2062,
"districtName": "Albertville City",
"schoolType": "Regular school",
"gradeLevels": "7 - 8",
"website": "http://www.albertk12.org",
"sourceUrl": "https://nces.ed.gov/ccd/schoolsearch/school_detail.asp?ID=010000500870",
"scrapedAt": "2026-10-27T08:21:26.513Z"
},
{
"schoolName": "Alameda High School",
"source": "greatschoolsApi",
"ncesSchoolId": "060177000041",
"greatSchoolsUniversalId": "0600001",
"greatSchoolsRating": 10,
"address": "2201 Encinal Avenue",
"city": "Alameda",
"state": "CA",
"districtName": "Alameda Unified School District",
"sourceUrl": "https://gs-api.greatschools.org/nearby-schools?lat=37.7940627&lon=-122.2680029&limit=20&distance=5",
"scrapedAt": "2026-10-26T12:00:00.000Z"
}
]

Pricing: how much does NCES school data cost?

NCES School Lookup uses pay-per-event pricing. Platform usage is included in the event prices. Free users: maximum 20 results per run.

EventFREEBRONZESILVERGOLDPLATINUM / DIAMOND
School record returned (one dataset row)USD 0.005001USD 0.004875USD 0.00475USD 0.004USD 0.004
Actor start (per started GB of allocated memory)USD 0.006251USD 0.006094USD 0.005938USD 0.005USD 0.005

Worked totals at the default 256 MB memory (one start event):

  • One NCES ID on the FREE tier: 1 × USD 0.005001 + USD 0.006251 = USD 0.0113
  • 20 schools on the FREE tier (the free-plan maximum): 20 × USD 0.005001 + USD 0.006251 = USD 0.1063
  • 50 schools on GOLD (the per-run maximum): 50 × USD 0.004 + USD 0.005 = USD 0.2050

IDs or searches that return nothing are not charged as records; the start fee still applies.

What are the limits?

  • 50 records per run on paid plans (maxResults 1–50, default 10). The free-plan cap above is applied before any request is made.
  • US public schools only. NCES IDs must be 12 digits; private-school IDs are not supported.
  • One lookup per ID. Runs are short: the 2026-10-26 one-ID check finished in under 4 seconds.
  • No name or city search. NCES mode needs IDs; GreatSchools mode needs coordinates.
  • Source year. District, type and grade fields come from the NCES 2022–23 directory file or the School Locator, and address and coordinates from the NCES current (2024–25) public-school locations file, so very new or recently closed schools can be missing or out of date.

FAQ

How do I find a school's NCES ID?

Search the school on the NCES School Search (nces.ed.gov/ccd/schoolsearch). The 12-digit "NCES School ID" is shown on the school's detail page.

Does NCES include private schools?

NCES runs a separate private-school survey, but this Actor accepts only 12-digit public-school IDs, so private schools are not returned.

Do I need my own GreatSchools API key?

No. The Actor handles GreatSchools API access for its GreatSchools mode. You only supply a location.

Is there a free way to use it?

Yes. On Apify's free plan you can run it and receive up to 20 school records per run, charged at the FREE-tier price above.

Does it scrape GreatSchools web pages?

No. GreatSchools values come only from the GreatSchools NearbySchools API. For profile pages, use GreatSchools Scraper.

Why are city and coordinates empty for some schools?

They come from the NCES current public-school locations file. They stay null only when that file has no entry for the ID, for example a school that has closed, or when its lookup fails during the run.

Government and public data from the same developer:

NCES directory data is public US government information. GreatSchools ratings are licensed content returned through the GreatSchools API; keep GreatSchools attribution and follow its terms when you display or redistribute ratings. The Actor does not collect student or parent data.

Last verified: 2026-10-27