Skip to main content
POST
UpdateProject
Questions or issues? Contact us at api-support@manus.ai.
Auth:
  • API Key: Full access.
  • Standard OAuth client: Requires manage_all_tasks. create_project alone is not sufficient.
  • Trusted client: Full access.
The user must own the project or be a project member with edit permission.

Update rules

  • Send project_id and at least one of name, instruction, connector_ids, or skill_ids. Omitted fields keep their current values.
  • An empty string clears instruction. name cannot be cleared.
  • connector_ids and skill_ids replace the entire list rather than adding to it. Pass [] to clear a list. To add or remove one item, read the current list with project.detail and send the full new list.
  • The response contains the full updated configuration in the same shape as project.detail.

Errors

Headers

x-manus-api-key
string

API key for direct authentication. Provide either this or Authorization, not both. See Authentication.

Authorization
string

OAuth2 access token in Bearer {token} format. An OAuth client requires the manage_all_tasks scope unless it is a Trusted team client or Trusted public client; create_project alone is not sufficient. Provide either this or x-manus-api-key, not both. See the Open App guide.

Example:

"Bearer {access_token}"

Body

application/json
project_id
string
required

The unique identifier of the project to update. Use project.list to get project IDs.

name
string

New display name, 1–255 characters. Cannot be empty or whitespace only.

Required string length: 1 - 255
instruction
string

New default instruction applied to tasks in this project, up to 65,535 UTF-8 bytes. Pass an empty string to clear it.

connector_ids
string[]

Replaces the project's default connectors with this list. Pass [] to remove all default connectors; omit the field to keep them unchanged. Accepts up to 500 connector IDs from connector.list; duplicates are ignored. Each connector must be installed and authorized in the user's account. A Standard OAuth client can set only connectors the user granted to the app, and the My Browser connector also requires the use_my_browsers scope.

Maximum array length: 500
skill_ids
string[]

Replaces the project's default skills with this list. Pass [] to remove all default skills; omit the field to keep them unchanged. Accepts up to 50 skill IDs from skill.list; duplicates are ignored. Each skill must be an official skill, a Skill Hub skill, a skill of the user's team, or a skill of this project; other skills, including personal and Open App skills, return 404 not_found. Project members' individual skill preferences are kept.

Maximum array length: 50

Response

Project updated successfully.

ok
boolean

Whether the request was successful.

Example:

true

request_id
string

Unique identifier for this API request.

project
object

The updated project with its full configuration.