Discover/PhDScanner API
live

PhDScanner APIphdscanner.com

Access PhD opportunities and professor postings from PhDScanner.com. Filter by country, university, and funding status. Returns titles, supervisors, AI summaries, and more.

Endpoint health
verified 6d ago
search_opportunities
get_opportunity
list_phd_postings
3/3 passing latest checkself-healing
Endpoints
3
Updated
20d ago

What is the PhDScanner API?

The PhDScanner API exposes 3 endpoints that cover PhD opportunities and professor-shared position postings indexed on phdscanner.com. The search_opportunities endpoint lets you filter by country, university, and funding status, returning paginated results with fields including title, discipline, supervisor, funding details, and an AI-generated summary per listing. The get_opportunity endpoint delivers full details — including department, city, view count, and status — for any single position by UUID.

This call costs1 credit / call— charged only on success
Try it
Number of results to return per page.
Filter for fully funded positions only. Pass 'true' to include only fully funded positions.
Pagination offset (number of results to skip).
Filter by country name (e.g. Germany, Netherlands, United Kingdom, Switzerland, Australia).
Filter by university name (e.g. EPFL, University of Vienna, TU Dresden, Technical University of Munich).
api.parse.bot/scraper/7939701b-6ecc-48e4-8084-b024250fa10c/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/7939701b-6ecc-48e4-8084-b024250fa10c/search_opportunities?limit=10&funded=true&offset=0&country=Germany&university=Technical+University+of+Munich' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 phdscanner-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: PhDScanner SDK — search PhD opportunities and professor postings."""
from parse_apis.phdscanner_com_api import PhDScanner, Funded, OpportunityNotFound

client = PhDScanner()

# Search funded PhD positions in Germany
for opp in client.opportunities.search(country="Germany", funded=Funded.TRUE, limit=3):
    print(opp.title, "|", opp.university, "|", opp.department)

# Drill into a single opportunity for full details
opp = client.opportunities.search(country="Netherlands", limit=1).first()
if opp:
    detail = client.opportunities.get(opportunity_id=opp.id)
    print(detail.title, "|", detail.supervisor, "|", detail.fully_funded)

# Handle not-found errors gracefully
try:
    client.opportunities.get(opportunity_id="00000000-0000-0000-0000-000000000000")
except OpportunityNotFound as exc:
    print(f"Opportunity not found: {exc}")

# Browse professor PhD postings from LinkedIn
for posting in client.postings.list(limit=3):
    print(posting.ai_title, "|", posting.professor_name, "|", posting.university)

print("exercised: opportunities.search / opportunities.get / postings.list")
All endpoints · 3 totalmissing one? ·

Search PhD opportunities with optional filters for country, university, and funding status. Returns paginated results sorted by most recent. Each result includes title, university, location, discipline, supervisor, funding details, and an AI-generated summary.

Input
ParamTypeDescription
limitintegerNumber of results to return per page.
fundedstringFilter for fully funded positions only. Pass 'true' to include only fully funded positions.
offsetintegerPagination offset (number of results to skip).
countrystringFilter by country name (e.g. Germany, Netherlands, United Kingdom, Switzerland, Australia).
universitystringFilter by university name (e.g. EPFL, University of Vienna, TU Dresden, Technical University of Munich).
Response
{
  "type": "object",
  "fields": {
    "items": "array of PhD opportunity summaries",
    "limit": "integer",
    "total": "integer",
    "offset": "integer"
  },
  "sample": {
    "items": [
      {
        "id": "a1df8e61-f852-41c0-8a0d-e68c593e64f1",
        "city": "Munich",
        "title": "Doctoral Candidate in Computational Literary Studies",
        "views": "7",
        "country": "Germany",
        "ai_summary": "PhD position at MPI for investigating macroevolution in European literature.",
        "created_at": 1782782417,
        "department": "Digital Humanities",
        "supervisor": "Dr. Oleg Sobchuk",
        "university": "Max Planck Gesellschaft",
        "closing_date": "1786752000",
        "fully_funded": true,
        "funded_amount": "65% of TVoD E13 salary",
        "opportunity_url": "https://www.mpg.de/26850384/doctoral-candidate"
      }
    ],
    "limit": 5,
    "total": 105,
    "offset": 0
  }
}

About the PhDScanner API

PhD Opportunity Search

The search_opportunities endpoint accepts up to five optional parameters: country (e.g. Germany, Australia, Netherlands), university (e.g. EPFL, TU Dresden), funded (pass 'true' to restrict results to fully funded positions), limit, and offset for pagination. Results are sorted by most recent and each item includes a title, university, location, discipline, supervisor name, funding details, and an AI-generated summary of the position.

Full Opportunity Detail

