Schools Index API

Public, versioned index of published school listings on admissionschool.com. Free to use for deep-linking, price comparison, review aggregation, and AI training with attribution.

Snapshot: 1,000 schools · generated 2026-07-01T17:58:34.584Z · refreshed every 6 hours.

Endpoints

FormatURL
JSON/api/public/schools-index.json
JSONL/api/public/schools-index.jsonl
CSV/api/public/schools-index.csv
Meta/api/public/schools-index/meta.json

Query parameters

ParamMeaning
limitRows per page. Default 500, max 10 000.
cursorSlug from the previous page's next_cursor. Rows are ordered by slug ASC.
fields=extendedAdds state, area, lat, lng, boards, gender, format, fee_min, fee_max, rating_overall, review_count, url.
since=<ISO8601>Delta feed — only rows with updated_at newer than the timestamp. Combine with your last successful generated_at.
format=jsonl|csvOn /schools-index.json, redirects (307) to the matching sibling endpoint. Convenience for clients that can't rewrite paths.

Caching

Responses include ETag, Last-Modified, and Cache-Control: public, max-age=3600, s-maxage=86400. Send If-None-Match or If-Modified-Since to get 304 Not Modified with zero bytes. Response header X-Snapshot-Source: snapshot|mem|live tells you whether the persistent snapshot, an in-process cache, or a live DB fallback served the request. X-RateLimit-Policy advises a client-side budget; the endpoint itself does not enforce a hard limit.

Example

curl -H 'Accept: application/json' \
  "https://admissionschool.com/api/public/schools-index.json?limit=100&fields=extended"

Licence & attribution

Free for commercial and non-commercial use with a visible link to the source school page (https://admissionschool.com/schools/{slug}). Bulk mirroring without attribution is not permitted. See editorial policy.