Skip to content

Projects

List Projects

List all projects in the organization, with resource counts by type.

Omit limit to get every project; total is the full count either way. uncategorized_count is always the whole-org count, independent of the page being viewed.

Parameters

NameInTypeRequiredDescription
limitqueryintegernoMax rows to return (1-100). Omit to return every row.
offsetqueryintegernoRows to skip — pass the previous response’s next_offset.
org_idpathstring (uuid)yes

Responses

StatusDescriptionBody
200Successful ResponseProjectListResponse
422Validation ErrorHTTPValidationError

Create Project

Create a new project. Requires admin/owner role.

The three shared_* fields form the project’s shared context. Both lists are resolved against the org before they are stored — an unknown tool scope or skill slug is a 422.

Parameters

NameInTypeRequiredDescription
org_idpathstring (uuid)yes

Request body (required)

FieldTypeRequiredDescription
colorstringno
descriptionstringno
iconstringno
namestringyes
shared_allowed_toolsstring[]no
shared_instructionstringno
shared_mounted_skillsstring[]no
slugstringno

Responses

StatusDescriptionBody
201Successful ResponseProjectResponse
422Validation ErrorHTTPValidationError

GET /api/orgs/{org_id}/projects/{project_id}

Section titled “GET /api/orgs/{org_id}/projects/{project_id}”

Get Project

Get a project’s detail, including resource counts by type.

Parameters

NameInTypeRequiredDescription
org_idpathstring (uuid)yes
project_idpathstring (uuid)yes

Responses

StatusDescriptionBody
200Successful ResponseProjectResponse
422Validation ErrorHTTPValidationError

PATCH /api/orgs/{org_id}/projects/{project_id}

Section titled “PATCH /api/orgs/{org_id}/projects/{project_id}”

Update Project

Update a project’s fields, including its shared context. Requires admin/owner role.

Only fields present in the request body are applied; pass null to clear description, color, icon, or shared_instruction. The two shared lists REPLACE the stored list — send [] to clear them, omit them to leave them alone. Both are resolved against the org before storing (422 on an unknown tool scope or skill slug).

Parameters

NameInTypeRequiredDescription
org_idpathstring (uuid)yes
project_idpathstring (uuid)yes

Request body (required)

FieldTypeRequiredDescription
colorstringno
descriptionstringno
iconstringno
namestringno
shared_allowed_toolsstring[]no
shared_instructionstringno
shared_mounted_skillsstring[]no
slugstringno

Responses

StatusDescriptionBody
200Successful ResponseProjectResponse
422Validation ErrorHTTPValidationError

DELETE /api/orgs/{org_id}/projects/{project_id}

Section titled “DELETE /api/orgs/{org_id}/projects/{project_id}”

Delete Project

Soft-delete a project. Requires admin/owner role.

Membership rows are hard-deleted; bundled resources are NOT deleted — they become uncategorized.

Parameters

NameInTypeRequiredDescription
org_idpathstring (uuid)yes
project_idpathstring (uuid)yes

Responses

StatusDescriptionBody
204Successful Response
422Validation ErrorHTTPValidationError

GET /api/orgs/{org_id}/projects/{project_id}/memories

Section titled “GET /api/orgs/{org_id}/projects/{project_id}/memories”

List Project Memories

List memories owned by this project, most recent first. Requires org membership.

Parameters

NameInTypeRequiredDescription
org_idpathstring (uuid)yes
project_idpathstring (uuid)yes

Responses

StatusDescriptionBody
200Successful ResponseProjectMemoryListResponse
422Validation ErrorHTTPValidationError

POST /api/orgs/{org_id}/projects/{project_id}/memories

Section titled “POST /api/orgs/{org_id}/projects/{project_id}/memories”

Create Project Memory

Create a memory owned by this project. Requires admin/owner role.

Parameters

NameInTypeRequiredDescription
org_idpathstring (uuid)yes
project_idpathstring (uuid)yes

Request body (required)

FieldTypeRequiredDescription
contentstringyes

Responses

StatusDescriptionBody
201Successful ResponseAgentMemoryResponse
422Validation ErrorHTTPValidationError

DELETE /api/orgs/{org_id}/projects/{project_id}/memories/{memory_id}

Section titled “DELETE /api/orgs/{org_id}/projects/{project_id}/memories/{memory_id}”

Delete Project Memory

Delete a project memory. Requires admin/owner role.

Parameters

NameInTypeRequiredDescription
memory_idpathstring (uuid)yes
org_idpathstring (uuid)yes
project_idpathstring (uuid)yes

Responses

StatusDescriptionBody
204Successful Response
422Validation ErrorHTTPValidationError

GET /api/orgs/{org_id}/projects/{project_id}/resources

Section titled “GET /api/orgs/{org_id}/projects/{project_id}/resources”

List Project Resources

List a project’s member resources, resolved to display data.

Dangling rows (the referenced entity was deleted) are skipped gracefully.

Parameters

NameInTypeRequiredDescription
org_idpathstring (uuid)yes
project_idpathstring (uuid)yes

Responses

StatusDescriptionBody
200Successful ResponseProjectResourcesResponse
422Validation ErrorHTTPValidationError

POST /api/orgs/{org_id}/projects/{project_id}/resources

Section titled “POST /api/orgs/{org_id}/projects/{project_id}/resources”

Add Project Resources

Batch-add resources to a project. Requires admin/owner role.

A resource already in another project is moved (a resource belongs to at most one project). Validates every entity exists in this org; 422 if any don’t (this also rejects system skills, since org_id IS NULL skills never match an org-scoped lookup).

Parameters

NameInTypeRequiredDescription
org_idpathstring (uuid)yes
project_idpathstring (uuid)yes

Request body (required)

FieldTypeRequiredDescription
resourcesResourceRef[]no

Responses

StatusDescriptionBody
200Successful ResponseAddResourcesResponse
422Validation ErrorHTTPValidationError

DELETE /api/orgs/{org_id}/projects/{project_id}/resources/{entity_type}/{entity_id}

Section titled “DELETE /api/orgs/{org_id}/projects/{project_id}/resources/{entity_type}/{entity_id}”

Remove Project Resource

Remove one resource from a project. Requires admin/owner role.

The resource is NOT deleted — it becomes uncategorized.

Parameters

NameInTypeRequiredDescription
entity_idpathstring (uuid)yes
entity_typepathProjectResourceTypeyes
org_idpathstring (uuid)yes
project_idpathstring (uuid)yes

Responses

StatusDescriptionBody
204Successful Response
422Validation ErrorHTTPValidationError

Reorder Projects

Reorder projects by setting display_order. Requires membership.

Ordering is a per-org display preference, not a configuration change, so this needs membership rather than admin/owner — same as PUT /agent-teams/reorder. Ids that are not live projects of this org are skipped; the rest still reorder.

Registered ahead of /{project_id} so the literal segment is matched first even if a verb is later added to that path.

Parameters

NameInTypeRequiredDescription
org_idpathstring (uuid)yes

Request body (required)

FieldTypeRequiredDescription
project_idsstring (uuid)[]yes

Responses

StatusDescriptionBody
204Successful Response
422Validation ErrorHTTPValidationError