ProjectsDelete a task

Delete a task

Deletes a leaf task that has no time registrations, together with its allocations and instalments.

Removes the task from its project plan. Refused (400) when the task has sub-tasks or milestones, time registrations, an invoiced or booked payment, revenue vouchers, is a customer's standard travel task, or is a TDR task in a completed contract with vouchers. On success the task's allocations are deleted, its instalments removed (time-and-material-basic tasks and TDR fixed-price-payment tasks), the remaining tasks are renumbered and the project is re-saved. Baselines, help-desk cases and forecast lines that point at the task are left as they are. Answers 200 with null. Not atomic.

Use it to:

  • Remove a task created by mistake (e.g. by a sync) before anyone registered time on it

Not for:

  • Tasks with registrations — close them instead: PUT /v1/task/{taskID} with Status 3 (Completed) or 4 (Cancelled)
  • A dry run → POST /v1/task/{taskID}/validate-delete-task

Behaviour:

  • Not idempotent.
  • Safe to retry only under a condition. A second DELETE answers 500 / 37001. After a 500 or a timeout, GET /v1/task/{taskID}: a 500 / 37001 there means the task is gone.
  • Side effect: Deletes every allocation on the task (audit log + e-mail event per allocation) and clears the task's HasAllocations flag.
  • Side effect: Time-and-material-basic tasks (not fixed price) and TDR fixed-price-payment tasks: deletes the task's instalments from the billing plan. TDR overall-payment-plan tasks: releases the payment linked to the task.
  • Side effect: Deletes the task row and its task search row; notifies invoicing; deletes Task external-ID mappings.
  • Side effect: Renumbers the project plan (RemoveTaskOnProject). When the parent has no children left, rebuilds the parent's payment; when the task was the last child of a contract sub-group, the group flag is cleared.
  • Side effect: Re-saves the project: project dates may be re-aligned to the plan, invoicing potential recalculated, billing plan saved.
  • Side effect: Left untouched (by design, XML remark): baselines, help-desk cases and forecast lines pointing at the task.
  • On failure: If the project save after the delete throws, the task is deleted, the remaining tasks keep their old WBS numbers and the call answers 500 (logged as a warning).
  • Changes are visible to the next read immediately.

Call first: GET /v1/task, POST /v1/task/{taskID}/validate-delete-task

Next: GET /v1/task

See also: PUT /v1/task/{taskID}

Not yet documented: behaviour → side effects; examples.

curl -X DELETE "https://app3.timelog.com/your-account/api/v1/task/123" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
"null"
DELETE
/v1/task/{taskID}
DELETE
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.
path
taskIDinteger
Required

The task to delete. Route constraint :int.

Format: int32
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.

Path Parameters

taskIDinteger
Required

The task to delete. Route constraint :int.

Responses

Success without content: HTTP 200 with the literal JSON body null. The literal null: the task was deleted and the project re-saved.