openapi: 3.2.0 info: title: Truto Unified HRIS Timeoff API description: The Truto Unified HRIS API provides a single normalized interface for reading and writing HR data across 41 HRIS providers including BambooHR, Workday, Rippling, Gusto, HiBob, Personio, Oracle Fusion Cloud HCM, and more. All data is accessed in real-time with no caching. Includes 20 unified resources. Schema can be extended using JSONata mappings. version: 1.0.0 contact: url: https://truto.one/docs/api-reference/unified-hris-api servers: - url: https://api.truto.one/unified/hris description: Truto Unified HRIS API security: - bearerAuth: [] tags: - name: Time Off description: Time off requests and leave management paths: /timeoff-requests: get: operationId: listTimeoffRequests summary: List time off requests description: List time off requests from the connected HRIS provider. tags: - Time Off security: - bearerAuth: [] parameters: - $ref: '#/components/parameters/IntegratedAccountId' - name: employee_id in: query description: Filter time off requests by employee ID. required: false schema: type: string - name: status in: query description: Filter by request status. required: false schema: type: string enum: - pending - approved - rejected - cancelled - name: cursor in: query required: false schema: type: string - name: limit in: query required: false schema: type: integer default: 20 responses: '200': description: List of time off requests. content: application/json: schema: $ref: '#/components/schemas/TimeoffRequestListResponse' '401': $ref: '#/components/responses/Unauthorized' components: schemas: TimeoffRequestListResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/TimeoffRequest' nextCursor: type: string Error: type: object properties: error: type: string message: type: string TimeoffRequest: type: object description: A time off request from the HRIS provider. properties: id: type: string remoteId: type: string employeeId: type: string description: Identifier of the requesting employee. leaveType: type: string description: Type of leave (e.g., vacation, sick, personal, parental). status: type: string enum: - pending - approved - rejected - cancelled startDate: type: string format: date endDate: type: string format: date units: type: string enum: - days - hours description: Unit of leave measurement. amount: type: number description: Amount of leave taken in specified units. requestedAt: type: string format: date-time createdAt: type: string format: date-time updatedAt: type: string format: date-time responses: Unauthorized: description: Authentication failed or token is invalid. content: application/json: schema: $ref: '#/components/schemas/Error' parameters: IntegratedAccountId: name: integrated_account_id in: query required: true description: The ID of the integrated account (connected HRIS provider instance) to query. Required for all Unified API requests. schema: type: string securitySchemes: bearerAuth: type: http scheme: bearer description: Tenant Bearer token from the Truto dashboard.