API

Tarefas

Gerenciar tarefas do kanban de projetos via API.

Tarefas

Gerencie as tarefas dos projetos da sua agência. Tarefas vivem dentro de um projeto, organizadas em colunas (kanban) de um pipeline.

Toda tarefa precisa pertencer a um projeto (project_id). Se você não informar pipeline_id nem column, a tarefa entra na primeira coluna do pipeline padrão do projeto.

GET /v1/tasks

Lista todas as tarefas ativas do time (não retorna tarefas na lixeira).

Query Parameters

ParâmetroTipoPadrãoDescrição
pagenumber1Página atual
limitnumber20Itens por página (máx: 100)
project_iduuidFiltrar por projeto
pipeline_iduuidFiltrar por pipeline
assignee_iduuidFiltrar por responsável (procura em assignee_ids)
prioritystringurgent, high, medium, low, none
columnstringSlug da coluna (ex: backlog, a-fazer, em-andamento)
searchstringBuscar em título e descrição
sortstring-created_attitle, priority, due_date, position, created_at, updated_at, completed_at

Request

curl -X GET "https://app.sonarbr.io/api/v1/tasks?project_id=PROJECT_UUID&priority=high" \
  -H "Authorization: Bearer ea_live_sua_chave_aqui"

Response

{
  "success": true,
  "data": [
    {
      "id": "770e8400-e29b-41d4-a716-446655440003",
      "title": "Revisar briefing do cliente",
      "description": "Validar requisitos antes do kickoff",
      "project_id": "660e8400-e29b-41d4-a716-446655440002",
      "pipeline_id": "990e8400-e29b-41d4-a716-446655440005",
      "column": "em-andamento",
      "priority": "high",
      "assignee_id": "880e8400-e29b-41d4-a716-446655440004",
      "assignee_ids": ["880e8400-e29b-41d4-a716-446655440004"],
      "reporter_id": null,
      "due_date": "2026-05-25",
      "estimated_hours": 2.5,
      "actual_hours": null,
      "position": 1,
      "tags": ["urgente"],
      "checklist_markdown": null,
      "completed_at": null,
      "created_at": "2026-05-18T10:30:00Z",
      "updated_at": "2026-05-18T10:30:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 1,
    "pages": 1
  }
}

POST /v1/tasks

Cria uma nova tarefa em um projeto.

Request Body

CampoTipoObrigatórioDescrição
titlestringSimTítulo da tarefa
project_iduuidSimProjeto onde criar
descriptionstringNãoDetalhes adicionais
pipeline_iduuidNãoPipeline. Usa o padrão se omitido
columnstringNãoSlug da coluna. Usa a primeira do pipeline se omitido
prioritystringNãoDefault: none
assignee_iduuidNãoResponsável principal (compat)
assignee_idsuuid[]NãoLista de responsáveis (recomendado)
reporter_iduuidNãoQuem reportou
due_datedateNãoYYYY-MM-DD
estimated_hoursnumberNãoEstimativa em horas
tagsstring[]NãoLista de tags
checklist_markdownstringNãoChecklist em markdown

Request

curl -X POST https://app.sonarbr.io/api/v1/tasks \
  -H "Authorization: Bearer ea_live_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "660e8400-e29b-41d4-a716-446655440002",
    "title": "Criar mockup da landing page",
    "description": "Tela inicial com hero, features e CTA",
    "priority": "high",
    "assignee_ids": ["880e8400-e29b-41d4-a716-446655440004"],
    "due_date": "2026-05-30",
    "estimated_hours": 4,
    "tags": ["design", "landing"]
  }'

GET /v1/tasks/:id

Busca uma tarefa específica.

curl -X GET https://app.sonarbr.io/api/v1/tasks/TASK_UUID \
  -H "Authorization: Bearer ea_live_sua_chave_aqui"

PUT /v1/tasks/:id

Atualiza uma tarefa. Aceita os mesmos campos do POST (exceto project_id, que é imutável).

curl -X PUT https://app.sonarbr.io/api/v1/tasks/TASK_UUID \
  -H "Authorization: Bearer ea_live_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{
    "column": "concluido",
    "completed_at": "2026-05-20T15:00:00Z",
    "actual_hours": 3.5
  }'

DELETE /v1/tasks/:id

Move a tarefa para a lixeira (soft delete via deleted_at).

curl -X DELETE https://app.sonarbr.io/api/v1/tasks/TASK_UUID \
  -H "Authorization: Bearer ea_live_sua_chave_aqui"

Response

{
  "success": true,
  "data": {
    "id": "770e8400-e29b-41d4-a716-446655440003",
    "deleted_at": "2026-05-20T16:00:00Z"
  }
}

Tarefas excluídas via API não aparecem nas listagens da API (filtramos deleted_at IS NULL). A restauração só é possível pela interface web.

Erros Comuns

CódigoErroCausa
404NOT_FOUNDTarefa ou projeto não encontrado / pertence a outro time
400VALIDATION_ERRORtitle ou project_id ausentes, ou priority inválido