Skip to content
← All postsPayroll8 MIN READ

How to Connect Clox to Zapier and the Clox API

Clox has a small read-only REST API and a Zapier connection built on it. You generate one API key per organization in the web app, then use two GET endpoints: one to confirm the account, one to pull your most recent completed time entries. This post covers how the key works, exactly what the endpoints return, how the Zapier trigger polls them, a couple of automations that actually work, and the honest limits so you don't build around something that isn't there.

JULY 9, 2026 · BY THE CLOX TEAM

Clox has a small public REST API and a Zapier connection built on top of it. Together they let you send your crew's finished time entries out to whatever tools you already run, without exporting a file by hand every week. This post covers exactly what is real today: how to create an API key, what the two endpoints return, how Zapier fits, and where the honest limits are.

This is deliberately a thin, read-only API. It's meant for pulling completed hours out of Clox and pushing them somewhere else. It doesn't create or edit time entries, and it's not a full-featured platform API. Knowing that up front will save you from designing an automation that Clox can't do.


01

Create an API key

Everything starts with one API key per organization. A manager creates it in the web app. Open Settings, then Integrations, then the section labeled Zapier / API access, and click Generate key.

The key is shown once

The full key is displayed a single time, right after you generate it. Copy it immediately and store it somewhere safe, like your password manager. Clox stores only a hash of the key, so if you lose it there's no way to retrieve it. You would generate a new one instead.

A key looks like clox_ followed by 40 hexadecimal characters. After creation, the settings page shows only a short non-secret label such as clox_1a2b3c4d… so you can tell which key is active without exposing the secret.

  • One key per organization. Generating a key when one already exists rotates it. The new key takes over and the old one stops working immediately, so anything using the old key has to be updated with the new one.
  • Revoke turns off access. The Revoke button deletes the key so it stops authenticating right away. Use it if a key is ever exposed, then generate a fresh one.
  • Manager-only. Only a manager account can generate, rotate, or revoke the key. Key rotations are written to your audit log.

02

How requests authenticate

You send the key on every request in one of two headers. Both work, so use whichever your tool makes easier.

HeaderExample value
AuthorizationBearer clox_1a2b3c4d…
X-API-Keyclox_1a2b3c4d…

Two accepted ways to present the API key.

The key identifies your organization, and every response is scoped to that organization only. A request with no key, a wrong key, or a revoked key gets back a 401 with {"error": "Invalid API key"}. There are no per-user or per-role keys. The key represents the whole organization.

There is a rate limit

The public API is limited to 300 requests per minute for your organization. That's far more than a normal Zapier poll needs, but a runaway script can hit it. When you exceed it, Clox returns a 429 with an error message, and the automation should back off and retry later. A rate-limited request comes back as a 429 with the body {"error": "Rate limit exceeded"}, mirroring the 401 {"error": "Invalid API key"} you get from a bad key.


03

The two endpoints

The API currently exposes two GET endpoints under /api/v1. Both are read-only. There are no create, update, or delete endpoints.

GET /api/v1/me

This is the connection check. It confirms the key is valid and tells you which organization it belongs to. Zapier calls it when you connect your account so it can label the connection. A successful response looks like this.

FieldWhat it holds
organization.idYour organization's unique ID in Clox.
organization.nameYour organization's display name.

Fields returned by /api/v1/me.

GET /api/v1/time-entries

This is the endpoint that does the main job. It returns your most recent completed time entries, newest first, capped at 100 per request, under a time_entries key. Completed means the shift has ended. Entries that are still running (someone is currently clocked in) aren't included, because a downstream automation almost always wants a finished shift with real hours on it.

FieldWhat it holds
idStable unique ID for the entry. Use this to dedupe.
employeeThe worker's display name, or a short ID fallback if the name is blank.
employee_idThe worker's user ID in Clox.
start_timeWhen the shift started, as an ISO 8601 timestamp.
end_timeWhen the shift ended, as an ISO 8601 timestamp.
hoursTotal hours worked, decimal to two places.
projectThe project name, or null if none was set.
project_idThe project ID, or null.
noteThe entry's description or note, or null.
sourceHow the punch was recorded, such as the mobile app or a kiosk.
approvedtrue once the entry has been payroll-approved, false otherwise.

Fields on each entry in the time_entries array.

Watch the approved field

Every completed entry appears here, whether or not you have approved it for payroll yet. The approved flag tells you which state it's in. If your automation should only act on hours you have signed off on, filter for approved being true in your Zap or script.

