Discover/su API
live

su APIsu.se

Search courses and degree programs at Stockholm University. Filter by semester, level, study form, and pace. Get full course details, schedules, and syllabi.

Endpoint health
verified 4d ago
get_course_detail
search_courses
get_course_schedule
list_subjects
search_programs
5/5 passing latest checkself-healing
Endpoints
5
Updated
26d ago

What is the su API?

This API covers Stockholm University's full education catalog across 5 endpoints, letting you search courses and degree programs, retrieve detailed course metadata, look up available filter facets, and generate direct schedule links. The search_courses endpoint returns paginated results with fields like credits, educationCode, occasions, and level, and supports filtering by semester, study pace, teaching language, and institution.

Try it
Page number (0-based).
Education level ID filter. Comma-separated for multiple values. '1' for Grundnivå, '2' for Avancerad nivå.
Search keyword (e.g. 'matematik').
Interface language: 'sv' (Swedish) or 'en' (English).
Semester code filter (e.g. 'HT2026', 'VT2026'). Comma-separated for multiple.
Study form ID filter. '1' for Normal, '2' for Distance. Comma-separated for multiple.
Study pace code filter. Values: '25', '50', '75', '100'. Comma-separated for multiple.
Study time ID filter. '101052' for Dagtid, '101055' for Kvällstid. Comma-separated for multiple.
Organisation/institution ID filter. Comma-separated for multiple.
Teaching language code filter. 'SWE' for Swedish, 'ENG' for English. Comma-separated for multiple.
api.parse.bot/scraper/5ddbca99-2632-42a0-a0da-e905a7234b57/<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 POST 'https://api.parse.bot/scraper/5ddbca99-2632-42a0-a0da-e905a7234b57/search_courses' \
  -H 'X-API-Key: $PARSE_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "page": "0",
  "level": "1",
  "query": "matematik",
  "language": "sv",
  "semester": "HT2026",
  "study_form": "1",
  "study_pace": "25",
  "study_time": "101052",
  "teaching_language": "SWE"
}'
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 su-se-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.stockholm_university_course_catalog_api import (
    StockholmUniversity,
    Course,
    CourseDetail,
    Facet,
    Program,
    Language,
    EducationLevel,
    TeachingLanguage,
)

su = StockholmUniversity()

# Browse available filter facets
for facet in su.facets.list(language=Language.SWEDISH):
    print(facet.group_name, facet.heading)
    for item in facet.items:
        print(f"  {item.label} = {item.value}")

# Search for advanced-level courses taught in English
for course in su.courses.search(
    query="statistics",
    level=EducationLevel.SECOND_CYCLE,
    teaching_language=TeachingLanguage.ENGLISH,
    language=Language.ENGLISH,
):
    print(course.education_code, course.name, course.credits)
    for occ in course.occasions:
        print(f"  {occ.semester} {occ.study_time} {occ.location}")
        # Get the schedule for this occasion
        schedule = course.schedule.get(semester=occ.semester, event_code=occ.event_code)
        print(f"  Schedule: {schedule.schedule_url}")

# Get full course detail
detail = su.coursedetails.get(url="/utbildning/utbildningskatalog/fi/fimf10?semester=HT2025&eventcode=10031")
print(detail.education_data.name, detail.education_data.credits)
print(detail.education_data.entry_requirements)
for lit in detail.literature:
    print(lit.text, lit.url)

# Search degree programs
for program in su.programs.search(query="data", level=EducationLevel.SECOND_CYCLE):
    print(program.education_code, program.name, program.credits)
All endpoints · 5 totalmissing one? ·

Full-text search over Stockholm University's course catalog. Supports filtering by education level, semester, teaching language, study form, study pace, study time, and institution. Returns paginated results with course metadata including credits, subjects, and occasion details. Each course item includes a URI for fetching full details via get_course_detail.

Input
ParamTypeDescription
pageintegerPage number (0-based).
levelstringEducation level ID filter. Comma-separated for multiple values. '1' for Grundnivå, '2' for Avancerad nivå.
querystringSearch keyword (e.g. 'matematik').
languagestringInterface language: 'sv' (Swedish) or 'en' (English).
semesterstringSemester code filter (e.g. 'HT2026', 'VT2026'). Comma-separated for multiple.
study_formstringStudy form ID filter. '1' for Normal, '2' for Distance. Comma-separated for multiple.
study_pacestringStudy pace code filter. Values: '25', '50', '75', '100'. Comma-separated for multiple.
study_timestringStudy time ID filter. '101052' for Dagtid, '101055' for Kvällstid. Comma-separated for multiple.
institutionstringOrganisation/institution ID filter. Comma-separated for multiple.
teaching_languagestringTeaching language code filter. 'SWE' for Swedish, 'ENG' for English. Comma-separated for multiple.
Response
{
  "type": "object",
  "fields": {
    "items": "array of course objects with fields: credits, level, educationType, subjects, name, occasions, educationCode, uri",
    "numPages": "integer total number of pages",
    "pageIndex": "integer current page index",
    "approximateTotalHitCount": "integer total matching courses"
  },
  "sample": {
    "data": {
      "items": [
        {
          "uri": "/utbildning/utbildningskatalog/fi/fimf10",
          "name": "Matematikens filosofi",
          "level": "Grundnivå",
          "credits": "7,5",
          "subjects": [
            "Filosofi"
          ],
          "occasions": [
            {
              "uri": "/utbildning/utbildningskatalog/fi/fimf10?semester=HT2025&eventcode=10031",
              "period": "Period 1",
              "location": "På campus",
              "semester": "HT 2025",
              "eventCode": "10031",
              "studyPace": "50",
              "studyTime": "Dagtid",
              "studyPeriodEnd": "2025-11-02",
              "admissionStatus": {
                "color": "grey",
                "label": "Stängd för anmälan"
              },
              "studyPeriodStart": "2025-09-01",
              "isForInternationalStudents": false
            }
          ],
          "educationCode": "FIMF10",
          "educationType": "Kurs",
          "isPartOfProgramme": false
        }
      ],
      "numPages": 33,
      "pageIndex": 0,
      "approximateTotalHitCount": 650
    },
    "status": "success"
  }
}

