API

Projetos

Gerencie projetos e suas etapas pela API.

Projetos

Projetos organizam o trabalho de um time e podem ser vinculados a um squad e a um cliente. A etapa do projeto determina o status retornado pela API.

GET /projects

Lista os projetos do time autenticado. Projetos com archived_at preenchido não são retornados.

Parâmetros de consulta

ParâmetroTipoPadrãoDescrição
pagenumber1Página atual.
limitnumber20Itens por página, até 100.
squad_iduuidFiltra pelo squad vinculado.
client_iduuidFiltra pelo cliente vinculado.
statusstringbacklog, active, paused, completed ou cancelled. O filtro é resolvido pelas etapas do time.
prioritystringlow, medium, high ou urgent.
searchstringBusca em name e description.
sortstring-created_atCampo de ordenação; use - para ordem decrescente.

Os campos aceitos em sort são name, stage_id, priority, start_date, due_date, created_at e updated_at.

curl -X GET "https://app.usecolmeia.com/api/v1/projects?status=active&priority=high" \
  -H "Authorization: Bearer ea_live_sua_chave_aqui"

Resposta

{
  "success": true,
  "data": [
    {
      "id": "660e8400-e29b-41d4-a716-446655440002",
      "name": "Implantação do portal do cliente",
      "slug": "implantacao-portal-cliente-a1b2c",
      "description": "Configuração do portal e do fluxo de atendimento.",
      "status": "active",
      "stage_id": "770e8400-e29b-41d4-a716-446655440006",
      "stage": {
        "id": "770e8400-e29b-41d4-a716-446655440006",
        "name": "Em andamento",
        "slug": "ongoing",
        "color": "#2563eb",
        "position": 2,
        "is_initial": false,
        "is_done": false,
        "is_archived": false
      },
      "priority": "high",
      "color": "#2563eb",
      "briefing": "Configuração do portal e do fluxo de atendimento.",
      "squad_id": "440e8400-e29b-41d4-a716-446655440006",
      "squad": {
        "id": "440e8400-e29b-41d4-a716-446655440006",
        "name": "Operações"
      },
      "client_id": "550e8400-e29b-41d4-a716-446655440000",
      "client": {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "name": "Empresa Exemplo Ltda."
      },
      "start_date": "2026-08-01",
      "due_date": "2026-09-30",
      "completed_at": null,
      "created_by": "880e8400-e29b-41d4-a716-446655440004",
      "created_at": "2026-08-01T09:00:00Z",
      "updated_at": "2026-08-08T14:30:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 1,
    "pages": 1
  }
}

POST /projects

Cria um projeto. name é obrigatório. Se slug for omitido, a API gera um valor a partir do nome; se stage_id e status forem omitidos, a etapa inicial do time é usada.

CampoTipoObrigatórioDescrição
namestringSimNome do projeto.
slugstringNãoIdentificador único no time.
descriptionstringNãoDescrição do projeto.
statusstringNãobacklog, active, paused, completed ou cancelled; seleciona uma etapa correspondente.
stage_iduuidNãoSeleciona diretamente uma etapa que pertence ao time. Tem precedência sobre status.
prioritystringNãolow, medium, high ou urgent. O padrão é medium.
colorstringNãoCor associada ao projeto.
start_datedateNãoData no formato YYYY-MM-DD.
due_datedateNãoData no formato YYYY-MM-DD.
briefingstringNãoBriefing do trabalho.
squad_iduuidNãoSquad vinculado.
client_iduuidNãoCliente vinculado.
curl -X POST https://app.usecolmeia.com/api/v1/projects \
  -H "Authorization: Bearer ea_live_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Implantação do portal do cliente",
    "status": "active",
    "priority": "high",
    "client_id": "550e8400-e29b-41d4-a716-446655440000",
    "due_date": "2026-09-30"
  }'

A criação retorna 201. Um slug já usado no mesmo time retorna 422 DUPLICATE_ENTRY.

GET /projects/:id

Retorna um projeto do time autenticado, com etapa, squad e cliente quando vinculados.

curl -X GET https://app.usecolmeia.com/api/v1/projects/660e8400-e29b-41d4-a716-446655440002 \
  -H "Authorization: Bearer ea_live_sua_chave_aqui"

PUT /projects/:id

Atualiza campos do projeto. Envie ao menos um campo. stage_id precisa pertencer ao time; alternativamente, envie um status válido para resolver uma etapa correspondente.

Campo atualizávelTipo
name, slugstring
description, color, briefingstring ou null
start_date, due_date, completed_atdata ou data/hora ISO 8601, conforme o campo
squad_id, client_iduuid ou null
stage_iduuid da etapa do time
statusbacklog, active, paused, completed ou cancelled
prioritylow, medium, high ou urgent
curl -X PUT https://app.usecolmeia.com/api/v1/projects/660e8400-e29b-41d4-a716-446655440002 \
  -H "Authorization: Bearer ea_live_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "completed",
    "completed_at": "2026-09-30T17:00:00Z"
  }'

Projetos arquivados não podem ser alterados pela API. O PUT retorna 409 PROJECT_ARCHIVED; restaure o projeto pelo painel antes de editá-lo.

DELETE /projects/:id

Não suportado. Este endpoint retorna 405 METHOD_NOT_ALLOWED; o arquivamento de projetos exige uma sessão autenticada de administrador no painel.

{
  "success": false,
  "error": {
    "code": "METHOD_NOT_ALLOWED",
    "message": "O arquivamento de projetos exige uma sessão autenticada de administrador"
  }
}

Erros comuns

StatusCódigoCausa
400VALIDATION_ERRORCorpo inválido, name ausente, enum inválido ou nenhum campo para atualizar.
404NOT_FOUNDProjeto ou etapa não encontrado no time.
409PROJECT_ARCHIVEDTentativa de alterar um projeto arquivado.
422DUPLICATE_ENTRYslug já está em uso no time.
405METHOD_NOT_ALLOWEDTentativa de excluir ou arquivar um projeto pela API.