Zum Hauptinhalt springen

Mitarbeiter abrufen

Beta Die REST-API ist in der Beta. Endpunkte und Felder können sich bis zur Version 1.0.0 noch ändern.

Die Mitarbeiter-Endpunkte liefern Stammdaten und die vertraglichen Arbeitszeiten der Mitarbeiter deines Standorts. Beide brauchen den Scope employees:read (Berechtigung Mitarbeiter). Private Angaben wie Geburtsdatum, private Kontaktdaten oder PIN gibt die API nie aus, siehe Datenschutz.

Mitarbeiter auflisten​

GET/api/v1/employeesScopeemployees:read

GET /api/v1/employees liefert standardmäßig alle aktiven Mitarbeiter, sortiert nach id und seitenweise (siehe Pagination). Benötigter Scope: employees:read.

Parameter​

NamePflichtTypBeschreibung
statusneinactive, inactive oder allWelche Mitarbeiter geliefert werden. Standard: active
includeneincontractHistoryLiefert zusätzlich alle Vertragsstände im Feld contractHistory
limitneinGanzzahl 1–500Einträge pro Seite. Standard: 100
cursorneinStringWert von nextCursor aus der vorherigen Antwort

Beispiel​

Terminal
curl -s "https://api.time.monkeymed.de/api/v1/employees?status=all" \
-H "Authorization: Bearer $TIMEMONKEY_API_KEY"
200 OK
{
"data": [
{
"id": "650a1b2c3d4e5f6071829304",
"prename": "Anna",
"name": "Beispiel",
"status": "active",
"employedSince": "2021-03-31T22:00:00.000Z",
"employedUntil": null,
"mail": "anna.beispiel@example.com",
"tags": ["Prophylaxe", "Assistenz"],
"mainTag": null,
"contract": {
"type": "weeklyHours",
"weeklyMs": 138600000,
"monthlyMs": null,
"dailyMs": {
"mon": 28800000,
"tue": 28800000,
"wed": 28800000,
"thu": 28800000,
"fri": 23400000,
"sat": 0,
"sun": 0
},
"annualVacationDays": 30,
"dailyDeductionMs": 0
}
}
],
"nextCursor": null
}

Einen Mitarbeiter abrufen​

GET/api/v1/employees/{id}Scopeemployees:read

GET /api/v1/employees/{id} liefert einen einzelnen Mitarbeiter in derselben Form wie ein Eintrag der Liste, unabhängig davon, ob er aktiv oder inaktiv ist. Benötigter Scope: employees:read. Gibt es am Standort keinen Mitarbeiter mit dieser ID, antwortet die API mit 404 not_found.

Parameter​

NameOrtPflichtTypBeschreibung
idPfadjaID (24 Hex-Zeichen)ID des Mitarbeiters
includeAbfrageneincontractHistoryLiefert zusätzlich alle Vertragsstände im Feld contractHistory

Beispiel mit Vertragshistorie​

Terminal
curl -s "https://api.time.monkeymed.de/api/v1/employees/650a1b2c3d4e5f6071829304?include=contractHistory" \
-H "Authorization: Bearer $TIMEMONKEY_API_KEY"
200 OK (gekürzt)
{
"id": "650a1b2c3d4e5f6071829304",
"prename": "Anna",
"name": "Beispiel",
"status": "active",
"contract": { "type": "weeklyHours", "weeklyMs": 138600000, "...": "..." },
"contractHistory": {
"dailyHours": [
{
"validFrom": "2021-03-31T22:00:00.000Z",
"value": {
"mon": 28800000, "tue": 28800000, "wed": 28800000, "thu": 28800000,
"fri": 28800000, "sat": 0, "sun": 0,
"type": "weeklyHours",
"monthlyMs": null
}
},
{
"validFrom": "2025-12-31T23:00:00.000Z",
"value": {
"mon": 28800000, "tue": 28800000, "wed": 28800000, "thu": 28800000,
"fri": 23400000, "sat": 0, "sun": 0,
"type": "weeklyHours",
"monthlyMs": null
}
}
],
"weeklyMs": [
{ "validFrom": "2021-03-31T22:00:00.000Z", "value": 144000000 },
{ "validFrom": "2025-12-31T23:00:00.000Z", "value": 138600000 }
],
"monthlyMs": [],
"annualVacationDays": [
{ "validFrom": "2021-03-31T22:00:00.000Z", "value": 30 }
],
"dailyDeductionMs": []
}
}

Antwortfelder​

FeldTypBeschreibung
idStringID des Mitarbeiters
prenameStringVorname
nameStringNachname
statusactive oder inactiveOb der Mitarbeiter aktiv ist
employedSinceZeitpunkt oder nullBeginn des Arbeitsverhältnisses
employedUntilZeitpunkt oder nullEnde des Arbeitsverhältnisses, falls eingetragen
mailString oder nullBerufliche E-Mail-Adresse des Mitarbeiters, falls hinterlegt
tagsListe von StringsDie Gruppen des Mitarbeiters, zum Beispiel „Prophylaxe“
mainTagString oder nullHauptgruppe des Mitarbeiters (älteres Feld, in der Webapp derzeit nicht pflegbar, meist null)
contractObjektDie zum Abfragezeitpunkt gültigen Vertragswerte, siehe unten
contractHistoryObjektNur mit include=contractHistory: alle Vertragsstände, siehe unten

Vertragswerte (contract)​

Alle Zeiten sind Dauern in Millisekunden (siehe Dauern). Felder ohne hinterlegten Wert sind null.

FeldTypBeschreibung
typeweeklyHours, monthlyHours oder nullArt der vertraglichen Arbeitszeit: Wochenstunden oder Monatsstunden
weeklyMsZahl oder nullWochenstunden. Ist kein positiver Wochenwert hinterlegt, ist es die Summe der Stunden je Wochentag (dailyMs). Bei Monatsverträgen wird nicht umgerechnet.
monthlyMsZahl oder nullMonatliche Arbeitsstunden
dailyMsObjekt oder nullVertragliche Stunden je Wochentag mit den Schlüsseln mon, tue, wed, thu, fri, sat, sun
annualVacationDaysZahl oder nullUrlaubsanspruch in Tagen (keine Millisekunden)
dailyDeductionMsZahl oder nullDie Arbeitszeitpauschale je Arbeitstag, zum Beispiel für Umziehzeiten. Positive Werte werden gutgeschrieben, negative abgezogen. In der Tagesauswertung ist die Pauschale bereits enthalten, also nicht erneut addieren: in workedMs nur an vollständigen Tagen mit Arbeitszeit über 0, in plannedMs an Tagen mit geplanter Schicht.

Vertragshistorie (contractHistory)​

Mit include=contractHistory liefert die API zusätzlich alle hinterlegten Vertragsstände. Jede Reihe ist eine Liste von Einträgen { "validFrom": Zeitpunkt, "value": Wert }, aufsteigend nach validFrom sortiert. Ein Wert gilt ab validFrom bis zum nächsten Eintrag.

FeldInhalt von value
dailyHoursStunden je Wochentag (mon bis sun) sowie type und monthlyMs dieses Vertragsstands
weeklyMsDie wirksamen Wochenstunden an jedem Zeitpunkt, an dem sich Wochen- oder Tageswerte ändern, mit derselben Regel wie contract.weeklyMs
monthlyMsMonatliche Arbeitsstunden
annualVacationDaysUrlaubsanspruch in Tagen
dailyDeductionMsArbeitszeitpauschale je Arbeitstag

Die Vertragshistorie entspricht den Einträgen, die du in der Personalakte unter Wert hinzufügen mit einem Datum unter Eintrag gültig ab anlegst.