Skip to main content

Log a time entry

POST 

/projects/:id/time-entries

Creates a time entry with status draft. Supply externalRef for idempotent upserts. Provide either minutes (integer) or hours (decimal string); both are accepted, minutes takes precedence.

Request

Path Parameters

    id uuidrequired

    Resource UUID.

Header Parameters

    Idempotency-Key string

    Optional idempotency key (24 h cache). Repeat calls with the same key and path return the cached response.

Body

required

    userIduuidrequired
    Example: 9a8b7c6d-0000-0000-0000-000000000002
    workDatestringrequired
    Example: 2025-01-15
    minutesinteger

    Possible values: >= 1 and <= 1440

    Example: 150
    hoursstring
    Example: 2.5
    descriptionstring | nullnullable
    Example: Implemented login flow.
    billableboolean
    Example: true
    entryIduuidnullable
    releaseIduuidnullable

    externalRef

    object

    Optional external reference for idempotent upserts.

    providerstringrequired

    Possible values: non-empty

    externalTypestringrequired

    Possible values: non-empty

    externalIdstringrequired

    Possible values: non-empty

Created

Schema

    iduuidrequired
    Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
    organizationIduuidrequired
    Example: 7b1e2c3d-0000-0000-0000-000000000001
    projectIduuidrequired
    Example: 9a8b7c6d-0000-0000-0000-000000000002
    userIduuidrequired
    Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
    entryIduuidnullablerequired

    Associated entry/ticket, if any.

    Example: null
    releaseIduuidnullablerequired
    Example: null
    workDatestringrequired

    ISO date (YYYY-MM-DD).

    Example: 2025-01-15
    hoursstringrequired

    Logged hours (decimal string).

    Example: 2.5
    minutesintegerrequired

    Logged minutes (derived from hours).

    Example: 150
    descriptionstring | nullnullablerequired
    Example: Implemented login flow.
    billablebooleanrequired
    Example: true
    sourcestringrequired

    How the entry was created (api, ui, import).

    Example: api
    statusstringrequired

    Possible values: [draft, submitted, approved, rejected, locked, invoiced]

    Example: draft
    invoicedbooleanrequired
    Example: false
    createdAtdate-timerequired
    Example: 2025-01-15T08:00:00Z
    updatedAtdate-timerequired
    Example: 2025-01-15T10:30:00Z