# Update workspace **PATCH /api/v1/projects/{id}/workspaces/{workspace_id}** Partially updates a workspace. The project scope is carried by the route id path parameter. Field-only patches return 204; a status-only patch (pause/resume) is mutually exclusive with other fields and returns 200 with ECP's app body (including any `warnings`). ## Servers - https://agentengine.mongodb.com: https://agentengine.mongodb.com () ## Authentication methods - Bearer auth ## Parameters ### Path parameters - **id** (string) Project ID - **workspace_id** (string) Workspace ID ### Body: application/json (object) Fields to update - **agent_card** (object) - **auto_deploy** (boolean) AutoDeploy is an app-level ECP field (not persisted in the gateway DB); forwarded verbatim to ECP's app PATCH. - **description** (string) - **features** (object) - **framework** (string) - **gitops** (object) - **name** (string) - **release_mode** (string) ReleaseMode is an app-level ECP field (not persisted in the gateway DB); forwarded verbatim to ECP's app PATCH. Controls webhook-triggered builds only — API-triggered releases are available in every mode. - **status** (string) Status is a pause/resume signal ("active" | "paused"). The gateway does not persist it locally; the handler forwards a status-only patch straight to ECP, which runs pause-teardown / resume-redeploy. - **subdirectory** (string) - **workspace_name** (string) ## Responses ### 406 Unsupported or malformed API version, an operation unavailable in the selected published contract, or an unacceptable representation (including unsupported media-type parameters or excluded SSE). Existing authentication, authorization, and rate-limit failures take precedence. #### Body: application/json (object) - **badRequestDetail** (object) Optional validation details defined by the standard error schema; API negotiation errors do not emit this field. - **detail** (string) Human-readable error details. - **error** (integer) HTTP status code. - **errorCode** (string) Machine-readable error code. - **parameters** (array[string]) Request parameter names associated with the error; omitted when none apply. - **reason** (string) HTTP status reason phrase. ### 200 Returned for status-only patches; proxied from ECP. #### Body: application/json (object) - **app_id** (string) - **org_id** (string) - **project_id** (string) - **status** (string) - **warnings** (array[string]) ### 204 Returned for field-update patches. ### 400 Bad Request #### Body: application/json (object) - **code** (string) - **error** (string) - **success** (boolean) ### 404 Not Found #### Body: application/json (object) - **code** (string) - **error** (string) - **success** (boolean) ### 413 Request Entity Too Large #### Body: application/json (object) - **code** (string) - **error** (string) - **success** (boolean) ### 429 Too Many Requests #### Headers - **Retry-After** (string) Seconds to wait before retrying #### Body: application/json (object) - **code** (string) - **error** (string) - **success** (boolean) ### 500 Internal Server Error #### Body: application/json (object) - **code** (string) - **error** (string) - **success** (boolean) ### 502 ECP transport or pause-teardown failure. #### Body: application/json (object) - **code** (string) - **error** (string) - **success** (boolean) ### 503 Service Unavailable #### Headers - **Retry-After** (string) Seconds to wait before retrying #### Body: application/json (object) - **code** (string) - **error** (string) - **success** (boolean) [Powered by Bump.sh](https://bump.sh)