Time Entries

Create time entry

Log time against a task. Omit endTime to start a running entry that can be closed later with an update.

post/time-entry

Request body

taskIdstring required
startTimestring date-time required
endTimestring date-time

Omit to start an open-ended entry that is still running.

descriptionstring

Example request

{
  "startTime": "2026-01-31T09:00:00Z",
  "endTime": "2026-01-31T09:00:00Z"
}

Response

The created time entry

idstring required
taskIdstring required
userIdstring nullable required

Null once the user who logged the time has been removed.

descriptionstring nullable required
startTimestring date-time required
endTimestring date-time nullable required

Null while the timer is still running.

durationnumber nullable required

Elapsed seconds, filled in once the entry has an endTime.

createdAtstring date-time required
updatedAtstring date-time required

Changes

Changed in 7 of the 23 revisions of this API.1820

  • 08bbb5bedb5d34See the full diff
    • the endTime request property type/format changed from string/ to string/date-time

      request-property-type-changed

    • the startTime request property type/format changed from string/ to string/date-time

      request-property-type-changed

    • the response property endTime became nullable for the status 200

      response-property-became-nullable

    • added the non-success response with the status 400

      response-non-success-status-added

    • added the non-success response with the status 401

      response-non-success-status-added

    • added the non-success response with the status 403

      response-non-success-status-added

    • the response property endTime became required for the status 200

      response-property-became-required

    This revision also has 3 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

  • 32cece1ebe4341See the full diff
    • request body became required

      request-body-became-required

    • the createdAt response's property type/format changed from / to string/date-time for status 200

      response-property-type-changed

    • the endTime response's property type/format changed from / to string/date-time for status 200

      response-property-type-changed

    • the startTime response's property type/format changed from / to string/date-time for status 200

      response-property-type-changed

    • added the required property updatedAt to the response with the 200 status

      response-required-property-added

    • the response property description became nullable for the status 200

      response-property-became-nullable

    • the response property duration became nullable for the status 200

      response-property-became-nullable

    • the response property userId became nullable for the status 200

      response-property-became-nullable

    • response property description list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property duration list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property userId list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property description list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property duration list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property userId list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

  • 4b8811b821e633See the full diff
    • the response property description became nullable for the status 200

      response-property-became-nullable

    • the response property duration became nullable for the status 200

      response-property-became-nullable

    • the response property userId became nullable for the status 200

      response-property-became-nullable

    • response property description list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property duration list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property userId list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

  • f6c7baa3692411See the full diff
    • the response property endTime became optional for the status 200

      response-property-became-optional

    • removed subschema #1 subschema #2 from the endTime response property anyOf list for the response status 200

      response-property-any-of-removed

  • 93b23177312618See the full diff
    • the response's body type/format changed from / to object/ for status 200

      response-body-type-changed

    • added the required property createdAt to the response with the 200 status

      response-required-property-added

    • added the required property description to the response with the 200 status

      response-required-property-added

    • added the required property duration to the response with the 200 status

      response-required-property-added

    • added the required property endTime to the response with the 200 status

      response-required-property-added

    • added the required property id to the response with the 200 status

      response-required-property-added

    • added the required property startTime to the response with the 200 status

      response-required-property-added

    • added the required property taskId to the response with the 200 status

      response-required-property-added

    • added the required property userId to the response with the 200 status

      response-required-property-added