Discover/UCAS API
live

UCAS APIucas.com

Access UCAS course listings, apprenticeships, university profiles, scholarships, and content via a structured JSON API. 7 endpoints covering UK higher education data.

Endpoint health
verified 4d ago
search_courses
get_provider_details
get_scholarship_details
search_content
get_course_details
7/7 passing latest checkself-healing
Endpoints
7
Updated
22d ago

What is the UCAS API?

The UCAS API exposes 7 endpoints covering UK undergraduate and postgraduate courses, apprenticeships, university and college profiles, editorial content, and scholarships from ucas.com. The search_courses endpoint returns paginated course objects including courseId, courseTitle, provider, subjects, and entry options, filterable by academic year (2025 or 2026). Companion endpoints deliver detailed fee and grade history per course, employer and salary data for apprenticeships, and structured scholarship details including deadline and eligibility.

Try it
Page number (0-indexed).
Academic year to filter by. Only years with published course data return results (currently '2025' and '2026').
Number of results per page.
Search keyword for courses (e.g. 'engineering', 'medicine').
api.parse.bot/scraper/26ad71cd-9914-4a1e-8d6e-ca0122a45400/<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/26ad71cd-9914-4a1e-8d6e-ca0122a45400/search_courses?page=0&year=2025&limit=5&query=engineering' \
  -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 ucas-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.

"""
UCAS API - Search and explore UK university courses, apprenticeships, providers, and scholarships.
"""

from parse_apis.ucas_api import Ucas, AcademicYear, ContentType, Course, Provider

ucas = Ucas()

# Search for engineering courses in 2026
for course in ucas.courses.search(query="engineering", year=AcademicYear.Y2026, limit=5):
    print(course.course_title, course.university, course.provider_location)

# Get full details for a specific course
detail = ucas.courses.get(course_id="f9631483-60d5-dbea-4593-4fb95ead77d5")
print(detail.course_title, detail.university)

# Search for software apprenticeships
for apprenticeship in ucas.apprenticeships.search(query="software", limit=3):
    print(apprenticeship.title, apprenticeship.employer_name, apprenticeship.salary)

# Search providers
for provider in ucas.providers.search(query="oxford", limit=3):
    print(provider.name, provider.region, provider.code)

# Search content filtered by type
for item in ucas.contentitems.search(query="finance", type=ContentType.ARTICLE, limit=3):
    print(item.title, item.url)

# Retrieve scholarship details
scholarship = ucas.scholarships.get(scholarship_id="a891b5d3-a1b5-4e41-9918-42194074c320")
print(scholarship.name, scholarship.provider_id, scholarship.scholarship_id)
All endpoints · 7 totalmissing one? ·

Full-text search over UCAS course listings filtered by academic year. Returns paginated results with course title, provider, location, study options, and subject metadata. Each hit includes a courseId suitable for drilling into full details via get_course_details.

Input
ParamTypeDescription
pageintegerPage number (0-indexed).
yearstringAcademic year to filter by. Only years with published course data return results (currently '2025' and '2026').
limitintegerNumber of results per page.
querystringSearch keyword for courses (e.g. 'engineering', 'medicine').
Response
{
  "type": "object",
  "fields": {
    "hits": "array of course objects containing courseId, courseTitle, university, providerId, options, subjects, and more",
    "page": "integer current page number",
    "nbHits": "integer total number of matching courses",
    "nbPages": "integer total number of pages"
  },
  "sample": {
    "data": {
      "hits": [
        {
          "scheme": "Undergraduate",
          "options": [
            {
              "duration": "4 Years",
              "startDate": "September 2026",
              "studyMode": "Full-time",
              "Qualification": "BEng (Hon)",
              "courseOptionId": "e94a467c-e5fc-4a54-a4d2-163318eda956"
            }
          ],
          "courseId": "f9631483-60d5-dbea-4593-4fb95ead77d5",
          "providerId": "3a023828-8d77-ecfa-dc21-2708f721b788",
          "university": "University of Aberdeen",
          "courseTitle": "Engineering",
          "optionCount": 1,
          "academicYear": 2026,
          "providerLocation": "Aberdeen"
        }
      ],
      "page": 0,
      "nbHits": 7007,
      "nbPages": 200
    },
    "status": "success"
  }
}

About the UCAS API

Course and Provider Data

