Clockify Team Report API

The Team Report API from Clockify — 1 operation(s) for team report.

Operations 1

POST /v1/workspaces/{workspaceId}/reports/attendance Generate an attendance report #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/clockify-team-report-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

clockify-team-report-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: '## Introduction

    By using this REST API, you can easily integrate Clockify with your own add-ons, push and pull data

    between Clockify and other tools, and create custom add-ons on CAKE.com Marketplace.'
  title: Clockify Team Report API
  version: v1
  x-logo:
    altText: Clockify logo
    url: https://clockify.me/downloads/clockify_logo_primary_black_margin.png
tags:
- name: Team Report
  x-displayName: Team Report
paths:
  /v1/workspaces/{workspaceId}/reports/attendance:
    servers:
    - url: https://reports.api.clockify.me
    post:
      operationId: generateAttendanceReport
      parameters:
      - in: path
        name: workspaceId
        required: true
        schema:
          type: string
          description: Represents a workspace identifier across the system.
          example: 60f91b3ffdaf031696ecxxxx
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AttendanceReportFilterV1'
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/AttendanceReportDtoV1'
          description: OK
      summary: Generate an attendance report
      tags:
      - Team Report
      security:
      - ApiKeyAuth: []
      - AddonKeyAuth: []
components:
  schemas:
    ContainsUsersFilterV1:
      type: object
      properties:
        contains:
          type: string
          description: Represents a contains type.
          enum:
          - CONTAINS
          - DOES_NOT_CONTAIN
          - CONTAINS_ONLY
          example: CONTAINS
        ids:
          type: array
          description: Filter includes provided list of ids.
          example:
          - 5b715448b079875110792222
          - 5b715448b079875110791111
          items:
            type: string
            description: Filter includes provided list of ids.
            example: '["5b715448b079875110792222","5b715448b079875110791111"]'
          uniqueItems: true
        status:
          type: string
          description: Filter entities in 'contains' by their status.
          enum:
          - ALL
          - ACTIVE_WITH_PENDING
          - ACTIVE
          - PENDING
          - INACTIVE
          example: ACTIVE
    CompareOvertimeFilter:
      type: object
      properties:
        filtrationType:
          type: string
          enum:
          - EXACTLY
          - LARGER_THAN
          - SMALLER_THAN
        value:
          type: string
          description: Represents duration of overtime work (difference between work and capacity) in hours, multiplied by 100. For example, if desired value is 1.5h, input should be 150.
          example: '150'
    ContainsTagFilterV1:
      type: object
      description: Represents an object for filtering entries by tags.
      properties:
        containedInTimeentry:
          type: string
          description: If provided, you'll get result filtered by value of contained in time entry.
          enum:
          - CONTAINS
          - DOES_NOT_CONTAIN
          - CONTAINS_ONLY
          example: CONTAINS_ONLY
        contains:
          type: string
          description: Represents a contains type.
          enum:
          - CONTAINS
          - DOES_NOT_CONTAIN
          - CONTAINS_ONLY
          example: CONTAINS
        ids:
          type: array
          description: Filter includes provided list of ids.
          example:
          - 5b715448b079875110792222
          - 5b715448b079875110791111
          items:
            type: string
            description: Filter includes provided list of ids.
            example: '["5b715448b079875110792222","5b715448b079875110791111"]'
          uniqueItems: true
        status:
          type: string
          description: Filter entities in 'contains' by their status.
          enum:
          - ACTIVE
          - ARCHIVED
          - ALL
          example: ACTIVE
    CompareStartFilter:
      type: object
      properties:
        filtrationType:
          type: string
          enum:
          - EXACTLY
          - LARGER_THAN
          - SMALLER_THAN
        value:
          type: string
          description: Represents start time in 24-hour notation.
          example: '15:00'
    ContainsTaskFilterV1:
      type: object
      description: Represents filter criteria for expenses associated with tasks.
      properties:
        contains:
          type: string
          description: Represents a contains type.
          enum:
          - CONTAINS
          - DOES_NOT_CONTAIN
          - CONTAINS_ONLY
          example: CONTAINS
        ids:
          type: array
          description: Filter includes provided list of ids.
          example:
          - 5b715448b079875110792222
          - 5b715448b079875110791111
          items:
            type: string
            description: Filter includes provided list of ids.
            example: '["5b715448b079875110792222","5b715448b079875110791111"]'
          uniqueItems: true
        status:
          type: string
          description: Filter entities in 'contains' by their status.
          enum:
          - ACTIVE
          - ARCHIVED
          - ALL
          example: ACTIVE
    ContainsArchivedFilterV1:
      type: object
      properties:
        contains:
          type: string
          description: Represents a contains type.
          enum:
          - CONTAINS
          - DOES_NOT_CONTAIN
          - CONTAINS_ONLY
          example: CONTAINS
        ids:
          type: array
          description: Filter includes provided list of ids.
          example:
          - 5b715448b079875110792222
          - 5b715448b079875110791111
          items:
            type: string
            description: Filter includes provided list of ids.
            example: '["5b715448b079875110792222","5b715448b079875110791111"]'
          uniqueItems: true
        status:
          type: string
          description: Filter entities in 'contains' by their status.
          enum:
          - ACTIVE
          - ARCHIVED
          - ALL
          example: ACTIVE
    CompareWorkFilter:
      type: object
      properties:
        filtrationType:
          type: string
          enum:
          - EXACTLY
          - LARGER_THAN
          - SMALLER_THAN
        value:
          type: string
          description: Represents duration of completed work for day in hours, multiplied by 100. For example, if desired value is 7.5h, input should be 750.
          example: '750'
    CompareCapacityFilter:
      type: object
      properties:
        filtrationType:
          type: string
          enum:
          - EXACTLY
          - LARGER_THAN
          - SMALLER_THAN
        value:
          type: string
          description: Represents daily work capacity of user in hours, multiplied by 100. For example, if desired value is 7.5h, input should be 750.
          example: '750'
    DetailedFilterV1:
      type: object
      description: Represents a detailed report filter.
      properties:
        auditFilter:
          $ref: '#/components/schemas/AuditFilterV1'
        options:
          $ref: '#/components/schemas/DetailedOptionsV1'
        page:
          type: integer
          format: int32
          example: 1
        pageSize:
          type: integer
          format: int32
          example: 20
        sortColumn:
          type: string
          description: If provided, you'll get sorted result by sort column.
          enum:
          - ID
          - DESCRIPTION
          - USER
          - DURATION
          - DATE
          - ZONED_DATE
          - NATURAL
          - USER_DATE
          example: ID
    AttendanceFilterV1:
      type: object
      description: Represents an attendance report filter.
      properties:
        breakFilters:
          type: array
          items:
            $ref: '#/components/schemas/CompareBreakFilter'
        capacityFilters:
          type: array
          items:
            $ref: '#/components/schemas/CompareCapacityFilter'
        endFilters:
          type: array
          items:
            $ref: '#/components/schemas/CompareEndFilter'
        hasTimeOff:
          type: boolean
          description: If set to true, report will include time off hours.
          example: true
        overtimeFilters:
          type: array
          items:
            $ref: '#/components/schemas/CompareOvertimeFilter'
        page:
          type: integer
          format: int32
          default: 1
          description: Specifies page number.
          minimum: 1
        pageSize:
          type: integer
          format: int32
          description: Specifies page size.
          minimum: 1
        sortColumn:
          type: string
          enum:
          - USER
          - DATE
          - START
          - END
          - BREAK
          - WORK
          - CAPACITY
          - OVERTIME
          - TIME_OFF
        startFilters:
          type: array
          items:
            $ref: '#/components/schemas/CompareStartFilter'
        workFilters:
          type: array
          items:
            $ref: '#/components/schemas/CompareWorkFilter'
    CompareBreakFilter:
      type: object
      properties:
        filtrationType:
          type: string
          enum:
          - EXACTLY
          - LARGER_THAN
          - SMALLER_THAN
        value:
          type: string
          description: Represents duration of breaks in the day in hours, multiplied by 100. For example, if desired value is 0.5h, input should be 50
          example: '50'
    CompareEndFilter:
      type: object
      properties:
        filtrationType:
          type: string
          enum:
          - EXACTLY
          - LARGER_THAN
          - SMALLER_THAN
        value:
          type: string
          description: Represents end time in 24-hour notation.
          example: '17:00'
    SummaryFilterV1:
      type: object
      description: Represents a summary report filter.
      properties:
        groups:
          type: array
          description: Represents group ids
          example: '"[5b715448b07987511071111", "5b715448b079875110792222"]'
          items:
            type: string
            description: Represents group ids
            example: '"[5b715448b07987511071111", "5b715448b079875110792222"]'
        sortColumn:
          type: string
          description: If provided, you'll get sorted result by provided sort column.
          enum:
          - GROUP
          - DURATION
          - AMOUNT
          - EARNED
          - COST
          - PROFIT
          example: GROUP
        summaryChartType:
          type: string
          description: If provided, you'll get sorted result by provided summary chart type.
          enum:
          - BILLABILITY
          - PROJECT
          example: PROJECT
    WeeklyFilterV1:
      type: object
      description: Represents a weekly report filter.
      properties:
        group:
          type: string
          description: Weekly filter will include group identifier.
          example: 5b715448b079875110791111
        subgroup:
          type: string
          description: Weekly filter will include subgroup identifier.
          example: 5b715448b079875110792222
    DetailedOptionsV1:
      type: object
      properties:
        totals:
          type: string
          enum:
          - CALCULATE
          - EXCLUDE
          example: CALCULATE
    AuditFilterV1:
      type: object
      properties:
        duration:
          type: integer
          format: int32
          description: Represent audit duration.
          example: 2
        durationShorter:
          type: boolean
          description: Represent audit duration shorter.
          example: false
        withoutProject:
          type: boolean
          description: Indicates whether to filter without a project.
          example: false
        withoutTask:
          type: boolean
          description: Indicates whether to filter without a task.
          example: true
    AttendanceDto:
      type: object
      description: List of entities
      properties:
        break:
          type: integer
          format: int64
        capacity:
          type: integer
          format: int32
        date:
          type: string
        endTime:
          type: string
        hasRunningEntry:
          type: boolean
        imageUrl:
          type: string
        overtime:
          type: integer
          format: int64
        remainingCapacity:
          type: integer
          format: int64
        startTime:
          type: string
        timeOff:
          type: integer
          format: int64
        totalDuration:
          type: integer
          format: int64
        userId:
          type: string
        userName:
          type: string
    AttendanceReportDtoV1:
      type: object
      description: report
      properties:
        entities:
          type: array
          description: List of entities
          items:
            $ref: '#/components/schemas/AttendanceDto'
    AttendanceReportFilterV1:
      type: object
      properties:
        amountShown:
          type: string
          description: If provided, you'll get filtered result including reports with provided amount shown.
          enum:
          - EARNED
          - COST
          - PROFIT
          - HIDE_AMOUNT
          - EXPORT
          example: COST
        amounts:
          type: array
          items:
            type: string
            enum:
            - EARNED
            - COST
            - PROFIT
            - HIDE_AMOUNT
            - EXPORT
            example: '[EARNED, COST]'
        approvalState:
          type: string
          description: If provided, you'll get filtered result including reports with provided approval state.
          enum:
          - APPROVED
          - UNAPPROVED
          - ALL
          example: APPROVED
        archived:
          type: boolean
          description: Indicates whether the report is archived
          example: false
        attendanceFilter:
          $ref: '#/components/schemas/AttendanceFilterV1'
        billable:
          type: boolean
          description: Indicates whether the report is billable
          example: true
        clients:
          $ref: '#/components/schemas/ContainsArchivedFilterV1'
        currency:
          $ref: '#/components/schemas/ContainsArchivedFilterV1'
        customFields:
          type: array
          items:
            $ref: '#/components/schemas/CustomFieldFilterV1'
        dateFormat:
          type: string
          description: Provide date in format YYYY-MM-DD
          example: '2018-11-01'
        dateRangeEnd:
          type: string
          description: Provide date in format YYYY-MM-DDTHH:MM:SS.ssssss. The system interprets this value based on the user's timezone (provided in the timeZone request parameter or the timezone configured in the user profile)
          example: '2018-11-30T23:59:59.999'
          minLength: 1
        dateRangeStart:
          type: string
          description: Provide date in format YYYY-MM-DDTHH:MM:SS.ssssss. The system interprets this value based on the user's timezone (provided in the timeZone request parameter or the timezone configured in the user profile)
          example: '2018-11-01T00:00:00'
          minLength: 1
        dateRangeType:
          type: string
          description: Provide the date range type
          enum:
          - ABSOLUTE
          - TODAY
          - YESTERDAY
          - THIS_WEEK
          - LAST_WEEK
          - PAST_TWO_WEEKS
          - THIS_MONTH
          - LAST_MONTH
          - THIS_YEAR
          - LAST_YEAR
          example: LAST_MONTH
        description:
          type: string
          description: Represents search term for filtering report entries by description
          example: some description keyword
        detailedFilter:
          $ref: '#/components/schemas/DetailedFilterV1'
        exportType:
          type: string
          description: If provided, you'll get filtered result including reports with provided export type.
          enum:
          - JSON
          - JSON_V1
          - PDF
          - CSV
          - XLSX
          - ZIP
          example: JSON
        invoicingState:
          type: string
          description: If provided, you'll get filtered result including reports with provided invoicing state.
          enum:
          - INVOICED
          - UNINVOICED
          - ALL
          example: INVOICED
        projects:
          $ref: '#/components/schemas/ContainsArchivedFilterV1'
        rounding:
          type: boolean
          description: Indicates whether the report filter is rounding
          example: false
        sortOrder:
          type: string
          description: If provided, you'll get sorted result by provided sort order.
          enum:
          - ASCENDING
          - DESCENDING
          example: ASCENDING
        summaryFilter:
          $ref: '#/components/schemas/SummaryFilterV1'
        tags:
          $ref: '#/components/schemas/ContainsTagFilterV1'
        tasks:
          $ref: '#/components/schemas/ContainsTaskFilterV1'
        timeFormat:
          type: string
          description: Provide time in format THH:MM:SS.ssssss
          example: T00:00:00
        timeZone:
          type: string
          description: If provided, you'll get filtered result including reports with provided time zone.
          example: Europe/Belgrade
        userGroups:
          $ref: '#/components/schemas/ContainsUsersFilterV1'
        userLocale:
          type: string
          description: If provided, you'll get filtered result including reports with provided user locale.
          example: en
        users:
          $ref: '#/components/schemas/ContainsUsersFilterV1'
        weekStart:
          type: string
          description: If provided, you'll get filtered result including reports with provided week start.
          enum:
          - MONDAY
          - TUESDAY
          - WEDNESDAY
          - THURSDAY
          - FRIDAY
          - SATURDAY
          - SUNDAY
          example: MONDAY
        weeklyFilter:
          $ref: '#/components/schemas/WeeklyFilterV1'
        withoutDescription:
          type: boolean
          description: If set to 'true', report will only include entries with empty description
          example: false
        zoomLevel:
          type: string
          description: If provided, you'll get filtered result including reports with provided zoom level.
          enum:
          - WEEK
          - MONTH
          - YEAR
          example: WEEK
      required:
      - attendanceFilter
      - dateRangeEnd
      - dateRangeStart
    CustomFieldFilterV1:
      type: object
      description: Represents list of time entry custom field filter objects.
      properties:
        id:
          type: string
          description: Represents a custom field identifier across the system.
          example: 5b71544ab0798751107918b3
        isEmpty:
          type: boolean
          description: Indicates whether the custom field is empty.
          example: false
        numberCondition:
          type: string
          description: Represents a custom field number condition.
          enum:
          - EQUAL
          - GREATER_THAN
          - LESS_THAN
          example: EQUAL
        type:
          type: string
          description: Represents a type of custom field.
          enum:
          - TXT
          - NUMBER
          - DROPDOWN_SINGLE
          - DROPDOWN_MULTIPLE
          - CHECKBOX
          - LINK
          example: NUMBER
        value:
          type: object
          description: Represents a custom field value.
          example: 2000
  securitySchemes:
    AddonKeyAuth:
      in: header
      name: x-addon-token
      type: apiKey
    ApiKeyAuth:
      in: header
      name: x-api-key
      type: apiKey
    MarketplaceKeyAuth:
      in: header
      name: x-marketplace-token
      type: apiKey
    ReportAddonKeyAuth:
      in: header
      name: x-addon-token
      type: apiKey
x-tagGroups:
- name: Clockify API
  tags:
  - User
  - Workspace
  - Webhooks
  - Approval
  - Client
  - Custom fields
  - Expense
  - Holiday
  - Invoice
  - Project
  - Task
  - Scheduling
  - Tag
  - Time entry
  - Balance
  - Policy
  - Time Off
  - Group
- name: Clockify Reports API
  tags:
  - Shared Report
  - Team Report
  - Time Entry Report
  - Expense Report
- name: Clockify Audit Log API
  tags:
  - Audit Log Report
- name: Deprecated API
  tags:
  - Template (Deprecated)
  - Scheduling (Deprecated)
  - Workspace (Deprecated)
- name: Experimental API
  tags:
  - Entity changes (Experimental)
- name: Guide
  tags:
  - 'Entity Changes: Use cases'