Clockify Balance API

The Balance API from Clockify — 2 operation(s) for balance.

Operations 3

GET /v1/workspaces/{workspaceId}/time-off/balance/policy/{policyId} Get balances for a policy #
PATCH /v1/workspaces/{workspaceId}/time-off/balance/policy/{policyId} Update a balance #
GET /v1/workspaces/{workspaceId}/time-off/balance/user/{userId} Get balance for a user #

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-balance-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-balance-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 Balance API
  version: v1
  x-logo:
    altText: Clockify logo
    url: https://clockify.me/downloads/clockify_logo_primary_black_margin.png
tags:
- name: Balance
  x-displayName: Balance
paths:
  /v1/workspaces/{workspaceId}/time-off/balance/policy/{policyId}:
    servers:
    - url: https://api.clockify.me/api
    get:
      operationId: getBalancesForPolicy
      parameters:
      - description: Represents a workspace identifier across the system.
        example: 60f91b3ffdaf031696ec61a8
        in: path
        name: workspaceId
        required: true
        schema:
          type: string
          description: Represents a workspace identifier across the system.
          example: 60f91b3ffdaf031696ec61a8
      - description: Represents a policy identifier across the system.
        example: 63034cd0cb0fb876a57e93ad
        in: path
        name: policyId
        required: true
        schema:
          type: string
          description: Represents a policy identifier across the system.
          example: 63034cd0cb0fb876a57e93ad
      - example: 1
        in: query
        name: page
        required: false
        schema:
          maximum: 1000
          type: integer
          format: int32
          example: 1
          default: 1
      - example: 50
        in: query
        name: page-size
        required: false
        schema:
          maximum: 200
          minimum: 1
          type: integer
          format: int32
          example: 50
          default: 50
      - description: If provided, you'll get result sorted by sort column.
        example: USER
        in: query
        name: sort
        required: false
        schema:
          type: string
          enum:
          - USER
          - POLICY
          - USED
          - BALANCE
          - TOTAL
      - description: Sort results in ascending or descending order.
        example: ASCENDING
        in: query
        name: sort-order
        required: false
        schema:
          type: string
          enum:
          - ASCENDING
          - DESCENDING
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/BalancesWithCountDtoV1'
          description: OK
      summary: Get balances for a policy
      tags:
      - Balance
      security:
      - ApiKeyAuth: []
      - AddonKeyAuth: []
    patch:
      operationId: updateBalance
      parameters:
      - description: Represents a workspace identifier across the system.
        example: 60f91b3ffdaf031696ec61a8
        in: path
        name: workspaceId
        required: true
        schema:
          type: string
          description: Represents a workspace identifier across the system.
          example: 60f91b3ffdaf031696ec61a8
      - description: Represents a policy identifier across the system.
        example: 63034cd0cb0fb876a57e93ad
        in: path
        name: policyId
        required: true
        schema:
          type: string
          description: Represents a policy identifier across the system.
          example: 63034cd0cb0fb876a57e93ad
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateBalanceRequestV1'
        required: true
      responses:
        '204':
          description: No Content
      summary: Update a balance
      tags:
      - Balance
      security:
      - ApiKeyAuth: []
      - AddonKeyAuth: []
  /v1/workspaces/{workspaceId}/time-off/balance/user/{userId}:
    servers:
    - url: https://api.clockify.me/api
    get:
      operationId: getBalancesForUser
      parameters:
      - description: Represents a workspace identifier across the system.
        example: 60f91b3ffdaf031696ec61a8
        in: path
        name: workspaceId
        required: true
        schema:
          type: string
          description: Represents a workspace identifier across the system.
          example: 60f91b3ffdaf031696ec61a8
      - description: Represents a user identifier across the system.
        example: 60f924bafdaf031696ec6218
        in: path
        name: userId
        required: true
        schema:
          type: string
          description: Represents a user identifier across the system.
          example: 60f924bafdaf031696ec6218
      - description: Page number.
        in: query
        name: page
        required: false
        schema:
          maximum: 1000
          type: string
      - description: Page size.
        in: query
        name: page-size
        required: false
        schema:
          maximum: 200
          minimum: 1
          type: string
      - description: Sort result based on given criteria
        example: POLICY
        in: query
        name: sort
        required: false
        schema:
          type: string
          enum:
          - USER
          - POLICY
          - USED
          - BALANCE
          - TOTAL
      - description: Sort result by providing sort order.
        example: ASCENDING
        in: query
        name: sort-order
        required: false
        schema:
          type: string
          enum:
          - ASCENDING
          - DESCENDING
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/BalancesWithCountDtoV1'
          description: OK
      summary: Get balance for a user
      tags:
      - Balance
      security:
      - ApiKeyAuth: []
      - AddonKeyAuth: []
components:
  schemas:
    BalancesWithCountDtoV1:
      type: object
      properties:
        balances:
          type: array
          items:
            $ref: '#/components/schemas/BalanceDtoV1'
        count:
          type: integer
          description: Represents the count of balances.
          format: int32
          example: 2
    BalanceDtoV1:
      type: object
      properties:
        balance:
          type: number
          description: Represents the balance amount of the time unit
          format: double
          example: 20
        id:
          type: string
          description: Represent balance identifier across the system.
          example: 5b715448b079875110792222
        negativeBalanceAmount:
          type: number
          description: Represent negative balance amount.
          format: double
          example: 2
        negativeBalanceLimit:
          type: boolean
          description: Indicates whether the negative balance limit is allowed.
          example: true
          default: false
        policyArchived:
          type: boolean
          description: Indicates whether the policy is archived.
          example: false
          default: false
        policyId:
          type: string
          description: Represent policy identifier across the system.
          example: 5b715448b079875110793333
        policyName:
          type: string
          description: Represent policy name.
          example: Days
        policyTimeUnit:
          type: string
          description: Represent policy time unit.
          example: DAYS
          enum:
          - DAYS
          - HOURS
        total:
          type: number
          description: Represents the total amount
          format: double
          example: 18
        used:
          type: number
          description: Represents the balance used amount
          format: double
          example: 2
        userId:
          type: string
          description: Represent user identifier across the system.
          example: 5b715448b079875110791234
        userName:
          type: string
          description: Represent user's username.
          example: nicholas
        workspaceId:
          type: string
          description: Represent workspace identifier across the system.
          example: 5b715448b079875110791111
      description: Represent the list of balances.
    UpdateBalanceRequestV1:
      required:
      - userIds
      - value
      type: object
      properties:
        note:
          type: string
          description: Represents a new balance note value.
          example: Bonus days added.
        userIds:
          minItems: 1
          uniqueItems: true
          type: array
          description: Represents the list of users' identifiers whose balance is to be updated.
          example:
          - 5b715448b079875110792222
          - 5b715448b079875110791111
          items:
            type: string
            description: Represents the list of users' identifiers whose balance is to be updated.
            example: '["5b715448b079875110792222","5b715448b079875110791111"]'
        value:
          maximum: 10000
          minimum: -10000
          type: number
          description: Represents a new balance value.
          format: double
          example: 22
  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'