---
title: "List Shifts"
method: GET
path: "/accounts/{account_id}/shifts"
tags: ["Income and Employment"]
---

# List Shifts

`GET /accounts/{account_id}/shifts`

The shifts endpoint allows you to query for ongoing and completed work performed by an end user. It includes details about shift dates, timestamps, the type of work, and associated earnings. Shifts are returned in reverse chronological order by `end_date`. This is a paginated endpoint; see how Pinwheel implements pagination <a href='https://docs.pinwheelapi.com/docs/pagination-1' target='_blank'>here</a>.

## Path parameters

- `account_id` string, uuid, required — UUID of the payroll account.

## Query parameters

- `from_start_date` string, date — Return shifts where the `start_date` field is on or after this date. ISO 8601 format.
- `to_start_date` string, date — Return shifts where the `start_date` field is on or before this date. ISO 8601 format.
- `from_end_date` string, date — Return shifts where the `end_date` field is on or after this date. ISO 8601 format.
- `to_end_date` string, date — Return shifts where the `end_date` field is on or before this date. ISO 8601 format.
- `limit` integer — The maximum number of results to return.
- `cursor` string — Cursor for the page you want to retrieve.

## Headers

- `Pinwheel-Version` '2025-07-08' | '2023-11-22' | '2023-07-18' | '2023-04-18' | '2022-09-09' | '2022-06-22' | '2022-03-02', required

## Response `200`

OK

- object
  - `meta` RefreshablePaginationListMeta, required
    - `refreshed_at` string, date-time — ISO 8601 timestamp of the most recent refresh of this data.
    - `count` integer — Number of objects returned.
    - `next_cursor` string — Pointer to the next page of results.
  - `data` ShiftObjResponse[], required
    - `id` string, uuid, required — Unique identifier of the Shift object.
    - `created_at` string, date-time, required — ISO 8601 timestamp of created time.
    - `account_id` string, uuid, required — UUID of the payroll account.
    - `start_date` string, date, required — The date the Shift started. ISO 8601 format.
    - `end_date` string, date, required — The date the Shift ended. ISO 8601 format.
    - `type` 'shift' | 'rideshare' | 'delivery' | 'other', required — The type of the work performed.
    - `timezone` string — The timezone where the work was completed. Valid names are in the IANA Timezone Database.
    - `timestamps` ShiftTimestamp[], required — An array of objects that tracks clock in and out times over a shift.
      - `from` string, date-time, required — Datetime the work began. ISO 8601 format.
      - `to` string, date-time, required — Datetime the work ended. ISO 8601 format.
    - `currency` 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BOV' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYR' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LTL' | 'LVL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STD' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USN' | 'USS' | 'UYI' | 'UYU' | 'UZS' | 'VEF' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XAG' | 'XAU' | 'XBA' | 'XBB' | 'XBC' | 'XBD' | 'XCD' | 'XDR' | 'XOF' | 'XPD' | 'XPF' | 'XPT' | 'XTS' | 'XXX' | 'YER' | 'ZAR' | 'ZMW', required — Three-letter ISO 4217 currency code, uppercase. For example, the code for US dollars is USD.
    - `earnings` ShiftEarningObjPublicResponseItem[], required — An array of objects that represent a specific earning.
      - `name` string, required — The name of the earning.
      - `category` 'salary' | 'hourly' | 'overtime' | 'double_overtime' | 'premium' | 'bonus' | 'commission' | 'tips' | 'vacation' | 'holiday' | 'pto' | 'sick' | 'employer_contribution' | 'other' | 'fare' | 'unpaid' | 'parental' | 'shift_differential' | 'bereavement' | 'life_insurance' | 'stock' | 'retirement' | 'medical' | 'meal_comp' | 'disability' | 'retro_pay', required — The category of earning.
      - `amount` integer — The amount of earning, in cents.
      - `rate` integer — The amount earned per hour, in cents.
      - `hours` number — The hours worked.

---

[API](https://skmtc.net/getpinwheel/apis/pinwheel.md) · [All operations](https://skmtc.net/getpinwheel/apis/pinwheel/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/getpinwheel/pinwheel/revisions/8ef86dd4902e/schema)
