The main endpoint is https://paula-upb.de/Paul/ExportCourses?shortCatalogueTitle=X&token=Y
where X
specifies the semester of which courses should be exported. X is of the form "WS 2016/17" or "SS 2017". If the semester cannot be found in the database, an empty object is returned. Usually, the current and the next semester is stored in the database. To keep our database light, other semesters are deleted automatically. The parameter can also be omitted completely to fetch all courses.
Y
is the auth token we'll send you separately to avoid abuse.
In case the requested semester is found or you've requested all by omitting the parameter shortCatalogueTitle
, the API returns the following structure:
{
"SS 2017": [<course1>, ...],
"WS 2016/17": ...
}
The returned JSON object is multiple MBs in size, so using a streaming JSON parser may be required to consume it.
A request from us: Exporting courses from the database is a computationally expensive task, so please call it a few times a day at maximum in production. Don't worry about it while debugging though.
https://paula-upb.de/Paul/ExportShortCatalogueTitles?token=Y
yields a list of all available semesters in the database.
The class definitions seen in the other files are a layer on top of our actual database classes, so you may consider them stable. We reserve the right to add properties, but we won't remove any without warning first, at least not without very good reasons to do so.
See the following two files. The private properties and property getters can be ignored, but the structure is exactly what the JSON looks like, with the minor difference that property names start with a lowercase letter, not with an uppercase letter as seen in the class definition.
Please note that these services are taken offline every night starting at 2:00 UTC to fetch the latest data from PAUL. This maintenance takes 30 minutes on average, so to be safe you should hold off from accessing the API between 2:00 to 3:00 UTC. During the maintenance phase, the API will return HTTP 503.
We guarantee neither correctness nor availability of the data, though during the lifetime of PAULa UPB we didn't run into any issues we weren't able to fix within a day or so. In almost all cases, issues simply caused our database to become out of date, but old data was still available.