Create a time record

Create one completed historical time record for an employee in your company. This endpoint is intended for manual or imported records, not live clock-in sessions. For live clock-in and clock-out workflows, use the clock-in and clock-out endpoints. The employee, customer, and project IDs must belong to the company associated with your API key. The API sets the clock-in and clock-out source automatically. The record must not overlap any existing time record for the employee: overlapping requests are rejected with 409 and a machine-readable code and conflicts list. To make this record win over the conflicting records instead, send intent: "overwrite" — records it fully covers are deleted, partially overlapped neighbors are trimmed, and a record that fully contains it is split around it (for example a break inside a work span). Per-record webhooks (time_record.updated / time_record.created / time_record.deleted) are emitted for every affected record, neighbors first and the new record last. Collisions with an active (open) record reject with 409 TIMELINE_OVERWRITE_OPEN_RECORD even with the intent set. Bare overlapping creates never auto-overwrite; only an explicit intent: "overwrite" reshapes neighbors. Because overwrite is destructive, only send it after surfacing the 409 conflicts list to a human or when your integration is the sole source of truth for this timeline; a blind retry loop with the intent set will re-trim records the first attempt already wrote.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
integer
required
≥ 1

ID of the employee this completed time record belongs to

string
enum

Type of completed time record. Defaults to "work" when omitted.

Allowed:
date-time
required

Clock-in timestamp for this completed record

date-time
required

Clock-out timestamp for this completed record. Must be after start.

string

Optional clock-in note

string

Optional clock-out note

integer
≥ 1

Optional customer/job to associate with this record

integer
≥ 1

Optional project to associate with this record

string
length ≤ 500

Optional human-readable label for the clock-in location.

string
length ≤ 500

Optional human-readable label for the clock-out location.

string

Optional GPS coordinates at clock-in as latitude,longitude.

string

Optional GPS coordinates at clock-out as latitude,longitude.

string
enum

Optional. When set to "overwrite", this record wins over conflicting closed records: records it fully covers are deleted, partially overlapped neighbors are trimmed, and a record that fully contains it is split around it (e.g. a break inside a work span). Collisions with an active (open) record reject with 409 TIMELINE_OVERWRITE_OPEN_RECORD — clock the employee out first. Omit for the default reject-on-overlap behavior; duplicates/retries never silently reshape the timeline without this field.

Allowed:
Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json