Update an AI project
PUT/ai/projects/:project_id
Updates an AI project's metadata and assistant settings, or returns a short-lived URL for uploading the assistant avatar. You need at least editor access.
To update the project, omit action and send a JSON body. Only the fields you include are changed; omitted fields keep their current values. Category names are cleaned up the same way as on create, and Default cannot be set explicitly. Changing any assistant field (ChatbotName, Instructions, Greeting, ChatSuggestions, Model, or GuardRail) re-checks the whole assistant configuration, including the currently stored model.
Sending Knowledgebases or Agents replaces that entire list (use [] to clear it). Linking continues in the background: ProjectStatus becomes updating, and a 200 means the change was accepted, not that linking has finished. Poll GET /ai/projects/{project_id} until the status is no longer updating. New projects can have up to 5 knowledge bases. A project that already has more may keep or reduce them, with a warning in Message, but cannot add more.
To get an avatar upload URL, set action to generate_avatar_url. The request body is ignored. The URL overwrites any existing avatar. Repeating the same update is safe; repeating the avatar call issues a new URL.
Request
Responses
- 200
- 400
- 500
The project was updated, or an avatar upload URL was returned. Update responses include Message; avatar responses include PresignedURL — never both. If you sent Knowledgebases or Agents, Message notes that those components are still being configured. Projects with more than 5 knowledge bases include an extra warning.
Response Headers
The request was invalid or you do not have permission. The body is {"Message": " -
Response Headers
CORS methods allowed on an error response.
An unexpected server error. The body is typically {"Message": "GE-1008 - Could not complete the request. Please try again."}. Updating a project without a request body also returns 500.