NCES School Lookup — US School Directory & Locations
Pricing
from $4.00 / 1,000 school record returneds
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
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
15 days ago
Last modified
Categories
Features
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.
| Field | What it contains |
|---|---|
schoolName | School name from the source |
source | nces or greatschoolsApi |
ncesSchoolId | 12-digit NCES school ID |
greatSchoolsUniversalId, greatSchoolsRating | GreatSchools ID and 1–10 rating (GreatSchools mode only) |
address, city, state, postalCode | Location; state is the two-letter code |
latitude, longitude | Coordinates when the source provides them |
districtName | School district (LEA) name |
schoolType | For example Regular school |
gradeLevels | Grade span, for example 7 - 8 |
website | School website when published |
sourceUrl, scrapedAt | The 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 ApifyClientclient = 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.
| Event | FREE | BRONZE | SILVER | GOLD | PLATINUM / DIAMOND |
|---|---|---|---|---|---|
| School record returned (one dataset row) | USD 0.005001 | USD 0.004875 | USD 0.00475 | USD 0.004 | USD 0.004 |
| Actor start (per started GB of allocated memory) | USD 0.006251 | USD 0.006094 | USD 0.005938 | USD 0.005 | USD 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 (
maxResults1–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.
Related Actors
Government and public data from the same developer:
- GreatSchools Scraper for ratings, test scores and demographics from school profiles
- US Census Bureau Data API Scraper for ACS and census statistics
- Healthcare.gov Scraper for official health-insurance content
- Chicago Building Violations Scraper for City of Chicago building records
Legal and compliance
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