Skip to content

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

json
{
  "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

json
{
  "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

bash
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

ParamTipoDescrição
archivedbooleanIncluir arquivados (padrão: false)

Response 200

json
{
  "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)

json
{
  "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

json
{ "archived": true, "archived_at": "2026-04-18T12:00:00Z" }

POST /workspaces/:slug/projects/:id/unarchive

Desarquiva o projeto.

Response 200

json
{ "archived": false }

POST /workspaces/:slug/projects/:id/statuses

Cria um novo status no projeto. Requer admin ou owner.

Body

json
{
  "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

Feito por CloudFace