About the su API

Searching Courses and Programs

The search_courses and search_programs endpoints accept a query keyword along with a range of structured filters: semester (e.g. HT2026, VT2026), level (e.g. 1 for Grundnivå, 2 for Avancerad nivå), study_form (normal vs. distance), study_pace (25%, 50%, 75%, or 100%), and study_time (daytime vs. evening). Both return paginated arrays of education objects that include name, credits, educationType, subjects, occasions, educationCode, and a uri pointing to the detail page. The approximateTotalHitCount field tells you the total number of matching records across all pages.

Course Detail and Scheduling

get_course_detail accepts a URL path from search results and returns a structured educationData object — covering code, name, description, credits, entryRequirements, organisation, educationType, and educationLevel — alongside an eventData array with per-instance admission and scheduling details. It also surfaces literature links, a syllabus_archive_link, a course_report_url, and a time_edit_base_url. For constructing a direct schedule link, get_course_schedule takes a semester and an event_code (sourced from occasions[].eventCode in search results) and returns a ready-to-use TimeEdit URL.

Filter Discovery

The list_subjects endpoint returns all available filter facets — subjects, education levels, semesters, study forms, study times, study paces, teaching languages, and institutions — as structured facet groups. Each facet item includes name, label, value, and checked fields, making it straightforward to populate dynamic filter UIs or validate parameter values before running searches. The language parameter (sv or en) controls the language of returned labels across all endpoints.

Reliability & maintenanceVerified

The su API is a managed, monitored endpoint for su.se — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when su.se 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 su.se 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
5/5 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 course discovery tool that lets students filter by semester, study pace, and teaching language using search_courses.
  • Aggregate all degree programs at a specific institution by filtering search_programs with an institution ID.
  • Display a full course profile page by fetching educationData, entryRequirements, and literature from get_course_detail.
  • Generate direct TimeEdit schedule links for course instances using get_course_schedule with semester and event_code.
  • Populate a filter UI dynamically with all valid facet options from list_subjects to avoid invalid parameter submissions.
  • Monitor which semesters have active offerings by scanning occasions arrays returned from course search results.
  • Compare entry requirements across courses by extracting entryRequirements from multiple get_course_detail responses.
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 Stockholm University have an official public developer API?+
Stockholm University does not publish a documented public developer API for its education catalog. This Parse API provides structured access to the course and program data available on su.se.
What does `get_course_detail` return beyond basic course metadata?+
Beyond the educationData object (which includes code, name, description, credits, entryRequirements, organisation, and educationLevel), the endpoint returns an eventData array with per-instance admission and cost details, a literature array with linked reading list resources, a syllabus_archive_link, a course_report_url, and a time_edit_base_url for schedule access.
How does pagination work in search results?+
Both search_courses and search_programs use 0-based page indexing via the page parameter. Each response includes numPages (total pages), pageIndex (current page), and approximateTotalHitCount (total matching records). Iterate through pages incrementing page until you reach numPages - 1.
Does the API cover exam registrations, student grades, or personal academic records?+
Not currently. The API covers the public education catalog: course and program listings, course details, syllabi links, scheduling URLs, and filter facets. Personal academic data such as exam registrations or grades requires authenticated access to Stockholm University's student systems and is not exposed. You can fork this API on Parse and revise it to add endpoints targeting any public-facing data the current spec doesn't reach.
Can I retrieve the actual course syllabus document through this API?+
Not directly. get_course_detail returns a syllabus_archive_link — a URL pointing to the syllabus archive on su.se — but the API does not fetch or parse the syllabus document contents itself. You can fork the API on Parse and revise it to add an endpoint that retrieves and parses syllabus document content from that link.
Page content last updated . Spec covers 5 endpoints from su.se.
Related APIs in EducationSee all →
ucas.com API
Search and explore UK university courses, apprenticeships, and scholarships all in one place, while discovering detailed information about education providers and their offerings. Find the perfect educational path by filtering courses and apprenticeships by your preferences and accessing comprehensive provider details to inform your decisions.
senecapolytechnic.ca API
Search and explore Seneca Polytechnic's programs and courses to find detailed information about admissions requirements, costs, credentials, and learning pathways. Discover which programs match your interests by browsing by credential type or program category, and get complete course listings for any program you're considering.
mit.edu API
Access comprehensive MIT course and program information including tuition costs, financial aid options, degree programs with their requirements, and detailed course listings. Plan your education by exploring program details and understanding the full cost structure to make informed decisions about your studies at MIT.
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.
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.
coloso.global API
Discover and browse Coloso's entire course catalog by searching products, filtering by categories, and viewing details on new releases, best sellers, and free classes. Get insights into promotional events, trending keywords, and personalized recommendations to find the perfect creative courses.
gradschools.com API
Search graduate programs across multiple categories and discover articles about funding, financial aid, and admissions to help guide your grad school journey. Find specific program information and detailed resources all in one place to support your application and enrollment decisions.
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.