Skip to content

Organizations

Organizations are the top-level tenant boundary. All routes here require a valid JWT.

GET /organizations

List organizations the current user belongs to.

Response 200

[
{ "id": "org_…", "title": "Acme Inc.", "color": "#7b5fff", "createdAt": "2025-04-01T08:32:14Z" }
]

GET /organizations/{id}

Return a single organization.

Response 200

{ "id": "org_…", "title": "Acme Inc.", "color": "#7b5fff", "createdAt": "2025-04-01T08:32:14Z" }

404 if the org doesn’t exist or the user can’t see it.

POST /organizations

Create an organization. The caller becomes its first SA.

Body

{ "title": "Acme Inc.", "color": "#7b5fff" }

Response 200 — the created org.

PATCH /organizations/{id}

Update title and/or color. SA-only.

Body

{ "title": "Acme Holdings", "color": "#2edab0" }

Either field may be omitted; missing fields are not changed.

DELETE /organizations/{id}?mode=archive|permanent

Soft-delete by default. ?mode=permanent hard-deletes (irreversible — every project, card, and file inside the org is removed).

Response 204 — no body.

Status codes

  • 204 — deleted.
  • 403 — not an SA.
  • 404 — org doesn’t exist.