Clockify Expense Report API

The Expense Report API from Clockify — 1 operation(s) for expense report.

Operations 1

POST /v1/workspaces/{workspaceId}/reports/expenses/detailed Generate an expense 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-expense-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-expense-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 Expense Report API
  version: v1
  x-logo:
    altText: Clockify logo
    url: https://clockify.me/downloads/clockify_logo_primary_black_margin.png
tags:
- name: Expense Report
  x-displayName: Expense Report
paths:
  /v1/workspaces/{workspaceId}/reports/expenses/detailed:
    servers:
    - url: https://reports.api.clockify.me
    post:
      description: Expense report data on FREE subscription plan is limited to a maximum interval length of one month (31 days).
      operationId: generateDetailedReportV1
      parameters:
      - in: path
        name: workspaceId
        required: true
        schema:
          type: string
          description: Represents a workspace identifier across the system.
          example: 60f91b3ffdaf031696ec6bbb
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExpenseReportFilterV1'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpenseDetailedReportDtoV1'
          description: OK
      summary: Generate an expense report
      tags:
      - Expense 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
    invoicingInfo:
      type: object
      description: Expense's invoicing info.
      properties:
        invoiceId:
          type: string
        manuallyInvoiced:
          type: boolean
    ExpenseReportFilterV1:
      type: object
      properties:
        approvalState:
          type: string
          description: Represents an approval state
          enum:
          - APPROVED
          - UNAPPROVED
          - ALL
          example: APPROVED
        billable:
          type: boolean
          description: Indicates whether report is billable
          example: true
        categories:
          $ref: '#/components/schemas/ContainsArchivedFilterV1'
        clients:
          $ref: '#/components/schemas/ContainsArchivedFilterV1'
        currency:
          $ref: '#/components/schemas/ContainsArchivedFilterV1'
        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: '2021-10-27T23: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: '2021-10-27T00:00:00'
          minLength: 1
        dateRangeType:
          type: string
          description: Represents date range type of expense report
          enum:
          - ABSOLUTE
          - TODAY
          - YESTERDAY
          - THIS_WEEK
          - LAST_WEEK
          - PAST_TWO_WEEKS
          - THIS_MONTH
          - LAST_MONTH
          - THIS_YEAR
          - LAST_YEAR
          example: TODAY
        exportType:
          type: string
          description: Represents an export type
          enum:
          - JSON
          - JSON_V1
          - PDF
          - CSV
          - XLSX
          - ZIP
          example: JSON
        invoicingState:
          type: string
          description: Represents an invoicing state
          enum:
          - INVOICED
          - UNINVOICED
          - ALL
          example: INVOICED
        note:
          type: string
          description: Represents a search term for filtering report entries by note
          example: some note keyword
        page:
          type: integer
          format: int32
          description: Page number.
          example: 1
          minimum: 1
        pageSize:
          type: integer
          format: int32
          description: Page size.
          example: 50
          minimum: 1
        projects:
          $ref: '#/components/schemas/ContainsArchivedFilterV1'
        sortColumn:
          type: string
          description: Represents expenses sort column
          enum:
          - ID
          - PROJECT
          - USER
          - CATEGORY
          - DATE
          - AMOUNT
          example: ID
        sortOrder:
          type: string
          description: Represents a sort order
          enum:
          - ASCENDING
          - DESCENDING
          example: ASCENDING
        tasks:
          $ref: '#/components/schemas/ContainsTaskFilterV1'
        timeZone:
          type: string
          description: Represents a time zone
          example: Europe/Budapest
        userGroups:
          $ref: '#/components/schemas/ContainsUsersFilterV1'
        userLocale:
          type: string
          description: Represents a user locale
          example: en
        users:
          $ref: '#/components/schemas/ContainsUsersFilterV1'
        weekStart:
          type: string
          description: Represents week start
          enum:
          - MONDAY
          - TUESDAY
          - WEDNESDAY
          - THURSDAY
          - FRIDAY
          - SATURDAY
          - SUNDAY
          example: MONDAY
        withoutNote:
          type: boolean
          description: If set to 'true', report will only include entries with empty note
          example: false
        zoomLevel:
          type: string
          description: Represents a zoom level
          enum:
          - WEEK
          - MONTH
          - YEAR
          example: WEEK
      required:
      - dateRangeEnd
      - dateRangeStart
    ExpenseReportDtoV1:
      type: object
      description: Represents list of expenses
      properties:
        amount:
          type: number
          format: double
          description: Represents expenses amount.
        approvalRequestId:
          type: string
          description: Represents approval request identifier across the system.
          example: 5b715612b079875110791336
        billable:
          type: boolean
          description: Indicates whether the expenses is billable.
        categoryHasUnitPrice:
          type: boolean
          description: Indicates whether category has unit price.
        categoryId:
          type: string
          description: Represents category identifier across the system.
          example: 5b715612b079875110791334
        categoryName:
          type: string
          description: Represents category's name.
        categoryUnit:
          type: string
          description: Represents category's unit.
        date:
          type: string
          description: Represents expenses date in YYYY-MM-DDTHH:MM:SS.ssssssZ format.
          example: '2021-10-27T00:00:00Z'
        exportFields:
          type: array
          description: Represents export fields.
          items:
            type: string
            description: Represents export fields.
            enum:
            - PROJECT
            - CLIENT
            - TASK
            - DESCRIPTION
            - USER
            - TAGS
            - START_DATE
            - START_TIME
            - END_TIME
            - DURATION
            - BILLABLE_AMOUNT
            - COST_AMOUNT
            - PROFIT
            - EMAIL
            - BILLABLE
            - BILLABLE_H
            - NON_BILLABLE_H
            - END_DATE
            - DECIMAL_DURATION
            - BILLABLE_RATE
            - COST_RATE
            - APPROVAL
            - BAR_CHART
            - PIE_CHART_1
            - PIE_CHART_2
            - PIE_CHART_3
            - RTL
            - TOTAL
            - SUBGROUP
            - GROUP
            - DATE
            - TIME
            - CATEGORY
            - NOTE
            - AMOUNT
            - INVOICED
            - INVOICE_ID
            - CATEGORY_NO_OF_UNITS
            - CATEGORY_UNIT
            - KIOSK
            - KIOSK_QR_CODE
            - TYPE
            - BREAK
            - NOTES
            - BILLABLE_TOTAL
            - RECEIPTS
            - EXPENSE_TOTAL
            - DATE_OF_CREATION
            - DATE_OF_APPROVAL
            - NAME
            - ROLE
            - PROJECTS
            - STATUS
            - WEEK_START
            - WORKING_DAYS
            - TEAM_MANAGERS
            - TEAM_MEMBERS
            - DAILY_WORK_CAPACITY
            - VISIBILITY
            - BILLABILITY
            - TASKS
            - TRACKED_H
            - ESTIMATED_H
            - REMAINING_H
            - OVERAGE_H
            - TRACKED_BUDGET
            - ESTIMATED_BUDGET
            - REMAINING_BUDGET
            - OVERAGE_BUDGET
            - PROGRESS
            - RECURRING_ESTIMATE
            - EXPENSES
            - BILLABLE_EXPENSES
            - NON_BILLABLE_EXPENSES
            - ADDITIONAL_FIELDS
            - PROJECT_MEMBERS
            - PROJECT_MANAGER
            - APPROVED_BY
            - ISSUE_DATE
            - DUE_ON
            - BALANCE
        fileId:
          type: string
          description: Represents file identifier across the system.
          example: 5b715612b079875110791335
        fileName:
          type: string
          description: Represents expenses file name.
        id:
          type: string
          description: Represents expenses identifier across the system.
          example: 5b715612b079875110791122
        invoicingInfo:
          $ref: '#/components/schemas/invoicingInfo'
        locked:
          type: boolean
          description: Indicates whether the expenses is locked.
        notes:
          type: string
          description: Represents expenses note.
          example: Expenses Note
        projectColor:
          type: string
          description: Represents project's color
        projectId:
          type: string
          description: Represents project identifier across the system.
          example: 5b715612b079875110791333
        projectName:
          type: string
          description: Represents project's name.
        quantity:
          type: number
          format: double
          description: Represents expenses quantity
          example: 10
        reportName:
          type: string
          description: Represents expense name.
        time:
          type: string
          description: Represents expense time.
        userEmail:
          type: string
          description: Represents user's email.
        userId:
          type: string
          description: Represents user identifier across the system.
          example: 5b715612b079875110791121
        userName:
          type: string
          description: Represents user's name.
        userStatus:
          type: string
          description: Represents user's status.
        workspaceId:
          type: string
          description: Represents workspace identifier across the system.
          example: 5b715612b079875110791121
    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
    ExpenseDetailedReportDtoV1:
      type: object
      description: report
      properties:
        expenses:
          type: array
          description: Represents list of expenses
          items:
            $ref: '#/components/schemas/ExpenseReportDtoV1'
        totals:
          $ref: '#/components/schemas/ExpenseTotalsDtoV1'
    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
    ExpenseTotalsDtoV1:
      type: object
      description: Represents expense totals
      properties:
        expensesCount:
          type: integer
          format: int32
          description: Represents expenses count
          example: 2
        totalAmount:
          type: number
          format: double
          description: Represents total amount of expenses
          example: 20
        totalAmountBillable:
          type: number
          format: double
          description: Represents total billable amount of expenses
          example: 20
  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'