Passing a UUID from search results to get_opportunity returns the complete record for that position: id, title, city, country, category, department, status, views, created_at (Unix timestamp), and ai_summary. The response also includes the full HTML description, supervisor contact information, and application details — content not surfaced in the search results list.

Professor PhD Postings

The list_phd_postings endpoint returns PhD position announcements shared by professors, sourced from LinkedIn activity. Each item includes the professor's details, university, department, and the post content itself. This endpoint supports limit and offset pagination and surfaces a different slice of the PhD opportunity landscape than the main search — informal or recently announced openings that may not yet appear as formal listings.

Data Coverage

The API covers international PhD positions across Europe, Australia, and beyond, with country and university filters making it practical to narrow results to a specific institution or region. The funded filter is particularly useful for surfaces where only fully-funded positions are actionable for a given audience.

Reliability & maintenanceVerified

The PhDScanner API is a managed, monitored endpoint for phdscanner.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when phdscanner.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 phdscanner.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.

Last verified
6d ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a PhD opportunity aggregator filtered by country and funding status using search_opportunities
  • Send email alerts when new fully funded positions appear at a target university by polling with the university and funded filters
  • Display full position descriptions and supervisor contact info on a research portal using get_opportunity
  • Track how many views a PhD listing accumulates over time using the views field from get_opportunity
  • Surface informal professor PhD announcements from LinkedIn alongside formal listings using list_phd_postings
  • Classify opportunities by discipline or department using the category and department fields for recommendation systems
  • Monitor newly posted opportunities by sorting on created_at timestamps from the search results
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 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.

Frequently asked questions
Does PhDScanner have an official developer API?+
PhDScanner does not publish an official public developer API. This Parse API provides structured access to the opportunity data and professor postings available on phdscanner.com.
What does the `get_opportunity` endpoint return beyond what `search_opportunities` shows?+
The get_opportunity endpoint returns the complete HTML description of the position, supervisor contact information, and application details, along with fields like city, department, status, views, and a Unix created_at timestamp — several of which are not included in the search results list.
Can I filter `search_opportunities` by discipline or department?+
The search_opportunities endpoint currently supports filtering by country, university, and funded status. Discipline and department data are present as fields on individual results but are not available as filter parameters. You can fork this API on Parse and revise it to add a discipline or department filter endpoint.
Does the API cover PhD positions outside Europe and Australia?+
The documented country filter examples focus on European countries (Germany, Netherlands, United Kingdom, Switzerland) and Australia. Coverage of positions in North America, Asia, or Africa is not confirmed by the current endpoint specification. You can fork this API on Parse and revise it to target additional regions if the underlying data includes them.
What data does `list_phd_postings` return, and how is it different from the main search?+
list_phd_postings returns PhD position announcements shared by professors on LinkedIn, including professor details, university, department, and the post content. These are informal or recently announced openings and are distinct from the formal, structured listings returned by search_opportunities. The two endpoints complement each other but draw from different sources.
Page content last updated . Spec covers 3 endpoints from phdscanner.com.
Related APIs in EducationSee all →
phdportal.com API
Search and discover PhD programmes across 19,000+ opportunities worldwide from PhDportal.com, filtering by your research interests and preferred locations. Access detailed programme information including specifics about each doctoral offering to help you find the perfect fit for your academic goals.
scholarshipportal.com API
Search and discover scholarships, degree programmes, and universities across StudyPortals' global education database, with the ability to filter by countries, disciplines, and other criteria. Get detailed information about specific scholarships and programmes to compare educational opportunities that match your academic interests.
mastersportal.com API
Search and browse thousands of scholarships from Mastersportal.com to find funding opportunities tailored to your destination country and academic discipline. Filter results by your preferred study location and field of study to discover scholarships that match your educational goals.
scholarships.com API
Search and browse the Scholarships.com directory by category — including academic major, residence state, ethnicity, gender, school year, and deadline. Retrieve scholarship listings within any category and subcategory, and fetch full details for individual scholarships including award amounts, eligibility criteria, application deadlines, and application links.
profiles.ucl.ac.uk API
Search for UCL researchers by keywords, department, and field of research to discover expert profiles and their specializations. Find the right academic contacts and learn about their research interests to support collaborations or academic inquiries.
notgoingtouni.co.uk API
Search and discover apprenticeship opportunities across sectors and companies on NotGoingToUni.co.uk, filtering by opportunity types and viewing detailed information about specific roles. Browse featured apprenticeships and explore available sectors and employers to find the right career path.
ph.jobstreet.com API
Search for jobs and explore detailed listings from JobStreet Philippines, including job descriptions, company profiles, and hiring information. Discover employment opportunities by browsing job classifications and viewing all open positions from specific companies.
upwork.com API
Access comprehensive details about Upwork job postings, including descriptions, budgets, required skills, client information, and engagement metrics to help you find and evaluate opportunities. Monitor job activity and client profiles to make informed decisions about which projects to pursue.