Leapsome timeTracking API

The timeTracking API from Leapsome — 1 operation(s) for timetracking.

OpenAPI Specification

leapsome-timetracking-api-openapi.yml Raw ↑
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