API — Projetos
Endpoints para gerenciar projetos e seus status dentro de um workspace.
Base path: /api/v1/workspaces/:workspace_slug
Todos os endpoints requerem Authorization: Bearer {token} e associação ao workspace.
POST /workspaces/:slug/projects
Cria um projeto no workspace. Requer member, admin ou owner.
Body
{
"name": "Frontend",
"identifier": "FE",
"color": "#3b82f6",
"lead_user_id": "01J8X...",
"description": "Aplicação web Vue 3"
}identifier deve ser único na organização, 2–10 letras maiúsculas.
Response 201
{
"id": "01J8X...",
"name": "Frontend",
"identifier": "FE",
"color": "#3b82f6",
"description": "Aplicação web Vue 3",
"lead": {
"id": "01J8X...",
"name": "Gabriel Mowses"
},
"issue_count": 0,
"statuses": [
{ "id": "01J8X...", "name": "Backlog", "color": "#6b7280", "category": "backlog", "position": 1 },
{ "id": "01J8X...", "name": "A fazer", "color": "#3b82f6", "category": "todo", "position": 2 },
{ "id": "01J8X...", "name": "Em progresso", "color": "#f59e0b", "category": "in_progress", "position": 3 },
{ "id": "01J8X...", "name": "Em revisão", "color": "#8b5cf6", "category": "review", "position": 4 },
{ "id": "01J8X...", "name": "Concluído", "color": "#10b981", "category": "done", "position": 5 }
],
"created_at": "2026-04-18T12:00:00Z"
}Exemplo
curl -X POST https://tasks.cloudface.tech/api/v1/workspaces/produto/projects \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"name": "Frontend", "identifier": "FE", "color": "#3b82f6"}'GET /workspaces/:slug/projects
Lista projetos do workspace. Inclui contagem de issues.
Query params
| Param | Tipo | Descrição |
|---|---|---|
archived | boolean | Incluir arquivados (padrão: false) |
Response 200
{
"projects": [
{
"id": "01J8X...",
"name": "Frontend",
"identifier": "FE",
"color": "#3b82f6",
"issue_count": 42,
"archived": false
}
]
}GET /workspaces/:slug/projects/:id
Retorna os detalhes de um projeto, incluindo todos os status.
Response 200 — objeto projeto completo (ver formato em POST)
PATCH /workspaces/:slug/projects/:id
Atualiza um projeto. Requer admin ou owner no workspace.
Body (campos opcionais)
{
"name": "Frontend App",
"color": "#06b6d4",
"lead_user_id": "01J8X...",
"description": "SPA em Vue 3 com Vite"
}Response 200 — projeto atualizado
DELETE /workspaces/:slug/projects/:id
Deleta o projeto e todas as suas issues. Requer admin ou owner.
Response 204 — sem body
POST /workspaces/:slug/projects/:id/archive
Arquiva o projeto. Issues arquivadas não contam para os limites.
Response 200
{ "archived": true, "archived_at": "2026-04-18T12:00:00Z" }POST /workspaces/:slug/projects/:id/unarchive
Desarquiva o projeto.
Response 200
{ "archived": false }POST /workspaces/:slug/projects/:id/statuses
Cria um novo status no projeto. Requer admin ou owner.
Body
{
"name": "Em homologação",
"color": "#0891b2",
"category": "review",
"position": 4
}Categorias válidas: backlog, todo, in_progress, review, done, cancelled
Response 201 — status criado
PATCH /workspaces/:slug/projects/:id/statuses/:status_id
Atualiza um status (nome, cor, posição). A categoria não pode ser alterada após criação.
Response 200 — status atualizado
DELETE /workspaces/:slug/projects/:id/statuses/:status_id
Deleta um status. Falha se houver issues com esse status.
Response 204 — sem body