Time Off
Public API

List Time Off Policies

Changed on

Lists time off policies, with support for filtering, sorting, and pagination. Each accruing policy includes its currently effective version with milestones inlined.

OAuth Scopes: time_off:policies

get/api/v1/time-off/policies

Request

Query parameters

filterstring

OData filter expression applied to time off policies. Supported operators: eq (equals, use eq null to match NULL), ne (not equals, use ne null to match NOT NULL), lt (less than), le (less than or equal), gt (greater than), ge (greater than or equal), in (value in list), and (combine clauses). Not supported: or, not, parenthesized grouping. Filterable fields: id, name, categoryId, type, createdAt, updatedAt. Examples: type eq 'ACCRUING', categoryId in (22, 23), type eq 'ACCRUING' and name eq 'Standard Vacation'.

orderBystring

Sort the results by a property and direction, e.g. name asc. Sortable fields: id, name, categoryId, type, createdAt, updatedAt.

pageinteger

The page number to retrieve.

pageSizeinteger

The number of items to return per page.

Response

A paginated list of time off policies.

Example response

{
  "data": [
    {
      "id": 1,
      "name": "Standard Vacation",
      "categoryId": 22,
      "type": "ACCRUING",
      "currentVersion": {
        "id": 1,
        "policyId": 15,
        "effectiveDate": "2026-01-01",
        "status": "ACTIVE",
        "rateTransitions": "IMMEDIATELY",
        "firstAccrual": "PRORATE",
        "carryOverYmd": "01-01",
        "milestones": [
          {
            "id": 1,
            "accrualBeginsType": "IMMEDIATELY",
            "accrualHours": 6.67,
            "accrualInterval": "MONTHLY",
            "maximumHours": 240,
            "maximumCarryOver": 40
          }
        ],
        "createdAt": "2026-01-01T06:00:00Z",
        "updatedAt": "2026-01-02T17:00:00Z"
      },
      "assignedEmployeeCount": 42,
      "createdAt": "2026-01-01T06:00:00Z",
      "updatedAt": "2026-01-02T17:00:00Z"
    }
  ]
}

Changes