# “Projects” Endpoints - PUT Update the data for a project user for a given workspace

**URL:** <https://community.toggl.com/t/projects-endpoints-put-update-the-data-for-a-project-user-for-a-given-workspace/368>\
**Category:** API References\
**Tags:** user, projects, api, endpoints, put\
**Created:** [December 2, 2024, 4:49pm UTC](https://community.toggl.com/t/projects-endpoints-put-update-the-data-for-a-project-user-for-a-given-workspace/368 "2024-12-02T16:49:54Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Support](https://yyz2.discourse-cdn.com/flex012/user_avatar/community.toggl.com/support/32/1577_2.png) [@Support](https://community.toggl.com/u/Support)\
**Post date:** [December 2, 2024, 4:49pm UTC](https://community.toggl.com/t/projects-endpoints-put-update-the-data-for-a-project-user-for-a-given-workspace/368/1 "2024-12-02T16:49:54Z")

</div>

```auto
https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/project_users/{project_user_id}

```

Update the data for a project user for a given workspace.

- cURL
- Go
- Ruby
- JavaScript
- Python
- Rust

```auto
extern crate tokio;extern crate serde_json;use reqwest::{Client};use reqwest::header::{CONTENT_TYPE};#[tokio::main]async fn main() -> Result<(), reqwest::Error> { let client = Client::new().basic_auth("<email>", "<password>"); let json = client.request(Method::PUT, "https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/project_users/{project_user_id}".to_string()).json(&serde_json::json!(\{"labor_cost":"number","labor_cost_change_mode":"string","manager":"boolean","rate":"number","rate_change_mode":"string"\})) .header(CONTENT_TYPE, "application/json") .send() .await? .json() .await?; println!("{:#?}", json); Ok(())}

```

### Parameters[​](https://engineering.toggl.com/docs/api/projects/#parameters-3)

#### Path[​](https://engineering.toggl.com/docs/api/projects/#path-3)

| name | type | required | description |
| --- | --- | --- | --- |
| workspace\_id | integer | true | Numeric ID of the workspace |
| project\_user\_id | integer | true | Numeric ID of the project user |

#### Body[​](https://engineering.toggl.com/docs/api/projects/#body-1)

| Name | Type | Description |
| --- | --- | --- |
| labor\_cost | number | Labor cost for this project user |
| labor\_cost\_change\_mode | string | Labor cost change mode for this project user. Can be “start-today”, “override-current”, “override-all” |
| manager | boolean | Whether the user will be manager of the project |
| rate | number | Rate for this project user |
| rate\_change\_mode | string | Rate change mode for this project user. Can be “start-today”, “override-current”, “override-all” |

### Response[​](https://engineering.toggl.com/docs/api/projects/#response-3)

#### 200[​](https://engineering.toggl.com/docs/api/projects/#200-3)

| Name | Type | Description |
| --- | --- | --- |
| at | string | When was last modified |
| gid | integer | Group ID, legacy field |
| group\_id | integer | Group ID |
| id | integer | Project User ID |
| labor\_cost | number | null |
| labor\_cost\_last\_updated | string | Date for labor cost last updated |
| manager | boolean | Whether the user is manager of the project |
| project\_id | integer | Project ID |
| rate | number | null |
| rate\_last\_updated | string | Date for rate last updated |
| user\_id | integer | User ID |
| workspace\_id | integer | Workspace ID |

#### 400[​](https://engineering.toggl.com/docs/api/projects/#400-3)

Possible error messages:

- Workspace not found
- Missing data
- Invalid project\_id
- Invalid user\_id

#### 403[​](https://engineering.toggl.com/docs/api/projects/#403-3)

User does not have access to this resource.

#### 500[​](https://engineering.toggl.com/docs/api/projects/#500-3)

Internal Server Error
