---
updatedAt: 2026-02-16T15:39:58.000Z
agentTools:
  siteIndex: https://developer.paylocity.com/llms.txt
  projectIndex: https://developer.paylocity.com/integrations/llms.txt
---

# Get Employee Shifts

**Summary Description**

The GET Employee Shifts endpoint returns information about the shifts assigned to a specific employee. The response includes structured data such as shift start and end times, roles, required skills, and location details.

**Use cases:**
- Retrieve employee-assigned shifts, including timing, role information, and location.
- Managers can access an employee's scheduled shifts to review staffing coverage and workload distribution.
- When creating or adjusting schedules, managers can use this endpoint to identify potential conflicts with an employee's existing shifts, such as overlapping times.

# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "info": {
    "title": "Scheduling Api",
    "description": "The Scheduling is designed to streamline the process of retrieving shifts",
    "version": "2024-07-11"
  },
  "servers": [
    {
      "url": "dc1demogwext.paylocity.com"
    }
  ],
  "paths": {
    "/apiHub/scheduling/v1/companies/{companyId}/employees/{employeeId}/shifts": {
      "get": {
        "tags": [
          "Employee Shifts"
        ],
        "summary": "Get Employee Shifts",
        "description": "**Summary Description**\n\nThe GET Employee Shifts endpoint returns information about the shifts assigned to a specific employee. The response includes structured data such as shift start and end times, roles, required skills, and location details.\n\n**Use cases:**\n- Retrieve employee-assigned shifts, including timing, role information, and location.\n- Managers can access an employee's scheduled shifts to review staffing coverage and workload distribution.\n- When creating or adjusting schedules, managers can use this endpoint to identify potential conflicts with an employee's existing shifts, such as overlapping times.",
        "x-explorer-enabled": false,
        "operationId": "GET_apiHub_scheduling_v1_companies_{companyId}_employees_{employeeId}_shifts",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "The Paylocity Company ID. This is the unique value provided by Paylocity to each specific Payroll Entity.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "employeeId",
            "in": "path",
            "description": "The Paylocity Employee ID. This is a unique value per Paylocity Company ID.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "in": "query",
            "description": "The sub-resources to include in the response.<br /> - sub-resources: breaks, segments, note",
            "allowEmptyValue": true,
            "style": "form",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "A parseable filter expression involving fields, operators, and values to filter the result list by. <br /> - fields: startDateTime, positionKey<br /> - operators: eq, in, lt, gt, le, ge, and, or",
            "allowEmptyValue": true,
            "style": "form",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeTotalCount",
            "in": "query",
            "description": "When provided and set to true will cause the API to return the X-Pcty-Total-Count header in the response which will be set to the total number of resources available even if only a subset of those were returned. The default is false.",
            "allowEmptyValue": true,
            "style": "form",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of resources to include in the response.  The default is 25.",
            "allowEmptyValue": true,
            "style": "form",
            "schema": {
              "maximum": 2147483647,
              "exclusiveMaximum": false,
              "minimum": 0,
              "exclusiveMinimum": false,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of resources to skip when returning paginated results.  The default is 0.",
            "allowEmptyValue": true,
            "style": "form",
            "schema": {
              "maximum": 2147483647,
              "exclusiveMaximum": false,
              "minimum": 0,
              "exclusiveMinimum": false,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "A comma-separated, xpath-like formatting string that identifies the fields that you want the API to use for sorting the resources when they are returned. The default value can vary from API to API.",
            "allowEmptyValue": true,
            "style": "form",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Authorization token. Ex. Bearer ...",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string",
              "default": "Bearer JWT_GOES_HERE"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ShiftV1Model"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Error400Model"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Error500Model"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "EmployeeV1Model": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "string",
            "description": "Identifier of the company to which the task is assigned.",
            "x-pcty-filterable": false
          },
          "employeeId": {
            "type": "string",
            "description": "Identifier of the employee to whom the task is assigned within the company.",
            "x-pcty-filterable": false
          }
        },
        "additionalProperties": false
      },
      "Error400Model": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "A unique code, within an API, that identifies what went wrong.\r\nThis value can be used for logic branching within client code\r\nto prevent the need to parse message values."
          },
          "message": {
            "type": "string",
            "description": "A message indicating what went wrong that can be presented to an end user."
          },
          "moreInfoUrl": {
            "type": "string",
            "description": "When provided, this will specific a URL that can be accessed to learn more\r\nabout this specific error."
          },
          "exception": {
            "$ref": "#/components/schemas/ExceptionModel"
          },
          "fields": {
            "type": "string",
            "description": "A comma-separated, xpath-like formatting string that identifies the fields that you \r\nwant returned in your response.  For example, ?fields=firstName would only return\r\nthe firstName field in the response.  'firstName,lastName' would return both the first and\r\nlast names.  And 'company(name)' would only return the company.name attribute."
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OptionModel"
            },
            "description": "When an error is related to an invalid value that was provided, this attribute\r\nmay be included and provide the available options to use."
          }
        },
        "additionalProperties": false,
        "description": "This class represents the error model that will be used when returning\r\na 400 error (client input invalid) within a Paylocity RESTful API."
      },
      "Error500Model": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "A unique code, within an API, that identifies what went wrong.\r\nThis value can be used for logic branching within client code\r\nto prevent the need to parse message values."
          },
          "message": {
            "type": "string",
            "description": "A message indicating what went wrong that can be presented to an end user."
          },
          "moreInfoUrl": {
            "type": "string",
            "description": "When provided, this will specific a URL that can be accessed to learn more\r\nabout this specific error."
          },
          "exception": {
            "$ref": "#/components/schemas/ExceptionModel"
          },
          "errorId": {
            "type": "string",
            "description": "A unique identifier that can be used to search the logs to find the specific\r\nerror details that highlight what occurred."
          }
        },
        "additionalProperties": false,
        "description": "This class represents the error model that will be used when returning\r\na 500 error (server failure) within a Paylocity RESTful API."
      },
      "ExceptionModel": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of the exception."
          },
          "message": {
            "type": "string",
            "description": "The message describing the exception."
          },
          "source": {
            "type": "string",
            "description": "The source of the exception."
          },
          "stackTrace": {
            "type": "string",
            "description": "The stack trace of the exception."
          },
          "innerException": {
            "$ref": "#/components/schemas/ExceptionModel"
          }
        },
        "additionalProperties": false,
        "description": "This class represents the full set of properties that could be returned\r\nas a part of an error coming back from a Paylocity RESTful API. Optional\r\nproperties will be ignored during serialization when they are null"
      },
      "OptionModel": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "The code value for the option."
          },
          "description": {
            "type": "string",
            "description": "The description for the option."
          }
        },
        "additionalProperties": false,
        "description": "This class represents the code/description pair that can be used when\r\nproviding a list of options for a field within an error."
      },
      "ShiftBreakV1Model": {
        "type": "object",
        "properties": {
          "startDateTime": {
            "type": "string",
            "description": "The scheduled start time for each break, formatted as an ISO 8601 date and time.",
            "format": "date-time"
          },
          "duration": {
            "type": "integer",
            "description": "The duration of each break, typically measured in minutes.",
            "format": "int32"
          },
          "payType": {
            "type": "string",
            "description": "The type of pay (e.g., regular, overtime) applicable during the break."
          }
        },
        "additionalProperties": false
      },
      "ShiftDetailsV1Model": {
        "type": "object",
        "properties": {
          "stackId": {
            "type": "string",
            "description": "Unique identifier for the stack.",
            "x-pcty-filterable": false
          },
          "assignedTo": {
            "$ref": "#/components/schemas/EmployeeV1Model"
          },
          "startDateTime": {
            "type": "string",
            "description": "The scheduled start date and time for the task, in ISO 8601 format.",
            "format": "date-time",
            "x-pcty-filterable": true,
            "x-pcty-filter-operators": "gt,ge,lt,le"
          },
          "duration": {
            "type": "integer",
            "description": "The length of time the task is scheduled to take, measured in minutes.",
            "format": "int32",
            "x-pcty-filterable": false
          },
          "hasNote": {
            "type": "boolean",
            "description": "Indicates whether there is an additional note attached to the task.",
            "x-pcty-filterable": false
          },
          "note": {
            "type": "string",
            "description": "The content of the additional note, if any.",
            "x-pcty-filterable": false
          },
          "isEmployeeNote": {
            "type": "boolean",
            "description": "Indicates whether the note is made by the employee.",
            "x-pcty-filterable": false
          },
          "costCenters": {
            "type": "array",
            "description": "A list of identifiers for cost centers associated with the task.",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "x-pcty-filterable": false
          },
          "positionKey": {
            "type": "integer",
            "description": "Numeric key representing the position associated with the task.",
            "format": "int32",
            "x-pcty-filterable": true,
            "x-pcty-filter-operators": "eq,in"
          },
          "breaks": {
            "type": "array",
            "description": "A list of breaks associated with the shift.",
            "items": {
              "$ref": "#/components/schemas/ShiftBreakV1Model"
            },
            "x-pcty-filterable": false
          },
          "segments": {
            "type": "array",
            "description": "A list of segments associated with the shift.",
            "items": {
              "$ref": "#/components/schemas/ShiftSegmentV1Model"
            },
            "x-pcty-filterable": false
          },
          "legacyAssignmentId": {
            "type": "integer",
            "description": "Numeric identifier for a legacy assignment linked to the task.",
            "format": "int32",
            "x-pcty-filterable": false
          },
          "templateAssignmentId": {
            "type": "string",
            "description": "Unique identifier for a template assignment associated with the task.",
            "format": "uuid",
            "x-pcty-filterable": false
          }
        },
        "additionalProperties": false
      },
      "ShiftPayType": {
        "enum": [
          "unknown",
          "break",
          "meal",
          "work"
        ],
        "type": "string"
      },
      "ShiftSegmentV1Model": {
        "type": "object",
        "properties": {
          "payType": {
            "$ref": "#/components/schemas/ShiftPayType"
          },
          "actualTimeIn": {
            "type": "string",
            "description": "The actual start time for the segment.",
            "format": "date-time"
          },
          "actualTimeOut": {
            "type": "string",
            "description": "The actual end time for the segment.",
            "format": "date-time"
          },
          "regDuration": {
            "type": "integer",
            "description": "Duration of regular time worked during the segment.",
            "format": "int32"
          },
          "ot1Duration": {
            "type": "integer",
            "description": "Duration of the first overtime period worked during the segment.",
            "format": "int32"
          },
          "ot2Duration": {
            "type": "integer",
            "description": "Duration of the second overtime period worked during the segment.",
            "format": "int32"
          },
          "nonWorkDuration": {
            "type": "integer",
            "description": "Duration of non-work time during the segment.",
            "format": "int32"
          },
          "unpaidDuration": {
            "type": "integer",
            "description": "Duration of unpaid time during the segment.",
            "format": "int32"
          },
          "cost": {
            "type": "number",
            "description": "The cost associated with the segment.",
            "format": "double"
          },
          "applyToDate": {
            "type": "string",
            "description": "The date to which the segment's details apply."
          }
        },
        "additionalProperties": false
      },
      "ShiftV1Model": {
        "type": "object",
        "properties": {
          "stackId": {
            "type": "string",
            "description": "Unique identifier for the stack.",
            "x-pcty-filterable": false
          },
          "assignedTo": {
            "$ref": "#/components/schemas/EmployeeV1Model"
          },
          "startDateTime": {
            "type": "string",
            "description": "The scheduled start date and time for the task, in ISO 8601 format.",
            "format": "date-time",
            "x-pcty-filterable": true,
            "x-pcty-filter-operators": "gt,ge,lt,le"
          },
          "duration": {
            "type": "integer",
            "description": "The length of time the task is scheduled to take, measured in minutes.",
            "format": "int32",
            "x-pcty-filterable": false
          },
          "hasNote": {
            "type": "boolean",
            "description": "Indicates whether there is an additional note attached to the task.",
            "x-pcty-filterable": false
          },
          "note": {
            "type": "string",
            "description": "The content of the additional note, if any.",
            "x-pcty-filterable": false
          },
          "isEmployeeNote": {
            "type": "boolean",
            "description": "Indicates whether the note is made by the employee.",
            "x-pcty-filterable": false
          },
          "costCenters": {
            "type": "array",
            "description": "A list of identifiers for cost centers associated with the task.",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "x-pcty-filterable": false
          },
          "positionKey": {
            "type": "integer",
            "description": "Numeric key representing the position associated with the task.",
            "format": "int32",
            "x-pcty-filterable": true,
            "x-pcty-filter-operators": "eq,in"
          },
          "breaks": {
            "type": "array",
            "description": "A list of breaks associated with the shift.",
            "items": {
              "$ref": "#/components/schemas/ShiftBreakV1Model"
            },
            "x-pcty-filterable": false
          },
          "segments": {
            "type": "array",
            "description": "A list of segments associated with the shift.",
            "items": {
              "$ref": "#/components/schemas/ShiftSegmentV1Model"
            },
            "x-pcty-filterable": false
          },
          "legacyAssignmentId": {
            "type": "integer",
            "description": "Numeric identifier for a legacy assignment linked to the task.",
            "format": "int32",
            "x-pcty-filterable": false
          },
          "templateAssignmentId": {
            "type": "string",
            "description": "Unique identifier for a template assignment associated with the task.",
            "format": "uuid",
            "x-pcty-filterable": false
          },
          "shiftId": {
            "type": "integer",
            "description": "Numeric identifier for the shift associated with the task.",
            "format": "int32",
            "x-pcty-filterable": false
          },
          "scheduleId": {
            "type": "integer",
            "description": "Numeric identifier for the schedule associated with the task.",
            "format": "int32",
            "x-pcty-filterable": false
          },
          "isPublished": {
            "type": "boolean",
            "description": "Indicates whether the task has been published.",
            "x-pcty-filterable": false
          },
          "isDeleted": {
            "type": "boolean",
            "description": "Indicates whether the task has been marked as deleted.",
            "x-pcty-filterable": false
          },
          "draft": {
            "description": "Contains a draft version of the task with similar properties as the main object.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ShiftDetailsV1Model"
              }
            ]
          }
        },
        "additionalProperties": false
      }
    }
  }
}
```