Toast Shifts API

The Shifts API from Toast — 2 operation(s) for shifts.

Operations 5

GET /shifts Toast Get Shifts #
POST /shifts Toast Create a Shift #
GET /shifts/{shiftId} Toast Get a Shift #
PUT /shifts/{shiftId} Toast Update a Shift #
DELETE /shifts/{shiftId} Toast Delete a Shift #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/toast-shifts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

toast-shifts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.0
  title: Toast Authentication Shifts API
  description: 'The authentication API returns an authentication token that you can present

    when your integration client software uses other Toast APIs. For more

    information about authentication, see [the Toast Developer

    Guide](https://doc.toasttab.com/doc/devguide/authentication.html).

    '
  termsOfService: https://pos.toasttab.com/api-terms-of-use
  contact:
    name: Toast developer support
servers:
- url: https://toast-api-server/authentication/v1
tags:
- name: Shifts
paths:
  /shifts:
    get:
      tags:
      - Shifts
      summary: Toast Get Shifts
      description: "Returns an array of `Shift` objects that contain information \nabout schedule shifts for restaurant employees.\n"
      operationId: shiftsGet
      parameters:
      - name: Toast-Restaurant-External-ID
        description: "The Toast platform GUID of the restaurant that is the \ncontext for this operation.\n"
        in: header
        required: true
        schema:
          type: string
          format: string
      - name: shiftIds
        description: 'An optional identifier that filters return values for a

          specific shift. The identifier can be a Toast platform GUID

          or an external identifier. If present, the shifts

          resource will only return the shifts you specify. You

          can include multiple `shiftIds` query parameters (maximum

          100).

          '
        in: query
        required: false
        schema:
          type: string
          format: string
      - name: startDate
        description: "Optional start date and time of time period to match \nshifts. A shift matches the time period if the shift \n`inDate` is after (inclusive) the specified `startDate` and \nthe shift `outDate` is before the `endDate` (exclusive). \nThese parameters are required if the `shiftIds` parameter \nis not defined. The specified period cannot be longer than \none month.\n"
        in: query
        schema:
          type: string
          format: ISO-8601
      - name: endDate
        description: "Optional end date and time of time period to match shifts. \nA shift matches the time period if the shift `inDate` is \nafter (inclusive) the specified `startDate` and the shift \n`outDate` is before the `endDate` (exclusive). These \nparameters are required if the `shiftIds` parameter is not \ndefined. The specified period cannot be longer than one \nmonth.\n"
        in: query
        schema:
          type: string
          format: ISO-8601
      responses:
        '200':
          description: 'Returns the specified shifts in an unordered list.

            '
          content:
            application/json:
              schema:
                title: Response
                type: array
                items:
                  $ref: '#/components/schemas/Shift'
        '500':
          description: "An unexpected internal error occurred. There is a \n`requestId` attached to this error that can be referenced \nby Toast support.\n"
      security:
      - oauth2:
        - labor:read
    post:
      tags:
      - Shifts
      summary: Toast Create a Shift
      description: 'Creates a schedule shift for a restaurant employee.

        '
      operationId: shiftsPost
      parameters:
      - name: Toast-Restaurant-External-ID
        description: "The Toast platform GUID of the restaurant that is the \ncontext for this operation.\n"
        in: header
        required: true
        schema:
          type: string
          format: string
      - name: Content-Type
        description: "The Internet Assigned Numbers Authority (IANA) media type \nof the message body data. The value must be \n`application/json`.\n"
        in: header
        required: true
        schema:
          type: string
          format: string
      responses:
        '200':
          description: 'Creates a shift record and returns information about it.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Shift'
        '400':
          description: "The request contains data that is not supported by the \ncurrent version of the API as described.\n"
        '415':
          description: "The request did not have \"application/json\" in the \n`Content-Type` header.\n"
        '500':
          description: "An unexpected internal error occurred. There is a \n`requestId` attached to this error that can be referenced \nby Toast support.\n"
      security:
      - oauth2:
        - labor.shifts:write
      requestBody:
        content:
          application/json:
            schema:
              type: string
              example:
                externalId: MyToastNamingAuthority:1234
                entityType: Shift
                jobReference:
                  guid: 678758d1-6aa8-494c-be55-0614f761d160
                  externalId: ''
                  entityType: RestaurantJob
                employeeReference:
                  guid: 7030407f-761c-4d92-86d9-4e84bc700d0f
                  externalId: ''
                  entityType: RestaurantUser
                inDate: 2015-10-10T06:00:00.000+0000
                outDate: 2015-10-10T12:00:00.000+0000
        description: "A `Shift` object containing information about the shift, \nincluding the job identifier, the employee identifier, and \nthe start and end times.\n"
        required: true
  /shifts/{shiftId}:
    get:
      tags:
      - Shifts
      summary: Toast Get a Shift
      description: "Returns a `Shift` object containing of information about one \nschedule shift for a restaurant employee.\n"
      operationId: shiftsShiftIdGet
      parameters:
      - name: Toast-Restaurant-External-ID
        description: "The Toast platform GUID of the restaurant that is the \ncontext for this operation.\n"
        in: header
        required: true
        schema:
          type: string
          format: string
      - name: shiftId
        description: "The Toast platform GUID or an external identifier for the \nshift.\n"
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: 'Returns the specified shifts in an unordered list.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Shift'
        '400':
          description: 'The GUID or external identifier was malformed.

            '
        '404':
          description: 'The GUID or external identifier does not match any shifts

            at the current restaurant.

            '
        '500':
          description: "An unexpected internal error occurred. There is a \n`requestId` attached to this error that can be referenced \nby Toast support.\n"
      security:
      - oauth2:
        - labor:read
    put:
      tags:
      - Shifts
      summary: Toast Update a Shift
      description: "Updates an existing schedule shift record for a restaurant \nemployee. A `PUT` request completely replaces the information \nin the existing record.\n"
      operationId: shiftsShiftIdPut
      parameters:
      - name: Toast-Restaurant-External-ID
        description: "The Toast platform GUID of the restaurant that is the \ncontext for this operation.\n"
        in: header
        required: true
        schema:
          type: string
          format: string
      - name: shiftId
        description: "The shift identifier, either the Toast platform GUID or an \nexternal identifier.\n"
        in: path
        required: true
        schema:
          type: string
          format: string
      responses:
        '200':
          description: 'Returns the updated `Shift`.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Shift'
        '400':
          description: "The request contains data that is not supported by the \ncurrent version of the API as described.\n"
        '404':
          description: 'The GUID or external identifier does not match any shifts

            at the current restaurant.

            '
        '415':
          description: "The request did not have `application/json` in the \n`Content-Type` header.\n"
        '500':
          description: "An unexpected internal error occurred. There is a \n`requestId` attached to this error that can be referenced \nby Toast support.\n"
      security:
      - oauth2:
        - labor.shifts:write
      requestBody:
        content:
          application/json:
            schema:
              type: string
              example:
                entityType: Shift
                jobReference:
                  guid: 678758d1-6aa8-494c-be55-0614f761d160
                  externalId: ''
                  entityType: RestaurantJob
                employeeReference:
                  guid: 7030407f-761c-4d92-86d9-4e84bc700d0f
                  externalId: ''
                  entityType: RestaurantUser
                inDate: 2015-10-10T06:00:00.000+0000
                outDate: 2015-10-10T12:00:00.000+0000
        description: "The shift information. The `externalId` identifier is not \nallowed for`PUT` requests.\n"
        required: true
    delete:
      tags:
      - Shifts
      summary: Toast Delete a Shift
      description: "Marks an existing schedule shift record for a restaurant \nemployee as deleted. If the shift record was already deleted, \nthen the operation will succeed (HTTP 200 response code) and no \nchange will be made.\n"
      operationId: shiftsShiftIdDelete
      parameters:
      - name: Toast-Restaurant-External-ID
        description: "The Toast platform GUID of the restaurant that is the \ncontext for this operation.\n"
        in: header
        required: true
        schema:
          type: string
          format: string
      - name: shiftId
        description: "The shift identifier, either the Toast platform GUID or an \nexternal identifier.\n"
        in: path
        required: true
        schema:
          type: string
          format: string
      responses:
        '200':
          description: "Returns the specified shift, with the deleted flag set to \n`true`.\n"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Shift'
        '400':
          description: "The Toast platform GUID or external identifier was \nmalformed.\n"
        '404':
          description: "The Toast platform GUID or external identifier does not \nmatch any shifts at the current restaurant.\n"
        '500':
          description: "An unexpected internal error occurred. There is a \n`requestId` attached to this error that can be referenced \nby Toast support.\n"
      security:
      - oauth2:
        - labor.shifts:write
components:
  schemas:
    Shift:
      type: object
      description: "A scheduled shift in the Toast platform used to enforce employee \nclock-in and clock outs. Shifts might be created in an external \nscheduling system and pushed to the Toast platform.\n"
      allOf:
      - $ref: '#/components/schemas/ExternalReference'
      - type: object
        properties:
          createdDate:
            type: string
            format: date-time
            description: 'Date created, in UTC format (read-only).

              '
          modifiedDate:
            type: string
            format: date-time
            description: 'Date modified, in UTC format (read-only).

              '
          deletedDate:
            type: string
            format: date-time
            description: 'Date deleted, in UTC format (read-only).

              '
          deleted:
            type: boolean
            description: 'If the shift is deleted in the Toast platform.

              '
          jobReference:
            type: object
            description: 'External reference to the job assigned to this shift.

              '
            $ref: '#/components/schemas/ExternalReference'
          employeeReference:
            type: object
            description: 'External reference to the employee assigned to this shift.

              '
            $ref: '#/components/schemas/ExternalReference'
          inDate:
            type: string
            format: date-time
            description: "Timestamp of the beginning of the shift. This is when the \nemployee can clock in. Expressed in the UTC time zone.\n"
          outDate:
            type: string
            format: date-time
            description: "Timestamp of the end of the shift. This is when the \nemployee can clock out. Expressed in the UTC time zone.\n"
          scheduleConfig:
            type: object
            description: 'Grace period scheduling configuration

              '
            $ref: '#/components/schemas/ScheduleConfig'
    ToastReference:
      type: object
      description: "A wrapper object with fields that allow reference to a Toast \nplatform entity by Toast GUID.\n"
      required:
      - guid
      - entityType
      properties:
        guid:
          description: 'The GUID maintained by the Toast platform.

            '
          type: string
        entityType:
          description: 'The type of object this is.

            '
          type: string
    ExternalReference:
      type: object
      description: "A wrapper object with fields that allow reference to a Toast \nplatform entity by Toast GUID or an external identifier.\n"
      allOf:
      - $ref: '#/components/schemas/ToastReference'
      - type: object
        properties:
          externalId:
            description: "External identifier string that is prefixed by the naming \nauthority. You can, for example, use the labor API to \n`POST` an `externalId` for an employee and then `GET` the \nemployee with that `externalId`.\n"
            type: string
    ScheduleConfig:
      type: object
      description: 'Schedule configuration containing info about the clock in/clock out

        grace period.

        '
      properties:
        guid:
          description: 'The GUID maintained by the Toast platform.

            '
          type: string
        minBeforeClockIn:
          description: 'Grace period minutes before clock in

            '
          type: number
          format: double
        minAfterClockIn:
          description: 'Grace period minutes after clock in

            '
          type: number
          format: double
        minBeforeClockOut:
          description: 'Grace period minutes before clock out

            '
          type: number
          format: double
        minAfterClockOut:
          description: 'Grace period minutes after clock out

            '
          type: number
          format: double
externalDocs:
  description: Authentication developer guide
  url: https://doc.toasttab.com/doc/devguide/authentication.html