search_courses accepts a query keyword, a year parameter (currently '2025' or '2026'), and standard page/limit pagination controls. Each hit in the hits array includes courseId, courseTitle, university, providerId, options, and subjects. To drill into a specific course, pass the course_id UUID to get_course_details, which returns the full course object — including provider contacts, fees, and course options — alongside a historicGrades object containing grade distribution history (or null when unavailable). Provider-level data follows the same pattern: search_providers searches by name or address, and get_provider_details returns courseCount, options, open day event arrays, and provider profile objects for a given provider_id.

Apprenticeships and Scholarships

search_apprenticeships returns paginated listings with fields including Title, EmployerName, Location, Salary, and Duration — useful for building apprenticeship finders or salary-range comparisons. get_scholarship_details accepts a scholarship_id UUID and returns structured data via the scholarship_parsed field, covering scholarship name, value, deadline, nationality, study_level, and application details. The raw scholarship field also carries the full JSON-encoded payload for cases where additional unparsed attributes are needed.

Content Search

search_content queries UCAS articles and guides. Results can be narrowed to 'structure_content' or 'article' via the type parameter, and each hit exposes title, url, summary, type, and author. This is suitable for surfacing UCAS guidance content — finance guides, application tips, scholarship explainers — alongside course or provider results in a single interface.

Reliability & maintenanceVerified

The UCAS API is a managed, monitored endpoint for ucas.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ucas.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 ucas.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
4d ago
Latest check
7/7 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 UK course comparison tool using courseTitle, subjects, fees, and historicGrades from get_course_details.
  • Populate an apprenticeship board with employer name, location, salary, and duration from search_apprenticeships.
  • Create a university discovery feature filtering providers by region and surfacing open day dates from get_provider_details.
  • Aggregate scholarship opportunities by study level, nationality, and deadline using get_scholarship_details.
  • Display contextual UCAS guidance articles alongside course listings by querying search_content with a matching keyword.
  • Track year-on-year course availability by comparing search_courses results across the 2025 and 2026 academic year parameters.
  • Build an autocomplete provider search using search_providers full-text matching on university and college names.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does UCAS have an official public developer API?+
UCAS does not publish a general-purpose public developer API for course and provider data. Access to structured UCAS data for developers is available through this Parse API.
What does get_course_details return beyond the search listing?+
It returns the full course object including provider contacts, fee structures, and entry options, plus a historicGrades object with grade distribution history. If historic grade data has not been published for that course, historicGrades returns null. The course_id UUID required as input can be taken directly from any hit returned by search_courses.
Which academic years are available in search_courses?+
The year parameter currently returns results for '2025' and '2026'. Omitting the year parameter or supplying a year without published data will return no results, so passing one of those two string values explicitly is recommended.
Does the API return individual student application or admission statistics?+
No. The API returns historicGrades at the course level from get_course_details, but does not expose individual applicant records, acceptance rates, or UCAS points score distributions. You can fork this API on Parse and revise it to add an endpoint targeting that data if it becomes available in a structured form.
Can I filter courses by subject area, entry requirements, or location directly?+
search_courses currently supports keyword-based filtering via the query parameter and year filtering via year, but does not expose dedicated subject, entry-requirement, or geographic filter parameters. You can fork this API on Parse and revise it to add those filter inputs if needed.
Page content last updated . Spec covers 7 endpoints from ucas.com.
Related APIs in EducationSee all →
cucas.cn API
Search for scholarships and study programs across Chinese universities, browse detailed scholarship information, and discover the latest funding opportunities available through China's official university admission system. Find universities and compare academic programs to plan your studies in China.
su.se API
Search and explore Stockholm University's complete course catalog to find specific courses, browse academic programs, check class schedules, and discover available subjects. Get detailed information about any course offering to plan your studies and manage your academic schedule.
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.
findapprenticeship.service.gov.uk API
Search and browse live apprenticeship vacancies across the UK, filter opportunities by location and job type, and view detailed information about specific positions to find the right apprenticeship match. Access comprehensive listing counts and filter options to narrow down your search.
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.
shiksha.com API
Search and browse Shiksha colleges by stream/course, then fetch detailed institute profiles and course offerings, plus upcoming exam schedules by stream.
timeshighereducation.com API
Access Times Higher Education data including global university rankings across dozens of subject areas, detailed university profiles with scoring breakdowns, academic job listings, and site-wide search for articles and university pages.
opendays.com API
Search and discover open day events at educational institutions, view detailed event information and institution profiles, and browse the complete calendar of upcoming visits. Find the perfect school or university open day by searching institutions or exploring all available options with their program details and dates.