Free tier — 500 requests/month, no credit card

US School District Data,
One API Call Away

Look up any US school district by address, coordinates, or NCES ID. Get enrollment, demographics, per-pupil expenditure, boundary polygons, and schools list. Built on free federal data — no licensing fees passed on to you.

Request
curl "https://api.districtapi.dev/v1/districts?address=1600+Pennsylvania+Ave+NW+Washington+DC" \
  -H "X-API-Key: your_api_key"
Response200 OK
{
  "data": [
    {
      "ncesId": "1100030",
      "name": "District of Columbia Public Schools",
      "state": "DC",
      "enrollment": { "total": 49235, "year": "2024-25" },
      "geo": { "lat": 38.8951, "lng": -77.0364 },
      "finance": { "perPupilExpenditure": 28402 },
      "schoolsCount": 116
    }
  ],
  "meta": { "creditsUsed": 1, "creditsRemaining": 499 }
}

Up and running in minutes

01

Get your free API key

Create an account in under a minute. No credit card required. 500 requests/month free, forever.

Sign up free →
02

Pass an address or coordinates

Send any US street address, lat/lng coordinates, or NCES district ID. We handle the geocoding and spatial lookup.

03

Get district data back

Enrollment figures, demographics, per-pupil expenditure, school list, and GeoJSON boundary polygon — all in one response.

Read the docs →

Everything you need about US school districts

Killer feature

Address → District

Pass any US address and get back the school district serving that location. Uses PostGIS spatial lookup against TIGER boundary polygons.

All tiers

Full district profile

Enrollment by grade and race/ethnicity, per-pupil expenditure, revenue sources, locale type, and every school in the district.

All tiers

GeoJSON boundaries

Every district includes its boundary polygon in GeoJSON. Drop it straight into Mapbox, Leaflet, or Google Maps.

All tiers

School radius search

Find all public schools within N miles of a lat/lng. Filter by type, grade span, and charter status.

Developer-friendly

NCES-native IDs

All districts and schools are keyed by NCES LEA/school IDs — the same IDs used by every federal education dataset.

Available now

Python + Node SDKs

Typed SDK clients for Python and Node.js. Real objects, not raw dicts.

Available now

MCP Server

Use DistrictAPI directly inside Claude, Cursor, and any MCP-compatible AI assistant. Ask about districts by address, name, or ID — no code required.

Pricing

Start free. No credit card required. Upgrade when you need more.

Free
$0/mo
500 / mo
10 req/min
Get started
Starter
$29/mo
10,000 / mo
60 req/min
Get started
Most popular
Pro
$99/mo
50,000 / mo
120 req/min
Get started
Growth
$299/mo
200,000 / mo
300 req/min
Contact us

All endpoints on all tiers. Monthly limit resets on the 1st.

Common questions

What counts as one request?
Each call to any API endpoint uses one credit. Doesn't matter which endpoint — district lookup, school search, or boundary fetch all cost one credit each.
What happens when I hit 500 requests?
On the free tier, requests over 500 return a 402 error until your quota resets on the 1st of the month. On paid tiers, requests over your monthly limit return a 402 until the next billing cycle. Upgrade anytime from your dashboard.
Is this really free federal data?
Yes. All data is sourced from NCES Common Core of Data, NCES EDGE geocodes, and Census TIGER boundary polygons — all public domain federal datasets. The value we add is normalization, geospatial lookup, and a clean developer experience.
When is data updated?
NCES publishes updated CCD data each December. We update our database within 30 days of each release. The current dataset is 2024-25.
Do you have an SLA?
The Growth plan includes a 99.9% uptime SLA. All tiers run on AWS Lambda + API Gateway with Cloudflare in front — the same infrastructure used by applications serving millions of requests.