---
title: "Retrieve an aggregated list of shifts"
method: GET
path: "/management/v2/shifts:aggregated"
tags: ["Shifts"]
---

# Retrieve an aggregated list of shifts

`GET /management/v2/shifts:aggregated`

## Request

- Base URL: `https://your-subdomain.deputy.deputy.com/api`
- URL: `https://your-subdomain.deputy.deputy.com/api/management/v2/shifts:aggregated`
- Auth: API key in header `OAuth`

Retrieve an aggregated list of shifts.

## Query parameters

- `start` string
- `end` string
- `employee` string, int64
- `timesheet` string, int64
- `published` 'NOT_SPECIFIED' | 'TRUE' | 'ALL' | 'FALSE'
- `frequency` 'DAILY' | 'WEEKLY'
- `omitEmptyPeriod` boolean
- `expandMetadata` boolean

## Response `200`

A successful response.

- ScheduleShiftAggregatedListResponse
  - `success` boolean
  - `data` ModelAggregatedListData[]
    - `start` string
    - `end` string
    - `shifts` Tenantschedulev2modelShift[]
      - `id` integer
      - `start` string
      - `end` string
      - `mealbreakDuration` number, float
      - `mealbreakSlots` ModelBreak[]
        - `slotType` 'BREAK' | 'WORK' | 'CUSTOM'
        - `start` integer
        - `end` integer
        - `state` 'NOT_START' | 'IN_PROGRESS' | 'FINISHED' | 'DURATION_ONLY' | 'DURATION_FINISHED'
        - `canStartEarly` boolean
        - `canEndEarly` boolean
        - `isMandatory` boolean
        - `type` 'MEAL_BREAK' | 'REST_BREAK'
        - `typeLabel` string
        - `startDateTime` string
        - `endDateTime` string
      - `duration` number, float
      - `cost` number, float
      - `area` integer
      - `employee` integer
      - `note` string
      - `warning` string
      - `warningOverrideComment` string
      - `isPublished` boolean
      - `timesheet` integer
      - `isOpen` boolean
      - `approvalRequired` boolean
      - `confirmationStatus` 'ROSTER_CONFIRMATION_NOT_REQUIRED' | 'ROSTER_CONFIRMATION_REQUIRED' | 'ROSTER_CONFIRMATION_DONE' | 'ROSTER_CONFIRMATION_DECLINED'
      - `confirmationNote` string
      - `confirmedByWhom` integer
      - `confirmedAt` string
      - `swapStatus` 'SWAP_STATUS_NOT_REQUIRED' | 'SWAP_STATUS_PENDING_OUT' | 'SWAP_STATUS_PENDING_IN' | 'SWAP_STATUS_PENDING_IN_OUT' | 'SWAP_STATUS_PENDING_APPROVAL' | 'SWAP_STATUS_APPROVED' | 'SWAP_STATUS_CANCELLED' | 'SWAP_STATUS_DECLINED'
      - `swapApprovedBy` integer
      - `shiftTemplate` integer
      - `children` V2modelChildShift[]
        - `id` integer
        - `start` string
        - `end` string
        - `cost` number, float
        - `area` integer
        - `canEdit` boolean
        - `parentId` integer
        - `isOpen` boolean
        - `approvalRequired` boolean
        - `isPublished` boolean
        - `confirmationStatus` 'ROSTER_CONFIRMATION_NOT_REQUIRED' | 'ROSTER_CONFIRMATION_REQUIRED' | 'ROSTER_CONFIRMATION_DONE' | 'ROSTER_CONFIRMATION_DECLINED'
        - `confirmedByWhom` integer
        - `confirmedAt` string
        - `creator` integer
        - `createdAt` string
        - `modifiedAt` string
        - `warning` string
        - `warningOverrideComment` string
        - `areaName` string
        - `location` integer
        - `locationName` string
      - `canEdit` boolean
      - `customFields` Tenantsharedv2modelCustomField[]
        - `id` string, int64
        - `booleanField` ModelBooleanField
          - `value` boolean
        - `stringField` ModelStringField
          - `value` string
        - `listField` ModelListField
          - `value` string
        - `multiListField` ModelMultiListField
          - `value` string[]
        - `fileField` ModelFileField
          - `value` integer
        - `employeeVisible` boolean
      - `customFieldData` integer
      - `creator` integer
      - `createdAt` string
      - `modifiedAt` string
      - `consentChangesets` ModelShiftConsentChangeset[]
        - `id` integer
        - `shiftId` integer
        - `consentTransactionId` string
        - `action` 'CREATE' | 'MODIFY' | 'DELETE'
        - `status` 'PENDING' | 'ACTIONED' | 'AUTO_ACTIONED'
        - `newData` ShiftConsentChangesetShiftConsentChangesetData
          - `start` string
          - `end` string
          - `approvalRequired` boolean
          - `cost` number, float
          - `date` string
          - `employee` integer
          - `mealbreakSlotsUnpaidMinutes` number, float
          - `mealbreakSlots` ModelBreak[]
            - `slotType` 'BREAK' | 'WORK' | 'CUSTOM'
            - `start` integer
            - `end` integer
            - `state` 'NOT_START' | 'IN_PROGRESS' | 'FINISHED' | 'DURATION_ONLY' | 'DURATION_FINISHED'
            - `canStartEarly` boolean
            - `canEndEarly` boolean
            - `isMandatory` boolean
            - `type` 'MEAL_BREAK' | 'REST_BREAK'
            - `typeLabel` string
            - `startDateTime` string
            - `endDateTime` string
          - `isOpen` boolean
          - `area` integer
          - `duration` number, float
          - `location` integer
        - `oldData` ShiftConsentChangesetShiftConsentChangesetData
          - `start` string
          - `end` string
          - `approvalRequired` boolean
          - `cost` number, float
          - `date` string
          - `employee` integer
          - `mealbreakSlotsUnpaidMinutes` number, float
          - `mealbreakSlots` ModelBreak[]
            - `slotType` 'BREAK' | 'WORK' | 'CUSTOM'
            - `start` integer
            - `end` integer
            - `state` 'NOT_START' | 'IN_PROGRESS' | 'FINISHED' | 'DURATION_ONLY' | 'DURATION_FINISHED'
            - `canStartEarly` boolean
            - `canEndEarly` boolean
            - `isMandatory` boolean
            - `type` 'MEAL_BREAK' | 'REST_BREAK'
            - `typeLabel` string
            - `startDateTime` string
            - `endDateTime` string
          - `isOpen` boolean
          - `area` integer
          - `duration` number, float
          - `location` integer
        - `violatedRules` ModelViolatedRules[]
          - `ruleCode` string
          - `warning` ModelViolatedRulesWarning
            - `message` string
          - `ruleConfigs` ModelViolatedRulesRuleConfig[]
            - `field` string
            - `operation` 'NOT_SPECIFIED' | 'GREATER_THAN' | 'LESS_THAN' | 'GREATER_THAN_OR_EQUAL' | 'LESS_THAN_OR_EQUAL' | 'EQUAL' | 'NOT_EQUAL'
            - `value` string
            - `gap` integer
            - `space` integer
        - `creator` integer
        - `createdAt` string
        - `modifiedAt` string
        - `consents` ModelConsent[]
          - `id` string
          - `recordId` string
          - `recordType` 'SHIFT' | 'TIMESHEET' | 'REGULAR_SCHEDULE'
          - `transactionId` string
          - `employeeId` integer
          - `status` 'PENDING' | 'ACCEPTED' | 'DECLINED' | 'CANCELLED' | 'OVERRIDDEN_ACCEPTED'
          - `description` string
          - `metadata` ModelShiftTypeConsentMetadata
            - `comment` string
            - `extras` object
          - `creator` integer
          - `createdAt` string, date-time
      - `areaName` string
      - `location` integer
      - `locationName` string
    - `totals` ModelTotals
      - `payableShiftTime` ModelPayableShiftTime
        - `seconds` string, int64
  - `metadata` ScheduleShiftAggregatedListResponseMetadata
    - `customFields` MetadataMetadataCustomField[]: List of custom field definitions for employees.
      - `id` integer
      - `name` string
      - `employeeVisible` boolean
      - `areas` integer[]

---

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