ScholarshipPortal APIscholarshipportal.com ↗
Search scholarships, academic programmes, and universities from ScholarshipPortal via 6 endpoints. Filter by country, discipline, study level, and keyword.
What is the ScholarshipPortal API?
The ScholarshipPortal API exposes 6 endpoints that cover scholarship search, programme discovery, and university lookup across StudyPortals' global education database. The search_scholarships endpoint returns paginated scholarship objects including title, provider, deadline, grant amount, and URL, filterable by destination country, study level, and discipline. Reference endpoints supply valid country ISO codes and numeric discipline IDs for use in search filters.
curl -X GET 'https://api.parse.bot/scraper/d8ac1888-45af-4a2b-9aee-a54938204f94/search_scholarships?limit=5&query=engineering&offset=0&country_iso=US&study_level=master&discipline_ids=23' \ -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 scholarshipportal-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.scholarshipportal_api import ScholarshipPortal, StudyLevel
portal = ScholarshipPortal()
# Discover available countries for master's programmes
for country in portal.countries.list(study_level=StudyLevel.MASTER):
print(country.iso, country.count)
# Search for scholarships in the US
for scholarship in portal.scholarships.search(study_level=StudyLevel.MASTER, country_iso="US"):
print(scholarship.title, scholarship.deadline, scholarship.benefits)
# Get detailed info for the scholarship
detail = scholarship.details()
print(detail.about, detail.eligibility_summary)
# Search for computer science programmes in the Netherlands
for programme in portal.programmes.search(query="computer science", country_iso="NL", study_level=StudyLevel.MASTER):
print(programme.title, programme.duration, programme.url)
# Search for universities
for uni in portal.universities.search(query="Oxford", study_level=StudyLevel.MASTER):
print(uni.name, uni.ranking, uni.programmes_count)
Search for scholarships with filters for study level, country, discipline, and keyword. Returns paginated results. Each scholarship includes grant details, deadline, provider info, and a URL slug for fetching full details via get_scholarship_details. Pagination is offset-based; advance by incrementing offset by limit.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of results to return per request. |
| query | string | Search keyword to filter scholarships by title or description. |
| offset | integer | Pagination offset (number of results to skip). |
| country_iso | string | Two-letter ISO country code to filter by destination country (e.g. CA, US, GB, NL). Discoverable via get_countries_list. |
| study_level | string | Study level filter. Accepted values: master, bachelor, phd. |
| discipline_ids | string | Comma-separated numeric discipline IDs to filter by field of study. Discoverable via get_disciplines_list. |
{
"type": "object",
"fields": {
"items": "array of scholarship objects with id, title, description, provider, benefits, deadline, grant, slug, and url",
"total": "total number of matching scholarships",
"has_more": "boolean indicating whether more results exist beyond current offset + limit"
},
"sample": {
"data": {
"items": [
{
"id": "9254",
"url": "https://www.mastersportal.com/scholarships/9254/mundus-mapp-emjm-scholarship.html",
"slug": "mundus-mapp-emjm-scholarship",
"grant": {
"amount": 33600,
"currency": "EUR",
"description": "Up to full tuition waiver"
},
"title": "Mundus MAPP EMJM Scholarship",
"benefits": "33600 EUR",
"deadline": "01 Jul 2026",
"provider": {
"id": "400",
"name": "Mundus MAPP",
"location": null,
"is_university": false
},
"description": "<p>A limited number of EMJM scholarships are awarded...</p>",
"discipline_ids": [],
"application_basis": "Merit-based",
"origin_country_ids": [
"1",
"24"
],
"is_deadline_specified": true,
"destination_country_ids": []
}
],
"total": 4639,
"has_more": true
},
"status": "success"
}
}About the ScholarshipPortal API
Scholarship and Programme Search
The search_scholarships endpoint accepts up to six filter parameters — query, country_iso, study_level (master, bachelor, phd), discipline_ids, limit, and offset — and returns an items array where each object carries the scholarship's id, title, description, provider, benefits, deadline, grant, slug, and url. The total and has_more fields support pagination logic. The search_programmes endpoint shares the same filter surface and returns programme objects with university, location, tuition, duration, and summary fields.
Scholarship Detail
get_scholarship_details takes the id and slug from a search result and returns the full detail page's structured data: an about HTML block, an eligibility_summary HTML block, and a json_ld array containing any JSON-LD structured data objects present on the page. This endpoint is suited for building detail views or extracting machine-readable metadata without parsing raw HTML yourself.
University Search and Reference Data
search_universities filters by keyword and study_level, returning each institution's name, summary, location, ranking, programmes_count, and scholarships_count. Two lightweight reference endpoints support filter discovery: get_countries_list returns objects with iso (two-letter country code) and count (matching programmes), while get_disciplines_list returns objects with a numeric id and count. Both accept a study_level parameter and are the recommended way to populate country and discipline filter dropdowns before calling the search endpoints.
The ScholarshipPortal API is a managed, monitored endpoint for scholarshipportal.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when scholarshipportal.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 scholarshipportal.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 scholarship matching tool that filters results by destination country, study level, and field using
search_scholarships - Display full eligibility requirements for a specific scholarship using
get_scholarship_detailsand itseligibility_summaryfield - Aggregate tuition and duration data across programmes in a given country using
search_programmeswithcountry_isoanddiscipline_ids - Generate ranked lists of universities by
scholarships_countorprogrammes_countusingsearch_universities - Populate country and discipline filter dropdowns dynamically using
get_countries_listandget_disciplines_list - Track scholarship deadlines and grant amounts across a filtered result set for a grant-comparison dashboard
| 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 ScholarshipPortal have an official developer API?+
What does `get_scholarship_details` return that `search_scholarships` does not?+
search_scholarships returns summary-level fields like title, provider, deadline, and grant. get_scholarship_details adds the full about HTML section, the eligibility_summary HTML block, and a json_ld array of structured data objects from the scholarship's detail page — fields that are not available in paginated search results.How should I use `get_disciplines_list` and `get_countries_list` before searching?+
study_level parameter (master, bachelor, phd) and return items with a numeric id or two-letter iso code alongside a count of matching programmes. Pass those id values as comma-separated discipline_ids and the iso values as country_iso when calling search_scholarships or search_programmes to ensure your filters match valid entries.Does the API return application links or direct-apply URLs for scholarships?+
url field pointing to the ScholarshipPortal listing page. Direct external application URLs are not currently broken out as a separate field. You can fork this API on Parse and revise it to extract application links from the detail page's json_ld or about content.Does the API cover all study levels and regions equally?+
study_level filter supports master, bachelor, and phd across all search and reference endpoints. Coverage depth varies by region — smaller countries may have fewer indexed programmes and scholarships, which the count field in get_countries_list reflects. Undergraduate short courses or non-degree programmes are not currently a distinct study level filter. You can fork this API on Parse and revise it to add additional level values if the underlying data supports them.