ShiftManagement > Shift

Reads all Shifts

Changed on

Reads all Shifts

get/api/2026-10-01/resources/shift_management/shifts

Request

  • Base URL
    https://api.factorialhr.com
  • URL
    https://api.factorialhr.com/api/2026-10-01/resources/shift_management/shifts
  • Auth
    • OAuth 2
      Authorization code: https://id.factorialhr.com/oauth/authorize
      Token URL: https://id.factorialhr.com/api/oauth/token scopes: shift_management
    • or API key in header x-api-key

Query parameters

ids[]string[]

Filter shifts by their unique identifiers. Returns only shifts matching the provided IDs. If an empty array is provided, returns no results

[
  "1"
]
without_ids[]string[]

Exclude shifts with these identifiers from the results. Useful for filtering out specific shifts while keeping others

[
  "3"
]
employee_ids[]string[]

Filter shifts by employee identifiers. Returns only shifts assigned to the specified employees. If not provided, returns shifts for all accessible employees

[
  "1"
]
location_ids[]string[]

Filter shifts by location identifiers. Returns shifts that occur at the specified locations. Can be combined with employee_ids for more precise filtering

[
  "3"
]
start_atstring

Filter shifts that end on or after this date. Only the date (calendar day) is used; the time part is ignored (treated as start of day, 00:00:00). Shifts are included if their end time is at or after the start of the specified day

Example:2020-01-01
end_atstring

Filter shifts that start before this date. Only the date (calendar day) is used; the time part is ignored (treated as end of day, 23:59:59). Shifts are included if their start time is before the end of the specified day

Example:2020-12-31
only_publishedboolean

When true, returns only shifts with state 'published' (visible to employees). When false, returns shifts in all states (draft, published, backup) based on your permissions

only_states[]string[]

Filter shifts by their state. Provide an array of states ('draft', 'published', 'backup') to include. Can be combined with other filters for precise control

[
  "draft",
  "published"
]
split_overnight_shiftsboolean

When true, shifts that span across midnight (overnight shifts) are split into two separate shift objects - one for each calendar day. This makes it easier to display shifts in day-based views

Response

OK

Example response

{
  "data": [
    {
      "id": "1",
      "company_id": "1",
      "name": "Morning shift",
      "state": "draft",
      "location_id": "3",
      "locations_work_area_id": "5",
      "employee_id": "1",
      "start_at": "2020-09-07T06:00:00.000+00:00",
      "end_at": "2020-09-07T15:00:00.000+00:00",
      "notes": "This is a shift note",
      "default_shift_title": "Morning shift",
      "timezone": "Europe/Madrid",
      "local_start_at": "2020-09-07T08:00:00.000+00:00",
      "local_end_at": "2020-09-07T17:00:00.000+00:00"
    }
  ]
}

Changes