---
title: "List organization attendance shifts"
method: GET
path: "/v2/organizations/{organization_id}/attendance_shifts"
tags: ["attendance_shifts"]
---

# List organization attendance shifts

`GET /v2/organizations/{organization_id}/attendance_shifts`

## Request

- Base URL: `https://api.hubstaff.com`
- URL: `https://api.hubstaff.com/v2/organizations/{organization_id}/attendance_shifts`
- Auth: OAuth 2
  - Authorization code: `https://account.hubstaff.com/authorizations/new`
  - Token URL: `https://account.hubstaff.com/access_tokens` scopes: `hubstaff:read`, `hubstaff:write`
- TypeScript: <https://skmtc.dev/hubstaff/apis/hubstaff-v2-api/docs/v2/organizations/:organization_id/attendance_shifts/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns actual work shifts (clock-in/clock-out records) for the given organization.

Use date[start] and date[stop] to filter shifts that fall within the specified date range.

Note: The maximum allowed difference between date[start] and date[stop] is 31 days.
Data is only available within organization’s retention period.
If date[start] falls outside this window, the request will fail.

## Path parameters

- `organization_id` integer, required

## Query parameters

- `page_start_id` integer
- `page_limit` integer
- `date[start]` string, date, required
- `date[stop]` string, date, required
- `include` string[]

## Response `200`

A list of attendance shifts

- object
  - `attendance_shifts` AttendanceShift[]
    - `id` integer, required: Attendance shift ID
    - `user_id` integer, required: User ID
    - `organization_id` integer, required: Organization ID
    - `attendance_schedule_id` integer, required: Attendance schedule ID
    - `created_at` string, date-time, required: When the record was created
    - `updated_at` string, date-time, required: When the record was last updated
    - `date` string, date, required: Shift date
    - `start_time` string, date-time, required: Shift start time
    - `duration` integer, required: Shift duration
    - `minimum_time` integer, required: Minimum shift time
    - `status` string, required: Shift status
    - `actual_start_time` string, date-time, required: Actual shift start time
    - `actual_stop_time` string, date-time, required: Actual shift stop time
    - `actual_duration` integer, required: Shift actual duration

## Other responses

- `400`: Invalid parameters
- `401`: Unauthorized
- `403`: API access is only for organizations on an active plan
- `404`: Could not find record
- `429`: Rate limit exceeded

## Changes

- **2026-11-06** `c6b90e4e4bdc`: 1 info
  - added the new optional `query` request parameter `include`

[Operation history](https://skmtc.dev/hubstaff/apis/hubstaff-v2-api/changes/v2/organizations/:organization_id/attendance_shifts/get.md)

---

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