API

Time off & absences

Read-only time off, daily absences and balances.

Read-only access to planned time off and daily absence records. v1 does not support creating or approving requests via integration API.

Time off requests (date ranges)

GET /api/v1/companies/{companyId}/time-off?from={yyyy-MM-dd}&to={yyyy-MM-dd}
Authorization: Bearer {token}
Query Required Description
from, to No If omitted, returns all requests for the company

Roles: employee (own), manager, owner, accountant

{
  "success": true,
  "data": [
    {
      "id": "…",
      "employeeId": "…",
      "employeeDisplayName": "Jane Doe",
      "startDate": "2026-09-01",
      "endDate": "2026-09-05",
      "status": "Approved",
      "note": "Summer leave"
    }
  ],
  "errors": null
}
status Meaning
Pending Awaiting approval
Approved Approved
Rejected Rejected

Single request

GET /api/v1/companies/{companyId}/time-off/{id}

Daily absences (one row per day)

GET /api/v1/companies/{companyId}/absences?from={yyyy-MM-dd}&to={yyyy-MM-dd}&employeeId={optional}
Authorization: Bearer {token}
type Meaning
sick Sick leave
sickChild Child sick leave
vacation Vacation (daily record)
unpaidLeave Unpaid leave

Vacation may appear in both time-off (range) and absences (vacation). For paid minutes, use Time entries totals.


Absence balances (read-only)

Company summary:

GET /api/v1/companies/{companyId}/absence-balances-summary

Roles: owner, manager, accountant

Per employee:

GET /api/v1/companies/{companyId}/employees/{userId}/absence-balances

Not in public API v1

  • POST / PUT / DELETE time off
  • POST absences, status changes
  • Ledger adjustments, accrual runs