Die Absensio-API
Eine REST-Schnittstelle über HTTPS, JSON in beide Richtungen, Authentifizierung per Bearer-Token. Verfügbar ab dem Professional-Tarif.
Token erzeugen und mitsenden
Einen API-Token legen Sie unter Einstellungen › Integrationen an. Der Token gehört zu Ihrem Mandanten und trägt eine eigene Rolle – vergeben Sie ihm nur die Rechte, die er tatsächlich braucht.
curl https://api.absensio.de/v1/time-entries \
-H "Authorization: Bearer abs_live_7f3a…" \
-H "Content-Type: application/json" \
-G --data-urlencode "from=2026-08-01" \
--data-urlencode "to=2026-08-31"Antwortformat
Listen kommen unter data zurück, die Blätterung unter meta. Zeitstempel sind ISO 8601 mit Zeitzone, Dauern in Minuten.
{
"data": [
{
"id": "te_01J9X2K…",
"user_id": "usr_01J8A1B…",
"project_id": "prj_01J7C4D…",
"started_at": "2026-08-14T08:02:00+02:00",
"ended_at": "2026-08-14T16:31:00+02:00",
"break_minutes": 45,
"billable": true,
"status": "approved"
}
],
"meta": { "total": 214, "page": 1, "per_page": 50 }
}Endpunkte
Alle Endpunkte erwarten und liefern JSON. Fehler kommen mit passendem HTTP-Status und einem Feld „error“ im Klartext.
Zeiten
- GET
/v1/time-entriesZeitbuchungen abrufen, filterbar nach Person, Projekt und Zeitraum - POST
/v1/time-entriesZeitbuchung anlegen - PATCH
/v1/time-entries/{id}Buchung korrigieren; erzeugt einen Eintrag im Audit-Log - DELETE
/v1/time-entries/{id}Buchung entfernen, sofern noch nicht genehmigt
Abwesenheiten
- GET
/v1/absencesAbwesenheiten und Anträge abrufen - POST
/v1/absencesAntrag im Namen einer Person stellen - POST
/v1/absences/{id}/approvalAntrag genehmigen oder ablehnen
Projekte
- GET
/v1/projectsProjekte mit Budget und Verbrauch abrufen - POST
/v1/projectsProjekt anlegen - GET
/v1/projects/{id}/membersZugeordnete Personen abrufen
Personen
- GET
/v1/usersAktive Zugänge mit Rolle und Arbeitszeitmodell - POST
/v1/usersPerson einladen - PATCH
/v1/users/{id}Rolle, Modell oder Status ändern
Webhooks
Statt regelmäßig abzufragen, lassen Sie sich benachrichtigen. Jede Zustellung ist mit HMAC-SHA256 signiert; die Signatur steht im Header X-Absensio-Signature. Fehlgeschlagene Zustellungen werden über 24 Stunden erneut versucht.
time_entry.createdEine Zeitbuchung wurde angelegttime_entry.correctedEine Buchung wurde nachträglich geändertabsence.requestedEin Abwesenheitsantrag wurde gestelltabsence.approvedEin Antrag wurde genehmigtcompliance.violationEine Prüfung nach Arbeitszeitgesetz hat angeschlagenproject.budget_warningEin Projekt hat die Warnschwelle erreicht
Grenzen und Fehler
Pro Token sind 600 Anfragen je Minute zulässig. Der verbleibende Rest steht in jedem Antwort-Header.
HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 600
X-RateLimit-Remaining: 0
Retry-After: 27
{ "error": "Zu viele Anfragen. Bitte in 27 Sekunden erneut versuchen." }- 400
- Eingabe unvollständig oder ungültig
- 401
- Token fehlt, ist abgelaufen oder wurde widerrufen
- 403
- Token hat für diese Aktion keine Berechtigung
- 404
- Objekt existiert nicht in diesem Mandanten
- 409
- Konflikt, etwa überlappende Zeitbuchungen
- 422
- Verstoß gegen eine Arbeitszeitregel
Etwas fehlt in der Schnittstelle?
Schreiben Sie uns, welchen Anwendungsfall Sie abbilden möchten. Wir richten Ihnen einen Testmandanten ein und melden zurück, ob und wann ein Endpunkt dafür entsteht.
Anwendungsfall schildern