openapi: 3.0.3 info: title: Sesame HR Public Absences and Leave 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: Absences and Leave description: Vacation and absence calendars, day-off requests, holidays, and leave. paths: /vacation-day-off-requests: get: operationId: listVacationDayOffRequests tags: - Absences and Leave summary: List vacation day-off requests description: Lists vacation day-off requests, filterable by employee and status. parameters: - name: employeeId in: query required: false schema: type: string format: uuid - name: status in: query required: false schema: type: string enum: - pending - accepted - rejected responses: '200': description: A list of vacation day-off requests. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/DayOffRequest' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createVacationDayOffRequest tags: - Absences and Leave summary: Create vacation day-off request description: Creates a vacation day-off request for an employee. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DayOffRequestInput' responses: '201': description: The created request. content: application/json: schema: $ref: '#/components/schemas/DayOffRequest' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/ValidationError' /vacation-day-off-requests/{id}/accept: parameters: - $ref: '#/components/parameters/Id' post: operationId: acceptVacationDayOffRequest tags: - Absences and Leave summary: Accept vacation day-off request description: Approves a pending vacation day-off request. responses: '200': description: The accepted request. content: application/json: schema: $ref: '#/components/schemas/DayOffRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /vacation-day-off-requests/{id}/reject: parameters: - $ref: '#/components/parameters/Id' post: operationId: rejectVacationDayOffRequest tags: - Absences and Leave summary: Reject vacation day-off request description: Rejects a pending vacation day-off request. responses: '200': description: The rejected request. content: application/json: schema: $ref: '#/components/schemas/DayOffRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /holidays: get: operationId: listHolidays tags: - Absences and Leave summary: List holidays description: Lists holidays defined across the company's holiday calendars. responses: '200': description: A list of holidays. content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string format: uuid name: type: string date: type: string format: date '401': $ref: '#/components/responses/Unauthorized' components: schemas: DayOffRequestInput: type: object required: - employeeId - from - to properties: employeeId: type: string format: uuid from: type: string format: date to: type: string format: date comment: type: string DayOffRequest: allOf: - $ref: '#/components/schemas/DayOffRequestInput' - type: object properties: id: type: string format: uuid status: type: string enum: - pending - accepted - rejected createdAt: type: string format: date-time Error: type: object properties: error: type: object properties: code: type: string message: type: string parameters: Id: name: id in: path required: true description: The UUID of the resource. schema: type: string format: uuid responses: NotFound: description: The requested resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Missing or invalid Bearer token. content: application/json: schema: $ref: '#/components/schemas/Error' ValidationError: description: The request payload failed validation. 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`.'