openapi: 3.1.0 info: title: Breathe HR REST Absences Employees API description: Breathe HR is a UK SMB HRIS. The REST API exposes employees, absences, holidays, sicknesses, and account resources as JSON over HTTP. Requests authenticate with an X-API-KEY header containing the per-account token generated under Configure > API Settings. version: v1 contact: name: Breathe HR Developer url: https://developer.breathehr.com/ servers: - url: https://api.breathehr.com/v1 description: Production - url: https://api.sandbox.breathehr.com/v1 description: Sandbox security: - ApiKeyAuth: [] tags: - name: Employees paths: /employees: get: summary: List employees operationId: listEmployees tags: - Employees parameters: - name: page in: query schema: type: integer default: 1 - name: per_page in: query schema: type: integer default: 50 responses: '200': description: Employees content: application/json: schema: type: array items: $ref: '#/components/schemas/Employee' post: summary: Create an employee operationId: createEmployee tags: - Employees requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EmployeeInput' responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/Employee' /employees/{id}: parameters: - name: id in: path required: true schema: type: integer get: summary: Get an employee operationId: getEmployee tags: - Employees responses: '200': description: Employee content: application/json: schema: $ref: '#/components/schemas/Employee' put: summary: Update an employee operationId: updateEmployee tags: - Employees requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EmployeeInput' responses: '200': description: Updated content: application/json: schema: $ref: '#/components/schemas/Employee' delete: summary: Delete an employee operationId: deleteEmployee tags: - Employees responses: '204': description: Deleted components: schemas: Employee: type: object properties: id: type: integer first_name: type: string last_name: type: string email: type: string format: email job_title: type: string department: type: string start_date: type: string format: date date_of_birth: type: string format: date status: type: string EmployeeInput: type: object required: - first_name - last_name properties: first_name: type: string last_name: type: string email: type: string format: email job_title: type: string department: type: string start_date: type: string format: date securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-API-KEY