Untis Mobile API Reference - SapuSeven/BetterUntis GitHub Wiki

This reference is still work-in-progress.

All data provided in this reference is the result of analyzing network traffic of the original app. There is no guarantee about the accuracy of this information.

Field types marked with ? are optional and can be null.

Methods

getAppSharedSecret

Parameters

Name Type Description
userName String The user name of the user
password String The password of the user (same as in the web version of Untis)

Response

Name Type Description
result String Contains the login secret required for authenticated API requests

getExams2017

Parameters

Name Type Description
id Int The ID of the target element (usually a student or teacher)
type String The type of the target element (usually STUDENT or TEACHER)
startDate UntisDate The start date of the desired exam range
endDate UntisDate The end date of the desired exam range
auth UntisAuth Authentication

Response

Name Type Description
result ExamResult Contains the requested exams

getHomeWork2017

Parameters

Name Type Description
id Int The ID of the target element (usually a student)
type String The type of the target element (usually STUDENT)
startDate UntisDate The start date of the desired homework range
endDate UntisDate The end date of the desired homework range
auth UntisAuth Authentication

Response

Name Type Description
result HomeworkResult Contains the requested homework

getOfficeHours2017

Parameters

Name Type Description
klasseId Int The target class ID
startDate UntisDate Start date for the office hours
auth UntisAuth Authentication

Response

Name Type Description
result OfficeHoursResult Contains the requested office hours

getStudentAbsences2017

Parameters

Name Type Description
startDate UntisDate The start date of the desired absence range
endDate UntisDate The end date of the desired absence range
includeExcused Boolean Include excused absences
includeUnExcused Boolean Include unexcused absences
auth UntisAuth Authentication

Response

Name Type Description
result AbsenceResult Contains the requested absences

getTimetable2017

Parameters

Name Type Description
id Int The ID of the target element
type String The type of the target element
startDate UntisDate The start date of the desired timetable range
endDate UntisDate The end date of the desired timetable range
masterDataTimestamp Long (unknown usage)
timetableTimestamp Long (unknown usage)
timetableTimestamps List<Long> (unknown usage)
auth UntisAuth Authentication

Response

Name Type Description
result TimetableResult Contains the requested timetable

getUserData2017

Parameters

Name Type Description
auth UntisAuth Authentication

Response

Name Type Description
result UserDataResult Contains the requested user data

searchSchool

Parameters

Name Type Description
search String Search by school ID, name or address
schoolid Int Search by school ID
schoolname String Search by school name

All elements are optional.

Response

Name Type Description
result SchoolSearchResult Contains the search results

Data Types

AbsenceResult

Name Type Description
absences List<UntisAbsence> A list of all matching absences

ExamResult

Name Type Description
id Int The ID of the target element
type String The type of the target element (usually STUDENT or TEACHER)
exams List<UntisExam> A list of all exams for the target element within the date range specified in the request

HomeworkResult

Name Type Description
homeWorks List<UntisHomework> A list of all homework for the target element within the date range specified in the request
lessonsById Map<String, UntisHomeworkLesson> A map between UntisHomework.lessonId and corresponding subject- klassen- and teacher-ID

OfficeHoursResult

Name Type Description
officeHours List<UntisOfficeHour> A list of all office hours for the target class within the date range specified in the request

SchoolSearchResult

Name Type Description
size Int
schools List<UntisSchoolInfo> A list of all matching school results

TimetableResult

Name Type Description
timetable UntisTimetable The timetable for the date-time range specified in the request
masterData UntisMasterData (unknown usage)

UserDataResult

Name Type Description
masterData UntisMasterData Master data of the authenticated user
userData UntisUserData User data of the authenticated user
settings UntisSettings Miscellaneous settings for the app (not used in BetterUntis)
messengerSettings UntisMessengerSettings? Settings for the Untis Messenger app

UntisAbsence

Name Type Description
id Int Absence element id
studentId Int
klasseId Int
startDateTime String
endDateTime String
owner Boolean
excused Boolean
excuse UnknownObject?
absenceReasonId Int
absenceReason String
text String

UntisAuth

Name Type Description
user String
otp Long
clientTime Long

UntisDate

Name Type Description

UntisExam

Name Type Description
id Int
examType String
startDateTime String
endDateTime String
departmentId Int
subjectId Int
klasseIds List<Int>
roomIds List<Int>
teacherIds List<Int>
invigilators List<UntisInvigilator>
name String
text String

UntisHomework

Name Type Description
id Int
lessonId Int
startDate String
endDate String
text String
remark UnknownObject?
completed Boolean
attachments List<UnknownObject>

UntisHomeworkLesson

Name Type Description
id Int The homework ID
subjectId Int The subject the homework is from
klassenIds List<Int> ID list of every related class
teacherIds List<Int> ID list of every related teacher

UntisInvigilator

Name Type Description
id Int
startTime String
endTime String

UntisMasterData

Name Type Description
timeStamp Long
absenceReasons List<AbsenceReason>
departments List<Department>
duties List<Duty>
eventReasons List<EventReason>
eventReasonGroups List<EventReasonGroup>
excuseStatuses List<ExcuseStatus>
holidays List<Holiday>
klassen List<Klasse>
rooms List<Room>
subjects List<Subject>
teachers List<Teacher>
teachingMethods List<TeachingMethod>
schoolyears List<SchoolYear>
timeGrid TimeGrid

UntisOfficeHour

Name Type Description
id Int
startDateTime String
endDateTime String
teacherId Int
imageId Int
email String?
phone String?
displayNameRooms String
displayNameTeacher String
registrationPossible Boolean
registered Boolean

UntisSchoolInfo

Name Type Description
server String
useMobileServiceUrlAndroid Boolean
useMobileServiceUrlIos Boolean
address String
displayName String
loginName String
schoolId Int
serverUrl String
mobileServiceUrl String

UntisTimetable

Name Type Description
displayableStartDate String
displayableEndDate String
periods List<Period>

UntisUserData

Name Type Description
elemType String?
elemId Int
displayName String
schoolName String
departmentId Int
children List<UnknownObject>
klassenIds List<Int>
rights List<String>