Skip to main content
Projects are the workspace unit that holds threads, artifacts, and team context. Use these endpoints to create and configure projects, transfer ownership, and start project-scoped chats.

Basic request and response

Create a project with POST /api/v1/app/project.

Project response fields

Create, get, PUT, PATCH and DELETE return this JSON model with 200. Null fields may be omitted. Creation defaults to Viewer, default_role_enabled:false, use_citations:true, use_system_prompt:true. Nested members use the Project Members model.

Get a project

Update a project

PUT and PATCH accept the same optional fields. Omitted or null values preserve existing settings. project_context is trimmed; an empty or whitespace-only string clears it. The deployment limits its length. Setting default_role_enabled:true makes the project Public; false makes it Private, overriding a simultaneous visibility field.

Delete a project

DELETE removes the project and returns its project model, rather than 204 No Content.

Leave a project

Transfer project ownership

Project workspace member info

Get project information for a specified workspace member, or update it for the currently authenticated workspace member.

Project-scoped chat

Use the current POST /api/v1/app/chat with project_id in the body. The compatibility URL POST /api/v1/app/project/{projectID}/chat remains available; migrate new clients to the current route. The current route always returns SSE.
See Chats for SSE events and the complete body and artifact selection models. The legacy project URL honors pgpt.stream: true streams events; false returns a Message response.

Errors and edge cases

  • 403: not a project member.
  • 404: project not found.
  • 409: transfer target not eligible.