Clockify is a time tracking and project management platform that lets teams record billable hours, manage projects, clients, tasks, and tags, and generate detailed and summary reports. The Clockify connector uses the Clockify REST API to read and write workspaces, users, projects, clients, tags, tasks, and time entries, and to retrieve detailed and summary time reports.
Power end-to-end data operations for your Clockify API with Nexla. Our bi-directional Clockify connector is purpose-built for Clockify, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Clockify or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Clockify workflows fast, secure, and fully governed.
Features
Type: API
SourceDestination
Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
Request optimization with intelligent batching, retry, and caching to minimize API calls and costs
Before creating a Clockify credential in Nexla, ensure that you have an active Clockify account and have generated an API key. Clockify authenticates API requests using an API key passed in the X-Api-Key request header, so this key is the only credential required to connect Nexla to your Clockify workspace.
Click your profile picture or initials in the lower-left corner of the navigation menu, and select Profile settings.
Scroll down to the API section near the bottom of the Profile settings page.
Click the Generate button to create a new API key.
Copy the generated API key and store it in a secure location.
Important
Copy the API key immediately after it is generated. Once you close or navigate away from the page, the full key value is no longer displayed and you will need to generate a new key.
If your organization uses a dedicated Clockify subdomain (for example, https://{subdomain}.clockify.me), you must generate the API key from the Profile settings page within that subdomain. A key generated on the standard app domain will not authenticate against a subdomain workspace.
The Clockify REST API enforces a rate limit of 10 requests per second per API key, and workspaces on the Free plan are additionally limited to 30 requests per hour. For complete authentication details, refer to the official Clockify API documentation.
After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.
Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.
Enter the API key generated in your Clockify profile settings in the API Key Value field. This value authenticates Nexla with the Clockify API and should be kept secure, as it grants access to all workspaces available to your Clockify user account.
Nexla stores the API key as a secured, encrypted value. When this credential is used, Nexla automatically attaches the key to the X-Api-Key request header, so no additional header configuration is required.
Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.
To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Clockify connector tile, then select the credential that will be used to connect to the Clockify instance, and click Next; or, create a new Clockify credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Clockify endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.
Most Clockify endpoints operate within the context of a workspace, which is the top-level container for all projects, clients, tasks, tags, and time entries in Clockify. Many templates therefore require a Workspace ID, which you can obtain from the List Workspaces template (each workspace object includes an id field) or from the Get Current User template (the response includes the user's defaultWorkspace and activeWorkspace).
List Workspaces
This endpoint returns a list of all workspaces accessible to the authenticated user. Use it as a starting point to discover the Workspace IDs required by most other Clockify endpoints.
This endpoint requires no additional parameters. Select the template, and Nexla will retrieve every workspace available to the API key configured in your credential.
The response is a JSON array, and Nexla treats each workspace object as an individual record.
Each workspace object includes an id field. Copy this value to populate the Workspace ID parameter required by most other Clockify templates.
Get Current User
This endpoint retrieves the profile of the currently authenticated user, including the user's ID, default workspace, and active workspace. Use it to obtain the User ID and Workspace ID needed by other templates.
This endpoint requires no additional parameters. Select the template, and Nexla will return the profile associated with the API key configured in your credential.
The response includes the id, defaultWorkspace, and activeWorkspace fields, which are commonly used to configure the List Time Entries and Stop Timer operations.
List Users
This endpoint returns a list of all users in a workspace. Use it to synchronize team membership or to obtain User IDs for other operations such as listing time entries.
Enter the ID of the workspace whose users you want to retrieve in the Workspace ID field.
The endpoint is paginated, and Nexla automatically requests additional pages until all users have been retrieved.
List User Groups
This endpoint returns a list of all user groups in a workspace. User groups are used in Clockify to organize members and manage access to projects.
Enter the ID of the workspace whose user groups you want to retrieve in the Workspace ID field.
The endpoint is paginated, and Nexla automatically requests additional pages until all user groups have been retrieved.
List Projects
This endpoint returns a list of all projects in a workspace. Use it to synchronize project metadata such as names, clients, colors, and billable rates.
Enter the ID of the workspace containing the projects in the Workspace ID field.
The endpoint is paginated, and Nexla automatically requests additional pages until all projects have been retrieved.
Each project object includes an id field. This value is required by the List Tasks template to retrieve the tasks belonging to a specific project.
List Clients
This endpoint returns a list of all clients in a workspace. Clients in Clockify represent the customers or organizations that projects are associated with.
Enter the ID of the workspace containing the clients in the Workspace ID field.
The endpoint is paginated, and Nexla automatically requests additional pages until all clients have been retrieved.
List Tags
This endpoint returns a list of all tags in a workspace. Tags are labels that can be applied to time entries to categorize work for reporting and filtering.
Enter the ID of the workspace containing the tags in the Workspace ID field.
The endpoint is paginated, and Nexla automatically requests additional pages until all tags have been retrieved.
List Tasks
This endpoint returns a list of all tasks for a specific project in a workspace. Tasks are sub-units of work within a project that time entries can be logged against.
Enter the ID of the workspace containing the project in the Workspace ID field.
Enter the ID of the project whose tasks you want to retrieve in the Project ID field. You can obtain Project IDs by first running the List Projects template.
The endpoint is paginated, and Nexla automatically requests additional pages until all tasks have been retrieved.
List Time Entries
This endpoint returns a list of time entries for a specific user in a workspace. Use it to ingest the individual time records logged by a team member.
Enter the ID of the workspace containing the time entries in the Workspace ID field.
Enter the ID of the user whose time entries you want to retrieve in the User ID field. You can obtain User IDs from the List Users or Get Current User templates.
The endpoint is paginated, and Nexla automatically requests additional pages until all time entries have been retrieved.
To retrieve time entries across multiple users or with aggregated totals and richer filtering, use the Detailed Report or Summary Report templates instead.
Detailed Report
This endpoint generates a detailed time entry report for a workspace using the Clockify Reports API (hosted on reports.api.clockify.me). Use it when you need individual time entries across users, projects, or clients within a specified date range.
Enter the ID of the workspace to run the report against in the Workspace ID field.
Enter the report request body in JSON format in the Report Filters (JSON Body) field. This body specifies the date range and any filters, such as users, projects, clients, or tags. For example:
The Detailed Report endpoint uses the HTTP POST method and the Reports API host. The dateRangeStart and dateRangeEnd values must be supplied in ISO 8601 datetime format.
Summary Report
This endpoint generates a summary (aggregated) time report for a workspace using the Clockify Reports API (hosted on reports.api.clockify.me). Use it when you need totals grouped by dimensions such as project, user, client, or tag rather than individual entries.
Enter the ID of the workspace to run the report against in the Workspace ID field.
Enter the report request body in JSON format in the Report Filters (JSON Body) field. This body specifies the date range and the grouping dimensions. For example:
The groups array controls how the totals are aggregated. Supported grouping values include PROJECT, USER, CLIENT, and TAG, and the order of the array determines the nesting of the aggregation.
Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.
Clockify data sources can also be manually configured to ingest data from any valid Clockify API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.
Standard Clockify resources use the base URL https://api.clockify.me/api/v1 — for example, https://api.clockify.me/api/v1/workspaces/{'{workspaceId}'}/projects. Reports use the separate Reports API host https://reports.api.clockify.me/v1 — for example, https://reports.api.clockify.me/v1/workspaces/{'{workspaceId}'}/reports/detailed — and are called using the POST method with the date range and filters in the JSON request body. Date/time macros are useful for endpoints that accept date range query parameters, such as time entry retrieval.
Clockify list endpoints return a top-level JSON array, so the path to data is entered as $[*] to treat each element as a record. The Clockify Reports API returns aggregated totals alongside the individual report rows, which can be captured separately using the metadata path. The X-Api-Key header is attached automatically by Nexla based on your credential and does not need to be added as a request header.
Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Clockify data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.
Click the + icon on the Nexset that will be sent to the Clockify destination, and select the Send to Destination option from the menu. Select the Clockify connector from the list of available destination connectors, then select the credential that will be used to connect to the Clockify workspace, and click Next; or, create a new Clockify credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Clockify endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.
Each destination template maps the fields in your Nexset to the JSON request body that Clockify expects. The update and delete templates additionally require the ID of the record to modify; by default, this is mapped from the id attribute in your Nexset, which you can override with the appropriate attribute from your data.
Create Time Entry
This endpoint creates a new time entry in a workspace for the authenticated user. Use it to push tracked time from your data into Clockify.
Enter the ID of the workspace in which to create the time entry in the Workspace ID field.
The Nexset record is sent as the JSON request body. Each record should include the time entry fields that Clockify expects, such as start, end, description, and projectId.
Update Time Entry
This endpoint replaces an existing time entry with new field values. Use it to keep Clockify time entries synchronized with corrected or enriched data.
Enter the ID of the workspace containing the time entry in the Workspace ID field.
Enter the ID of the time entry to update in the Time Entry ID field. By default, this is mapped from the {{id}} attribute of each Nexset record.
The Nexset record is sent as the JSON request body with the updated field values.
Delete Time Entry
This endpoint deletes a time entry from a workspace. Use it to remove time entries that are no longer valid.
Enter the ID of the workspace containing the time entry in the Workspace ID field.
Enter the ID of the time entry to delete in the Time Entry ID field. By default, this is mapped from the {{id}} attribute of each Nexset record.
Stop Timer
This endpoint stops the currently running timer for a user by setting its end time. Use it to programmatically close out active time entries.
Enter the ID of the workspace containing the running timer in the Workspace ID field.
Enter the ID of the user whose running timer should be stopped in the User ID field.
The Nexset record is sent as the JSON request body and must include the end time for the timer.
Create Project
This endpoint creates a new project in a workspace. Use it to provision projects in Clockify from your source data.
Enter the ID of the workspace in which to create the project in the Workspace ID field.
The Nexset record is sent as the JSON request body. Each record should include project fields such as name, clientId, color, and billable.
Update Project
This endpoint updates an existing project's name, client, color, billable rate, and other fields.
Enter the ID of the workspace containing the project in the Workspace ID field.
Enter the ID of the project to update in the Project ID field. By default, this is mapped from the {{id}} attribute of each Nexset record.
The Nexset record is sent as the JSON request body with the updated field values.
Delete Project
This endpoint deletes a project from a workspace.
Enter the ID of the workspace containing the project in the Workspace ID field.
Enter the ID of the project to delete in the Project ID field. By default, this is mapped from the {{id}} attribute of each Nexset record.
A Clockify project typically must be archived before it can be deleted. Ensure projects are in a deletable state before activating this destination.
Create Task
This endpoint creates a task within a project. Tasks are sub-units of work that time entries can be logged against.
Enter the ID of the workspace containing the project in the Workspace ID field.
Enter the ID of the project in which to create the task in the Project ID field.
The Nexset record is sent as the JSON request body and should include task fields such as name and any assignee details.
Update Task
This endpoint updates an existing task in a project, such as renaming it, changing its assignee, or marking it done.
Enter the ID of the workspace containing the project in the Workspace ID field.
Enter the ID of the project containing the task in the Project ID field.
Enter the ID of the task to update in the Task ID field. By default, this is mapped from the {{id}} attribute of each Nexset record.
The Nexset record is sent as the JSON request body with the updated field values.
Delete Task
This endpoint deletes a task from a project.
Enter the ID of the workspace containing the project in the Workspace ID field.
Enter the ID of the project containing the task in the Project ID field.
Enter the ID of the task to delete in the Task ID field. By default, this is mapped from the {{id}} attribute of each Nexset record.
Create Client
This endpoint creates a new client in a workspace. Clients represent the customers or organizations that projects are associated with.
Enter the ID of the workspace in which to create the client in the Workspace ID field.
The Nexset record is sent as the JSON request body and should include client fields such as name.
Update Client
This endpoint updates an existing client's name or archive state.
Enter the ID of the workspace containing the client in the Workspace ID field.
Enter the ID of the client to update in the Client ID field. By default, this is mapped from the {{id}} attribute of each Nexset record.
The Nexset record is sent as the JSON request body with the updated field values.
Delete Client
This endpoint deletes a client from a workspace.
Enter the ID of the workspace containing the client in the Workspace ID field.
Enter the ID of the client to delete in the Client ID field. By default, this is mapped from the {{id}} attribute of each Nexset record.
Create Tag
This endpoint creates a new tag in a workspace. Tags are labels that can be applied to time entries to categorize work.
Enter the ID of the workspace in which to create the tag in the Workspace ID field.
The Nexset record is sent as the JSON request body and should include tag fields such as name.
Update Tag
This endpoint updates an existing tag, such as renaming or archiving it.
Enter the ID of the workspace containing the tag in the Workspace ID field.
Enter the ID of the tag to update in the Tag ID field. By default, this is mapped from the {{id}} attribute of each Nexset record.
The Nexset record is sent as the JSON request body with the updated field values.
Delete Tag
This endpoint deletes a tag from a workspace.
Enter the ID of the workspace containing the tag in the Workspace ID field.
Enter the ID of the tag to delete in the Tag ID field. By default, this is mapped from the {{id}} attribute of each Nexset record.
Clockify destinations can also be manually configured to send data to any valid Clockify API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.
Clockify write operations use POST to create records, PUT to replace existing records, PATCH to stop a running timer, and DELETE to remove records, with JSON request bodies. Standard resources use the base URL https://api.clockify.me/api/v1; for update, delete, and stop operations, include the ID of the object to be modified at the end of the URL — for example, https://api.clockify.me/api/v1/workspaces/{'{workspaceId}'}/projects/{'{projectId}'}. The X-Api-Key header is attached automatically by Nexla based on your credential and does not need to be added as a request header.
The Clockify write endpoints documented above operate on a single record per request, so record batching is best suited to a custom endpoint that accepts multiple records in one call. Clockify also enforces a rate limit of 10 requests per second per API key, so review your batching and scheduling settings to stay within these limits.
Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To begin sending data to Clockify, open the destination resource menu, and select Activate.
The Nexset data will not be sent to Clockify until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.