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.

Parameters

NameInTypeRequiredDescription
org_idpathstring (uuid)yes

Request body (required)

FieldTypeRequiredDescription
colorstringno
descriptionstringno
iconstringno
namestringyes
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 name/slug/description/color/icon. Requires admin/owner role.

Only fields present in the request body are applied; pass null to clear description, color, or icon.

Parameters

NameInTypeRequiredDescription
org_idpathstring (uuid)yes
project_idpathstring (uuid)yes

Request body (required)

FieldTypeRequiredDescription
colorstringno
descriptionstringno
iconstringno
namestringno
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}/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