su.se 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.
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,
"query": "matematik",
"language": "sv"
}'Search for courses at Stockholm University. Supports filtering by level, semester, teaching language, study form, study pace, study time, and institution. Returns paginated results.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (0-based). |
| level | string | Education level ID filter. Comma-separated for multiple values (e.g. '1' for Grundnivå, '2' for Avancerad nivå). |
| query | string | Search keyword (e.g. 'matematik'). |
| language | string | Interface language: 'sv' (Swedish) or 'en' (English). |
| semester | string | Semester code filter (e.g. 'HT2026', 'VT2026'). Comma-separated for multiple. |
| study_form | string | Study form ID filter (e.g. '1' for Normal, '2' for Distance). Comma-separated for multiple. |
| study_pace | string | Study pace code filter (e.g. '25', '50', '75', '100'). Comma-separated for multiple. |
| study_time | string | Study time ID filter (e.g. '101052' for Dagtid, '101055' for Kvällstid). Comma-separated for multiple. |
| institution | string | Organisation/institution ID filter. Comma-separated for multiple. |
| teaching_language | string | Teaching language code filter (e.g. 'SWE', 'ENG'). Comma-separated for multiple. |
{
"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/mm/mm1005",
"name": "Matematik för ekonomisk och statistisk analys",
"level": "Grundnivå",
"credits": "7,5",
"subjects": [
"Matematik"
],
"occasions": [
{
"uri": "/utbildning/utbildningskatalog/mm/mm1005?semester=HT2026&eventcode=48092",
"period": "Period 1",
"location": "På campus",
"semester": "HT 2026",
"eventCode": "48092",
"studyPace": "100",
"studyTime": "Dagtid",
"studyPeriodEnd": "2026-09-30",
"admissionStatus": {
"color": "grey",
"label": "Stängd för anmälan"
},
"studyPeriodStart": "2026-08-31",
"isForInternationalStudents": false
}
],
"educationCode": "MM1005",
"educationType": "Kurs",
"isPartOfProgramme": false
}
],
"numPages": 33,
"pageIndex": 0,
"approximateTotalHitCount": 656
},
"status": "success"
}
}About the su.se 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.
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.
- 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_programswith aninstitutionID. - Display a full course profile page by fetching
educationData,entryRequirements, andliteraturefromget_course_detail. - Generate direct TimeEdit schedule links for course instances using
get_course_schedulewithsemesterandevent_code. - Populate a filter UI dynamically with all valid facet options from
list_subjectsto avoid invalid parameter submissions. - Monitor which semesters have active offerings by scanning
occasionsarrays returned from course search results. - Compare entry requirements across courses by extracting
entryRequirementsfrom multipleget_course_detailresponses.
| 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 | 250 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 Stockholm University have an official public developer API?+
What does `get_course_detail` return beyond basic course metadata?+
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?+
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?+
Can I retrieve the actual course syllabus document through this API?+
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.