Sisu Wrapper REST API#
Exposes study group and schedule data from Aalto’s Sisu system via HTTP.
Note: This is a REST wrapper around the sisu-wrapper Python library. For programmatic access in Python, use the library directly:
pip install sisu-wrapperEndpoints#
GET /study-groups#
Returns all study groups for a course offering.
Parameters:
course_unit_id(string) — Course unit ID (e.g. “aalto-OPINKOHD-1125839311-20210801”)offering_id(string) — Course offering/realisation ID (e.g. “aalto-CUR-206690-3122470”)
Response:
[
{
"group_id": "H01",
"name": "Exercise Group 1",
"type": "Exercise",
"study_events": [
{
"start": "2026-02-24T12:15:00+02:00",
"end": "2026-02-24T14:00:00+02:00"
}
]
}
]Example:
curl "http://127.0.0.1:8001/study-groups?course_unit_id=aalto-OPINKOHD-1125839311-20210801&offering_id=aalto-CUR-206690-3122470"GET /course-offering#
Returns complete course offering data including all study groups.
Parameters:
course_unit_id(string)offering_id(string)
Response:
{
"course_unit_id": "aalto-OPINKOHD-1125839311-20210801",
"offering_id": "aalto-CUR-206690-3122470",
"name": "Programming 1",
"study_groups": [...]
}Finding IDs#
Course unit IDs and offering IDs are available in courses.json:
{
"courseUnitId": "aalto-OPINKOHD-1125839311-20210801",
"id": "aalto-CUR-206690-3122470",
...
}Status#
Currently used by the frontend to display study group details. The REST API is integrated into the application but not yet widely documented.
Interactive docs: http://127.0.0.1:8001/docs (when running locally)
Sisu Wrapper Python Library#
Programmatic access to Sisu data in Python.
Installation:
pip install sisu-wrapperDocumentation: See the sisu-wrapper GitHub repository
Quick example:
from sisu_wrapper import SisuClient, SisuService
with SisuClient() as client:
service = SisuService(client)
offering = service.fetch_course_offering(
course_unit_id="aalto-OPINKOHD-1125839311-20210801",
offering_id="aalto-CUR-206690-3122470"
)
print(f"Course: {offering.name}")
print(f"Study groups: {len(offering.study_groups)}")The library provides:
- Type-safe data models
- Connection pooling
- Comprehensive error handling
- Context manager support
For full documentation, see sisu-wrapper README.
Want to understand the bigger picture?#
- Getting Started – Using these services
- Architecture – How APIs fit into the system
- Data Pipeline – Course data source