Niche APIniche.com ↗
Search K-12 schools, colleges, and districts from Niche.com. Get report card grades, rankings, stats, and user reviews via 6 structured endpoints.
What is the Niche API?
The Niche.com API provides access to school and college data across 6 endpoints, covering K-12 public, private, and charter schools as well as colleges and school districts. The get_k12_school_overview endpoint returns report card grades, rankings, stats, tags, and contact information for any school identified by its slug. Combined with search and autocomplete endpoints, the API covers discovery through detailed profile retrieval in a single integration.
curl -X GET 'https://api.parse.bot/scraper/1699b6f4-00c8-4d10-ba20-7829ae6046ef/search_k12_schools?page=1&type=public&grades=elementary' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace niche-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.niche.com_schools_api import Niche, SchoolType, GradeLevel, SchoolNotFound
niche = Niche()
# Search for private high schools
for school in niche.k12schoolsummaries.search(type=SchoolType.PRIVATE, grades=GradeLevel.HIGH, limit=5):
print(school.name, school.slug, school.overall_grade)
# Get detailed overview for the first school
detail = school.details()
print(detail.name, detail.type, detail.location)
for grade in detail.report_card:
print(grade.label, grade.value, grade.grade)
for ranking in detail.rankings:
print(ranking.display, ranking.ordinal, ranking.total)
print(detail.contact.website, detail.contact.telephone)
# Get reviews
for review in school.reviews.list(limit=3):
print(review.author, review.rating, review.author_type, review.date)
break
# Search colleges
for college in niche.colleges.search(limit=5):
print(college.name, college.slug, college.overall_grade)
# Autocomplete search
for result in niche.institutions.autocomplete(query="stanford"):
print(result.label, result.type, result.grade, result.url_fragment)
Search for K-12 schools with optional filters. Returns paginated results ranked by Niche grade. Supports filtering by school type and grade level. Each result includes the school name, slug, URL, overall grade, and tagline.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| type | string | School type filter. Accepted values: 'private', 'public', 'charter'. |
| grades | string | Grade level filter. Accepted values: 'elementary', 'middle', 'high'. |
{
"type": "object",
"fields": {
"page": "integer indicating current page number",
"schools": "array of school summary objects with name, slug, url, overall_grade, and tagline"
},
"sample": {
"data": {
"page": 1,
"schools": [
{
"url": "https://www.niche.com/k12/the-hotchkiss-school-lakeville-ct/",
"name": "The Hotchkiss School",
"slug": "the-hotchkiss-school-lakeville-ct",
"tagline": "",
"overall_grade": "A+"
}
]
},
"status": "success"
}
}About the Niche API
Search and Discovery
The search_k12_schools endpoint accepts optional filters for type (private, public, charter) and grades (elementary, middle, high), returning paginated arrays of school objects each with name, slug, url, overall_grade, and tagline. The search_colleges endpoint follows the same paginated pattern for higher-education institutions. For free-text lookup, autocomplete_search accepts a query string and returns matched results with guid, type, label, grade, state, url, and urlFragment fields — covering schools, districts, and places sorted by relevance.
School and District Profiles
Once you have a slug from search or autocomplete, get_k12_school_overview returns the full profile: a report_card array of grade objects (each with label, value, and letter grade), a rankings array with display, ordinal, total, and vanityURL, a stats object keyed by category, and contact data including Website, Telephone, and Address. The get_k12_district_overview endpoint returns the same shape for school districts, using slugs derivable from the urlFragment field of autocomplete_search results with SchoolDistrict type.
Reviews
The get_k12_school_reviews endpoint returns paginated user reviews for a given school slug. Each review object includes author, body, rating, date, and author_type, letting you distinguish reviews written by students, parents, or teachers. Pagination is controlled via the page parameter across all list-style endpoints.
The Niche API is a managed, monitored endpoint for niche.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when niche.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official niche.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a school comparison tool using
report_cardgrades andrankingsfromget_k12_school_overview - Populate a neighborhood search product with school quality grades using
search_k12_schoolsfiltered by type and grade level - Aggregate parent and student sentiment by pulling
ratingandauthor_typefields fromget_k12_school_reviews - Display autocomplete suggestions for school and district search using
autocomplete_searchwithlabel,grade, andurlfields - Enrich real estate listings with nearby school grades and rankings using district and school overview endpoints
- Track changes in school rankings over time by periodically fetching
rankingsarrays fromget_k12_school_overview - Build a college discovery feed using
search_collegessorted by Nicheoverall_grade
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Niche.com have an official developer API?+
What does `get_k12_school_overview` return beyond a letter grade?+
report_card array with individual category grades (each with label, value, and letter grade), a rankings array showing the school's ordinal rank out of a total with a vanityURL, a stats object broken down by category, tags, location, and contact details including address and phone number.Can I filter college search results by type or location the way K-12 search supports `type` and `grades` filters?+
search_colleges endpoint currently supports pagination only — it does not expose type, location, or major filters. The K-12 endpoint supports type and grades filters. You can fork this API on Parse and revise it to add filtering parameters to the college search endpoint.Does the reviews endpoint cover college reviews, or only K-12 schools?+
get_k12_school_reviews covers K-12 schools only. College reviews are not currently exposed by any endpoint in this API. You can fork it on Parse and revise to add a college reviews endpoint.How do slugs work across the endpoints, and where do I get them?+
slug field of search_k12_schools results. For districts, slugs are derivable from the urlFragment field returned by autocomplete_search when the result type is SchoolDistrict. Both overview endpoints require a valid slug as their only required parameter.