---
title: "Update project assignment"
method: PUT
path: "/projects/{project_id}/assignments/{assignment_id}"
tags: ["assignments_per_project"]
---

# Update project assignment

`PUT /projects/{project_id}/assignments/{assignment_id}`

Updates the matching project assignment.

Typical parameters:

- `user_id`
- `starts_at`
- `ends_at`
- `allocation_mode` (`percent`, `hours_per_day`, `fixed`) and a value for the respective mode-named property (that is, a property named `percent`, `hours_per_day`, or `fixed_hours`)
- `status_option_id`
- `description`
- `note`

## Request body

- union
  - AssignmentPercentAllocation — An assignment set to a percentage of the resource's time.
    - `allocation_mode` 'percent', required — This indicates that a percentage of the resource's time is allocated to the corresponding assignment.
    - `percent` number, required — The percentage of time the resource is allocated to the corresponding assignment. **Note:** This property is only present when `allocation_mode` is `"percent"`.
    - `id` integer — The unique identifier for the assignment.
    - `user_id` integer — The ID of the user this assignment belongs to.
    - `assignable_id` integer — The ID of the project, phase, or leave type to which the the assignment applies.
    - `starts_at` string, date, required — The assignment's effective start date.
    - `ends_at` string, date, required — The assignment's effective end date.
    - `repetition_id` integer, nullable — A unique identifier for a series of repeating assignments. If the assignment is part of a repeating series, this is the parent assignment's unique ID. Otherwise, it's null. **Note:** This ID is the same for all assignments within the same repeating series.
    - `created_at` string, date-time — The time of creation.
    - `updated_at` string, date-time — The time of the last update.
    - `all_day_assignment` boolean
    - `resource_request_id` integer, nullable
    - `bill_rate` number, nullable — The cost value.
    - `bill_rate_id` integer, nullable
    - `status` unknown
    - `status_option_id` integer, nullable — The ID of the status option associated with the assignment.
    - `description` string — Describes the assignment.
    - `note` boolean, nullable — Calls out ancillary information about the assignment.
  - AssignmentFixedHoursAllocation — An assignment set for a fixed number of hours.
    - `allocation_mode` 'fixed_hours', required — This indicates that a fixed number of the resource's hours is allocated to the corresponding assignment.
    - `fixed_hours` number, required — The number of hours the resource is allocated to a corresponding assignment. **Note:** This property is only present when `allocation_mode` is `"fixed_hours"`.
    - `id` integer — The unique identifier for the assignment.
    - `user_id` integer — The ID of the user this assignment belongs to.
    - `assignable_id` integer — The ID of the project, phase, or leave type to which the the assignment applies.
    - `starts_at` string, date, required — The assignment's effective start date.
    - `ends_at` string, date, required — The assignment's effective end date.
    - `repetition_id` integer, nullable — A unique identifier for a series of repeating assignments. If the assignment is part of a repeating series, this is the parent assignment's unique ID. Otherwise, it's null. **Note:** This ID is the same for all assignments within the same repeating series.
    - `created_at` string, date-time — The time of creation.
    - `updated_at` string, date-time — The time of the last update.
    - `all_day_assignment` boolean
    - `resource_request_id` integer, nullable
    - `bill_rate` number, nullable — The cost value.
    - `bill_rate_id` integer, nullable
    - `status` unknown
    - `status_option_id` integer, nullable — The ID of the status option associated with the assignment.
    - `description` string — Describes the assignment.
    - `note` boolean, nullable — Calls out ancillary information about the assignment.
  - AssignmentHoursPerDayAllocation — An assignment set to hours per day.
    - `allocation_mode` 'hours_per_day', required — This indicates that a number of the resource's daily hours is allocated to the corresponding assignment.
    - `hours_per_day` number, required — The number of hours per day that the resource is allocated to a corresponding assignment. **Note:** This property is only present when `allocation_mode` is `"hours_per_day"`.
    - `id` integer — The unique identifier for the assignment.
    - `user_id` integer — The ID of the user this assignment belongs to.
    - `assignable_id` integer — The ID of the project, phase, or leave type to which the the assignment applies.
    - `starts_at` string, date, required — The assignment's effective start date.
    - `ends_at` string, date, required — The assignment's effective end date.
    - `repetition_id` integer, nullable — A unique identifier for a series of repeating assignments. If the assignment is part of a repeating series, this is the parent assignment's unique ID. Otherwise, it's null. **Note:** This ID is the same for all assignments within the same repeating series.
    - `created_at` string, date-time — The time of creation.
    - `updated_at` string, date-time — The time of the last update.
    - `all_day_assignment` boolean
    - `resource_request_id` integer, nullable
    - `bill_rate` number, nullable — The cost value.
    - `bill_rate_id` integer, nullable
    - `status` unknown
    - `status_option_id` integer, nullable — The ID of the status option associated with the assignment.
    - `description` string — Describes the assignment.
    - `note` boolean, nullable — Calls out ancillary information about the assignment.

