Collegeboard APIbigfuture.collegeboard.org ↗
Search College Board's BigFuture scholarship database by GPA, location, degree, and field of study. Retrieve full scholarship details including awards, deadlines, and eligibility.
What is the Collegeboard API?
The BigFuture Scholarship API provides structured access to College Board's scholarship database across 4 endpoints. Use search_scholarships to filter opportunities by GPA, US state, county, city, degree type, field of study, and award type, then call get_scholarship to retrieve the full eligibility criteria, award range, application URL, and deadline for any individual scholarship. Two vocabulary endpoints expose the valid location and field-of-study values the search accepts.
curl -X GET 'https://api.parse.bot/scraper/da1a683d-4694-4db2-9e87-999ad4bebccd/search_scholarships?page_size=2&close_date_to=2026-04-30&close_date_from=2026-03-15&state=TX&grade_level=High+School+Senior' \ -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 bigfuture-collegeboard-org-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: BigFuture scholarship search — bounded, re-runnable."""
from parse_apis.bigfuture_collegeboard_org_api import (
BigFuture, Sort, LocationKind, ScholarshipNotFound,
)
client = BigFuture()
# Search scholarships in Texas, sorted by highest award first.
for s in client.scholarship_summaries.search(state="TX", sort=Sort.AWARD_HIGH_TO_LOW, limit=5):
print(s.name, s.organization, s.max_award)
# Drill into the first result's full details via the summary→detail navigation.
hit = client.scholarship_summaries.search(state="TX", sort=Sort.AWARD_HIGH_TO_LOW, limit=1).first()
if hit is not None:
detail = hit.details()
print(detail.name, detail.application_url)
print("eligibility:", detail.eligibility_summary)
if detail.eligibility_criteria.current_grade_level is not None:
for gl in detail.eligibility_criteria.current_grade_level:
print(" grade:", gl.current_grade)
if detail.eligibility_criteria.locations is not None:
for loc in detail.eligibility_criteria.locations:
print(" location:", loc.state, loc.country)
# Point-lookup by slug discovered from the search above.
if hit is not None:
try:
scholarship = client.scholarships.get(slug=hit.slug)
print(scholarship.name, scholarship.min_award, scholarship.max_award)
except ScholarshipNotFound:
print("scholarship was removed since the search")
# List Texas counties recognised by the search filter.
for loc in client.locations.list(kind=LocationKind.COUNTY, state="TX", limit=5):
print(loc.name, loc.state)
# Browse available fields of study.
for field in client.scholarship_summaries.fields_of_study(limit=5):
print(field)
print("exercised: search / details / get / locations.list / fields_of_study")
Searches BigFuture scholarships and returns one page of matching scholarship summaries plus the total match count. All filters are optional and combine (AND). Location narrows by country, or by US state with an optional county and/or city inside that state (county and city require state; state implies country US). Academic stage (grade_level) and degree accept one or several comma-separated values from their closed vocabularies; field_of_study accepts comma-separated names as returned by list_fields_of_study. Application-date filters are inclusive ISO date bounds: open_date_from/open_date_to bound the application open date and close_date_from/close_date_to bound the deadline; either or both ends of either range may be given, and a scholarship without the bounded date is excluded. Without date filters one request is made and results follow sort (default nearest deadline first). With date filters the site itself offers no date criteria, so the scraper reads the candidates' dates from the search sorted by the filtered date (deadline when any close_date bound is given, otherwise open date), matches the window locally, orders matches by that date ascending, and then fetches the requested page's rows: typically 3-5 requests, up to about 10 for a search with no other filters, each of the date reads being a large (up to 10,000-row) response. sort cannot be combined with date filters (input error). Paging is offset-based via page (1-based, default 1) and page_size (default 15, clamped to 50); has_more tells whether a further page exists. The site's search index only exposes the first 10,000 rows of any sorted view: without date filters a page beyond that depth is an input error; with date filters the scraper reads each candidate set from both ends (20,000 rows) and, when a search has more candidates than that, splits it by merit/need classification, so a date window is normally covered completely. capped is true only when a date window overlaps rows that remain unreachable in the middle of a very large candidate set (at build time only a two-week band of past dates in a search with no other filters); total and paging then cover just the reachable portion, and narrowing the search with any other filter avoids it. An empty scholarships array with total 0 is a valid no-match result. Each result carries slug, which get_scholarship accepts for full details.
| Param | Type | Description |
|---|---|---|
| gpa | number | Student GPA on a 4.0 scale (0 < gpa <= 4); returns scholarships whose GPA requirement the student meets. |
| city | string | US city name inside state, as returned by list_locations with kind=city (e.g. Houston). Requires state. |
| page | integer | 1-based page number. |
| sort | string | Result ordering. Must be left at its default when any date filter is given; date-filtered results are ordered by the filtered date ascending. |
| state | string | 2-letter US state or territory code (e.g. TX). Required for county/city filtering. |
| county | string | US county name inside state, as returned by list_locations with kind=county (e.g. Harris). Requires state. |
| degree | string | Comma-separated degree(s) sought, each one of the Degree enum codes (e.g. Bachelor's Degree). Unknown values are rejected. |
| country | string | Residence country filter. Ignored when state is given (state implies US). |
| keyword | string | Free-text keyword matched against scholarship names and descriptions (e.g. nursing). |
| page_size | integer | Results per page; values above 50 are clamped to 50. |
| need_based | boolean | true restricts to need-based scholarships. |
| grade_level | string | Comma-separated current academic stage(s), each one of the GradeLevel enum codes (e.g. High School Senior or College Junior,College Senior). Unknown values are rejected. |
| merit_based | boolean | true restricts to merit-based scholarships. |
| open_date_to | string | Latest application open date to include, inclusive, ISO date YYYY-MM-DD. Must not be before open_date_from. |
| close_date_to | string | Latest application deadline (close date) to include, inclusive, ISO date YYYY-MM-DD. Must not be before close_date_from. |
| field_of_study | string | Comma-separated field-of-study names from list_fields_of_study (e.g. Nursing). |
| open_date_from | string | Earliest application open date to include, inclusive, ISO date YYYY-MM-DD. Scholarships with no open date are excluded when given. |
| close_date_from | string | Earliest application deadline (close date) to include, inclusive, ISO date YYYY-MM-DD. Scholarships with no deadline are excluded when given. |
{
"type": "object",
"fields": {
"page": "integer page returned",
"total": "integer total number of matching scholarships (with date filters: matches inside the reachable window)",
"capped": "boolean, true only when a date-filtered search's window overlaps rows beyond the site's reachable 10,000-row views so total and paging cover just the reachable portion; always false otherwise",
"has_more": "boolean, true when page*page_size < total",
"page_size": "integer page size applied",
"scholarships": "array of scholarship summaries: scholarship_id, slug (input for get_scholarship), name, organization, max_award (integer USD or null when the amount varies), open_date and close_date (YYYY-MM-DD), is_merit_based, is_need_based, blurb, eligibility_summary, application_requirements, program_description (nullable text)"
},
"sample": {
"data": {
"page": 1,
"total": 7,
"capped": false,
"has_more": true,
"page_size": 5,
"scholarships": [
{
"name": "North Texas GCSA Legacy Scholarship",
"slug": "north-texas-gcsa-legacy-scholarship",
"blurb": "The North Texas GCSA Legacy Scholarship is available to current or former employees of the North Texas Golf Course Superintendents Association (NTGCSA).",
"max_award": null,
"open_date": "2026-08-01",
"close_date": "2026-10-02",
"organization": "North Texas Golf Course Superintendents Association",
"is_need_based": false,
"is_merit_based": false,
"scholarship_id": "CYfeWpezaPwl",
"eligibility_summary": "- Current or former employee of a golf course within the North Texas Chapter of the Golf Course Superintendents' Association\n- Resident of Texas\n- High school senior or undergraduate student",
"program_description": null,
"application_requirements": null
},
{
"name": "Dr. Gregory N. Fuller Annual Scholarship",
"slug": "dr-gregory-n-fuller-annual-scholarship",
"blurb": "The Dr. Gregory N. Fuller Annual Scholarship is available to graduating seniors from Pasadena Independent School District in Texas who plan to attend San Jacinto College.",
"max_award": 1000,
"open_date": "2026-02-15",
"close_date": "2026-10-30",
"organization": "San Jacinto College",
"is_need_based": true,
"is_merit_based": false,
"scholarship_id": "iiilo9FhsluP",
"eligibility_summary": "- Minimum 2.00 GPA\n- Resident of Harris County, Texas\n- High school senior\n- Demonstrate financial need",
"program_description": "Scholarships awarded to graduated students from the Pasadena Independent School District, with preference for South Houston High School graduates.",
"application_requirements": null
}
]
},
"status": "success"
}
}About the Collegeboard API
Searching Scholarships
The search_scholarships endpoint accepts up to eight optional filter parameters that combine with AND logic. Location filters work in layers: pass country for non-US results, or pass a 2-letter state code to scope results to the US. Within a state, you can narrow further with county and/or city — both require state to be set, and the valid values for each come from list_locations. The gpa parameter (0–4.0 scale) returns only scholarships whose minimum GPA requirement the student meets. Results come back paginated; each page includes a total count and a has_more boolean so you can walk all pages.
Scholarship Detail
Calling get_scholarship with a slug from search results returns the full scholarship record. This includes min_award and max_award in integer USD, open_date and close_date in YYYY-MM-DD format, application_url, program_url, the is_need_based flag, and a structured eligibility_criteria object covering grade levels, degrees, and location requirements. The blurb field provides a short description of the program, and noteworthy_application_characteristics surfaces any unusual requirements noted by the sponsor.
Vocabulary Endpoints
list_locations returns the county or city names that search_scholarships recognizes, optionally filtered to a single state. Each entry includes name, state, and country. list_fields_of_study returns all ~690 accepted field-of-study strings sorted alphabetically — pass any of these as the field_of_study parameter in search to avoid rejected filter values. Both vocabulary endpoints return the full list in a single response with no pagination.
The Collegeboard API is a managed, monitored endpoint for bigfuture.collegeboard.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when bigfuture.collegeboard.org 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 bigfuture.collegeboard.org 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 scholarship matching tool that filters by student GPA, home state, and intended degree using search_scholarships
- Populate a scholarship deadline calendar by pulling close_date and open_date from get_scholarship for a saved list of slugs
- Offer a county- or city-level scholarship finder by first calling list_locations to populate a location picker, then passing selections to search_scholarships
- Identify need-based scholarships in a specific field of study by combining the is_need_based flag with a field_of_study value from list_fields_of_study
- Aggregate award amount ranges across a filtered result set using min_award and max_award from get_scholarship
- Pre-populate a degree-type filter dropdown with valid degree enum codes and map them against search results for a college planning app
- Sync a scholarship database nightly by paginating through search_scholarships results and refreshing records whose close_date is approaching
| 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.