Clockify Expense Report API
The Expense Report API from Clockify — 1 operation(s) for expense report.
The Expense Report API from Clockify — 1 operation(s) for expense report.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/clockify-expense-report-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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'