---
title: "Update Project"
method: PUT
path: "/projects/{projectId}"
tags: ["Project"]
---

# Update Project

`PUT /projects/{projectId}`

Updates the project in terms of: name, description, due date, quote, and project resources. Observe the rules of [JSON Merge Patch Semantics](https://tools.ietf.org/html/rfc7386). 

Project rescheduling (updating dueBy) is permitted only if: 
* there is no Customer Quote Approval task in the associated flow 
* at least one Customer Quote Approval was closed(in case multiple project batches) 

Update `projectPlan.taskConfigurations` are now permitted before project is started. Elements are now pre-populated at project creation time.

For detailed information about Translation Memory advanced configuration including filters and field updates, see [Translation Memory Advanced Configuration](../docs/translation-memory/Translation-memory-advanced-configuration.html).

## Headers

- `Authorization` string, required
- `X-LC-Tenant` string, required

## Request body

- ProjectUpdateRequest
  - `name` string — The project name.\ Unsupported characters in the name: `\` `/` `:` ` *` `?` `"` `<` `>` `|`
  - `description` string — The project description.
  - `dueBy` string, date-time, nullable — UTC Timezone <br> Allowed formats: <br> "YYYY-MM-DDThh:mmZ" <br> "YYYY-MM-DDThh:mm:ssZ" <br> "YYYY-MM-DDThh:mm:ss.sZ" <br> "YYYY-MM-DDThh:mm:ss.ssZ" <br> "YYYY-MM-DDThh:mm:ss.sssZ"
  - `deliveredBy` string, date-time, nullable — UTC Timezone <br> Allowed formats: <br> "YYYY-MM-DDThh:mmZ" <br> "YYYY-MM-DDThh:mm:ssZ" <br> "YYYY-MM-DDThh:mm:ss.sZ" <br> "YYYY-MM-DDThh:mm:ss.ssZ" <br> "YYYY-MM-DDThh:mm:ss.sssZ"
  - `translationEngine` ConfigurationResourceRequest — Resource configuration properties.
    - `id` string, required — Configuration resource identifier.
    - `strategy` 'copy' | 'use' — "copy": A copy of the resource will be used for the project execution. This is the default strategy. "use": The actual resource will be used for the project execution.
  - `fileProcessingConfiguration` ConfigurationResourceRequest — Resource configuration properties.
    - `id` string, required — Configuration resource identifier.
    - `strategy` 'copy' | 'use' — "copy": A copy of the resource will be used for the project execution. This is the default strategy. "use": The actual resource will be used for the project execution.
  - `pricingModel` ConfigurationResourceRequest — Resource configuration properties.
    - `id` string, required — Configuration resource identifier.
    - `strategy` 'copy' | 'use' — "copy": A copy of the resource will be used for the project execution. This is the default strategy. "use": The actual resource will be used for the project execution.
  - `workflow` ConfigurationResourceRequest — Resource configuration properties.
    - `id` string, required — Configuration resource identifier.
    - `strategy` 'copy' | 'use' — "copy": A copy of the resource will be used for the project execution. This is the default strategy. "use": The actual resource will be used for the project execution.
  - `projectPlan` ProjectPlanUpdateRequest — Updates the configurations of the tasks that will be created in the future. For example, you can change the assignee of the "translation" task while the project is in the "preprocessing" phase.
    - `taskConfigurations` ProjectPlanTaskConfigurationRequest[], required
      - `taskTemplate` ObjectIdRequest, required — An object with identifier.
        - `id` string, required
      - `isSkipped` boolean, required — Specifies if the task will be skipped. If you want to skip all the target languages for the given task, set the scope as "global".
      - `assignees` ProjectPlanTaskAssigneeRequest[], required — Specifies the list of assignees for the future task. <br> When the 'isSkipped' field is set to 'true', an empty list of assignees should be specified. <br> Total assignee count is limited. See more at [Assigning users and groups to workflow tasks](https://docs.rws.com/791595/743481/trados-enterprise---accelerate/assigning-users-and-groups-to-workflow-tasks) point 5e.
        - `type` 'user' | 'group' | 'vendorOrderTemplate' | 'projectCreator', required
        - `id` string — The user, group or vendor identifier, depending on the type chosen. It is not required for `projectCreator`.
      - `scope` TaskConfigurationScopeRequest, required
        - `type` 'global' | 'sourceLanguage' | 'targetLanguage' | 'languageDirection', required — The applicability impact of the workflow configuration: - global: used for global tasks, that are not associated to a target language - sourceLanguage: changes affect only the task associated to the source language specified in `sourceLanguage` field. For using this type, must include the `sourceLanguage` field. - targetLanguage: changes affect only the task associated to the target language specified in `targetLanguage` field. For using this type, must include the `targetLanguage` field. - languageDirection: changes affect only the task associated to the language direction specified in `languageDirection` field. For using this type, must include the `languageDirection` field.
        - `sourceLanguage` SourceLanguageRequest
          - `languageCode` string, required — The language code.
        - `targetLanguage` TargetLanguageRequest
          - `languageCode` string, required — The language code.
        - `languageDirection` LanguageDirectionItem
          - `id` string, required — The language direction identifier.
      - `dueBy` string, date-time, nullable — UTC Timezone <br> Allowed formats: <br> "YYYY-MM-DDThh:mmZ" <br> "YYYY-MM-DDThh:mm:ssZ" <br> "YYYY-MM-DDThh:mm:ss.sZ" <br> "YYYY-MM-DDThh:mm:ss.ssZ" <br> "YYYY-MM-DDThh:mm:ss.sssZ"
      - `configurationValues` WorkflowTaskTypeConfigValue[]
        - `id` string, required — The configuration key identifier (e.g. `FORCE_CLOSE_MAX_AGE`, `EDITOR_MODE`, `CONCURRENT_EDITING_ENABLED`).
        - `value` object, required — The configuration value.
  - `tqaProfile` ConfigurationResourceRequest — Resource configuration properties.
    - `id` string, required — Configuration resource identifier.
    - `strategy` 'copy' | 'use' — "copy": A copy of the resource will be used for the project execution. This is the default strategy. "use": The actual resource will be used for the project execution.
  - `quote` QuoteUpdateRequest
    - `languageCosts` QuoteLanguageCostRequest[]
      - `name` string, required — The name of the additional cost.
      - `count` number, required — The number of units used to compute the total. Used only for 'volume', 'hourly', 'perPage' and 'percentage' cost types.
      - `cost` number, required — The cost of a unit.
      - `costType` 'volume' | 'hourly' | 'percentage' | 'perPage' | 'conditional' | 'adhoc' | 'adhocVolume'
      - `volumeUnitType` 'words' | 'characters' | 'custom'
      - `targetLanguage` TargetLanguageRequest
        - `languageCode` string, required — The language code.
      - `costOrder` integer, required — Indicates the order in which the additional cost is computed.
      - `conditionalCostType` 'absolute' | 'relative' | 'percentage'
      - `conditionalCostOperator` 'less' | 'lessOrEqual' | 'greater' | 'greaterOrEqual'
      - `conditionalCostVariable` 'wordCount' | 'runningTotal'
      - `conditionalCostThreshold` number, required — The value that is evaluated against the 'costVariable' based on the 'costOperator'.
    - `additionalCosts` QuoteAdditionalCostRequest[]
      - `name` string, required — The name of the additional cost.
      - `count` number, required — The number of units used to compute the total. Used only for 'volume', 'hourly', 'perPage' and 'percentage' cost types.
      - `cost` number, required — The cost of a unit.
      - `costType` 'volume' | 'perTargetLanguage' | 'perFile' | 'hourly' | 'percentage' | 'perPage' | 'conditional' | 'adhoc' | 'adhocVolume'
      - `volumeUnitType` 'words' | 'characters' | 'custom'
      - `costOrder` integer, required — Indicates the order in which the additional cost is computed.
      - `conditionalCostType` 'absolute' | 'relative' | 'percentage'
      - `conditionalCostOperator` 'less' | 'lessOrEqual' | 'greater' | 'greaterOrEqual'
      - `conditionalCostVariable` 'wordCount' | 'runningTotal'
      - `conditionalCostThreshold` number, required — The value that is evaluated against the 'costVariable' based on the 'costOperator'.
    - `notes` string — A message associated with the quote.
  - `customFields` CustomFieldRequest[]
    - `key` string, required — Custom Field friendly key.
    - `value` object — The value of the custom field. A date will be serialized as a ISO_8601 string. For read only custom fields (`isReadOnly`), it must be set exactly as the `defaultValue` from custom field definition.
  - `projectManagers` ProjectManagerRequest[]
    - `id` string, required — Depending on the type, User identifier or Group identifier.
    - `type` 'group' | 'user', required
  - `settings` ProjectSettingsUpdateRequest
    - `general` ProjectSettingsGeneralRequest
      - `completionConfiguration` CompletionConfigRequest — Completion configuration properties.
        - `completeDays` number — Number of days until automatic completion of the project. Starting from project creation date.
        - `archiveDays` number — Number of days after project completion when the project will be archived..
        - `archiveReminderDays` number — Number of days before archiving when a reminder will be sent.
    - `translationMemorySettings` TranslationMemorySettingsRequest — Translation Memory settings Request
      - `filters` TranslationMemoryFiltersRequest — Translation Memory filter settings request
        - `hardFilter` TranslationMemoryHardFilterRequest — Hard filter configuration for Translation Memory matching request
          - `expression` string, required — The filter expression is a set of atomic expressions connected by logical operators. <br/>An atomic expression describes the relationship of a field to a value.
      - `updateTranslationMemoryFields` TranslationMemoryUpdateTMFieldsRequest[]
        - `fieldId` string, required — The identifier of the translation memory field.
        - `values` string[], required — A single value or a collection of values. Based on field type, can be of different formats for `singleString`, `multipleString`, `singlePicklist`, `multiplePicklist`, `dateTime`, `integer`.

## Response `204`

No Content

## Other responses

- `400` — Error responses: * “invalid”: invalid input on update quote model * “invalidStatus”: the quote cannot be edited, the project is in a phase which doesn't allow the quote to be edited * "conflict": the project does not have a quote to be updated * "limit.exceeded": a maximum number of users per task was assigned * "deleted": Some of the selected values were deleted and cannot be selected for some values of the "customFields" field.
- `401` — The user could not be identified.
- `403` — Error codes: * "forbidden": the authenticated user is not allowed to update the Project.
- `404` — Error codes: * "notFound": the Project could not be found by identifier.
- `409` — Error responses: * “invalidStatus”: a field cannot be edited, because the project is in a status which doesn't allow the field to be edited. `details.name` will provide the field name which is not allowed to be edited. * updateNotAllowed: a field of the project cannot be edited before the completion of customer approval.

---

[API](https://skmtc.net/rws/apis/trados-cloud-platform-api.md) · [All operations](https://skmtc.net/rws/apis/trados-cloud-platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/rws/trados-cloud-platform-api/versions/d42dac7c28a3/schema)
