ProjectsDelete an allocation

Delete an allocation

Deletes an allocation that has no time registrations.

Removes a user's allocation from a task, through the same path as every UI delete: the allocation and its ETC rows go, the task's HasAllocations flag is cleared when it was the last allocation, the task dates are re-synced to the remaining allocations when the account uses that, and the project is re-saved. Allocations with time registrations or a running time tracker are refused (400). Answers 200 with null. Requires project privileges on the task's project. Not atomic.

Use it to:

  • Un-staff a user who never registered on the task (resource-planning sync)

Not for:

  • Allocations with registrations — they cannot be deleted; complete them in TimeLog
  • A dry run → POST /v1/allocation/{allocationID}/validate-delete

Behaviour:

  • Not idempotent.
  • A second DELETE of the same ID answers 404.
  • Safe to retry only under a condition. Treat a 404 on retry as 'already deleted'.
  • Side effect: Raises the allocation-deleted event with EventAction BothAuditLogAndEmail (audit log + notification e-mail).
  • Side effect: When it was the task's last allocation (any status), refreshes the task's HasAllocations flag without a task event.
  • Changes are visible to the next read immediately.

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

See also: PUT /v1/allocation/{allocationID}

Not yet documented: behaviour → consistency; examples.

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

The allocation 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

allocationIDinteger
Required

The allocation to delete. Route constraint :int.

Responses

Success without content: HTTP 200 with the literal JSON body null. The literal null: the allocation was deleted.