ProjectsGet a user's allocation on a task

Get a user's allocation on a task

Returns one user's allocation on one task — allocated and registered hours and the hourly rate it uses — or 204 when there is none.

Looks up the allocation of userId's employee on taskId. Found → 200 with a single EmployeeAllocationOnTaskRead: AllocationId, allocated hours, all hours registered on it (all dates), and the allocation's contract hourly rate (ID, name, amount) with the currency abbreviation of the PATH project. No allocation — or an allocation whose rate row is missing — answers 204 with no body.

Use it to:

  • Show whether a person is already on a task and at which rate before re-planning

Not for:

  • All allocations of a task → GET /v1/task/{taskID}/allocation

Behaviour:

  • Idempotent.
  • Safe to retry.
  • Changes are visible to the next read immediately.

Call first: GET /v1/user, GET /v1/task

Next: PUT /v1/allocation/{allocationID}

See also: GET /v1/allocation/{allocationID}, GET /v2/projects/{projectId}/employee-unallocated

Not yet documented: examples.

curl -X GET "https://app3.timelog.com/your-account/api/v2/projects/123/employee-allocation?taskId=123&userId=123" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
{
  "Properties": {
    "UserId": 123,
    "AllocationId": 123,
    "AllocatedHours": 3.14,
    "RegisteredHours": 3.14,
    "HourlyRateId": 123,
    "HourlyRateName": "null",
    "HourlyRateAmount": 3.14,
    "HourlyRateCurrencyAbb": "example_string"
  },
  "Links": [
    {
      "Href": "example_string",
      "Rel": "example_string"
    }
  ],
  "Actions": [
    {}
  ]
}
GET
/v2/projects/{projectId}/employee-allocation
GET
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
projectIdinteger
Required

Project whose currency abbreviation is returned; only read when an allocation exists. Not checked against taskId.

Format: int32
query
taskIdinteger
Required

The task. Omitted → 404 (captured).

Format: int32
query
userIdinteger
Required

The user. Unknown → 500.

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

projectIdinteger
Required

Project whose currency abbreviation is returned; only read when an allocation exists. Not checked against taskId.

Query Parameters

taskIdinteger
Required

The task. Omitted → 404 (captured).

userIdinteger
Required

The user. Unknown → 500.

Responses

Propertiesobject

One user's allocation on one task: the allocated hours, the hours registered on it so far, and the contract hourly rate it uses (name, amount, currency label).

Linksarray
Actionsobject[]