---
title: "List Shift Claims"
method: GET
path: "/api/v1/scheduling/shift-claims"
tags: ["Scheduling", "Public API"]
---

# List Shift Claims

`GET /api/v1/scheduling/shift-claims`

## Request

- Base URL: `https://companySubDomain.bamboohr.com`
- URL: `https://companySubDomain.bamboohr.com/api/v1/scheduling/shift-claims`
- Auth: one of:
  - HTTP basic
  - OAuth 2
    - Authorization code: `/authorize.php`
    - Token URL: `/token.php` scopes: `scheduling:shifts`
- TypeScript: <https://skmtc.dev/bamboohr/apis/bamboohr-api/docs/api/v1/scheduling/shift-claims/get.ts> (a function with typed inputs; its response is checked against the schema)

Lists shift claims. Employees see their own claims; managers also see claims on the schedules they manage; scheduling administrators see every claim. Filters are optional, and the same visibility applies whatever filter is passed. Rows carry no evaluation data. Withdrawn and declined claims stay listed. An employee's own claims, whatever their status, stay listed until the date of the claimed shift has passed in the shift's timezone and are absent after; claims on schedules a manager manages are not bounded by date. Results are oldest first unless sorted, and the list is empty while Open Shifts is off.

OAuth Scopes: scheduling:shifts

## Query parameters

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

## Response `200`

Shift claims retrieved successfully

- object
  - `data` SchedulingSchedulingShiftClaimV1[]: Collection of shift claims
    - `id` string, uuid, required: The unique ID of this claim.
    - `shiftId` string, uuid, required: The ID of the shift being claimed.
    - `employeeId` integer, required: The ID of the employee who claimed the shift.
    - `status` 'pending' | 'approved' | 'declined' | 'withdrawn', required: Where the claim stands. Only a pending claim can be withdrawn. A first-come-first-served claim is never pending because it is approved when it is created.
    - `resolutionReason` 'manager_denied' | 'shift_filled' | 'shift_deleted' | 'claiming_disabled' | 'assignment_blocked', nullable, required: Why the claim was declined. Kept separate from status so that being denied and the shift filling are distinguishable.
    - `createdAt` string, date-time, required: UTC timestamp when the claim was received. This is the single source of truth for queue order.
    - `updatedAt` string, date-time, nullable, required: UTC timestamp when the claim was last updated.
  - `meta` object
    - `totalItems` integer: Total number of claims the caller can see that match the filter.
    - `page` integer: Current page number.
    - `pageSize` integer: Number of items per page.
  - `_links` object
    - `prev` object: Link to the previous page.
      - `href` string, nullable: URL for the previous page, or null if on the first page.
    - `next` object: Link to the next page.
      - `href` string, nullable: URL for the next page, or null if on the last page.

## Other responses

- `422`: Invalid input: unknown filter or sort field, malformed filter, a page or pageSize that is not an integer, page below 1, or pageSize above 100
- `500`: Internal server error

## Changes

- **2026-11-03** `922fc15f43a7`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/bamboohr/apis/bamboohr-api/changes/api/v1/scheduling/shift-claims/get.md)

---

[API](https://skmtc.dev/bamboohr/apis/bamboohr-api.md) - [All operations](https://skmtc.dev/bamboohr/apis/bamboohr-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bamboohr/apis/bamboohr-api/revisions/922fc15f43a7?raw)
