Skip to content

martinhey/WebUntisNet

Repository files navigation

WebUntisNet

This is an API client to access Webuntis. It is written as .NET Standard library to be used in .NET Framework projects and .NET Core projects as well.

Status

Build status NuGet

Usage

Connect to your WebUntis instance

WebUntisClient is the main entry point for you to use this library. The constructor needs several parameters which are mandantory to connect to your WebUntis instance. You don't have to deal with authentication and session handling. It's all done by this library.

using(var client = new WebUntisClient("https://my.webuntis.local/WebUntis/jsonrpc.do", "schoolname", "user", "password"))
{
    var timetable = await client.GetTimetableAsync(ElementType.Student, 1497);
    ....
}

Supported functions

  • GetTeachersAsync (Ref. 3)
  • GetStudentsAsync (Ref. 4)
  • GetClassesAsync (Ref. 5)
  • GetSubjectsAsync (Ref. 6)
  • GetRoomsAsync (Ref. 7)
  • GetDepartmentsAsync (Ref. 8)
  • GetHolidaysAsync (Ref. 9)
  • GetTimegridAsync (Ref. 10)
  • GetStatusDataAsync (Ref. 11)
  • GetCurrentSchoolYearAsync (Ref. 12)
  • GetSchoolYearsAsync (Ref. 13)
  • GetTimetableAsync (Ref. 14)
  • GetLatestImportTimeAsync (Ref. 17)
  • GetPersonIdAsync (Ref. 18)
  • GetClassRegEvents (Ref. 20)
  • GetExamsAsync (Ref. 21)
  • GetExamTypesAsync (Ref. 22, not tested)

Functions under development

  • Request timetable for an element (customizable) (Ref. 15)
  • Request substitutions (Ref. 19)

Contribution

As Untis provides minimal support for it's API and the quality of their API documentation is not as good as it could be, I'd be happy to find someone to contribute or to provide a demo access to WebUntis. I tested the calls using the official instance, but the public users don't have suficcient rights for all actions.