Time registrationsChange a time tracker

Change a time tracker

Replaces the task or absence, billable flag, comment, additional text and factor of a time tracker.

Loads the tracker by TimeTrackerID, overwrites its six editable fields with the request (full replace: omitted fields become null / 0 / NotSpecified) and saves it without stopping it. Start time, minutes and status are not changed. Returns HTTP 200 with body null.

Rules across fields:

  • R1: When EntityID is sent, EntityType must be Task (98) or AbsenceCode (149) and IsBillable must be set.
  • R2: EntityType must be sent (98 or 149) even when clearing EntityID: omitted = 0 = NotSpecified → 60071.

Behaviour:

  • Idempotent.
  • Safe to retry.
  • Side effect: Updates the tracker row (TimeTrackerUpdated event when something changed). Does not stop the tracker or touch registrations.
  • Changes are visible to the next read immediately.

Call first: GET /v1/time-tracker/active-time-tracker, GET /v1/time-tracker

Next: POST /v1/time-registration/stop-time-tracker/{timeTrackerId}

Not yet documented: examples (success).

curl -X PUT "https://app3.timelog.com/your-account/api/v1/time-tracker" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -d '{
  "TimeTrackerID": 123,
  "EntityType": 42,
  "EntityID": "null",
  "IsBillable": "null",
  "Comment": "null",
  "AdditionalTextField": "null",
  "Factor": 3.14
}'
"null"
PUT
/v1/time-tracker
PUT
Base URLstring

Target server for requests. Edit to use your own host.

Bearer Token
Bearer Tokenstring
Required

OAuth 2.0 bearer token, sent as Authorization: Bearer <token>. JWT and reference tokens are both accepted. The token must carry the required scope (default tlp). The token's sub claim is the acting user. A token WITHOUT sub (client-credentials) acts as the system service user. If the sub user cannot log in (inactive, locked, deleted), the request is rejected with 401 — it is no longer let through without a user. > Not yet documented: how to obtain a token. > Not yet documented: token lifetime.

OAuth 2.0 bearer token, sent as Authorization: Bearer <token>. JWT and reference tokens are both accepted. The token must carry the required scope (default tlp). The token's sub claim is the acting user. A token WITHOUT sub (client-credentials) acts as the system service user. If the sub user cannot log in (inactive, locked, deleted), the request is rejected with 401 — it is no longer let through without a user. > Not yet documented: how to obtain a token. > Not yet documented: token lifetime.
Content-Typestring
Required

The media type of the request body

Options: application/json
TimeTrackerIDinteger
Required

The tracker to change. NOT validated by the API: 0 or an unknown ID gives 500 (Code 100), not 400. Identifier of this object, unique per TimeLog site.

Format: int32
EntityTypeinteger
Required

What EntityID points to. Omitted = 0 (NotSpecified), which fails the save with 60071 even when EntityID is null. Allowed values: | Value | Name | Meaning | |---|---|---| | 98 | Task | EntityID is a task ID. | | 149 | AbsenceCode | EntityID is an absence code ID. | | 0 | NotSpecified | Default when omitted; rejected on save (60071). |

Options: 98, 149, 0
EntityIDintegernull

Task or absence code ID. Omitted/null clears the entity: the tracker then cannot become a registration on stop. Refers to TaskRead | AbsenceCode (see EntityType).

Format: int32
IsBillablebooleannull

Conditional. Required when EntityID is sent.

Commentstringnull

Null: Omitted or null clears the comment (full replace).

AdditionalTextFieldstringnull

Null: Omitted or null clears the value (full replace).

Factornumber

Overtime factor. Non-nullable: omitted is written as 0. Unit: percent

Request Preview
Response

Response will appear here after sending the request

Authentication

header
Authorizationstring
Required

Bearer token. OAuth 2.0 bearer token, sent as Authorization: Bearer <token>. JWT and reference tokens are both accepted. The token must carry the required scope (default tlp).

The token's sub claim is the acting user. A token WITHOUT sub (client-credentials) acts as the system service user. If the sub user cannot log in (inactive, locked, deleted), the request is rejected with 401 — it is no longer let through without a user.

Not yet documented: how to obtain a token.

Not yet documented: token lifetime.

Body

application/json
TimeTrackerIDinteger
Required

The tracker to change. NOT validated by the API: 0 or an unknown ID gives 500 (Code 100), not 400.

Identifier of this object, unique per TimeLog site.

EntityTypeinteger
Required

What EntityID points to. Omitted = 0 (NotSpecified), which fails the save with 60071 even when EntityID is null.

Allowed values:

ValueNameMeaning
98TaskEntityID is a task ID.
149AbsenceCodeEntityID is an absence code ID.
0NotSpecifiedDefault when omitted; rejected on save (60071).
Allowed values:981490
EntityIDinteger,null

Task or absence code ID. Omitted/null clears the entity: the tracker then cannot become a registration on stop.

Refers to TaskRead | AbsenceCode (see EntityType).

IsBillableboolean,null

Conditional. Required when EntityID is sent.

Commentstring,null

Null: Omitted or null clears the comment (full replace).

AdditionalTextFieldstring,null

Null: Omitted or null clears the value (full replace).

Factornumber

Overtime factor. Non-nullable: omitted is written as 0.

Unit: percent

Responses

Success without content: HTTP 200 with the literal JSON body null. Literal JSON null (TafSuccessResult).