Clockify website screenshot

Clockify

Clockify is a time tracking and timesheet platform used by teams to track work hours across projects with a timer, manual timesheets, kiosk check-in, scheduling, expense tracking, invoicing, and reporting. The Clockify REST API exposes workspaces, users, projects, tasks, tags, clients, time entries, reports, and webhooks, and authenticates with an X-Api-Key header.

1 APIs 0 Features
Time TrackingTimesheetsProductivityProject ManagementReportingInvoicingWorkforce

APIs

Clockify REST API

REST API for Clockify providing access to workspaces, users, groups, projects, tasks, clients, tags, time entries, reports, webhooks, and approvals. Authentication uses the X-Ap...

Collections

Resources

👥
GitHubOrganization
GitHubOrganization
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
💰
Pricing
Pricing
📝
Signup
Signup
🔗
Help Center
Help Center
🔗
LlmsText
LlmsText

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Clockify API
  version: v1
items:
- info:
    name: User
    type: folder
  items:
  - info:
      name: Add a photo
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v1/file/image'
      body:
        type: multipart-form
        data:
        - name: file
          type: text
          value: ''
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Add a photo
  - info:
      name: Get currently logged-in user's info
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v1/user'
      params:
      - name: include-memberships
        value: 'true'
        type: query
        description: If set to true, memberships will be included.
      auth:
        type: apikey
        key: x-marketplace-token
        value: '{{x-marketplace-token}}'
        placement: header
    docs: Get currently logged-in user's info
  - info:
      name: Get a member's profile
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/member-profile/:userId'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: userId
        value: 5a0ab5acb07987125438b60f
        type: path
        description: Represents a user identifier across the system.
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Get a member's profile
  - info:
      name: Update a member's profile
      type: http
    http:
      method: PATCH
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/member-profile/:userId'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: userId
        value: 5a0ab5acb07987125438b60f
        type: path
        description: Represents a user identifier across the system.
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Update a member's profile
  - info:
      name: Find all users on a workspace
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/users'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: email
        value: mail@example.com
        type: query
        description: If provided, you'll get a filtered list of users that contain the provided string in their email address.
      - name: project-id
        value: 21a687e29ae1f428e7ebe606
        type: query
        description: If provided, you'll get a list of users that have access to the project.
      - name: status
        value: ACTIVE
        type: query
        description: If provided, you'll get a filtered list of users with the corresponding status.
      - name: account-statuses
        value: LIMITED
        type: query
        description: If provided, you'll get a filtered list of users with the corresponding account status filter. If not,
          this will only filter ACTIVE, PENDING_EMAIL_VERIFICATION, and NOT_REGISTERED Users.
      - name: name
        value: John
        type: query
        description: If provided, you'll get a filtered list of users that contain the provided string in their name
      - name: sort-column
        value: ID
        type: query
        description: 'Sorting column criteria. Default value: EMAIL'
      - name: sort-order
        value: ASCENDING
        type: query
        description: 'Sorting mode. Default value: ASCENDING'
      - name: page
        value: '1'
        type: query
        description: Page number.
      - name: page-size
        value: '50'
        type: query
        description: Page size.
      - name: memberships
        value: WORKSPACE
        type: query
        description: If provided, you'll get all users along with workspaces, groups, or projects they have access to. Default
          value is NONE.
      - name: include-roles
        value: ''
        type: query
        description: If you pass along includeRoles=true, you'll get each user's detailed manager role (including projects
          and members which they manage)
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Find all users on a workspace
  - info:
      name: Filter workspace users
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/users/info'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-marketplace-token
        value: '{{x-marketplace-token}}'
        placement: header
    docs: Filter workspace users
  - info:
      name: Update a user's custom field
      type: http
    http:
      method: PUT
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/users/:userId/custom-field/:customFieldId/value'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: userId
        value: 5a0ab5acb07987125438b60f
        type: path
        description: Represents a user identifier across the system.
      - name: customFieldId
        value: 5e4117fe8c625f38930d57b7
        type: path
        description: Represents custom field identifier across the system.
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Update a user's custom field
  - info:
      name: Find user's team manager
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/users/:userId/managers'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: userId
        value: 5a0ab5acb07987125438b60f
        type: path
        description: Represents a user identifier across the system.
      - name: sort-column
        value: ID
        type: query
        description: Sorting column criteria
      - name: sort-order
        value: ASCENDING
        type: query
        description: Sorting mode
      - name: page
        value: '1'
        type: query
        description: Page number.
      - name: page-size
        value: '50'
        type: query
        description: Page size.
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Find user's team manager
  - info:
      name: Give manager role to a user
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/users/:userId/roles'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: userId
        value: 5a0ab5acb07987125438b60f
        type: path
        description: Represents a user identifier across the system.
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Give manager role to a user
  - info:
      name: Remove user's manager role
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/users/:userId/roles'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: userId
        value: 5a0ab5acb07987125438b60f
        type: path
        description: Represents a user identifier across the system.
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Remove user's manager role
- info:
    name: Workspace
    type: folder
  items:
  - info:
      name: Get all my workspaces
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v1/workspaces'
      params:
      - name: roles
        value: WORKSPACE_ADMIN,OWNER
        type: query
        description: If provided, you'll get a filtered list of workspaces where you have any of the specified roles. Owners
          are not counted as admins when filtering.
      auth:
        type: apikey
        key: x-marketplace-token
        value: '{{x-marketplace-token}}'
        placement: header
    docs: Get all my workspaces
  - info:
      name: Add a workspace
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v1/workspaces'
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Add a workspace
  - info:
      name: Get workspace info
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v1/workspaces/:workspaceId'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Get workspace info
  - info:
      name: Update workspace cost rate
      type: http
    http:
      method: PUT
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/cost-rate'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Update workspace cost rate
  - info:
      name: Update workspace billable rate
      type: http
    http:
      method: PUT
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/hourly-rate'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Update workspace billable rate
  - info:
      name: Add user to a workspace
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/users'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: send-email
        value: ''
        type: query
        description: Indicates whether to send an email when user is added to the workspace.
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: You can add users to a workspace via API only if that workspace has a paid subscription. If the workspace has a
      paid subscription, you can add as many users as you want but you are limited by the number of paid user seats on that
      workspace.
  - info:
      name: Update a user's status
      type: http
    http:
      method: PUT
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/users/:userId'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: userId
        value: 89b687e29ae1f428e7ebe912
        type: path
        description: Represents a user identifier across the system.
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Update a user's status
  - info:
      name: Update a user's cost rate
      type: http
    http:
      method: PUT
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/users/:userId/cost-rate'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: userId
        value: 89b687e29ae1f428e7ebe912
        type: path
        description: Represents a user identifier across the system.
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Update a user's cost rate
  - info:
      name: Update a user's hourly rate
      type: http
    http:
      method: PUT
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/users/:userId/hourly-rate'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: userId
        value: 89b687e29ae1f428e7ebe912
        type: path
        description: Represents a user identifier across the system.
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Update a user's hourly rate
- info:
    name: Webhooks
    type: folder
  items:
  - info:
      name: Get all webhooks for addon on a workspace
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/addons/:addonId/webhooks'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: addonId
        value: 64c777ddd3fcab07cfbb210c
        type: path
        description: Represents an addon identifier across the system.
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Get all webhooks for addon on a workspace
  - info:
      name: Get all webhooks on a workspace
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/webhooks'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: type
        value: USER_CREATED
        type: query
        description: Represents a webhook type.
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Get all webhooks on a workspace
  - info:
      name: Create a webhook
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/webhooks'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Creating a webhook generates a new token which can be used to verify that the webhook being sent was sent by Clockify,
      as it will always be present in the header.
  - info:
      name: Get a specific webhook by id
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/webhooks/:webhookId'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: webhookId
        value: 5b715448b0798751107918ab
        type: path
        description: Represents a webhook identifier across the system.
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Get a specific webhook by id
  - info:
      name: Update a webhook
      type: http
    http:
      method: PUT
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/webhooks/:webhookId'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: webhookId
        value: 5b715448b0798751107918ab
        type: path
        description: Represents a webhook identifier across the system.
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Update a webhook
  - info:
      name: Delete a webhook
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/webhooks/:webhookId'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: webhookId
        value: 5b715448b0798751107918ab
        type: path
        description: Represents a webhook identifier across the system.
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Delete a webhook
  - info:
      name: Get logs for a webhook
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/webhooks/:webhookId/logs'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: webhookId
        value: ''
        type: path
        description: Represents a webhook identifier across the system.
      - name: page
        value: '1'
        type: query
        description: Page number.
      - name: size
        value: '50'
        type: query
        description: Page size.
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Get logs for a webhook
  - info:
      name: Generate a new token
      type: http
    http:
      method: PATCH
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/webhooks/:webhookId/token'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: webhookId
        value: 5b715448b0798751107918ab
        type: path
        description: Represents a webhook identifier across the system.
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Generates a new webhook token and invalidates previous one
- info:
    name: Approval
    type: folder
  items:
  - info:
      name: Get approval requests
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/approval-requests'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: status
        value: PENDING
        type: query
        description: Filters results based on the provided approval state.
      - name: sort-column
        value: START
        type: query
        description: Represents the column name to be used as sorting criteria.
      - name: sort-order
        value: ASCENDING
        type: query
        description: Represents the sorting order.
      - name: page
        value: '1'
        type: query
        description: Page number.
      - name: page-size
        value: '50'
        type: query
        description: Page size.
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Get approval requests
  - info:
      name: Submit approval request
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/approval-requests'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Submit approval request
  - info:
      name: Submit non pending/approved entries/expenses for approval to an existing approval request
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/approval-requests/resubmit-entries-for-approval'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Submit non pending/approved entries/expenses for approval to an existing approval request
  - info:
      name: Submit an approval request for a user
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/approval-requests/users/:userId'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: userId
        value: 5a0ab5acb07987125438b60f
        type: path
        description: Represents a user identifier across the system.
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Submit an approval request for a user
  - info:
      name: Re-submit rejected/withdrawn entries/expenses for an approval of a user
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/approval-requests/users/:userId/resubmit-entries-for-approval'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: userId
        value: 5a0ab5acb07987125438b60f
        type: path
        description: Represents a user identifier across the system.
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Re-submit rejected/withdrawn entries/expenses for an approval of a user
  - info:
      name: Update an approval request
      type: http
    http:
      method: PATCH
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/approval-requests/:approvalRequestId'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: approvalRequestId
        value: 940ab5acb07987125438b65y
        type: path
        description: Represents an approval request identifier across the system.
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Update an approval request
- info:
    name: Client
    type: folder
  items:
  - info:
      name: Find clients on a workspace
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/clients'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: name
        value: Client X
        type: query
        description: Filters client results that matches with the string provided in their client name.
      - name: sort-column
        value: NAME
        type: query
        description: Column name that will be used as criteria for sorting results.
      - name: sort-order
        value: ASCENDING
        type: query
        description: Sorting mode
      - name: page
        value: '1'
        type: query
        description: Page number.
      - name: page-size
        value: '50'
        type: query
        description: Page size.
      - name: archived
        value: 'false'
        type: query
        description: Filter whether to include archived clients or not.
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Find clients on a workspace
  - info:
      name: Add a new client
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/clients'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Add a new client
  - info:
      name: Get a client by ID
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/clients/:id'
      params:
      - name: id
        value: 44a687e29ae1f428e7ebe305
        type: path
        description: Represents a client identifier across the system.
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Get a client by ID
  - info:
      name: Update a client
      type: http
    http:
      method: PUT
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/clients/:id'
      params:
      - name: id
        value: 44a687e29ae1f428e7ebe305
        type: path
        description: Represents a client identifier across the system.
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: archive-projects
        value: ''
        type: query
      - name: mark-tasks-as-done
        value: ''
        type: query
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Update a client
  - info:
      name: Delete a client
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/clients/:id'
      params:
      - name: id
        value: 44a687e29ae1f428e7ebe305
        type: path
        description: Represents a client identifier across the system.
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Delete a client
- info:
    name: Custom fields
    type: folder
  items:
  - info:
      name: Get custom fields on a workspace
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/custom-fields'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: name
        value: location
        type: query
        description: If provided, you'll get a filtered list of custom fields that contain the provided string in their name.
      - name: status
        value: VISIBLE
        type: query
        description: If provided, you'll get a filtered list of custom fields that matches the provided string with the custom
          field status.
      - name: entity-type
        value: TIMEENTRY,USER
        type: query
        description: If provided, you'll get a filtered list of custom fields that matches the provided string with the custom
          field entity type.
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Get custom fields on a workspace
  - info:
      name: Create custom fields on a workspace
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/custom-fields'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents workspace identifier across the system.
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Create custom fields on a workspace
  - info:
      name: Update custom field on workspace
      type: http
    http:
      method: PUT
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/custom-fields/:customFieldId'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: customFieldId
        value: 26a687e29ae1f428e7ebe101
        type: path
        description: Represents a custom field identifier across the system.
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Update custom field on workspace
  - info:
      name: Delete a custom field
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/custom-fields/:customFieldId'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents workspace identifier across the system.
      - name: customFieldId
        value: 26a687e29ae1f428e7ebe101
        type: path
        description: Represents custom field identifier across the system.
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Delete a custom field
  - info:
      name: Get custom fields on a project
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/projects/:projectId/custom-fields'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: projectId
        value: 5b641568b07987035750505e
        type: path
        description: Represents a project identifier across the system.
      - name: status
        value: INACTIVE
        type: query
        description: If provided, you'll get a filtered list of custom fields that matches the provided string with the custom
          field status.
      - name: entity-type
        value: TIMEENTRY
        type: query
        description: If provided, you'll get a filtered list of custom fields that matches the provided string with the custom
          field entity type.
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Get custom fields on a project
  - info:
      name: Update custom field on a project
      type: http
    http:
      method: PATCH
      url: '{{baseUrl}}/v1/workspaces/:workspaceId/projects/:projectId/custom-fields/:customFieldId'
      params:
      - name: workspaceId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a workspace identifier across the system.
      - name: projectId
        value: 64a687e29ae1f428e7ebe303
        type: path
        description: Represents a project identifier across the system.
      - name: customFieldId
        value: 26a687e29ae1f428e7ebe101
        type: path
        description: Represents a custom field identifier across the system.
      bo

# --- truncated at 32 KB (134 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/clockify/refs/heads/main/apis.yml