openapi: 3.0.1 info: version: 1.0.1 title: Leapsome absences timeTracking API contact: name: Support url: https://leapsome.zendesk.com description: The Content API enables you to export some raw data from Leapsome for usage within your own systems and beyond what the Leapsome application offers natively. Usage is restricted to a maximum of 20 requests per second when making requests in parallel. If you exceed this limit, you will receive a 429 status code. servers: - url: https://api.leapsome.com/v1 tags: - name: timeTracking paths: /time-tracking/timesheets: get: summary: List timesheets description: Get a paginated list of timesheets with optional filtering by username (email) or employee ID. Returns timesheet details including status, dates, and work hour calculations. Requires permission to manage time tracking policies. operationId: listTimesheets security: - bearerAuth: [] tags: - timeTracking parameters: - name: username in: query required: false description: Filter by employee email address schema: type: string format: email - name: employeeId in: query required: false description: Filter by Leapsome employee ID schema: type: string pattern: ^[0-9a-f]{24}$ - name: offset in: query required: false description: Number of results to skip schema: type: integer minimum: 0 default: 0 - name: limit in: query required: false description: Maximum number of results to return schema: type: integer minimum: 1 maximum: 1000 default: 100 responses: '200': description: A list of timesheets content: application/json: schema: $ref: '#/components/schemas/TimesheetList' '401': description: Authorization failed. Token is missing or invalid. '403': description: Insufficient permissions. Permission to manage time tracking policies is required. components: schemas: Timesheet: type: object properties: id: type: string pattern: ^[0-9a-f]{24}$ example: 58d55e3ffdc2eb20547edd0a description: Timesheet ID user: type: object properties: id: type: string pattern: ^[0-9a-f]{24}$ example: 58d55e3ffdc2eb20547edd0a name: type: string email: type: string format: email example: jane.doe@example.com description: Employee email address status: type: string enum: - open - pendingApproval - closed example: open description: Current status of the timesheet startDate: type: string format: date-time description: Start date of the timesheet period endDate: type: string format: date-time description: End date of the timesheet period hoursWorked: type: string example: PT10H description: Total hours worked in the period (duration in ISO 8601 format) compensableHours: type: string example: PT10H description: Total compensable hours in the period (duration in ISO 8601 format) overtimeHours: type: string example: PT10H description: Total overtime hours in the period (duration in ISO 8601 format) workDuration: type: string example: PT10H description: Total work duration in the period (duration in ISO 8601 format) projects: type: array items: type: object properties: id: type: string pattern: ^[0-9a-f]{24}$ title: type: string description: Projects the employee worked on in the timesheet period TimesheetList: type: object properties: data: type: array items: $ref: '#/components/schemas/Timesheet' meta: type: object properties: page: type: integer description: Current page number pageSize: type: integer description: Number of items per page totalCount: type: integer description: Total number of timesheets securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT