Niche APIniche.com ↗
Access K-12 school and college data from Niche.com: rankings, report card grades, stats, reviews, and autocomplete search across 5 endpoints.
What is the Niche API?
The Niche.com API exposes 5 endpoints covering K-12 schools and colleges, including ranked search results, detailed report card grades, and paginated user reviews. The get_k12_school_overview endpoint alone returns over 7 distinct data categories — rankings, stats, tags, contact info, and more — for any school identified by its slug. College search and an autocomplete endpoint round out coverage for building school discovery and comparison tools.
curl -X GET 'https://api.parse.bot/scraper/1699b6f4-00c8-4d10-ba20-7829ae6046ef/search_k12_schools?page=1&type=private&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
K-12 School Search and Detail
The search_k12_schools endpoint returns paginated school lists filterable by type (private, public, charter) and grades (elementary, middle, high). Each result includes the school's name, slug, url, overall_grade, and tagline. The slug field is the key input for the two detail endpoints. get_k12_school_overview returns the full profile: a report_card array of graded categories with letter grades and numeric values, a rankings array with ordinal, total, and vanityURL per ranking list, a stats object with category-keyed stat arrays, and a contact object containing address, phone, and website.
Reviews and Ratings
get_k12_school_reviews accepts a slug and optional page parameter and returns a paginated reviews array. Each review object includes author, body, rating, date, and author_type — distinguishing, for example, parent reviews from student reviews. This makes it possible to segment sentiment by reviewer relationship to the school.
College Search and Autocomplete
search_colleges returns paginated college results ranked by Niche grade, with the same name, slug, url, overall_grade, and tagline shape as the K-12 search. The autocomplete_search endpoint accepts a free-text query and returns matched entities of mixed types (schools, districts, places) with guid, type, label, grade, state, url, and urlFragment fields — useful for building typeahead search UIs or resolving a user's school name input to a slug before fetching detail data.
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_card grades and rankings from get_k12_school_overview
- Aggregate parent and student sentiment by filtering get_k12_school_reviews by author_type
- Power a school-finder typeahead using autocomplete_search with live query strings
- Filter and rank public vs. private vs. charter schools in a given search using the type parameter in search_k12_schools
- Display Niche ranking context (ordinal, total, vanityURL) alongside school profiles in a real estate or neighborhood app
- Collect stats and contact data for a directory of K-12 schools in a specific grades tier
- Enrich college application tools with Niche overall_grade and tagline data from search_colleges
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.