Quadros Kanbans
Quadros, colunas, tarefas e modelos de tarefa para organizar o trabalho.
O que é
Quadros e Tarefas é o módulo de organização do trabalho em quadros (kanban). Pela API, você lê a estrutura dos quadros e gerencia as tarefas usando a mesma base do painel do miCore.
Na prática: você descobre os quadros e suas colunas, cria e atualiza tarefas e define quem é responsável — tudo em nome de um usuário responsável, respeitando as permissões dele.
O que dá para fazer hoje
- Ver quadros e suas colunas.
- Criar, editar e arquivar um quadro.
- Ver os participantes de um quadro (quem pode ser atribuído).
- Criar e editar colunas de um quadro.
- Listar e consultar tarefas.
- Criar uma tarefa num quadro.
- Atualizar progresso, coluna e datas de uma tarefa.
- Atribuir responsáveis.
- Ler, criar, editar e arquivar comentários numa tarefa, mencionando pessoas.
- Travar o prazo do quadro e pedir, aprovar, recusar ou cancelar um novo prazo.
- Listar, criar, editar, ativar e desativar modelos de tarefa (tarefa pronta com checklist e prazo).
Importante
- Toda tarefa pertence a um quadro; descubra o quadro e as colunas antes de criar.
- Sem responsável, a tarefa nasce em "unassigned".
- Trocar o progresso é edição; trocar responsáveis é uma ação própria, com sua permissão.
- No quadro com o prazo travado (
lock_due_date), só o gestor do quadro ou um administrador de Quadros muda o prazo final já definido; os demais pedem novo prazo.
Disponibilidade na API
Endpoints de Quadros e Tarefas
Consulte, crie e organize quadros, colunas, tarefas e modelos de tarefa do fluxo de trabalho. Os exemplos abaixo são gerados pelo contrato OpenAPI oficial.
/api/v1/boards
Lista quadros com suas colunas
Exige o escopo `boards:read`. Use para descobrir o quadro e as colunas antes de criar uma tarefa.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
per_pagequery | integer | Não | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/boards" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": [
{
"id": 4,
"name": "Suporte",
"description": "Fila do time de suporte",
"lock_due_date": false,
"stages": [
{
"id": 10,
"name": "A fazer",
"order": 0,
"color": "#ffc700"
},
{
"id": 11,
"name": "Fazendo",
"order": 1,
"color": "#029ef4"
}
],
"created_at": "2026-10-01T09:00:00-03:00",
"updated_at": "2026-10-10T09:00:00-03:00"
}
],
"links": [],
"meta": []
}Respostas possíveis
/api/v1/boards
Cria um quadro
Exige `boards:write` e a permissão de criar em Gestão de Espaço. O quadro nasce com as 6 colunas padrão. Descubra o `owner_team_id` e os membros em `GET /teams`.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
Idempotency-Keyheader | string | Sim | Identificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar. |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Único entre quadros ativos. Até 255 caracteres. |
manager_id | integer | Sim | Gestor do quadro; precisa pertencer ao time responsável. |
owner_team_id | integer | Sim | Time responsável (ativo). Descubra em GET /teams. |
member_user_ids | array<integer> | Não | Participantes; precisam pertencer ao time responsável. |
description | string | null | Não | — |
calendar | string | null | Não | — |
accept_class | boolean | null | Não | — |
lock_due_date | boolean | Não | Só o gestor do quadro (ou um administrador de Quadros) muda o prazo final já definido das tarefas. Definir o primeiro prazo continua livre. Padrão: false. |
Exemplo de requisição
curl -X POST "$MICORE_BASE_URL/boards" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: board-request-0001" \
-H "Content-Type: application/json" \
-d '{"name":"string","manager_id":1,"owner_team_id":1,"member_user_ids":[1],"description":null,"calendar":null,"accept_class":true,"lock_due_date":true}'Exemplo de resposta JSON
{
"data": {
"id": 4,
"name": "Suporte",
"description": "Fila do time de suporte",
"lock_due_date": false,
"stages": [
{
"id": 10,
"name": "A fazer",
"order": 0,
"color": "#ffc700"
},
{
"id": 11,
"name": "Fazendo",
"order": 1,
"color": "#029ef4"
}
],
"created_at": "2026-10-01T09:00:00-03:00",
"updated_at": "2026-10-10T09:00:00-03:00"
}
}Respostas possíveis
/api/v1/boards/{board}
Exibe um quadro com suas colunas
Exige o escopo `boards:read`.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
boardpath | integer | Sim | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/boards/{board}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"id": 4,
"name": "Suporte",
"description": "Fila do time de suporte",
"lock_due_date": false,
"stages": [
{
"id": 10,
"name": "A fazer",
"order": 0,
"color": "#ffc700"
},
{
"id": 11,
"name": "Fazendo",
"order": 1,
"color": "#029ef4"
}
],
"created_at": "2026-10-01T09:00:00-03:00",
"updated_at": "2026-10-10T09:00:00-03:00"
}
}Respostas possíveis
/api/v1/boards/{board}
Atualiza um quadro
Exige `boards:write` e gerenciar o quadro. `manager_id` e `owner_team_id` são sempre exigidos. Sem `member_user_ids`, os participantes atuais continuam; com a lista, ela substitui os participantes (lista vazia deixa só o gestor). `lock_due_date` omitido mantém a trava do prazo como está.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
boardpath | integer | Sim | — |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Até 255 caracteres. |
manager_id | integer | Sim | — |
owner_team_id | integer | Sim | — |
member_user_ids | array<integer> | Não | — |
description | string | null | Não | — |
calendar | string | null | Não | — |
accept_class | boolean | null | Não | — |
lock_due_date | boolean | Não | Liga ou desliga a trava do prazo; omitido fica como está. |
Exemplo de requisição
curl -X PATCH "$MICORE_BASE_URL/boards/{board}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name":"string","manager_id":1,"owner_team_id":1,"member_user_ids":[1],"description":null,"calendar":null,"accept_class":true,"lock_due_date":true}'Exemplo de resposta JSON
{
"data": {
"id": 4,
"name": "Suporte",
"description": "Fila do time de suporte",
"lock_due_date": false,
"stages": [
{
"id": 10,
"name": "A fazer",
"order": 0,
"color": "#ffc700"
},
{
"id": 11,
"name": "Fazendo",
"order": 1,
"color": "#029ef4"
}
],
"created_at": "2026-10-01T09:00:00-03:00",
"updated_at": "2026-10-10T09:00:00-03:00"
}
}Respostas possíveis
/api/v1/boards/{board}
Arquiva um quadro
Exige `boards:write` e gerenciar o quadro. Desativa (arquiva) o quadro sem apagar; reativar é feito pelo painel.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
boardpath | integer | Sim | — |
Exemplo de requisição
curl -X DELETE "$MICORE_BASE_URL/boards/{board}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"id": 4,
"name": "Suporte",
"description": "Fila do time de suporte",
"lock_due_date": false,
"stages": [
{
"id": 10,
"name": "A fazer",
"order": 0,
"color": "#ffc700"
},
{
"id": 11,
"name": "Fazendo",
"order": 1,
"color": "#029ef4"
}
],
"created_at": "2026-10-01T09:00:00-03:00",
"updated_at": "2026-10-10T09:00:00-03:00"
}
}Respostas possíveis
/api/v1/boards/{board}/members
Lista os participantes de um quadro
Exige o escopo `boards:read`. É o conjunto elegível para atribuir numa tarefa do quadro (participantes mais o gestor).
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
boardpath | integer | Sim | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/boards/{board}/members" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": [
{
"id": 7,
"name": "Ana Souza",
"email": "ana@empresa.com",
"board_role": "manager"
}
]
}Respostas possíveis
/api/v1/boards/{board}/columns
Cria uma coluna no quadro
Exige `boards:write` e gerenciar o quadro (gestor ou admin de Quadros). A coluna entra no fim da fila.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
boardpath | integer | Sim | — |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Até 255 caracteres. |
description | string | null | Não | O que significa estar nesta etapa e quando mover para a próxima. Aparece no tooltip da coluna e no contexto da Mia; vazio ou null tira. Até 300 caracteres. |
color | string | Sim | Hexadecimal #RRGGBB. |
move_to | string | null | Não | Regra de responsável ao mover a tarefa para esta coluna. Padrão: "Não mudar usuário". Valores: Não mudar usuário, Selecionar novo usuário, Usuário fixo, Usuário atual. |
move_to_id | integer | null | Não | Usuário fixo (obrigatório quando move_to = "Usuário fixo"); precisa participar do quadro. |
show_in_flow | boolean | null | Não | Padrão true. |
Exemplo de requisição
curl -X POST "$MICORE_BASE_URL/boards/{board}/columns" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name":"string","description":null,"color":"#3B82F6","move_to":"Não mudar usuário","move_to_id":1,"show_in_flow":true}'Exemplo de resposta JSON
{
"data": {
"id": 1,
"name": "string",
"description": null,
"order": 1,
"color": null
}
}Respostas possíveis
/api/v1/columns/{column}
Atualiza uma coluna
Exige `boards:write` e gerenciar o quadro. Desativar (`status` false) arquiva as tarefas da coluna; o quadro precisa manter ao menos uma etapa ativa.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
columnpath | integer | Sim | — |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Não | Até 255 caracteres. |
description | string | null | Não | O que significa estar nesta etapa e quando mover para a próxima. Aparece no tooltip da coluna e no contexto da Mia; vazio ou null tira. Até 300 caracteres. |
color | string | Não | Hexadecimal #RRGGBB. |
status | boolean | Não | false arquiva as tarefas da coluna; o quadro precisa manter ao menos uma etapa ativa. |
move_to | string | Não | Valores: Não mudar usuário, Selecionar novo usuário, Usuário fixo, Usuário atual. |
move_to_id | integer | null | Não | — |
show_in_flow | boolean | Não | — |
Exemplo de requisição
curl -X PATCH "$MICORE_BASE_URL/columns/{column}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name":"string","description":null,"color":"string","status":true,"move_to":"Não mudar usuário","move_to_id":1,"show_in_flow":true}'Exemplo de resposta JSON
{
"data": {
"id": 1,
"name": "string",
"description": null,
"order": 1,
"color": null
}
}Respostas possíveis
/api/v1/tasks
Lista tarefas de quadro
Exige o escopo `tasks:read`. Para o Minhas Tarefas, use `responsible=me`: traz as tarefas em que o usuário da credencial está entre os responsáveis, de qualquer quadro; com `progress=todo,doing` ficam só as abertas. Para mudar a etapa, use `PATCH /tasks/{task}` com `progress`.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
board_idquery | integer | Não | — |
progressquery | string | Não | Uma etapa ou várias separadas por vírgula: `unassigned`, `todo`, `doing`, `paused`, `review`, `done`. |
responsiblequery | string | Não | `me` (o usuário da credencial) ou o id de uma pessoa: tarefas em que ela está entre os responsáveis. |
tagquery | string | Não | Tarefas com a tag de nome exato. |
per_pagequery | integer | Não | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/tasks" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": [
{
"id": 512,
"title": "Ligar para o cliente",
"board_id": 4,
"stage": {
"id": 11,
"name": "Fazendo"
},
"progress": "todo",
"urgent": false,
"reference": null,
"responsibles": [
{
"id": 7,
"name": "Ana Souza"
}
],
"date_start": "2026-10-20",
"date_end": "2026-10-20",
"created_at": "2026-10-17T09:00:00-03:00",
"updated_at": "2026-10-17T09:00:00-03:00"
}
],
"links": [],
"meta": []
}Respostas possíveis
/api/v1/tasks
Cria uma tarefa de quadro
Exige `tasks:write`. A tarefa exige um quadro; a coluna é opcional. Sem responsável, nasce em "unassigned".
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
Idempotency-Keyheader | string | Sim | Identificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar. |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
board_id | integer | Sim | Quadro existente onde a tarefa será criada. |
title | string | null | Não | Obrigatório sem `task_template_id`; com modelo, vazio leva o nome do modelo. Até 255 caracteres. |
task_template_id | integer | null | Não | Modelo de tarefa ativo (veja /task-templates). Como no painel, a tarefa fica ligada ao modelo (conta nas metas por modelo), o checklist vira subtarefas e, no que não vier, valem o nome, o prazo (hoje + dias do modelo) e a descrição (instrução, descrição e link) do modelo. Modelo desativado responde 422. |
stage_id | integer | null | Não | Coluna do quadro; resolvida automaticamente quando ausente. |
description | string | null | Não | Vira o comentário inicial da tarefa. Aceita HTML: p, br, h2–h4, strong, b, em, i, u, s, span, ul, ol, li, blockquote, pre, code, links (a href http/https/mailto/tel) e imagens (img src por http/https; envie o arquivo antes por POST /media e use o url devolvido). Scripts, eventos (onclick…), imagens em base64 e endereços javascript: são removidos ao gravar; texto sem tags continua texto. |
responsible_user_ids | array<integer> | Não | Sem responsável, a tarefa nasce em "unassigned". |
date_start | string | null (date) | Não | — |
date_end | string | null (date) | Não | — |
urgent | boolean | null | Não | — |
tags | array<string> | Não | Tags da tarefa, texto livre como no painel (não precisa existir no cadastro de /tags). A lista enviada substitui as atuais; [] tira todas; nome repetido (sem diferenciar maiúsculas) entra uma vez. A troca fica no histórico da tarefa. |
reference | string | null | Não | Até 255 caracteres. |
Exemplo de requisição
curl -X POST "$MICORE_BASE_URL/tasks" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: board-request-0001" \
-H "Content-Type: application/json" \
-d '{"board_id":1,"title":null,"task_template_id":1,"stage_id":1,"description":null,"responsible_user_ids":[1],"date_start":"2026-10-20","date_end":"2026-10-20","urgent":true,"tags":["string"],"reference":null}'Exemplo de resposta JSON
{
"data": {
"id": 512,
"title": "Ligar para o cliente",
"board_id": 4,
"stage": {
"id": 11,
"name": "Fazendo"
},
"progress": "todo",
"urgent": false,
"reference": null,
"responsibles": [
{
"id": 7,
"name": "Ana Souza"
}
],
"date_start": "2026-10-20",
"date_end": "2026-10-20",
"created_at": "2026-10-17T09:00:00-03:00",
"updated_at": "2026-10-17T09:00:00-03:00"
}
}Respostas possíveis
/api/v1/tasks/{task}
Exibe uma tarefa
Exige o escopo `tasks:read`.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
taskpath | integer | Sim | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/tasks/{task}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"id": 512,
"title": "Ligar para o cliente",
"board_id": 4,
"stage": {
"id": 11,
"name": "Fazendo"
},
"progress": "todo",
"urgent": false,
"reference": null,
"responsibles": [
{
"id": 7,
"name": "Ana Souza"
}
],
"date_start": "2026-10-20",
"date_end": "2026-10-20",
"created_at": "2026-10-17T09:00:00-03:00",
"updated_at": "2026-10-17T09:00:00-03:00"
}
}Respostas possíveis
/api/v1/tasks/{task}
Atualiza progresso, coluna e datas de uma tarefa
Exige `tasks:write`. Responsáveis têm endpoint próprio. Para trocar de quadro, envie `board_id` (e, se quiser, `stage_id`); a troca fica no histórico da tarefa como no painel. Prazo travado: no quadro com `lock_due_date`, mudar um `date_end` já definido responde 403 `permission_denied` se o usuário da credencial não for o gestor do quadro nem administrador de Quadros; nesse caso peça o novo prazo em `POST /tasks/{task}/deadline-requests`. Envie `deadline_reason` para registrar o motivo da mudança no histórico.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
taskpath | integer | Sim | — |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
board_id | integer | Não | Move a tarefa para outro quadro, como no painel, com o histórico de quadro e de coluna. Sem `stage_id`, a tarefa entra na primeira coluna ativa do quadro novo. As subtarefas vão junto. |
progress | string | Não | Valores: unassigned, todo, doing, paused, review, done. |
stage_id | integer | Não | Coluna ativa do quadro da tarefa (ou do `board_id` enviado); coluna de outro quadro responde 422 em `stage_id`. |
date_start | string | null (date) | Não | — |
date_end | string | null (date) | Não | Prazo final. No quadro com `lock_due_date`, mudar o prazo já definido exige que o usuário da credencial seja o gestor do quadro ou administrador de Quadros (senão 403 `permission_denied`); definir o primeiro prazo é livre. |
deadline_reason | string | null | Não | Motivo da mudança do prazo final, gravado no histórico da tarefa (evento task.date_changed). Só tem efeito junto com `date_end`. Até 500 caracteres. |
urgent | boolean | Não | — |
tags | array<string> | Não | Tags da tarefa, texto livre como no painel (não precisa existir no cadastro de /tags). A lista enviada substitui as atuais; [] tira todas; nome repetido (sem diferenciar maiúsculas) entra uma vez. A troca fica no histórico da tarefa. |
reference | string | null | Não | Até 255 caracteres. |
Exemplo de requisição
curl -X PATCH "$MICORE_BASE_URL/tasks/{task}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"board_id":1,"progress":"unassigned","stage_id":1,"date_start":"2026-10-20","date_end":"2026-10-20","deadline_reason":null,"urgent":true,"tags":["string"],"reference":null}'Exemplo de resposta JSON
{
"data": {
"id": 512,
"title": "Ligar para o cliente",
"board_id": 4,
"stage": {
"id": 11,
"name": "Fazendo"
},
"progress": "todo",
"urgent": false,
"reference": null,
"responsibles": [
{
"id": 7,
"name": "Ana Souza"
}
],
"date_start": "2026-10-20",
"date_end": "2026-10-20",
"created_at": "2026-10-17T09:00:00-03:00",
"updated_at": "2026-10-17T09:00:00-03:00"
}
}Respostas possíveis
/api/v1/tasks/{task}/deadline-requests
Lista os pedidos de novo prazo de uma tarefa
Exige `tasks:read`. Todos os pedidos da tarefa (pendentes e decididos), do mais recente ao mais antigo.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
taskpath | integer | Sim | — |
per_pagequery | integer | Não | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/tasks/{task}/deadline-requests" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": [
{
"id": 31,
"task_id": 512,
"board_id": 4,
"requested_by": 12,
"current_date_end": "2026-11-20",
"proposed_date_end": "2026-11-27",
"reason": "Aguardando o material do cliente.",
"status": "pending",
"decided_by": null,
"decided_at": null,
"decision_note": null,
"created_at": "2026-11-12T10:00:00-03:00"
}
],
"links": [],
"meta": []
}Respostas possíveis
/api/v1/tasks/{task}/deadline-requests
Pede um novo prazo para a tarefa
Exige `tasks:write`. Mesma regra do painel: só vale no quadro com `lock_due_date` e tarefa com prazo final definido, para quem não é gestor do quadro nem administrador de Quadros (os dois mudam o prazo direto pelo PATCH). A tarefa segue com o prazo atual até a decisão e o gestor é avisado no sino. A tarefa tem no máximo um pedido pendente: repetir o seu troca a data e o motivo; pendente de outra pessoa responde 409 `invalid_transition`, assim como quadro sem trava. Data igual à atual ou motivo vazio respondem 422.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
taskpath | integer | Sim | — |
Idempotency-Keyheader | string | Sim | Identificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar. |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
date | string (date) | Sim | Novo prazo final proposto (ano-mês-dia), diferente do atual. |
reason | string | Sim | Motivo do pedido, que o gestor lê para decidir. Até 1000 caracteres. |
Exemplo de requisição
curl -X POST "$MICORE_BASE_URL/tasks/{task}/deadline-requests" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: board-request-0001" \
-H "Content-Type: application/json" \
-d '{"date":"2026-11-27","reason":"Aguardando o material do cliente."}'Exemplo de resposta JSON
{
"data": {
"id": 31,
"task_id": 512,
"board_id": 4,
"requested_by": 12,
"current_date_end": "2026-11-20",
"proposed_date_end": "2026-11-27",
"reason": "Aguardando o material do cliente.",
"status": "pending",
"decided_by": null,
"decided_at": null,
"decision_note": null,
"created_at": "2026-11-12T10:00:00-03:00"
}
}Respostas possíveis
/api/v1/deadline-requests/{deadlineRequest}/approve
Aprova um pedido de novo prazo
Exige `tasks:write` e que o usuário da credencial seja o gestor do quadro ou administrador de Quadros (senão 403 `permission_denied`). O prazo final da tarefa passa a ser a data pedida, com o motivo do pedido no histórico; o início só muda se passar da nova data. Quem pediu é avisado. Pedido já decidido ou cancelado responde 409 `invalid_transition`.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
deadlineRequestpath | integer | Sim | — |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
note | string | null | Não | Observação de quem decide, enviada a quem pediu. Até 1000 caracteres. |
Exemplo de requisição
curl -X POST "$MICORE_BASE_URL/deadline-requests/{deadlineRequest}/approve" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"note":null}'Exemplo de resposta JSON
{
"data": {
"id": 31,
"task_id": 512,
"board_id": 4,
"requested_by": 12,
"current_date_end": "2026-11-20",
"proposed_date_end": "2026-11-27",
"reason": "Aguardando o material do cliente.",
"status": "pending",
"decided_by": null,
"decided_at": null,
"decision_note": null,
"created_at": "2026-11-12T10:00:00-03:00"
}
}Respostas possíveis
/api/v1/deadline-requests/{deadlineRequest}/refuse
Recusa um pedido de novo prazo
Exige `tasks:write` e que o usuário da credencial seja o gestor do quadro ou administrador de Quadros (senão 403 `permission_denied`). A tarefa segue com o prazo atual e quem pediu é avisado, com a `note` se houver. Pedido já decidido ou cancelado responde 409 `invalid_transition`.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
deadlineRequestpath | integer | Sim | — |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
note | string | null | Não | Observação de quem decide, enviada a quem pediu. Até 1000 caracteres. |
Exemplo de requisição
curl -X POST "$MICORE_BASE_URL/deadline-requests/{deadlineRequest}/refuse" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"note":null}'Exemplo de resposta JSON
{
"data": {
"id": 31,
"task_id": 512,
"board_id": 4,
"requested_by": 12,
"current_date_end": "2026-11-20",
"proposed_date_end": "2026-11-27",
"reason": "Aguardando o material do cliente.",
"status": "pending",
"decided_by": null,
"decided_at": null,
"decision_note": null,
"created_at": "2026-11-12T10:00:00-03:00"
}
}Respostas possíveis
/api/v1/deadline-requests/{deadlineRequest}/cancel
Cancela o próprio pedido de novo prazo
Exige `tasks:write`. Só quem pediu cancela (outro usuário recebe 403 `permission_denied`), e só o pedido pendente (senão 409 `invalid_transition`). A tarefa segue com o prazo atual.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
deadlineRequestpath | integer | Sim | — |
Exemplo de requisição
curl -X POST "$MICORE_BASE_URL/deadline-requests/{deadlineRequest}/cancel" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"id": 31,
"task_id": 512,
"board_id": 4,
"requested_by": 12,
"current_date_end": "2026-11-20",
"proposed_date_end": "2026-11-27",
"reason": "Aguardando o material do cliente.",
"status": "pending",
"decided_by": null,
"decided_at": null,
"decision_note": null,
"created_at": "2026-11-12T10:00:00-03:00"
}
}Respostas possíveis
/api/v1/tasks/{task}/assign
Define os responsáveis de uma tarefa
Exige `tasks:assign` e a permissão de atribuir tarefas. Lista vazia deixa a tarefa para distribuição.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
taskpath | integer | Sim | — |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
responsible_user_ids | array<integer> | Sim | Lista completa de responsáveis; vazia deixa a tarefa para distribuição. |
Exemplo de requisição
curl -X POST "$MICORE_BASE_URL/tasks/{task}/assign" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"responsible_user_ids":[1]}'Exemplo de resposta JSON
{
"data": {
"id": 512,
"title": "Ligar para o cliente",
"board_id": 4,
"stage": {
"id": 11,
"name": "Fazendo"
},
"progress": "todo",
"urgent": false,
"reference": null,
"responsibles": [
{
"id": 7,
"name": "Ana Souza"
}
],
"date_start": "2026-10-20",
"date_end": "2026-10-20",
"created_at": "2026-10-17T09:00:00-03:00",
"updated_at": "2026-10-17T09:00:00-03:00"
}
}Respostas possíveis
/api/v1/tasks/{task}/comments
Lista os comentários de uma tarefa
Exige o escopo `tasks:read`.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
taskpath | integer | Sim | — |
per_pagequery | integer | Não | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/tasks/{task}/comments" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": [
{
"id": 9001,
"task_id": 512,
"text": "Cliente retornou a ligação, aguardando proposta.",
"task_progress": "doing",
"author": {
"id": 7,
"name": "Ana Souza"
},
"archived": false,
"mentions": [
{
"user": {
"id": 12,
"name": "Bruno Lima"
},
"type": "direct",
"status": "pending"
}
],
"created_at": "2026-10-17T10:00:00-03:00",
"updated_at": "2026-10-17T10:00:00-03:00"
}
],
"links": [],
"meta": []
}Respostas possíveis
/api/v1/tasks/{task}/comments
Comenta numa tarefa
Exige `tasks:write`. Registra o comentário e o evento da tarefa, como no painel. O texto aceita HTML com imagens (veja `CreateTaskComment`). `mention_user_ids` e `mention_everyone` mencionam pessoas e as avisam, como o @ do painel (lista em `GET /tasks/{task}/mentionable-users`).
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
taskpath | integer | Sim | — |
Idempotency-Keyheader | string | Sim | Identificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar. |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
text | string | Sim | Aceita HTML: p, br, h2–h4, strong, b, em, i, u, s, span, ul, ol, li, blockquote, pre, code, links (a href http/https/mailto/tel) e imagens (img src por http/https; envie o arquivo antes por POST /media e use o url devolvido). Scripts, eventos (onclick…), imagens em base64 e endereços javascript: são removidos ao gravar; texto sem tags continua texto. Até 5000 caracteres. |
mention_user_ids | array<integer> | Não | Pessoas mencionadas, avisadas no sino e no app. Só valem as de GET /tasks/{task}/mentionable-users; as outras são ignoradas. Para o nome aparecer destacado no texto, use <span class="mention" data-user-id="12">@Bruno</span>. |
mention_everyone | boolean | Não | Menciona e avisa todos os mencionáveis da tarefa. Padrão: false. |
Exemplo de requisição
curl -X POST "$MICORE_BASE_URL/tasks/{task}/comments" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: board-request-0001" \
-H "Content-Type: application/json" \
-d '{"text":"<p>Arte aprovada:</p><img src=\"https://empresa.exemplo.com/storage/media/arte.png\" alt=\"Arte\">","mention_user_ids":[12]}'Exemplo de resposta JSON
{
"data": {
"id": 9001,
"task_id": 512,
"text": "Cliente retornou a ligação, aguardando proposta.",
"task_progress": "doing",
"author": {
"id": 7,
"name": "Ana Souza"
},
"archived": false,
"mentions": [
{
"user": {
"id": 12,
"name": "Bruno Lima"
},
"type": "direct",
"status": "pending"
}
],
"created_at": "2026-10-17T10:00:00-03:00",
"updated_at": "2026-10-17T10:00:00-03:00"
}
}Respostas possíveis
/api/v1/tasks/{task}/comments/{comment}
Edita um comentário da tarefa
Exige `tasks:write`. Mesma regra do painel: quem pode ver a tarefa edita o comentário, registra a edição no histórico e avisa quem foi mencionado agora (quem já estava mencionado não recebe de novo). Campo omitido fica como está; menções só se acrescentam. Comentário de outra tarefa responde 404; arquivado responde 409.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
taskpath | integer | Sim | — |
commentpath | integer | Sim | — |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
text | string | Não | Mesmas regras de HTML de CreateTaskComment. Omitido, o texto fica como está. Até 5000 caracteres. |
mention_user_ids | array<integer> | Não | Acrescenta menções; quem já estava mencionado continua e não é avisado de novo. |
mention_everyone | boolean | Não | Padrão: false. |
Exemplo de requisição
curl -X PATCH "$MICORE_BASE_URL/tasks/{task}/comments/{comment}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"text":"<p>Versão final aprovada. <span class=\"mention\" data-user-id=\"12\">@Bruno</span> pode publicar.</p>","mention_user_ids":[12]}'Exemplo de resposta JSON
{
"data": {
"id": 9001,
"task_id": 512,
"text": "Cliente retornou a ligação, aguardando proposta.",
"task_progress": "doing",
"author": {
"id": 7,
"name": "Ana Souza"
},
"archived": false,
"mentions": [
{
"user": {
"id": 12,
"name": "Bruno Lima"
},
"type": "direct",
"status": "pending"
}
],
"created_at": "2026-10-17T10:00:00-03:00",
"updated_at": "2026-10-17T10:00:00-03:00"
}
}Respostas possíveis
/api/v1/tasks/{task}/comments/{comment}/archive
Arquiva um comentário da tarefa
Exige `tasks:write`. Mesma regra do painel: o comentário sai da tarefa e da listagem e o arquivamento fica no histórico. Arquivar de novo devolve o mesmo comentário, sem outro registro. Comentário de outra tarefa responde 404.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
taskpath | integer | Sim | — |
commentpath | integer | Sim | — |
Exemplo de requisição
curl -X POST "$MICORE_BASE_URL/tasks/{task}/comments/{comment}/archive" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"id": 9001,
"task_id": 512,
"text": "Cliente retornou a ligação, aguardando proposta.",
"task_progress": "doing",
"author": {
"id": 7,
"name": "Ana Souza"
},
"archived": false,
"mentions": [
{
"user": {
"id": 12,
"name": "Bruno Lima"
},
"type": "direct",
"status": "pending"
}
],
"created_at": "2026-10-17T10:00:00-03:00",
"updated_at": "2026-10-17T10:00:00-03:00"
}
}Respostas possíveis
/api/v1/tasks/{task}/mentionable-users
Lista quem pode ser mencionado nos comentários
Exige `tasks:read`. Mesma lista do painel: quem criou, os responsáveis, quem já comentou ou agiu na tarefa, as pessoas da solicitação de origem e a equipe e o gestor do quadro. Ids fora dessa lista enviados em `mention_user_ids` são ignorados.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
taskpath | integer | Sim | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/tasks/{task}/mentionable-users" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": [
{
"id": 1,
"name": "string"
}
]
}Respostas possíveis
/api/v1/task-templates
Lista os modelos de tarefa
Exige `task-templates:read` e ver Gestão de Espaço. Ordem alfabética, com quantas tarefas cada modelo já criou.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
statusquery | boolean | Não | true para ativos, false para desativados. |
searchquery | string | Não | Parte do nome. |
per_pagequery | integer | Não | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/task-templates" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": [
{
"id": 2,
"name": "Roteiro de Reels",
"instruction": "Escrever o roteiro a partir da pauta.",
"description": null,
"help_link": null,
"checklist": [
"Gancho nos 3 primeiros segundos",
"Dor do cliente",
"Chamada para ação"
],
"due_days": 2,
"status": true,
"tasks_created": 4,
"created_at": "2026-11-05T09:00:00-03:00",
"updated_at": "2026-11-05T09:00:00-03:00"
}
],
"links": [],
"meta": []
}Respostas possíveis
/api/v1/task-templates
Cria um modelo de tarefa
Exige `task-templates:write` e criar em Gestão de Espaço. Mesma regra do painel: nasce ativo, itens vazios do checklist são descartados e cada item vira uma subtarefa quando o modelo é usado (Nova tarefa ou Tarefa de um processo).
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
Idempotency-Keyheader | string | Sim | Identificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar. |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Até 255 caracteres. |
instruction | string | null | Não | Até 5000 caracteres. |
description | string | null | Não | Até 20000 caracteres. |
help_link | string | null (uri) | Não | Até 255 caracteres. |
checklist | array<string | null> | Não | — |
due_days | integer | null | Não | — |
Exemplo de requisição
curl -X POST "$MICORE_BASE_URL/task-templates" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: board-request-0001" \
-H "Content-Type: application/json" \
-d '{"name":"Roteiro de Reels","instruction":"Escrever o roteiro a partir da pauta.","checklist":["Gancho nos 3 primeiros segundos","Dor do cliente","Chamada para ação"],"due_days":2}'Exemplo de resposta JSON
{
"data": {
"id": 2,
"name": "Roteiro de Reels",
"instruction": "Escrever o roteiro a partir da pauta.",
"description": null,
"help_link": null,
"checklist": [
"Gancho nos 3 primeiros segundos",
"Dor do cliente",
"Chamada para ação"
],
"due_days": 2,
"status": true,
"tasks_created": 4,
"created_at": "2026-11-05T09:00:00-03:00",
"updated_at": "2026-11-05T09:00:00-03:00"
}
}Respostas possíveis
/api/v1/task-templates/{taskTemplate}
Exibe um modelo de tarefa
Exige `task-templates:read`.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
taskTemplatepath | integer | Sim | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/task-templates/{taskTemplate}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"id": 2,
"name": "Roteiro de Reels",
"instruction": "Escrever o roteiro a partir da pauta.",
"description": null,
"help_link": null,
"checklist": [
"Gancho nos 3 primeiros segundos",
"Dor do cliente",
"Chamada para ação"
],
"due_days": 2,
"status": true,
"tasks_created": 4,
"created_at": "2026-11-05T09:00:00-03:00",
"updated_at": "2026-11-05T09:00:00-03:00"
}
}Respostas possíveis
/api/v1/task-templates/{taskTemplate}
Atualiza um modelo de tarefa
Exige `task-templates:write` e editar em Gestão de Espaço. Parcial: campo omitido fica como está; o `checklist` enviado substitui o anterior. Vale para as próximas tarefas e execuções; as que já nasceram não mudam.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
taskTemplatepath | integer | Sim | — |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Não | Até 255 caracteres. |
instruction | string | null | Não | Até 5000 caracteres. |
description | string | null | Não | Até 20000 caracteres. |
help_link | string | null (uri) | Não | Até 255 caracteres. |
checklist | array<string | null> | Não | — |
due_days | integer | null | Não | — |
Exemplo de requisição
curl -X PATCH "$MICORE_BASE_URL/task-templates/{taskTemplate}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name":"string","instruction":null,"description":null,"help_link":null,"checklist":[null],"due_days":1}'Exemplo de resposta JSON
{
"data": {
"id": 2,
"name": "Roteiro de Reels",
"instruction": "Escrever o roteiro a partir da pauta.",
"description": null,
"help_link": null,
"checklist": [
"Gancho nos 3 primeiros segundos",
"Dor do cliente",
"Chamada para ação"
],
"due_days": 2,
"status": true,
"tasks_created": 4,
"created_at": "2026-11-05T09:00:00-03:00",
"updated_at": "2026-11-05T09:00:00-03:00"
}
}Respostas possíveis
/api/v1/task-templates/{taskTemplate}/activate
Ativa um modelo de tarefa
Exige `task-templates:write` e desabilitar em Gestão de Espaço. Idempotente: modelo já ativo continua ativo.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
taskTemplatepath | integer | Sim | — |
Exemplo de requisição
curl -X POST "$MICORE_BASE_URL/task-templates/{taskTemplate}/activate" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"id": 2,
"name": "Roteiro de Reels",
"instruction": "Escrever o roteiro a partir da pauta.",
"description": null,
"help_link": null,
"checklist": [
"Gancho nos 3 primeiros segundos",
"Dor do cliente",
"Chamada para ação"
],
"due_days": 2,
"status": true,
"tasks_created": 4,
"created_at": "2026-11-05T09:00:00-03:00",
"updated_at": "2026-11-05T09:00:00-03:00"
}
}Respostas possíveis
/api/v1/task-templates/{taskTemplate}/deactivate
Desativa um modelo de tarefa
Exige `task-templates:write` e desabilitar em Gestão de Espaço. Sai das listas de escolha; processos que usam o modelo deixam de poder iniciar até trocar o modelo. Idempotente.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
taskTemplatepath | integer | Sim | — |
Exemplo de requisição
curl -X POST "$MICORE_BASE_URL/task-templates/{taskTemplate}/deactivate" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"id": 2,
"name": "Roteiro de Reels",
"instruction": "Escrever o roteiro a partir da pauta.",
"description": null,
"help_link": null,
"checklist": [
"Gancho nos 3 primeiros segundos",
"Dor do cliente",
"Chamada para ação"
],
"due_days": 2,
"status": true,
"tasks_created": 4,
"created_at": "2026-11-05T09:00:00-03:00",
"updated_at": "2026-11-05T09:00:00-03:00"
}
}