openapi: 3.0.3 info: title: Sesame HR Public Absences and Leave Scheduling API description: The Sesame Public API (v3) exposes the Sesame HR platform - employees, time tracking (check-in / check-out), work hours, shifts and scheduling, vacations, absences and leave, departments, offices, and the organization chart - over a documented REST interface. All requests are authenticated with a Bearer API token generated in the Sesame admin panel (Settings > Integrations > API at app.sesametime.com). The base host is region-specific (api-{region}.sesametime.com, default region eu1) and every path is prefixed with /core/v3. This document models the subset of the ~500-endpoint API most relevant to HRIS, time-tracking, and workforce-management use cases; endpoint paths and the Bearer scheme are taken from the official documentation, while some request/response field shapes are modeled generically where the public docs do not publish a full schema. version: 3.0.0 contact: name: Sesame HR url: https://www.sesamehr.com servers: - url: https://api-eu1.sesametime.com/core/v3 description: Sesame Public API v3 (EU region eu1 - default; region is account-specific) security: - bearerAuth: [] tags: - name: Scheduling description: Planners, shifts, and schedule templates. paths: /planners: get: operationId: listPlanners tags: - Scheduling summary: List planners description: Lists the company's scheduling planners. responses: '200': description: A list of planners. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Planner' '401': $ref: '#/components/responses/Unauthorized' /planners/{id}/shifts: parameters: - $ref: '#/components/parameters/Id' post: operationId: assignPlannerShifts tags: - Scheduling summary: Assign shifts to employees description: Assigns one or more shifts to employees within a planner. requestBody: required: true content: application/json: schema: type: object properties: assignments: type: array items: type: object properties: employeeId: type: string format: uuid shiftId: type: string format: uuid date: type: string format: date responses: '200': description: Shift assignment result. content: application/json: schema: type: object additionalProperties: true '401': $ref: '#/components/responses/Unauthorized' /shifts: get: operationId: listShifts tags: - Scheduling summary: List shifts description: Lists the company's shift definitions. responses: '200': description: A list of shifts. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Shift' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createShift tags: - Scheduling summary: Create shift description: Creates a new shift definition. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ShiftInput' responses: '201': description: The created shift. content: application/json: schema: $ref: '#/components/schemas/Shift' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/ValidationError' /schedule-templates: get: operationId: listScheduleTemplates tags: - Scheduling summary: List schedule templates description: Lists reusable schedule templates. responses: '200': description: A list of schedule templates. content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string format: uuid name: type: string '401': $ref: '#/components/responses/Unauthorized' components: schemas: Planner: type: object properties: id: type: string format: uuid name: type: string Error: type: object properties: error: type: object properties: code: type: string message: type: string Shift: allOf: - $ref: '#/components/schemas/ShiftInput' - type: object properties: id: type: string format: uuid ShiftInput: type: object required: - name properties: name: type: string startTime: type: string description: Shift start time (HH:mm). endTime: type: string description: Shift end time (HH:mm). parameters: Id: name: id in: path required: true description: The UUID of the resource. schema: type: string format: uuid responses: ValidationError: description: The request payload failed validation. content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Missing or invalid Bearer token. content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: bearerAuth: type: http scheme: bearer description: 'Bearer API token generated in the Sesame admin panel under Settings > Integrations > API at app.sesametime.com. Passed as `Authorization: Bearer YOUR_API_TOKEN`.'