---
title: "Reads all Shifts"
method: GET
path: "/api/2026-10-01/resources/attendance/shifts"
tags: ["Attendance > Shift"]
---

# Reads all Shifts

`GET /api/2026-10-01/resources/attendance/shifts`

## Request

- Base URL: `https://api.factorialhr.com`
- URL: `https://api.factorialhr.com/api/2026-10-01/resources/attendance/shifts`
- Auth: one of:
  - OAuth 2
    - Authorization code: `https://id.factorialhr.com/oauth/authorize`
    - Token URL: `https://id.factorialhr.com/api/oauth/token` scopes: `time_tracking`
  - API key in header `x-api-key`

Reads all Shifts

## Query parameters

- `employee_ids[]` string[]: Return only the shifts of these employees.
- `start_on` string: Return only the shifts whose reference date (the day the shift counts towards, which for an overnight shift is the day it started) is on or after this date. Can be given on its own, as an open-ended lower bound.
- `end_on` string: Return only the shifts whose reference date is on or before this date. Can be given on its own, as an open-ended upper bound.
- `ids[]` string[]: Return only the shifts with these ids.
- `half_day` boolean, required: Set to true to return only the shifts marked as covering half a day. Passing false has no effect: it does not exclude them.
- `workable` boolean: Set to true for worked time only, false for the non-workable entries (breaks). Leave it unset to get both.
- `latest_shift` boolean: Flag to filter only the latest shift for each employee
- `sort_created_at_asc` boolean, required: Flag to sort by created_at asc
- `breaks_with_time_configuration` boolean: Flag to include breaks with time configuration
- `last_working_shift` boolean: Filter by last working shift
- `updated_at` string: Filter shifts by the date they were last updated

## Response `200`

OK

- object
  - `data` AttendanceShift[]
    - `id` string, required: Unique identifier for the shift
    - `employee_id` string, required: Identifier for the employee assigned to the shift
    - `date` string, required: Date of the shift
    - `reference_date` string, required: The business day this shift is attributed to; can differ from `date` for overnight shifts that cross midnight
    - `clock_in` string: Time when the employee clocked in
    - `clock_out` string: Time when the employee clocked out
    - `in_source` string: Source of the clock-in time
    - `out_source` string: Source of the clock-out time
    - `observations` string: Additional observations about the shift
    - `location_type` 'office' | 'business_trip' | 'work_from_home': Type of location for the shift
    - `half_day` 'beginning_of_day' | 'end_of_day': Which half of the day the shift covers when it is a half-day — `beginning_of_day` or `end_of_day`; null for full-day shifts
    - `in_location_latitude` number: Latitude of the clock-in location
    - `in_location_longitude` number: Longitude of the clock-in location
    - `in_location_accuracy` number: Accuracy of the clock-in location
    - `out_location_latitude` number: Latitude of the clock-out location
    - `out_location_longitude` number: Longitude of the clock-out location
    - `out_location_accuracy` number: Accuracy of the clock-out location
    - `workable` boolean: Whether the shift counts as worked (workable) time rather than a break
    - `created_at` string, required: Timestamp when the shift record was created
    - `workplace_id` string: Identifier for the location
    - `time_settings_break_configuration_id` string: Identifier for the break configuration
    - `company_id` string, required: Identifier for the company
    - `updated_at` string, required: Timestamp when the shift record was updated
    - `minutes` integer, required: Number in minutes of the shift
    - `clock_in_with_seconds` string: Clock in time with seconds
  - `meta` PagedIndexMeta
    - `start_cursor` string
    - `end_cursor` string
    - `has_previous_page` boolean, required
    - `has_next_page` boolean, required
    - `limit` integer, required
    - `total` integer, required

## Changes

- **2026-11-03** `83ac9aa1de50`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/factorialhr/apis/factorial-api/changes/api/2026-10-01/resources/attendance/shifts/get.md)

---

[API](https://skmtc.dev/factorialhr/apis/factorial-api.md) - [All operations](https://skmtc.dev/factorialhr/apis/factorial-api/llms.txt) - [OpenAPI document](https://skmtc.dev/factorialhr/apis/factorial-api/revisions/83ac9aa1de50?raw)
