GradSchools APIgradschools.com ↗
Access graduate program listings, degree-level filters, subject categories, and admissions articles from GradSchools.com via 6 structured endpoints.
What is the GradSchools API?
The GradSchools.com API exposes 6 endpoints covering graduate program listings, subject and degree-level filtering, and editorial content from the site's Student Guide. The search_programs endpoint returns school name, program name, degree type, and URL for each matching result, filterable by masters, doctorate, or certificate level and by subject or category slug. get_informed_articles and get_article_detail give access to the full text of admissions and career guidance articles.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/900478e0-03e0-416f-aba4-4679d036ed18/get_program_categories' \ -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 gradschools-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.
"""Walkthrough: GradSchools SDK — search programs, browse articles, keyword search."""
from parse_apis.gradschools.com_api import GradSchools, DegreeLevel, ArticleNotFound
client = GradSchools()
# List all program categories available on the site.
for cat in client.programcategories.list(limit=5):
print(cat.text, cat.value)
# Search for master's programs in accounting.
listing = client.programlistings.search(
degree_level=DegreeLevel.MASTERS, subject="accounting", limit=1
).first()
if listing:
print(listing.school_name, listing.program_name, listing.degree)
# Browse informational articles and drill into one for full content.
article = client.articles.list(limit=1).first()
if article:
detail = article.detail()
print(detail.title, detail.content[:120])
# Keyword search across the entire site.
for result in client.searchresults.search(query="MBA", limit=3):
print(result.title, result.snippet[:80])
# Typed error handling for a missing article.
try:
client.articles.get(url="https://www.gradschools.com/get-informed/nonexistent-article")
except ArticleNotFound as exc:
print(f"Article not found: {exc.url}")
print("exercised: programcategories.list / programlistings.search / articles.list / article.detail / searchresults.search / articles.get")
Returns the list of all major subject categories available on GradSchools.com for graduate programs. Each category has a display name and a numeric ID used for filtering programs.
No input parameters required.
{
"type": "object",
"fields": {
"categories": "array of objects each containing text (category display name) and value (numeric category ID)"
},
"sample": {
"data": {
"categories": [
{
"text": "Business",
"value": "21"
},
{
"text": "Criminal Justice & Legal",
"value": "29"
},
{
"text": "Education",
"value": "24"
},
{
"text": "Fine Arts & Design",
"value": "20"
},
{
"text": "Health & Medicine",
"value": "25"
},
{
"text": "Liberal Arts & Humanities",
"value": "23"
},
{
"text": "Math, Science & Engineering",
"value": "26"
},
{
"text": "Psychology & Social Sciences",
"value": "27"
},
{
"text": "Religious Studies",
"value": "30"
},
{
"text": "Technology",
"value": "22"
}
]
},
"status": "success"
}
}About the GradSchools API
Program Discovery
search_programs is the primary listing endpoint. It accepts a degree_level parameter (masters, doctorate, or certificate), a category slug (e.g., business, technology), and a subject slug (e.g., accounting, computer-science). When both subject and category are supplied, subject takes precedence. Results come back as listings — an array of objects each containing school_name, program_name, degree, and url. Pagination is available via the page parameter; the response includes a pagination array of page links.
Category and Subject Lookups
Before calling search_programs, use get_program_categories to retrieve all valid major subject categories. Each item includes a text label and a value identifier. For the editorial side, get_informed_categories returns the category taxonomy used by the Student Guide articles, with each item carrying a text display name and a slug for filtering.
Editorial Content
get_informed_articles returns a paginated list of Student Guide articles — each with a title and url — covering topics like study tips, career advice, and graduate school preparation. Pass the url from those results into get_article_detail to retrieve the full article as both plain content (string) and html_content (HTML string), along with the article title.
Site-Wide Search
search_site accepts a required query string and an optional page parameter. It returns a results array where each item contains a title, url, and snippet. This endpoint spans both program listings and editorial articles, making it useful for open-ended keyword queries that don't map cleanly to a known subject slug.
The GradSchools API is a managed, monitored endpoint for gradschools.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when gradschools.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 gradschools.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 graduate program finder filtered by degree level (masters, doctorate, certificate) and subject area.
- Aggregate school names and program names across a specific category like 'technology' or 'business' for market research.
- Populate a content feed of admissions and career advice articles using
get_informed_articlesandget_article_detail. - Implement a site-wide search feature using
search_siteto surface both programs and editorial results by keyword. - Map all available program categories via
get_program_categoriesto build a browseable subject taxonomy. - Extract full article text from the Student Guide to power a chatbot or resource library for prospective grad students.
| 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.
Does GradSchools.com have an official developer API?+
What does `search_programs` return and how does the subject/category filter work?+
listings array includes school_name, program_name, degree, and url. You filter by passing a degree_level (masters, doctorate, or certificate) alongside either a category slug or a subject slug. When both are provided, subject takes precedence. Use get_program_categories first to retrieve valid category values.Does the API return detailed program data like tuition, application deadlines, or contact information?+
school_name, program_name, degree, and url — detailed fields like tuition, deadlines, enrollment size, or admissions contacts are not included. You can fork this API on Parse and revise it to add an endpoint that fetches the individual program detail page at the returned url.How does pagination work across the endpoints?+
search_programs, get_informed_articles, and search_site all accept an integer page parameter. search_programs also returns a pagination array in the response, where each item carries a page number and its corresponding URL. The other endpoints do not return explicit pagination metadata in the response body.Are there subject-level filters below the top-level categories?+
search_programs accepts a subject slug (e.g., accounting, computer-science) which is more specific than a category slug (e.g., business). However, the API does not include an endpoint that lists all valid subject slugs — only top-level categories are enumerable via get_program_categories. You can fork this API on Parse and revise it to add a subject-listing endpoint for a given category.