---
title: "List Time Tracking Shift Differentials"
method: GET
path: "/api/v1/time-tracking/shift-differentials"
tags: ["Time Tracking", "Public API"]
---

# List Time Tracking Shift Differentials

`GET /api/v1/time-tracking/shift-differentials`

Returns a paginated list of time tracking shift differentials. Supports OData-style `filter` and `sort` query parameters. Pagination is page-based via `page` and `pageSize` (defaults: page 1, pageSize 20, max 100). Archived rows are excluded by default; include them with `filter=archived eq true`. Soft-deleted rows are never returned.

OAuth Scopes: time_tracking:shift_differentials

## Query parameters

- `filter` string
- `sort` string
- `page` integer
- `pageSize` integer

## Response `200`

A paginated list of shift differentials.

- object — Pagination envelope shared by paginated Shift Differential endpoints.
  - `meta` object — Pagination metadata.
    - `totalItems` integer, required
    - `totalPages` integer, required
    - `page` integer, required
    - `pageSize` integer, required
  - `_links` object — Pagination links. Keys are omitted when there is no previous/next page.
    - `prev` object — Link object for the previous page. Omitted on the first page.
      - `href` string
    - `next` object — Link object for the next page. Omitted on the last page.
      - `href` string
  - `data` ShiftDifferentialTimeTrackingShiftDifferentialV1[] — Collection of time tracking shift differentials.
    - `id` integer — The ID of the shift differential.
    - `name` string — The name of the shift differential rule.
    - `rate` string — The differential pay rate as a decimal string.
    - `rateType` 'AMOUNT' | 'PERCENT' — How the rate is applied.
    - `allowAllEmployees` boolean — Whether all time & attendance employees are assigned.
    - `times` ShiftDifferentialTimeTrackingShiftDifferentialTimeV1[] — Time windows when this differential applies.
      - `id` integer — The ID of the time window.
      - `startDay` 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY' — Start day of the time window.
      - `endDay` 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY' — End day of the time window.
      - `start` string — Start time in HH:MM format (24-hour).
      - `end` string — End time in HH:MM format (24-hour).
    - `employeeIds` integer[] — Employee IDs assigned to this shift differential.
    - `createdAt` string, date-time, nullable — ISO 8601 timestamp when the shift differential was created.
    - `updatedAt` string, date-time, nullable — ISO 8601 timestamp when the shift differential was last updated.
    - `archivedAt` string, date-time, nullable — ISO 8601 timestamp when the shift differential was archived.
    - `deletedAt` string, date-time, nullable — ISO 8601 timestamp when the shift differential was deleted.

## Other responses

- `401` — Unauthorized. Missing or invalid authentication.
- `403` — Forbidden. Insufficient permissions.
- `422` — Invalid query parameters (e.g., invalid `page`, `pageSize`, `filter`, or `sort`).

---

[API](https://skmtc.net/bamboohr/apis/bamboohr-api.md) · [All operations](https://skmtc.net/bamboohr/apis/bamboohr-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bamboohr/bamboohr-api/revisions/19ebf391a399/schema)
