Changes project settings. Flags and values you leave out stay as they are.
HTTP
PUT /projects/{projectId}/settingsAccess: Session token only. API keys get 403 with insufficient_scope.
Role: Project manager (organisation owners and admins are managers of every project).
Path parameters #
| Parameter | Description |
|---|---|
projectId | The id of the project. |
Request body #
JSON.
| Field | Type | Required | Description |
|---|---|---|---|
flags | object | no | Any of the flags in Get project settings, each a boolean. Unknown names are ignored. |
format | string | no | json, yaml, po or xliff. |
messageFormat | string | no | ICU (recommended), i18next, Fluent or None. |
mtProvider | string|null | no | The service that translates new strings automatically (when flags.mtAutofill is on): deepl, google, azure, anthropic, openai, gemini, mistral or deepseek. null goes back to the organisation’s default. Left out, it stays as it was. If that service is disconnected or its key is refused, automatic translation stops and is recorded in the audit log as mt.autofill_stopped; it does not use another service. |
JSON
{ "flags": { "requireReview": false }, "format": "yaml" }Response 200 #
The settings after the change, as in Get project settings.
Errors #
| Status | error | When |
|---|---|---|
| 401 | unauthenticated | The token is missing or not valid. |
| 404 | not_found | The project does not exist in your organisation, you have no access to it, or projectId is not a UUID. |
| 403 | forbidden | You are a member of the project, but not a manager. |
| 422 | invalid_request | A flag is not a boolean (flags: invalid), or format or messageFormat is not one of the allowed values, or mtProvider is not a service we know (mtProvider: invalid). |
| 429 | rate_limited | Too many requests, see Rate limiting. |
See Errors for the error format.