## Response `200`

The updated project assignment.

- union
  - AssignmentPercentAllocation — An assignment set to a percentage of the resource's time.
    - `allocation_mode` 'percent', required — This indicates that a percentage of the resource's time is allocated to the corresponding assignment.
    - `percent` number, required — The percentage of time the resource is allocated to the corresponding assignment. **Note:** This property is only present when `allocation_mode` is `"percent"`.
    - `id` integer — The unique identifier for the assignment.
    - `user_id` integer — The ID of the user this assignment belongs to.
    - `assignable_id` integer — The ID of the project, phase, or leave type to which the the assignment applies.
    - `starts_at` string, date, required — The assignment's effective start date.
    - `ends_at` string, date, required — The assignment's effective end date.
    - `repetition_id` integer, nullable — A unique identifier for a series of repeating assignments. If the assignment is part of a repeating series, this is the parent assignment's unique ID. Otherwise, it's null. **Note:** This ID is the same for all assignments within the same repeating series.
    - `created_at` string, date-time — The time of creation.
    - `updated_at` string, date-time — The time of the last update.
    - `all_day_assignment` boolean
    - `resource_request_id` integer, nullable
    - `bill_rate` number, nullable — The cost value.
    - `bill_rate_id` integer, nullable
    - `status` unknown
    - `status_option_id` integer, nullable — The ID of the status option associated with the assignment.
    - `description` string — Describes the assignment.
    - `note` boolean, nullable — Calls out ancillary information about the assignment.
  - AssignmentFixedHoursAllocation — An assignment set for a fixed number of hours.
    - `allocation_mode` 'fixed_hours', required — This indicates that a fixed number of the resource's hours is allocated to the corresponding assignment.
    - `fixed_hours` number, required — The number of hours the resource is allocated to a corresponding assignment. **Note:** This property is only present when `allocation_mode` is `"fixed_hours"`.
    - `id` integer — The unique identifier for the assignment.
    - `user_id` integer — The ID of the user this assignment belongs to.
    - `assignable_id` integer — The ID of the project, phase, or leave type to which the the assignment applies.
    - `starts_at` string, date, required — The assignment's effective start date.
    - `ends_at` string, date, required — The assignment's effective end date.
    - `repetition_id` integer, nullable — A unique identifier for a series of repeating assignments. If the assignment is part of a repeating series, this is the parent assignment's unique ID. Otherwise, it's null. **Note:** This ID is the same for all assignments within the same repeating series.
    - `created_at` string, date-time — The time of creation.
    - `updated_at` string, date-time — The time of the last update.
    - `all_day_assignment` boolean
    - `resource_request_id` integer, nullable
    - `bill_rate` number, nullable — The cost value.
    - `bill_rate_id` integer, nullable
    - `status` unknown
    - `status_option_id` integer, nullable — The ID of the status option associated with the assignment.
    - `description` string — Describes the assignment.
    - `note` boolean, nullable — Calls out ancillary information about the assignment.
  - AssignmentHoursPerDayAllocation — An assignment set to hours per day.
    - `allocation_mode` 'hours_per_day', required — This indicates that a number of the resource's daily hours is allocated to the corresponding assignment.
    - `hours_per_day` number, required — The number of hours per day that the resource is allocated to a corresponding assignment. **Note:** This property is only present when `allocation_mode` is `"hours_per_day"`.
    - `id` integer — The unique identifier for the assignment.
    - `user_id` integer — The ID of the user this assignment belongs to.
    - `assignable_id` integer — The ID of the project, phase, or leave type to which the the assignment applies.
    - `starts_at` string, date, required — The assignment's effective start date.
    - `ends_at` string, date, required — The assignment's effective end date.
    - `repetition_id` integer, nullable — A unique identifier for a series of repeating assignments. If the assignment is part of a repeating series, this is the parent assignment's unique ID. Otherwise, it's null. **Note:** This ID is the same for all assignments within the same repeating series.
    - `created_at` string, date-time — The time of creation.
    - `updated_at` string, date-time — The time of the last update.
    - `all_day_assignment` boolean
    - `resource_request_id` integer, nullable
    - `bill_rate` number, nullable — The cost value.
    - `bill_rate_id` integer, nullable
    - `status` unknown
    - `status_option_id` integer, nullable — The ID of the status option associated with the assignment.
    - `description` string — Describes the assignment.
    - `note` boolean, nullable — Calls out ancillary information about the assignment.

## Other responses

- `default` — Generic error payload

---

[API](https://skmtc.net/smartsheet/apis/resource-management-openapi-reference.md) · [All operations](https://skmtc.net/smartsheet/apis/resource-management-openapi-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/smartsheet/resource-management-openapi-reference/versions/e4c439ac13f2/schema)