app.getclox.com/reports
Clox
TodayTimesheetScheduleReportsMore ▾
Week of Jun 9 to 15
129h 59m · 2 with overtime
Export
EXPORT AS
CSV — QuickBooks Online
Straight into your payroll
CSV — ADP
RUN or Workforce Now
CSV — Paychex Flex
Standard payroll import
CSV — Gusto
Hours per employee
PDF timesheet
Every punch, break, overtime — for your CPA
8 employees · Mon to Sun · approved129h 59m
For a manual, file-based handoff to payroll, the Reports export menu is often simpler than the API. The API is for live, hands-off automation.

04

Connect Clox in Zapier

Zapier is the no-code way to use this API. You connect Clox as a custom app, paste your key, and Zapier polls the time-entries endpoint on a schedule. When it sees an entry whose id it hasn't seen before, it treats that as a new event and runs your workflow. The dedupe on id is what keeps the same shift from firing your automation twice.

  1. Generate your API key in Clox, under Settings, Integrations, Zapier / API access.
  2. In Zapier, add Clox as the trigger app and connect your account by pasting the key. Zapier calls /api/v1/me to confirm the key and label the connection.
  3. Choose the new time entry trigger. Zapier will poll /api/v1/time-entries for you and hand each completed entry to the next step.
  4. Add whatever action app you want as the next step, and map the Clox fields into it.

Because the trigger is built on a completed-only, read-only endpoint, the direction is always the same: Clox is the source of finished time entries, and your other tools are the destination. Zapier can't push data back into Clox through this connection, because there's no write endpoint to push it to.


05

Two automations that actually work

These both rely only on what the real endpoints return, so they're safe to build today.

1. Post finished shifts to a team channel

Trigger on a new time entry, then send a Slack or email message. Map the employee, hours, project, and end_time fields into the message body. You get a quiet running log of who wrapped up which job and for how long, without anyone checking the dashboard. Add a filter on approved if you only want to announce hours after you have reviewed them.

2. Append every completed entry to a spreadsheet

Trigger on a new time entry, then add a row to Google Sheets or Airtable. Map employee, start_time, end_time, hours, project, and note into columns. This gives you a plain, always-growing record of hours outside Clox that you can pivot, chart, or hand to a bookkeeper. It complements the built-in exports rather than replacing them.

For payroll specifically, the exports are usually the better tool

If your goal is to get hours into Gusto, ADP, Paychex, or QuickBooks, the purpose-built payroll exports already format the columns each provider expects, including the pre-split overtime. The API and Zapier are for the automations around payroll, like notifications and keeping your own extra logs, not for replacing those exports.


06

Honest limits

It's worth being clear about what this API doesn't do, so you don't design around something that isn't there.

  • Read-only. There's no way to create, edit, or delete time entries through the API. It only reads finished hours out.
  • Completed entries only. Shifts that are still in progress don't appear. You see an entry after the worker clocks out.
  • Two endpoints. Today the API is the account check and the time-entries feed. There are no other resources, and Zapier exposes the new time entry trigger, not a catalog of triggers and actions.
  • 100 per request, newest first. The time-entries endpoint returns up to the 100 most recent completed entries. For normal Zapier polling that's plenty, since it only needs to spot what is new since last time.
  • One org-wide key. The key is scoped to your whole organization, not to a single user, and there's one active key at a time.

None of these are problems you need to work around. They're just what a small, focused API looks like. If you want to move hours into your payroll system, reach for the payroll exports. If you want to fan finished hours out to other tools, the API and Zapier are exactly right.


07

Reports and exports
Where the built-in exports live and how the Reports page is organized, so you can decide when a file beats an API call.
QuickBooks time tracking integration
The dedicated QuickBooks path, including the CSV import, the optional live sync, and the Desktop IIF file. A good example of when a purpose-built export beats a generic Zap.

If you run payroll elsewhere, the same idea applies to the Gusto, ADP, and Paychex exports. Use those for payroll, and use the API and Zapier for the automations around it.

The fastest way to understand the API is to watch a real completed shift flow through a Zap. Start a free trial, generate a key, and hit /api/v1/me to confirm it works. The trial runs 14 days with no credit card, and there's a 30-day money-back guarantee, so you have room to wire up a Zap or a script before you commit.

Keep reading

PayrollHow to Export Your Crew's Hours to PayrollPayrollHow to Export Your Hours to QuickBooks (Online and Desktop)PayrollThe 7-Minute Rule and Quarter-Hour Time Clock Rounding, With Chart (2026)

Friday becomes a review, not a reconstruction.

14 days free, no credit card30-day money-back guarantee$29/month includes your first 3 usersEvery feature on the one plan

Managers run Clox on the web. Crews clock in from their phones.