# \[New\] Time tracking entry assignee field

**URL:** <https://forum.asana.com/t/new-time-tracking-entry-assignee-field/1158064>\
**Category:** Changelog\
**Tags:** api, new-api\
**Created:** [9 October 2026 10:30 UTC](https://forum.asana.com/t/new-time-tracking-entry-assignee-field/1158064 "2026-10-09T10:30:54Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dominik\_Brdak](https://sea2.discourse-cdn.com/asana/user_avatar/forum.asana.com/dominik_brdak/32/281949_2.png) [@Dominik\_Brdak](https://forum.asana.com/u/Dominik_Brdak)\
**Post date:** [9 October 2026 10:30 UTC](https://forum.asana.com/t/new-time-tracking-entry-assignee-field/1158064/1 "2026-10-09T10:30:54Z")

</div>

# **Summary**

Time tracking entries now expose an `assignee` field: the user whose timesheet the entry’s logged time is attributed to.

Until now, the only user on a time tracking entry was `created_by`, which identifies who _created_ the entry, not who it _belongs to_. The two often differ: a time reviewer or domain admin can log time on behalf of another user. Integrations that used `created_by` to attribute time for reporting, billing, or payroll could attribute those entries to the wrong person.

**Key highlights:**

- **New response field:** `assignee` is returned on every time tracking entry, from all read endpoints, and from create/update responses
- **Write support:** Set `assignee` when creating an entry, or reassign it when updating one, so integrations can log time on behalf of other users (subject to permissions)
- **New filter:** `GET /time_tracking_entries` accepts a new `assignee` query parameter
- **Deprecation:** The `user` query parameter on `GET /time_tracking_entries` is deprecated in favor of `assignee`. It continues to work and returns the same results

This is a non-breaking change. Existing requests and responses keep working as before.

# **Who is affected**

**If you read time tracking entries for reporting, billing, or payroll:** use `assignee` to determine whose time an entry is. If your integration currently treats `created_by` as the owner of the entry, switch to `assignee`. `created_by` keeps its existing meaning (the user who created the entry) and is unchanged.

**If you filter `GET /time_tracking_entries` by `user`:** no immediate action is required. `user` already filters by the user the time is attributed to, which is exactly what `assignee` represents. The new `assignee` parameter behaves identically, and we recommend switching to it. The `user` parameter will be removed from the API reference documentation but will keep working.

**If you create or update time tracking entries:** no action is required. When `assignee` is omitted on create, the entry is attributed to the authenticated user, as it is today. You can now optionally pass `assignee` to log time for someone else.

# **Timeline**

This is available now!

# **Usage**

## **The `assignee` field**

| **Field** | **Description** |
| --- | --- |
| `assignee` | **New.** The user this entry’s logged time is attributed to.   
Returned as a compact user object. |
| `created_by` | **Unchanged.** The user who created the time tracking entry.   
Its description is being added to the API reference   
to make the distinction clear. |

Example where a time reviewer logged time on behalf of a team member:

```auto
GET /time_tracking_entries/{time_tracking_entry_gid}
{
  "data": {
    "gid": "12345",
    "resource_type": "time_tracking_entry",
    "duration_minutes": 120,
    "entered_on": "2026-10-01",
    "created_by": {
      "gid": "67890",
      "resource_type": "user",
      "name": "Alex Chen"
    },
    "assignee": {
      "gid": "11111",
      "resource_type": "user",
      "name": "Jamie Smith"
    }
  }
}

```

## **Setting `assignee` when creating an entry**

`assignee` is optional and takes a user GID. If omitted, it defaults to the authenticated user.

```auto
// POST /tasks/{task_gid}/time_tracking_entries
{
  "data": {
    "duration_minutes": 120,
    "entered_on": "2026-10-01",
    "assignee": "11111"
  }
}

```

## **Reassigning an existing entry**

```auto
// PUT /time_tracking_entries/{time_tracking_entry_gid}
{
  "data": {
    "assignee": "11111"
  }
}

```

## **Who can set `assignee`**

You can set `assignee` to:

- Yourself
- A user whose time you review (requires the Timesheets & Budgets add-on, where reviewer relationships are configured)
- Any user (including View-Only users and Guests), if you are a domain admin

If you set `assignee` to a user outside these rules, the request fails with `403 Forbidden` and the error code `time_tracking_entry_invalid_assignee`:

```auto
// 403 Forbidden
{
  "errors": [
    {
      "message": "You can only set assignee to yourself or to a user whose time you review. Domain admins can set it to any user."
    }
  ]
}

```

## **Filtering by `assignee`**

```auto
GET /time_tracking_entries?assignee={user_gid}&workspace={workspace_gid}

```

`assignee` works exactly like the existing `user` parameter and can be combined with the same parameters (`workspace`, `attributable_to`, `portfolio`, `task`, `entered_on_start_date`, `entered_on_end_date`).

If you pass both `user` and `assignee` with **different** values, the request fails with `400 Bad Request`:

```auto
// 400 Bad Request
{
  "errors": [
    {
      "message": "assignee: cannot be combined with a different value for the deprecated user parameter"
    }
  ]
}

```

## **Migration steps**

**1. Attribute time using `assignee`, not `created_by`.**

```auto
// Before: attributes time to whoever created the entry
const owner = entry.created_by.gid;

// After: attributes time to the user whose timesheet it belongs to
const owner = entry.assignee.gid;

```

**2. Replace the `user` filter with `assignee`.**

```auto
// Before
GET /time_tracking_entries?user={user_gid}&workspace={workspace_gid}

// After
GET /time_tracking_entries?assignee={user_gid}&workspace={workspace_gid}

```

**3. (Optional) Log time on behalf of other users.**

Pass `assignee` on `POST /tasks/{task_gid}/time_tracking_entries` or `PUT /time_tracking_entries/{time_tracking_entry_gid}`, and handle the `403` response for users your integration can’t assign time to.

## **Resources**

- [Time tracking entries](https://developers.asana.com/reference/time-tracking-entries)
- [Get multiple time tracking entries](https://developers.asana.com/reference/gettimetrackingentries)
- [Get a time tracking entry](https://developers.asana.com/reference/gettimetrackingentry)
- [Create a time tracking entry](https://developers.asana.com/reference/createtimetrackingentry)
- [Update a time tracking entry](https://developers.asana.com/reference/updatetimetrackingentry)
- [Get time tracking entries for a task](https://developers.asana.com/reference/gettimetrackingentriesfortask)​

---

<div class="post-metadata">

**Author:** ![Uli.Kisslinger](https://sea2.discourse-cdn.com/asana/user_avatar/forum.asana.com/uli.kisslinger/32/179271_2.png) [@Uli.Kisslinger](https://forum.asana.com/u/Uli.Kisslinger)\
**Post date:** [9 October 2026 11:19 UTC](https://forum.asana.com/t/new-time-tracking-entry-assignee-field/1158064/2 "2026-10-09T11:19:34Z")

</div>

Thank you, @Dominik_Brdak. I’ve been waiting for this one. This closes a real gap.

---

<div class="post-metadata">

**Author:** ![Richard\_Sather](https://sea2.discourse-cdn.com/asana/user_avatar/forum.asana.com/richard_sather/32/276096_2.png) [@Richard\_Sather](https://forum.asana.com/u/Richard_Sather)\
**Post date:** [12 November 2026 11:48 UTC](https://forum.asana.com/t/new-time-tracking-entry-assignee-field/1158064/3 "2026-11-12T11:48:17Z")

</div>

Hi @Dominik_Brdak , are there any plans to expose the Time reviewer (Asana user) in the API?  
We have a large customer with 400+ TBAO licenses that wants to update the 100+ time reviewers on a regular basis and we are looking at the potential to sync this for them by pulling user IDs from their ERP. Updating this list of users via the Admin Console is simply not sustainable.

Any chance this is coming soon..?

---

<div class="post-metadata">

**Author:** ![Dominik\_Brdak](https://sea2.discourse-cdn.com/asana/user_avatar/forum.asana.com/dominik_brdak/32/281949_2.png) [@Dominik\_Brdak](https://forum.asana.com/u/Dominik_Brdak)\
**Post date:** [12 November 2026 13:50 UTC](https://forum.asana.com/t/new-time-tracking-entry-assignee-field/1158064/4 "2026-11-12T13:50:20Z")

</div>

Hi @Richard_Sather, thanks for sharing the feedback!

I’ve raised this with our Product team, and unfortunately, there are no immediate plans to support Time Reviewers in the API. The team is aware of the gap, though, and it’s something we’d like to address when capacity allows.

I can’t share a timeline at this point, but if this functionality becomes available, we’ll be sure to announce it in #API & Developers > Changelog.

Thanks again for bringing this to our attention!

---

<div class="post-metadata">

**Author:** ![Richard\_Sather](https://sea2.discourse-cdn.com/asana/user_avatar/forum.asana.com/richard_sather/32/276096_2.png) [@Richard\_Sather](https://forum.asana.com/u/Richard_Sather)\
**Post date:** [12 November 2026 16:19 UTC](https://forum.asana.com/t/new-time-tracking-entry-assignee-field/1158064/5 "2026-11-12T16:19:03Z")

</div>

Thanks @Dominik_Brdak , appreciate the prompt response, as always 🙂
