Plan · Quadros
Quadros e seus estados de fluxo, o snapshot do quadro em uma chamada, o feed de mudanças, membros, etiquetas e visualizações salvas. Parte da API do Dailybot Plan (Beta).
Nesta página
Beta
Plan está em beta. Tudo o que está em /plan no aplicativo web, os comandos da CLI e da agent skill para projetos, metas, quadros e tarefas, e a API pública /v1/plan/ podem mudar antes da disponibilidade geral. Quer testar com sua equipe? Escreva para [email protected].
Listar quadros
Os quadros que você pode ver, em uma página. Filtre por project, busque com search, por datas com start_date / end_date e traga os quadros arquivados com include_archived. Uma key de agente ou da organização só vê os quadros visíveis para a organização; uma key pessoal vê o que sua pessoa vê.
Parâmetros de consulta
Paginação
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| page | integer | Opcional | Número da página, começando em 1. |
| page_size | integer | Opcional | Linhas por página. Padrão 50, máximo 100. Valores fora do intervalo são ajustados, nunca rejeitados: pedir 500 retorna 100. |
| limit | integer | Opcional | Alias de page_size, traduzido no servidor. |
| offset | integer | Opcional | Alias traduzido para page no servidor. |
Filtros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| search | string | Opcional | Corresponde ao título e à chave. Mais de 256 caracteres é 400 search_query_too_long, sem truncamento. q é um alias. |
| project | array | Opcional | Uuids de projetos. Repetível; os valores são combinados com OR. |
Datas
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| start_date | string | Opcional | Início da janela de data de criação. O que --since da CLI produz. |
| end_date | string | Opcional | Fim da janela de data de criação. O que --until da CLI produz. |
Linhas arquivadas
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| is_archived | boolean | Opcional | true retorna apenas linhas arquivadas; false (o padrão), apenas as ativas. Arquivar é a exclusão, então as linhas arquivadas continuam legíveis. |
| include_archived | boolean | Opcional | Incluir linhas arquivadas junto com as ativas. Diferente de is_archived, que seleciona um conjunto ou o outro: include_archived=true é a união. As listas retornam linhas ativas, a menos que você opte pelo contrário. |
Objeto Board
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| uuid | uuid | Obrigatório | Identificador público estável. |
| key | string | Obrigatório | A chave do quadro: o prefixo das chaves das suas tarefas. Renomeá-la mantém a chave antiga reservada e resolvendo. |
| name | string | Obrigatório | Nome de exibição. Máx. 120 caracteres. |
| project | Project | Opcional | O projeto. Veja Project. |
| team | uuid | null | Opcional | A equipe. |
| visibility | enum | Obrigatório | org (todos na organização) ou members (apenas membros explícitos). Um de org, members. |
| effective_visibility | string | Opcional | Se o quadro é efetivamente visível para toda a organização (org) ou somente para os membros (members). Um quadro dentro de um projeto members é members aqui, enquanto visibility continua sendo a configuração armazenada do próprio quadro. |
| estimate_scale | enum | Opcional | Como as estimativas são expressas neste quadro. Um de none, fibonacci, linear. |
| default_view | SavedView | null | Opcional | A visualização salva padrão do quadro, ou null. Veja SavedView. |
| archive_after_days | integer | null | Opcional | Arquivar automaticamente as tarefas concluídas após este número de dias, ou null para mantê-las. |
| task_count | integer | Opcional | Número de tarefas ativas. |
| wip_limits | object | Opcional | Limites de trabalho em andamento por coluna. |
| is_archived | boolean | Opcional | Se a linha está arquivada. Arquivar é a exclusão: linhas arquivadas continuam legíveis e restauráveis. |
| created_at | date-time | Opcional | Quando a linha foi criada. |
| updated_at | date-time | Opcional | Quando a linha mudou pela última vez. |
| viewer | object | Opcional | O que você pode fazer com esta linha. Formato: {is_member, can_see_content, can_manage: boolean} (all required). |
| states | array<WorkflowState> | Opcional | Os estados do quadro, na ordem das colunas. Veja WorkflowState. |
Objeto Project
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| uuid | uuid | Obrigatório | Identificador público estável. |
| name | string | Obrigatório | Nome de exibição. Máx. 120 caracteres. |
| slug | string | Opcional | Nome amigável para URL. Máx. 48 caracteres. |
| description | string | null | Opcional | Descrição livre. |
| lead | UserRef | null | Opcional | O líder do projeto. Veja UserRef. |
| goals | array | Opcional | Metas para as quais este projeto aponta. Um projeto pode atender várias metas. Sempre presentes: uuid. Itens: {uuid, name}. |
| goal | object | Opcional | A meta, quando há exatamente uma. Formato: {uuid, name}|null. |
| board_count | integer | Opcional | Número de quadros ativos no projeto. |
| health | enum | Opcional | Saúde declarada. Um de not_set, on_track, at_risk, off_track. |
| start_date | date | null | Opcional | Data de início planejada. |
| target_date | date | null | Opcional | Data de término planejada. |
| progress | ProjectProgress | null | Opcional | Resumo agregado do progresso sobre as tarefas que você pode ver. Veja ProjectProgress. |
| is_archived | boolean | Obrigatório | Se a linha está arquivada. Arquivar é a exclusão: linhas arquivadas continuam legíveis e restauráveis. |
| archived_at | date-time | null | Opcional | Quando a linha foi arquivada. |
| created_at | date-time | Opcional | Quando a linha foi criada. |
| updated_at | date-time | Opcional | Quando a linha mudou pela última vez. |
| viewer | object | Opcional | O que você pode fazer com esta linha. Formato: {can_see_content: boolean, can_manage: boolean} (both required). |
Objeto SavedView
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| name | string | Obrigatório | Nome de exibição. Máx. 64 caracteres. |
| view_mode | enum | Opcional | Como o conjunto filtrado é desenhado. As leituras sempre retornam board para o layout kanban. Um de list, board, timeline, calendar. |
| group_by | enum | Opcional | A dimensão de agrupamento. Um de state, owner, priority, category. |
| sort | string | Opcional | Uma chave de ordenação, com prefixo - para ordem decrescente. |
| filters | object | Obrigatório | Os filtros da visualização, na gramática compartilhada de filtros de tarefas. |
| schema_version | integer | Opcional | Versão do formato salvo da visualização. |
| visibility | enum | Opcional | personal (padrão) é só sua. shared e board_default (a visualização padrão desse quadro ou projeto) podem ser lidas por todos que veem o quadro ou o projeto. Defini-las exige quem administra o quadro nas visualizações de quadro, e supervisão do projeto (um administrador da organização ou quem gerencia todos os seus times) nas visualizações de projeto; caso contrário, 403 view_visibility_forbidden. Um de personal, shared, board_default. |
| collapsed | object | array | string | number | boolean | Opcional | Estado da interface do cliente salvo como está (quais grupos estão recolhidos). Só o tamanho e a profundidade são validados. |
| columns | object | array | string | number | boolean | Opcional | Estado da interface do cliente salvo como está (quais colunas são exibidas). Só o tamanho e a profundidade são validados. |
| uuid | uuid | Opcional | Identificador público estável. |
| scope | enum | Opcional | A qual contêiner a visualização pertence: board ou project. Somente leitura. Um de board, project. |
| board | uuid | null | Opcional | O uuid do quadro quando scope é board; null para uma visualização de projeto. Somente leitura. |
| owner | object | Opcional | Quem é dono da visualização. Formato: {uuid, name}. |
| created_at | date-time | Opcional | Quando a linha foi criada. |
| updated_at | date-time | Opcional | Quando a linha mudou pela última vez. |
Objeto WorkflowState
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| uuid | uuid | Obrigatório | Identificador público estável. |
| name | string | Obrigatório | Nome de exibição. Máx. 48 caracteres. |
| category | enum | Obrigatório | Uma das cinco categorias fixas. Nunca muda após a criação. Um de backlog, todo, in_progress, done, canceled. |
| position | integer | Obrigatório | Posição da coluna, da esquerda para a direita. Mínimo 0. |
| color | string | Opcional | Cor de exibição (hex). |
| is_default | boolean | Opcional | Se novas tarefas entram neste estado por padrão. |
| is_archived | boolean | Opcional | Se a linha está arquivada. Arquivar é a exclusão: linhas arquivadas continuam legíveis e restauráveis. |
| task_count | integer | Opcional | Número de tarefas ativas. |
Objeto UserRef
Objeto ProjectProgress
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| total | integer | Obrigatório | Todas as tarefas contadas. |
| completed | integer | Obrigatório | Tarefas em um estado done ou canceled. |
| open | integer | Opcional | Tarefas em um estado backlog, todo ou in_progress. |
| blocked | integer | Opcional | Tarefas com um bloqueio ativo. |
| overdue | integer | Opcional | Tarefas abertas com a data de vencimento ultrapassada. |
| percent_complete | integer | Obrigatório | completed como porcentagem de total. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| count | integer | Obrigatório | Número total de linhas. |
| next | uri | Obrigatório | URL da próxima página, ou null. |
| previous | uri | Obrigatório | URL da página anterior, ou null. |
| results | array<Board> | Obrigatório | As linhas desta página. Veja Board. |
Erros
| Status | Quando |
|---|---|
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
curl -sS "https://api.dailybot.com/v1/plan/boards/" \
-H "X-API-KEY: $DAILYBOT_API_KEY"dailybot plan board list --json{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"uuid": "00000000-0000-4000-8000-000000000002",
"key": "ENG",
"name": "Engineering",
"project": {
"uuid": "00000000-0000-4000-8000-000000000001",
"name": "Platform",
"is_archived": false
},
"team": null,
"visibility": "org",
"estimate_scale": "fibonacci",
"default_view": null,
"archive_after_days": null,
"task_count": 12,
"wip_limits": {},
"is_archived": false,
"created_at": "2026-09-25T10:14:02Z",
"updated_at": "2026-09-25T10:14:02Z",
"viewer": {},
"states": []
}
]
}Testar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:read`.
- Limite de requisições: 120 leituras por minuto por ator.
- Funciona com uma sessão iniciada, um token de usuário da CLI, uma API key pessoal, ou uma key de agente ou da organização. Uma key pessoal vê o que sua pessoa vê; uma key de agente ou da organização atua como um ator de sistema e vê apenas quadros visíveis para a organização.
Criar um quadro e gerar seus cinco estados padrão
Cria um quadro dentro de um projeto e semeia seus cinco estados do fluxo de trabalho padrão. A key do quadro é o prefixo de cada chave de tarefa (ENG-142) e deve ser única (409 duplicate_board_key). Todo membro não convidado pode criá-lo (com uma sessão iniciada ou uma API key pessoal); uma key de agente ou da organização não pode. O limite de quadros do plano responde 402 task_boards_limit_reached.
Cabeçalhos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| Idempotency-Key | string | Opcional | Uma chave que você gera para esta intenção. Uma repetição com a mesma chave e o mesmo corpo retorna a primeira resposta sem um segundo efeito colateral e traz Idempotency-Replayed: true. As chaves são mantidas por 24 horas. A mesma chave com um corpo diferente é 409 idempotency_key_payload_mismatch; uma repetição enquanto a primeira chamada ainda está em execução recebe 409 idempotency_in_progress por até 120 segundos. |
| X-Dailybot-Agent-Name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa. Use-o em escritas multipart e sem corpo (DELETE, arquivar, restaurar); em escritas JSON envie o campo agent_name do corpo, que vence se os dois vierem. Codifique o valor em percent-encoding (UTF-8). Caracteres de controle são removidos; um valor em branco significa sem agente. Mais de 128 caracteres, ou um valor que não pode ser decodificado, é 400 invalid_agent_attribution (nunca é truncado). Uma chave do tipo agente, que não está ligada a uma pessoa, recebe 400 invalid_agent_attribution se enviá-lo. O selo nunca altera uma resposta de permissão. Veja Atribuição de agente. |
Corpo da requisição
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| name | string | Obrigatório | Nome de exibição. Máx. 120 caracteres. |
| key | string | Obrigatório | A chave do quadro, o prefixo das chaves das suas tarefas (por exemplo ENG). |
| project | uuid | Obrigatório | O projeto. |
| team | uuid | null | Opcional | A equipe. |
| visibility | enum | Opcional | org (todos na organização) ou members (apenas membros explícitos). Um de org, members. |
| estimate_scale | enum | Opcional | Como as estimativas são expressas neste quadro. Um de none, fibonacci, linear. |
| archive_after_days | integer | null | Opcional | Arquivar automaticamente as tarefas concluídas após este número de dias, ou null para mantê-las. Mínimo 1. |
| default_view | SavedView | null | Opcional | A visualização salva padrão do quadro, ou null. Veja SavedView. |
| agent_name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa (máx. 128 caracteres, vazio significa sem agente). Tem prioridade sobre o header X-Dailybot-Agent-Name. Veja Atribuição de agente. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | Board | Obrigatório | Um objeto Board. |
Erros
| Status | Quando |
|---|---|
| 400 | A validação falhou, ou um valor de filtro, ordenação ou `include` não foi reconhecido. O `code` da resposta indica qual. `invalid_agent_attribution` significa que o nome do agente não é válido. |
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | Tasks ainda não está habilitado para a sua organização (`plan_upgrade_required`), ou o teto de quadros do plano foi atingido (`task_boards_limit_reached`). |
| 409 | Outro quadro já usa esta chave (`duplicate_board_key`). |
curl -sS -X POST "https://api.dailybot.com/v1/plan/boards/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"name": "Engineering",
"key": "ENG",
"project": "00000000-0000-4000-8000-000000000001",
"visibility": "org",
"estimate_scale": "fibonacci"
}'dailybot plan board create --name "Engineering"Testar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:admin` — escritas em contêineres. Um membro não convidado pode chamá-lo com uma sessão iniciada ou uma API key pessoal (uma key com scopes de Plan explícitos precisa de `tasks:write`, que o cobre); uma key de agente ou da organização recebe `403 insufficient_scope`.
- Limite de requisições: 60 escritas por minuto por ator.
- Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.
Obter um quadro
Um quadro pelo uuid. Um quadro que você não pode ver responde 404, igual a um que não existe.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | Board | Obrigatório | Um objeto Board. |
Erros
| Status | Quando |
|---|---|
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 404 | Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo. |
curl -sS "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/" \
-H "X-API-KEY: $DAILYBOT_API_KEY"dailybot plan board get 00000000-0000-4000-8000-000000000002Testar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:read`.
- Limite de requisições: 120 leituras por minuto por ator.
- Funciona com uma sessão iniciada, um token de usuário da CLI, uma API key pessoal, ou uma key de agente ou da organização. Uma key pessoal vê o que sua pessoa vê; uma key de agente ou da organização atua como um ator de sistema e vê apenas quadros visíveis para a organização.
Atualizar um quadro, incluindo renomear sua chave
Renomear key retira a chave anterior e a mantém reservada, então ENG-142 digitado anos depois ainda é resolvido. Mudar visibility para members adiciona você como membro, porque um quadro somente para membros sem membros não seria visível para ninguém.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
Cabeçalhos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| Idempotency-Key | string | Opcional | Uma chave que você gera para esta intenção. Uma repetição com a mesma chave e o mesmo corpo retorna a primeira resposta sem um segundo efeito colateral e traz Idempotency-Replayed: true. As chaves são mantidas por 24 horas. A mesma chave com um corpo diferente é 409 idempotency_key_payload_mismatch; uma repetição enquanto a primeira chamada ainda está em execução recebe 409 idempotency_in_progress por até 120 segundos. |
| X-Dailybot-Agent-Name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa. Use-o em escritas multipart e sem corpo (DELETE, arquivar, restaurar); em escritas JSON envie o campo agent_name do corpo, que vence se os dois vierem. Codifique o valor em percent-encoding (UTF-8). Caracteres de controle são removidos; um valor em branco significa sem agente. Mais de 128 caracteres, ou um valor que não pode ser decodificado, é 400 invalid_agent_attribution (nunca é truncado). Uma chave do tipo agente, que não está ligada a uma pessoa, recebe 400 invalid_agent_attribution se enviá-lo. O selo nunca altera uma resposta de permissão. Veja Atribuição de agente. |
Corpo da requisição
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| name | string | Opcional | Nome de exibição. Máx. 120 caracteres. |
| key | string | Opcional | A chave do quadro, o prefixo das chaves das suas tarefas (por exemplo ENG). |
| project | uuid | Opcional | O projeto. |
| team | uuid | null | Opcional | A equipe. |
| visibility | enum | Opcional | org (todos na organização) ou members (apenas membros explícitos). Um de org, members. |
| estimate_scale | enum | Opcional | Como as estimativas são expressas neste quadro. Um de none, fibonacci, linear. |
| archive_after_days | integer | null | Opcional | Arquivar automaticamente as tarefas concluídas após este número de dias, ou null para mantê-las. Mínimo 1. |
| default_view | SavedView | null | Opcional | A visualização salva padrão do quadro, ou null. Veja SavedView. |
| agent_name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa (máx. 128 caracteres, vazio significa sem agente). Tem prioridade sobre o header X-Dailybot-Agent-Name. Veja Atribuição de agente. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | Board | Obrigatório | Um objeto Board. |
Erros
| Status | Quando |
|---|---|
| 400 | A validação falhou, ou um valor de filtro, ordenação ou `include` não foi reconhecido. O `code` da resposta indica qual. `invalid_agent_attribution` significa que o nome do agente não é válido. |
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 404 | Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo. |
| 409 | Outro quadro já usa esta chave (`duplicate_board_key`). |
curl -sS -X PATCH "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"key": "PLAT"
}'dailybot plan board update 00000000-0000-4000-8000-000000000002 --key PLATTestar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:admin` — escritas em contêineres. Um membro não convidado pode chamá-lo com uma sessão iniciada ou uma API key pessoal (uma key com scopes de Plan explícitos precisa de `tasks:write`, que o cobre); uma key de agente ou da organização recebe `403 insufficient_scope`.
- Limite de requisições: 60 escritas por minuto por ator.
- Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.
Arquivar um quadro, em cascata para as suas tarefas
Arquiva o quadro e, com ele, suas tarefas. A chave do quadro continua reservada, então nunca é reutilizada. Envie ?dry_run=true antes para ver a consequência sem arquivar; restaure o quadro com o endpoint de restauração.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
Parâmetros de consulta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| dry_run | boolean | Opcional | Mostra a consequência sem executá-la. A resposta tem o mesmo formato, {operation, dry_run, reversible, restore_path, consequence, affects}, mas nada é gravado e nenhum evento é emitido. Mostre consequence a uma pessoa antes de agir. |
Cabeçalhos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| Idempotency-Key | string | Opcional | Uma chave que você gera para esta intenção. Uma repetição com a mesma chave e o mesmo corpo retorna a primeira resposta sem um segundo efeito colateral e traz Idempotency-Replayed: true. As chaves são mantidas por 24 horas. A mesma chave com um corpo diferente é 409 idempotency_key_payload_mismatch; uma repetição enquanto a primeira chamada ainda está em execução recebe 409 idempotency_in_progress por até 120 segundos. |
| X-Dailybot-Agent-Name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa. Use-o em escritas multipart e sem corpo (DELETE, arquivar, restaurar); em escritas JSON envie o campo agent_name do corpo, que vence se os dois vierem. Codifique o valor em percent-encoding (UTF-8). Caracteres de controle são removidos; um valor em branco significa sem agente. Mais de 128 caracteres, ou um valor que não pode ser decodificado, é 400 invalid_agent_attribution (nunca é truncado). Uma chave do tipo agente, que não está ligada a uma pessoa, recebe 400 invalid_agent_attribution se enviá-lo. O selo nunca altera uma resposta de permissão. Veja Atribuição de agente. |
Objeto DryRunPreview
O que a chamada responde com ?dry_run=true: a consequência, sem executá-la. Nada é gravado e nenhum evento é emitido.
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| operation | string | Obrigatório | A operação que seria executada. |
| dry_run | boolean | Obrigatório | Sempre true. |
| reversible | boolean | Obrigatório | Se a operação pode ser desfeita. |
| restore_path | string | null | Obrigatório | O caminho que a desfaria, ou null quando não há nenhum. |
| consequence | string | Obrigatório | Uma frase para mostrar a uma pessoa antes de agir. Descreve o efeito em cascata em vez de resumi-lo. |
| affects | object | Obrigatório | O que a operação afetaria, como contagens (inteiros) por tipo. |
| would_refuse | boolean | Opcional | Somente ao arquivar um estado do fluxo de trabalho: true quando a chamada real seria recusada. |
| refusal_code | string | Opcional | Somente ao arquivar um estado do fluxo de trabalho: o código de erro com que a chamada real responderia. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | Board | DryRunPreview | Obrigatório | Um objeto Board. Com ?dry_run=true, um objeto DryRunPreview no lugar. |
Erros
| Status | Quando |
|---|---|
| 400 | O nome do agente não é válido (`invalid_agent_attribution`). |
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 403 | Autenticado, mas sem permissão: falta o scope (`insufficient_scope`, que é também o que uma key de agente ou da organização recebe em uma operação que exige uma pessoa, e o que uma key pessoal recebe quando seus scopes de Plan explícitos não cobrem o endpoint) ou é uma conta de convidado (`guest_not_allowed`). |
| 404 | Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo. |
curl -sS -X POST "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/archive/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan board archive 00000000-0000-4000-8000-000000000002 --dry-runTestar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:admin` — escritas em contêineres. Um membro não convidado pode chamá-lo com uma sessão iniciada ou uma API key pessoal (uma key com scopes de Plan explícitos precisa de `tasks:write`, que o cobre); uma key de agente ou da organização recebe `403 insufficient_scope`.
- Limite de requisições: 60 escritas por minuto por ator.
- Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.
Restaurar um quadro arquivado
O inverso de arquivar. A chave do quadro nunca foi retirada: ela continua reservada ao arquivar e restaurar. Tarefas arquivadas em cascata continuam arquivadas; restaure-as com POST …/tasks/{task_id}/restore/. Restaurar consome uma vaga do direito de criação de quadros (arquivar libera uma).
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
Cabeçalhos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| Idempotency-Key | string | Opcional | Uma chave que você gera para esta intenção. Uma repetição com a mesma chave e o mesmo corpo retorna a primeira resposta sem um segundo efeito colateral e traz Idempotency-Replayed: true. As chaves são mantidas por 24 horas. A mesma chave com um corpo diferente é 409 idempotency_key_payload_mismatch; uma repetição enquanto a primeira chamada ainda está em execução recebe 409 idempotency_in_progress por até 120 segundos. |
| X-Dailybot-Agent-Name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa. Use-o em escritas multipart e sem corpo (DELETE, arquivar, restaurar); em escritas JSON envie o campo agent_name do corpo, que vence se os dois vierem. Codifique o valor em percent-encoding (UTF-8). Caracteres de controle são removidos; um valor em branco significa sem agente. Mais de 128 caracteres, ou um valor que não pode ser decodificado, é 400 invalid_agent_attribution (nunca é truncado). Uma chave do tipo agente, que não está ligada a uma pessoa, recebe 400 invalid_agent_attribution se enviá-lo. O selo nunca altera uma resposta de permissão. Veja Atribuição de agente. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | Board | Obrigatório | Um objeto Board. |
Erros
| Status | Quando |
|---|---|
| 400 | O nome do agente não é válido (`invalid_agent_attribution`). |
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para a sua organização (`plan_upgrade_required`), ou não há vaga de quadro livre (`task_boards_limit_reached`). |
| 403 | Autenticado, mas sem permissão: falta o scope (`insufficient_scope`, que é também o que uma key de agente ou da organização recebe em uma operação que exige uma pessoa, e o que uma key pessoal recebe quando seus scopes de Plan explícitos não cobrem o endpoint) ou é uma conta de convidado (`guest_not_allowed`). |
| 404 | Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo. |
curl -sS -X POST "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/restore/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan board restore 00000000-0000-4000-8000-000000000002Testar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:admin` — escritas em contêineres. Um membro não convidado pode chamá-lo com uma sessão iniciada ou uma API key pessoal (uma key com scopes de Plan explícitos precisa de `tasks:write`, que o cobre); uma key de agente ou da organização recebe `403 insufficient_scope`.
- Limite de requisições: 60 escritas por minuto por ator.
- Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.
Registrar que quem chama abriu um quadro (recent_boards do HomePulse)
Cria ou atualiza o timestamp da última visita de quem chama a este quadro. POSTs repetidos atualizam visited_at e nunca criam linhas duplicadas. Exige uma pessoa: uma sessão iniciada ou uma API key pessoal (keys de agente e da organização são recusadas). A autorização segue o acesso de leitura ao quadro: quadros inexistentes e de outra organização compartilham o mesmo 404.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
Cabeçalhos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| X-Dailybot-Agent-Name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa. Use-o em escritas multipart e sem corpo (DELETE, arquivar, restaurar); em escritas JSON envie o campo agent_name do corpo, que vence se os dois vierem. Codifique o valor em percent-encoding (UTF-8). Caracteres de controle são removidos; um valor em branco significa sem agente. Mais de 128 caracteres, ou um valor que não pode ser decodificado, é 400 invalid_agent_attribution (nunca é truncado). Uma chave do tipo agente, que não está ligada a uma pessoa, recebe 400 invalid_agent_attribution se enviá-lo. O selo nunca altera uma resposta de permissão. Veja Atribuição de agente. |
Objeto BoardVisit
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | BoardVisit | Obrigatório | Um objeto BoardVisit. |
Erros
| Status | Quando |
|---|---|
| 400 | A validação falhou, ou um valor de filtro, ordenação ou `include` não foi reconhecido. O `code` da resposta indica qual. `invalid_agent_attribution` significa que o nome do agente não é válido. |
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 403 | Autenticado, mas sem permissão: falta o scope (`insufficient_scope`, que é também o que uma key de agente ou da organização recebe em uma operação que exige uma pessoa, e o que uma key pessoal recebe quando seus scopes de Plan explícitos não cobrem o endpoint) ou é uma conta de convidado (`guest_not_allowed`). |
| 404 | Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo. |
curl -sS -X POST "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/visit/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"{
"board": "00000000-0000-4000-8000-000000000002",
"visited_at": "2026-09-25T10:14:02Z"
}Testar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:write`.
- Limite de requisições: 60 escritas por minuto por ator.
- Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.
Listar os estados de um quadro, na ordem das colunas
Os estados do fluxo de trabalho do quadro (suas colunas), ordenados por posição. Cada um tem uma category (como in_progress) que se mantém quando o estado é renomeado. Adicione include_archived=true para ver os estados arquivados.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
Parâmetros de consulta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| include_archived | boolean | Opcional | Incluir linhas arquivadas junto com as ativas. Diferente de is_archived, que seleciona um conjunto ou o outro: include_archived=true é a união. As listas retornam linhas ativas, a menos que você opte pelo contrário. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | array<WorkflowState> | Obrigatório | Um array JSON de objetos WorkflowState. |
Erros
| Status | Quando |
|---|---|
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 404 | Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo. |
curl -sS "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/states/" \
-H "X-API-KEY: $DAILYBOT_API_KEY"dailybot plan board states 00000000-0000-4000-8000-000000000002 --include-archived[
{
"uuid": "00000000-0000-4000-8000-000000000003",
"name": "In Progress",
"category": "in_progress",
"position": 2,
"color": "#2563eb",
"is_default": false,
"is_archived": false,
"task_count": 12
}
]Testar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:read`.
- Limite de requisições: 120 leituras por minuto por ator.
- Funciona com uma sessão iniciada, um token de usuário da CLI, uma API key pessoal, ou uma key de agente ou da organização. Uma key pessoal vê o que sua pessoa vê; uma key de agente ou da organização atua como um ator de sistema e vê apenas quadros visíveis para a organização.
Adicionar um estado a um quadro
category é um de cinco valores fixos e nunca muda após a criação; name é livre e pode ser renomeado. A categoria é o que responde "isto está concluído?".
position insere naquele lugar, com base 1 entre as colunas ativas: a coluna que ocupava a posição e todas as seguintes se deslocam para a direita. Uma posição além do fim vai para o fim.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
Cabeçalhos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| Idempotency-Key | string | Opcional | Uma chave que você gera para esta intenção. Uma repetição com a mesma chave e o mesmo corpo retorna a primeira resposta sem um segundo efeito colateral e traz Idempotency-Replayed: true. As chaves são mantidas por 24 horas. A mesma chave com um corpo diferente é 409 idempotency_key_payload_mismatch; uma repetição enquanto a primeira chamada ainda está em execução recebe 409 idempotency_in_progress por até 120 segundos. |
| X-Dailybot-Agent-Name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa. Use-o em escritas multipart e sem corpo (DELETE, arquivar, restaurar); em escritas JSON envie o campo agent_name do corpo, que vence se os dois vierem. Codifique o valor em percent-encoding (UTF-8). Caracteres de controle são removidos; um valor em branco significa sem agente. Mais de 128 caracteres, ou um valor que não pode ser decodificado, é 400 invalid_agent_attribution (nunca é truncado). Uma chave do tipo agente, que não está ligada a uma pessoa, recebe 400 invalid_agent_attribution se enviá-lo. O selo nunca altera uma resposta de permissão. Veja Atribuição de agente. |
Corpo da requisição
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| name | string | Obrigatório | Nome de exibição. Máx. 48 caracteres. |
| category | enum | Obrigatório | Uma das cinco categorias fixas. Nunca muda após a criação. Um de backlog, todo, in_progress, done, canceled. |
| position | integer | Opcional | Posição da coluna entre as colunas ativas, a partir de 1, da esquerda para a direita. 0 e 1 significam a primeira coluna, e um valor além do fim fica por último. Omita-o para adicionar o novo estado no fim. Mínimo 0. |
| color | string | Opcional | Cor de exibição (hex). |
| is_default | boolean | Opcional | Se novas tarefas entram neste estado por padrão. |
| agent_name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa (máx. 128 caracteres, vazio significa sem agente). Tem prioridade sobre o header X-Dailybot-Agent-Name. Veja Atribuição de agente. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | WorkflowState | Obrigatório | Um objeto WorkflowState. |
Erros
| Status | Quando |
|---|---|
| 400 | A validação falhou, ou um valor de filtro, ordenação ou `include` não foi reconhecido. O `code` da resposta indica qual. `invalid_agent_attribution` significa que o nome do agente não é válido. |
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 404 | Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo. |
| 409 | Conflito. O `code` da resposta indica qual (por exemplo, `version_conflict`). |
curl -sS -X POST "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/states/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "In review",
"category": "in_progress",
"position": 3
}'dailybot plan board state create 00000000-0000-4000-8000-000000000002 -n "In review" --category in_progress --position 3{
"uuid": "00000000-0000-4000-8000-000000000003",
"name": "In Progress",
"category": "in_progress",
"position": 2,
"color": "#2563eb",
"is_default": false,
"is_archived": false,
"task_count": 12
}Testar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:admin` — escritas em contêineres. Um membro não convidado pode chamá-lo com uma sessão iniciada ou uma API key pessoal (uma key com scopes de Plan explícitos precisa de `tasks:write`, que o cobre); uma key de agente ou da organização recebe `403 insufficient_scope`.
- Limite de requisições: 60 escritas por minuto por ator.
- Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.
Renomear, mudar a cor ou reordenar um estado
Os campos permitidos são apenas name, color e position. Campos desconhecidos são recusados com 400 (nunca ignorados silenciosamente). category não pode mudar depois da criação.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
| state_id | string | Obrigatório | O uuid do estado. |
Cabeçalhos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| X-Dailybot-Agent-Name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa. Use-o em escritas multipart e sem corpo (DELETE, arquivar, restaurar); em escritas JSON envie o campo agent_name do corpo, que vence se os dois vierem. Codifique o valor em percent-encoding (UTF-8). Caracteres de controle são removidos; um valor em branco significa sem agente. Mais de 128 caracteres, ou um valor que não pode ser decodificado, é 400 invalid_agent_attribution (nunca é truncado). Uma chave do tipo agente, que não está ligada a uma pessoa, recebe 400 invalid_agent_attribution se enviá-lo. O selo nunca altera uma resposta de permissão. Veja Atribuição de agente. |
Corpo da requisição
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| name | string | Opcional | Nome de exibição. Máx. 48 caracteres. |
| position | integer | Opcional | Posição da coluna entre as colunas ativas, a partir de 1, da esquerda para a direita. 0 e 1 significam a primeira coluna, e um valor além do fim fica por último. Mínimo 0. |
| color | string | Opcional | Cor de exibição (hex). |
| agent_name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa (máx. 128 caracteres, vazio significa sem agente). Tem prioridade sobre o header X-Dailybot-Agent-Name. Veja Atribuição de agente. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | WorkflowState | Obrigatório | Um objeto WorkflowState. |
Erros
| Status | Quando |
|---|---|
| 400 | A validação falhou, ou um valor de filtro, ordenação ou `include` não foi reconhecido. O `code` da resposta indica qual. `invalid_agent_attribution` significa que o nome do agente não é válido. |
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 404 | Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo. |
curl -sS -X PATCH "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/states/00000000-0000-4000-8000-000000000003/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Code review"
}'dailybot plan board state update 00000000-0000-4000-8000-000000000002 00000000-0000-4000-8000-000000000003 --name "Code review"Testar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:admin` — escritas em contêineres. Um membro não convidado pode chamá-lo com uma sessão iniciada ou uma API key pessoal (uma key com scopes de Plan explícitos precisa de `tasks:write`, que o cobre); uma key de agente ou da organização recebe `403 insufficient_scope`.
- Limite de requisições: 60 escritas por minuto por ator.
- Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.
Aposentar uma coluna
Recusado com 409 state_in_use enquanto houver tarefas ativas na coluna, a menos que o corpo indique migrate_to — outro estado ativo no mesmo quadro que recebe todos os cards em uma única atualização em massa antes que a coluna seja arquivada.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
| state_id | string | Obrigatório | O uuid do estado. |
Parâmetros de consulta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| dry_run | boolean | Opcional | Mostra a consequência sem executá-la. A resposta tem o mesmo formato, {operation, dry_run, reversible, restore_path, consequence, affects}, mas nada é gravado e nenhum evento é emitido. Mostre consequence a uma pessoa antes de agir. |
Cabeçalhos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| X-Dailybot-Agent-Name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa. Use-o em escritas multipart e sem corpo (DELETE, arquivar, restaurar); em escritas JSON envie o campo agent_name do corpo, que vence se os dois vierem. Codifique o valor em percent-encoding (UTF-8). Caracteres de controle são removidos; um valor em branco significa sem agente. Mais de 128 caracteres, ou um valor que não pode ser decodificado, é 400 invalid_agent_attribution (nunca é truncado). Uma chave do tipo agente, que não está ligada a uma pessoa, recebe 400 invalid_agent_attribution se enviá-lo. O selo nunca altera uma resposta de permissão. Veja Atribuição de agente. |
Corpo da requisição
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| migrate_to | uuid | Opcional | Outro estado ativo no mesmo quadro que recebe todas as tarefas da coluna antes que ela seja arquivada. |
| agent_name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa (máx. 128 caracteres, vazio significa sem agente). Tem prioridade sobre o header X-Dailybot-Agent-Name. Veja Atribuição de agente. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | WorkflowState | DryRunPreview | Obrigatório | Um objeto WorkflowState. Com ?dry_run=true, um objeto DryRunPreview no lugar. |
Erros
| Status | Quando |
|---|---|
| 400 | O nome do agente não é válido (`invalid_agent_attribution`). |
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 404 | Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo. |
| 409 | Ainda há tarefas ativas na coluna (`state_in_use`). Envie `migrate_to` para movê-las primeiro. |
curl -sS -X POST "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/states/00000000-0000-4000-8000-000000000003/archive/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"migrate_to": "00000000-0000-4000-8000-000000000004"
}'dailybot plan board state archive 00000000-0000-4000-8000-000000000002 00000000-0000-4000-8000-000000000003 --migrate-to 00000000-0000-4000-8000-000000000004 --yesTestar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:admin` — escritas em contêineres. Um membro não convidado pode chamá-lo com uma sessão iniciada ou uma API key pessoal (uma key com scopes de Plan explícitos precisa de `tasks:write`, que o cobre); uma key de agente ou da organização recebe `403 insufficient_scope`.
- Limite de requisições: 60 escritas por minuto por ator.
- Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.
Restaurar uma coluna retirada
O inverso de arquivar. A coluna volta depois das colunas ativas, e um segundo POST em uma coluna ativa é um no-op 200. Leia-a com GET …/states/?include_archived=true enquanto ainda estiver retirada.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
| state_id | string | Obrigatório | O uuid do estado. |
Cabeçalhos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| X-Dailybot-Agent-Name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa. Use-o em escritas multipart e sem corpo (DELETE, arquivar, restaurar); em escritas JSON envie o campo agent_name do corpo, que vence se os dois vierem. Codifique o valor em percent-encoding (UTF-8). Caracteres de controle são removidos; um valor em branco significa sem agente. Mais de 128 caracteres, ou um valor que não pode ser decodificado, é 400 invalid_agent_attribution (nunca é truncado). Uma chave do tipo agente, que não está ligada a uma pessoa, recebe 400 invalid_agent_attribution se enviá-lo. O selo nunca altera uma resposta de permissão. Veja Atribuição de agente. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | WorkflowState | Obrigatório | Um objeto WorkflowState. |
Erros
| Status | Quando |
|---|---|
| 400 | O nome do agente não é válido (`invalid_agent_attribution`). |
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 403 | Autenticado, mas sem permissão: falta o scope (`insufficient_scope`, que é também o que uma key de agente ou da organização recebe em uma operação que exige uma pessoa, e o que uma key pessoal recebe quando seus scopes de Plan explícitos não cobrem o endpoint) ou é uma conta de convidado (`guest_not_allowed`). |
| 404 | Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo. |
curl -sS -X POST "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/states/00000000-0000-4000-8000-000000000003/restore/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan board state restore 00000000-0000-4000-8000-000000000002 00000000-0000-4000-8000-000000000003Testar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:admin` — escritas em contêineres. Um membro não convidado pode chamá-lo com uma sessão iniciada ou uma API key pessoal (uma key com scopes de Plan explícitos precisa de `tasks:write`, que o cobre); uma key de agente ou da organização recebe `403 insufficient_scope`.
- Limite de requisições: 60 escritas por minuto por ator.
- Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.
Reordenar todas as colunas ativas de um quadro em uma chamada
O corpo { "order": [state_uuid, …] } deve listar todas as colunas ativas do quadro exatamente uma vez, na ordem desejada da esquerda para a direita. Listas parciais, uuids desconhecidos e duplicados retornam 400 states_reorder_invalid. Emite state.reordered para cada coluna. Para definir uma visualização padrão do quadro (ou removê-la), use PATCH /boards/{board_id}/ com default_view; não há um endpoint separado para tornar padrão.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
Cabeçalhos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| X-Dailybot-Agent-Name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa. Use-o em escritas multipart e sem corpo (DELETE, arquivar, restaurar); em escritas JSON envie o campo agent_name do corpo, que vence se os dois vierem. Codifique o valor em percent-encoding (UTF-8). Caracteres de controle são removidos; um valor em branco significa sem agente. Mais de 128 caracteres, ou um valor que não pode ser decodificado, é 400 invalid_agent_attribution (nunca é truncado). Uma chave do tipo agente, que não está ligada a uma pessoa, recebe 400 invalid_agent_attribution se enviá-lo. O selo nunca altera uma resposta de permissão. Veja Atribuição de agente. |
Corpo da requisição
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| order | array | Obrigatório | O uuid de cada coluna ativa exatamente uma vez, da esquerda para a direita. Itens: uuid. |
| agent_name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa (máx. 128 caracteres, vazio significa sem agente). Tem prioridade sobre o header X-Dailybot-Agent-Name. Veja Atribuição de agente. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | array<WorkflowState> | Obrigatório | Um array JSON de objetos WorkflowState. |
Erros
| Status | Quando |
|---|---|
| 400 | A validação falhou, ou um valor de filtro, ordenação ou `include` não foi reconhecido. O `code` da resposta indica qual. `invalid_agent_attribution` significa que o nome do agente não é válido. |
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 404 | Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo. |
curl -sS -X POST "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/states/reorder/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"order": [
"00000000-0000-4000-8000-000000000003",
"00000000-0000-4000-8000-000000000004"
]
}'dailybot plan board state reorder 00000000-0000-4000-8000-000000000002 00000000-0000-4000-8000-000000000003 00000000-0000-4000-8000-000000000004Testar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:admin` — escritas em contêineres. Um membro não convidado pode chamá-lo com uma sessão iniciada ou uma API key pessoal (uma key com scopes de Plan explícitos precisa de `tasks:write`, que o cobre); uma key de agente ou da organização recebe `403 insufficient_scope`.
- Limite de requisições: 60 escritas por minuto por ator.
- Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.
O quadro inteiro — estados e suas tarefas — em uma única ida e volta
Uma chamada renderiza um quadro: uma entrada em groups por coluna, na ordem das colunas, cada uma com suas primeiras tarefas em ordem de rank, o task_count real da coluna e has_more. Pagine o restante de uma coluna com GET /v1/plan/tasks/?board=…&state=….
Guarde delta_cursor e passe a usar o feed de mudanças em todas as leituras seguintes. Responde a If-None-Match com 304. …/snapshot/ é um alias com a mesma resposta. Parâmetros de consulta desconhecidos e valores de filtro inválidos resultam em 400 invalid_filter_value.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
Parâmetros de consulta
Filtros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| group_by | string | Opcional | Agrupar o snapshot por outra dimensão em vez do estado. O agrupamento existe apenas no snapshot: agrupar uma lista paginada bifurcaria seu envelope. |
| tasks_per_state | integer | Opcional | Quantas tarefas incluir por coluna. Máximo de 50, mais restrito que o habitual de 100 porque esta leitura traz etiquetas para cada card. |
| owner | array | Opcional | Um uuid de usuário, me ou unowned. Repetível; os valores são combinados com OR, incluindo os tokens: owner=me&owner=unowned retorna suas tarefas e as que não têm responsável. me com uma key de agente ou da organização é 400 actor_required. |
| label | array | Opcional | Uuids de etiquetas: somente v4, no máximo 50, igual ao limite atual do filtro de etiquetas compartilhado. Um valor que não seja v4 é 400 invalid_label_filter. |
| priority | array | Opcional | 1=urgente, 2=alta, 3=média, 4=baixa, 5=nenhuma. Repetível. |
| blocked | boolean | Opcional | Derivado das relações, não de um status. Esta é a consulta que o produto responde com um vínculo em vez de um estado.
blocked=true significa um bloqueador ativo: uma relação blocks cuja tarefa de origem não está arquivada nem em uma categoria terminal. Um bloqueador que está ele mesmo done ou canceled não bloqueia nada e não corresponde.
Independente do ciclo de vida. Uma tarefa concluída ainda pode ter um bloqueador ativo, então blocked=true sozinho também retorna linhas terminais. O trabalho sobre o qual uma pessoa pode agir é blocked=true&state=open: essa combinação é o que reproduz o bloco blocked em GET /v1/plan/pulse/. |
| search | string | Opcional | Corresponde ao título e à chave. Mais de 256 caracteres é 400 search_query_too_long, sem truncamento. q é um alias. |
Datas
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| due_before | string | Opcional | Inclusivo. Sozinho, significa atrasada ou com prazo até essa data - não exclui trabalho que já foi concluído.
Atrasado se escreve due_before=<today>&state=open. Essa combinação é a forma suportada, é o que reproduz o bloco overdue em GET /v1/plan/pulse/, e deliberadamente não existe o atalho state=overdue: state é uma dimensão de ciclo de vida e atraso é uma dimensão de data, então uma única forma evita que as duas divirjam. state=overdue responde 400 invalid_filter_value, o que diz respeito a essa forma de escrever e não à capacidade. |
| due_after | string | Opcional | Inclusivo. |
Cabeçalhos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| If-None-Match | string | Opcional | O ETag da sua leitura anterior. Uma correspondência responde 304. |
Objeto BoardSnapshot
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board | Board | Obrigatório | O quadro. Veja Board. |
| generated_at | date-time | Obrigatório | Quando a resposta foi calculada. |
| delta_cursor | date-time | Obrigatório | Passe-o como updated_since para o feed de mudanças. |
| group_by | string | Opcional | A dimensão de agrupamento. |
| groups | array | Obrigatório | Uma entrada por coluna (ou grupo), em ordem. Sempre presentes: key, task_count, has_more, tasks. Itens: {key: string, name: string, category: string|null, position: integer|null, color: string|null, task_count: integer, has_more: boolean, tasks: array}. |
| viewer | object | Opcional | O que você pode fazer com esta linha. Formato: {is_member, can_see_content, can_manage} (all required). |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | BoardSnapshot | Obrigatório | Um objeto BoardSnapshot. |
Erros
| Status | Quando |
|---|---|
| 304 | Sem mudanças: o ETag que você enviou em `If-None-Match` ainda corresponde. |
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 404 | Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo. |
curl -sS "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/board/?tasks_per_state=25" \
-H "X-API-KEY: $DAILYBOT_API_KEY"dailybot plan board snapshot 00000000-0000-4000-8000-000000000002 --json{
"board": {
"uuid": "00000000-0000-4000-8000-000000000100",
"key": "ENG",
"name": "Engineering",
"visibility": "org",
"estimate_scale": "fibonacci",
"project": {
"uuid": "00000000-0000-4000-8000-000000000101",
"name": "Platform"
}
},
"generated_at": "2026-08-29T10:14:02.113954Z",
"delta_cursor": "2026-08-29T10:14:02.113954Z",
"group_by": "state",
"groups": [
{
"key": "00000000-0000-4000-8000-000000000102",
"name": "In Progress",
"category": "in_progress",
"position": 2,
"color": "#f59e0b",
"task_count": 137,
"has_more": true,
"tasks": [
{
"uuid": "00000000-0000-4000-8000-000000000103",
"key": "ENG-142",
"title": "Ship the delta feed",
"state": {
"uuid": "00000000-0000-4000-8000-000000000102",
"name": "In Progress",
"category": "in_progress"
},
"priority": 2,
"estimate": 3,
"rank": "aU",
"version": 7,
"open_blocker_count": 1,
"participant_count": 3,
"owner": {
"uuid": "00000000-0000-4000-8000-000000000104",
"name": "Ada L."
},
"executor": null,
"due_date": "2026-09-04",
"labels": [
{
"uuid": "00000000-0000-4000-8000-000000000105",
"name": "backend",
"color": "#2563eb"
}
],
"is_archived": false,
"updated_at": "2026-08-29T10:12:44.201113Z"
}
]
}
]
}Testar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:read`.
- Limite de requisições: 120 leituras por minuto por ator.
- Funciona com uma sessão iniciada, um token de usuário da CLI, uma API key pessoal, ou uma key de agente ou da organização. Uma key pessoal vê o que sua pessoa vê; uma key de agente ou da organização atua como um ator de sistema e vê apenas quadros visíveis para a organização.
O que mudou neste quadro desde um timestamp. NÃO é paginação
Um feed de mudanças, não uma página: sem count, next ou previous. Envie o cursor da sua resposta anterior (ou o delta_cursor do snapshot) literalmente como updated_since; nunca o calcule a partir do seu próprio relógio.
A entrega é pelo menos uma vez, então uma linha gravada no mesmo instante do seu cursor é enviada de novo em vez de se perder. As entradas são compactadas em uma por tarefa (a linha atual prevalece). states é null a menos que uma coluna tenha sido criada, renomeada, reordenada ou arquivada; quando vier preenchido, substitua toda a sua lista de colunas.
Consulte de novo após poll_after_seconds (15 s, dobrando até 120 s enquanto o quadro está parado, reiniciando a cada mudança). Pause enquanto a página estiver oculta e atualize quando ela voltar a ficar visível. Se truncated for true, consulte de novo imediatamente. Cursores com mais de 7 dias retornam 400 delta_window_expired: leia o snapshot de novo. Polling é o transporte da v1.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
Parâmetros de consulta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| updated_since | string | Obrigatório | O cursor do seu delta anterior, ou o delta_cursor de um snapshot do quadro. Valores com mais de 7 dias são recusados com delta_window_expired. since é aceito como alias obsoleto para clientes antigos; envie updated_since. |
| limit | integer | Opcional | Máximo de entradas em changed. |
Objeto BoardDelta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| since | date-time | Obrigatório | O updated_since que você enviou. |
| cursor | date-time | Obrigatório | Envie-o como updated_since na sua próxima consulta. |
| changed | array<Task> | Obrigatório | Tarefas que mudaram, uma entrada por tarefa. Veja Task. |
| removed | array | Obrigatório | Tarefas que saíram do quadro, com um reason como archived. Itens: {uuid, key, reason}. |
| states | array | null | Opcional | Os estados do quadro, na ordem das colunas. |
| truncated | boolean | Obrigatório | true quando há mais mudanças esperando: consulte de novo imediatamente. |
| poll_after_seconds | integer | Obrigatório | Quando consultar de novo, sugerido pelo servidor (15 a 120 segundos). Uma sugestão, não é imposta. De 15 a 120. |
Objeto Task
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| uuid | uuid | Obrigatório | Identificador público estável. |
| key | string | Obrigatório | Chave legível KEY-n, por exemplo ENG-142. Chaves aposentadas continuam resolvendo. |
| title | string | Obrigatório | O título da tarefa. Máx. 255 caracteres. |
| description | string | null | Opcional | Descrição livre. |
| board | uuid | Opcional | O quadro. |
| state | WorkflowState | Obrigatório | O estado da tarefa (sua coluna). Veja WorkflowState. |
| priority | integer | Opcional | 1 urgente, 2 alta, 3 média, 4 baixa, 5 nenhuma. De 1 a 5. |
| estimate | integer | null | Opcional | Estimativa na escala do quadro. |
| owner | UserRef | null | Opcional | A pessoa responsável pela tarefa. Veja UserRef. |
| executor | ActorRef | null | Opcional | O ator que faz o trabalho, quando diferente do responsável (por exemplo, um agente). Veja ActorRef. |
| executors | object[] | Opcional | Cada agente que executou uma escrita nesta tarefa em nome de alguém, do mais recente ao mais antigo: {uuid, name, username, avatar, first_at, last_at}. É separado de executor, que continua sendo quem está com a bola agora. Somente no detalhe da tarefa e nas respostas de escrita de uma única tarefa; não vem nas linhas de listas. |
| participant_count | integer | Opcional | Número de participantes. |
| start_date | date | null | Opcional | Data de início planejada. |
| due_date | date | null | Opcional | Data de vencimento. |
| milestone | null | {uuid, name, date} | Opcional | O marco para o qual esta tarefa conta. Todos os campos estão sempre presentes. |
| parent_task | null | {uuid, key, title} | Opcional | A tarefa pai, no caso de uma subtarefa. Apenas um nível de aninhamento. Todos os campos estão sempre presentes. |
| subtask_count | integer | Opcional | Número de subtarefas. |
| subtask_done_count | integer | Opcional | Número de subtarefas concluídas. |
| attachment_count | integer | Opcional | Número de anexos. |
| open_blocker_count | integer | Opcional | Número de bloqueios ativos. |
| labels | array<Label> | Opcional | Etiquetas da organização na tarefa. Veja Label. |
| rank | string | null | Opcional | Ordem opaca dentro da coluna. Nunca a calcule: mova com after / before. |
| blocked | boolean | Opcional | Tarefas com um bloqueio ativo. |
| blocked_since | date-time | null | Opcional | Quando a tarefa ficou bloqueada. |
| completed_at | date-time | null | Opcional | Quando foi concluído, ou null. |
| is_archived | boolean | Obrigatório | Se a linha está arquivada. Arquivar é a exclusão: linhas arquivadas continuam legíveis e restauráveis. |
| subscribed | boolean | Opcional | Se você observa esta tarefa. |
| version | integer | Obrigatório | Incrementa a cada escrita. Envie-o de volta como If-Match para recusar uma atualização desatualizada. |
| created_by | ActorRef | null | Opcional | Quem criou a linha. Veja ActorRef. |
| created_at | date-time | Opcional | Quando a linha foi criada. |
| updated_at | date-time | Opcional | Quando a linha mudou pela última vez. |
Objeto ActorRef
Objeto Label
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | BoardDelta | Obrigatório | Um objeto BoardDelta. |
Erros
| Status | Quando |
|---|---|
| 400 | O cursor tem mais de 7 dias (`delta_window_expired`): leia o snapshot do quadro de novo. Também retornado para um `updated_since` malformado. |
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 404 | Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo. |
curl -sS "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/delta/?updated_since=2026-09-25T10:14:02.113954Z" \
-H "X-API-KEY: $DAILYBOT_API_KEY"dailybot plan tasks changes 00000000-0000-4000-8000-000000000002 --updated-since 2026-09-25T10:14:02.113954Z --json{
"since": "2026-08-29T10:14:02.113954Z",
"cursor": "2026-08-29T10:19:44.902311Z",
"changed": [
{
"uuid": "00000000-0000-4000-8000-000000000100",
"key": "ENG-142",
"title": "Ship the delta feed",
"state": {
"uuid": "00000000-0000-4000-8000-000000000101",
"name": "Done",
"category": "done"
},
"priority": 2,
"rank": "b0",
"version": 9,
"is_archived": false,
"updated_at": "2026-08-29T10:19:44.902311Z"
}
],
"removed": [
{
"uuid": "00000000-0000-4000-8000-000000000102",
"key": "ENG-77",
"reason": "archived"
}
],
"states": null,
"truncated": false,
"poll_after_seconds": 15
}Testar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:read`.
- Limite de requisições: 240 consultas ao feed de mudanças por minuto por ator.
- Funciona com uma sessão iniciada, um token de usuário da CLI, uma API key pessoal, ou uma key de agente ou da organização. Uma key pessoal vê o que sua pessoa vê; uma key de agente ou da organização atua como um ator de sistema e vê apenas quadros visíveis para a organização.
As visualizações salvas de quem chama para este quadro
Suas visualizações salvas para este quadro. As visualizações são pessoais. Exige uma pessoa: keys de agente e da organização são recusadas; uma API key pessoal funciona.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| count | integer | Obrigatório | Número total de linhas. |
| next | uri | Obrigatório | URL da próxima página, ou null. |
| previous | uri | Obrigatório | URL da página anterior, ou null. |
| results | array<SavedView> | Obrigatório | As linhas desta página. Veja SavedView. |
Erros
| Status | Quando |
|---|---|
| 400 | A validação falhou, ou um valor de filtro, ordenação ou `include` não foi reconhecido. O `code` da resposta indica qual. |
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 403 | Autenticado, mas sem permissão: falta o scope (`insufficient_scope`, que é também o que uma key de agente ou da organização recebe em uma operação que exige uma pessoa, e o que uma key pessoal recebe quando seus scopes de Plan explícitos não cobrem o endpoint) ou é uma conta de convidado (`guest_not_allowed`). |
curl -sS "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/views/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan board views 00000000-0000-4000-8000-000000000002 --etag{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"name": "My open work",
"view_mode": "list",
"group_by": "state",
"sort": "-updated_at",
"filters": {},
"schema_version": 1,
"visibility": "personal",
"collapsed": {},
"columns": {}
}
]
}Testar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:read`.
- Limite de requisições: 120 leituras por minuto por ator.
- Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.
Substituir as visualizações salvas de quem chama para este quadro
Substitui todo o seu array de visualizações salvas, e é por isso que If-Match é obrigatório: sem ele, dois salvamentos simultâneos descartariam silenciosamente a visualização um do outro.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
Cabeçalhos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| If-Match | string | Obrigatório | O ETag que você recebeu de GET .../views/, entre aspas. Obrigatório, porque este PUT substitui o array inteiro: sem uma precondição, dois salvamentos simultâneos descartam silenciosamente a visualização um do outro. Um validador desatualizado é 412 precondition_failed; um ausente é 428 precondition_required. |
| X-Dailybot-Agent-Name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa. Use-o em escritas multipart e sem corpo (DELETE, arquivar, restaurar); em escritas JSON envie o campo agent_name do corpo, que vence se os dois vierem. Codifique o valor em percent-encoding (UTF-8). Caracteres de controle são removidos; um valor em branco significa sem agente. Mais de 128 caracteres, ou um valor que não pode ser decodificado, é 400 invalid_agent_attribution (nunca é truncado). Uma chave do tipo agente, que não está ligada a uma pessoa, recebe 400 invalid_agent_attribution se enviá-lo. O selo nunca altera uma resposta de permissão. Veja Atribuição de agente. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | array<SavedView> | Obrigatório | Um array JSON de objetos SavedView. |
Erros
| Status | Quando |
|---|---|
| 400 | A validação falhou, ou um valor de filtro, ordenação ou `include` não foi reconhecido. O `code` da resposta indica qual. `invalid_agent_attribution` significa que o nome do agente não é válido. |
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 403 | Autenticado, mas sem permissão: falta o scope (`insufficient_scope`, que é também o que uma key de agente ou da organização recebe em uma operação que exige uma pessoa, e o que uma key pessoal recebe quando seus scopes de Plan explícitos não cobrem o endpoint) ou é uma conta de convidado (`guest_not_allowed`). |
| 404 | Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo. |
| 412 | O validador `If-Match` está desatualizado (`precondition_failed`). Leia de novo e tente outra vez. |
| 428 | `If-Match` é obrigatório (`precondition_required`). |
curl -sS -X PUT "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/views/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-H "If-Match: $VIEWS_ETAG" \
-H "Content-Type: application/json" \
-d '[
{
"name": "My open work",
"view_mode": "board",
"group_by": "state",
"sort": "-updated_at",
"filters": {
"owner": [
"me"
],
"state": [
"open"
]
}
}
]'dailybot plan board view save 00000000-0000-4000-8000-000000000002 -f views.json --fetch-etag[
{
"name": "My open work",
"view_mode": "list",
"group_by": "state",
"sort": "-updated_at",
"filters": {},
"schema_version": 1,
"visibility": "personal",
"collapsed": {},
"columns": {}
}
]Testar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:write`.
- Limite de requisições: 60 escritas por minuto por ator.
- Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.
Pesquisar pessoas que podem ser mencionadas em um quadro
A lista para os seletores de responsável e participantes, com busca por q (nome, handle ou id externo, nunca um endereço de e-mail completo). Não use a lista de membros para os seletores: ela só mostra permissões explícitas e costuma estar vazia em quadros visíveis para toda a organização.
Pessoas que não podem ver o quadro nunca aparecem, mesmo quando correspondem a q, assim como a regra que as recusa como responsáveis ou participantes (participant_cannot_access_board). limit (25 por padrão) e offset percorrem toda a lista em uma ordem estável.
As linhas são {uuid, name, handle, avatar_url, has_photo, kind}, sem e-mail. avatar_url e has_photo significam o mesmo que no responsável de uma tarefa: quando has_photo é false, mostre as iniciais; em uma linha agent eles são null e false. Identifique os chips de menção pelo uuid, nunca pelo handle: o handle não é único dentro de uma organização, então mostre name para diferenciar. kinds=agent lista os agentes do espaço de trabalho, mas ainda não é possível mencionar um agente; não monte uma menção a partir de uma linha agent.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
Parâmetros de consulta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| q | string | Opcional | Corresponde ao nome, ao handle ou a um id externo, nunca a um endereço de e-mail completo. |
| limit | integer | Opcional | Tamanho da página. Limitado ao máximo que a resposta devolve; valores inválidos são ignorados em vez de recusados, porque este é um campo de autocomplete e um 400 aqui quebraria o seletor com uma tecla digitada sem querer. |
| offset | integer | Opcional | Linhas a pular, sobre a ordenação determinística full_name, id, para que o limite de uma página não possa omitir nem repetir ninguém. |
| kinds | string | Opcional | user, agent separados por vírgula. Ausente significa somente usuários, então quem chama sem pedir agentes vê exatamente o que via antes. Um token não reconhecido é descartado, não recusado. |
Objeto MentionableList
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| limit | integer | Obrigatório | Tamanho de página aplicado. |
| results | array<Mentionable> | Obrigatório | As linhas desta página. Veja Mentionable. |
Objeto Mentionable
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| uuid | uuid | Obrigatório | O uuid da pessoa. Identifique os chips de menção por ele. |
| name | string | Obrigatório | Nome de exibição. Mostre-o para diferenciar pessoas com o mesmo handle. |
| handle | string | null | Obrigatório | Handle, se a pessoa tiver um. Não é único dentro de uma organização. |
| avatar_url | string | null | Obrigatório | URL da imagem de avatar, igual à do responsável de uma tarefa. null em uma linha de agente. |
| has_photo | boolean | Obrigatório | false significa que não há foto: mostre as iniciais. Sempre false em uma linha de agente. |
| kind | enum | Obrigatório | Se a linha é uma pessoa ou um agente. Um de user, agent. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | MentionableList | Obrigatório | Um objeto MentionableList. |
Erros
| Status | Quando |
|---|---|
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 403 | Autenticado, mas sem permissão: falta o scope (`insufficient_scope`, que é também o que uma key de agente ou da organização recebe em uma operação que exige uma pessoa, e o que uma key pessoal recebe quando seus scopes de Plan explícitos não cobrem o endpoint) ou é uma conta de convidado (`guest_not_allowed`). |
| 404 | Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo. |
curl -sS "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/mentionables/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan board mentionables 00000000-0000-4000-8000-000000000002 -q ada{
"limit": 25,
"results": [
{
"uuid": "00000000-0000-4000-8000-00000000000c",
"name": "Ada L.",
"handle": "ada",
"avatar_url": "https://example.com/avatars/ada.png",
"has_photo": true,
"kind": "user"
},
{
"uuid": "00000000-0000-4000-8000-000000000012",
"name": "Grace H.",
"handle": null,
"avatar_url": null,
"has_photo": false,
"kind": "user"
}
]
}Testar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:read`.
- Limite de requisições: 120 leituras por minuto por ator.
- Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.
Membros de um quadro
Somente concessões explícitas de associação, nunca a lista completa da organização, por isso quadros visíveis para a organização muitas vezes retornam uma lista vazia. Use-a para gerenciar quem pode ver um quadro somente para membros; para seletores, use …/mentionables/. Um administrador da organização pode ler esta lista sem passar a ver as tarefas do quadro.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
Parâmetros de consulta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| page | integer | Opcional | Número da página, começando em 1. |
| page_size | integer | Opcional | Linhas por página. Padrão 50, máximo 100. Valores fora do intervalo são ajustados, nunca rejeitados: pedir 500 retorna 100. |
Objeto BoardMember
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| subject_type | enum | Obrigatório | Um de user, team. |
| user_uuid | uuid | null | Opcional | O uuid de usuário da pessoa. |
| uuid | uuid | null | Opcional | Identificador público estável. |
| full_name | string | Opcional | — |
| name | string | Opcional | Nome de exibição. |
| role | enum | null | Opcional | Papel do participante. Um de admin, member, guest. |
| team_uuid | uuid | null | Opcional | O uuid de um time, em vez de user_uuid. Cria uma única permissão de time viva: quem entrar no time depois fica dentro, e quem sair fica fora. |
| team_name | string | Opcional | — |
| added_at | date-time | Obrigatório | — |
| added_by_uuid | uuid | null | Opcional | — |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| count | integer | Obrigatório | Número total de linhas. |
| next | uri | Obrigatório | URL da próxima página, ou null. |
| previous | uri | Obrigatório | URL da página anterior, ou null. |
| results | array<BoardMember> | Obrigatório | As linhas desta página. Veja BoardMember. |
Erros
| Status | Quando |
|---|---|
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 404 | Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo. |
curl -sS "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/members/" \
-H "X-API-KEY: $DAILYBOT_API_KEY"dailybot plan board members 00000000-0000-4000-8000-000000000002{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"subject_type": "user",
"user_uuid": "00000000-0000-4000-8000-00000000000c",
"uuid": "00000000-0000-4000-8000-00000000000c",
"full_name": "Ada L.",
"name": "Ada L.",
"role": "admin",
"team_uuid": null,
"team_name": "example",
"added_at": "2026-09-25T10:14:02Z",
"added_by_uuid": null
}
]
}Testar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:read`.
- Limite de requisições: 120 leituras por minuto por ator.
- Funciona com uma sessão iniciada, um token de usuário da CLI, uma API key pessoal, ou uma key de agente ou da organização. Uma key pessoal vê o que sua pessoa vê; uma key de agente ou da organização atua como um ator de sistema e vê apenas quadros visíveis para a organização.
Adicionar um membro a um quadro
A forma deliberada e visível de dar a uma pessoa (user_uuid) ou a um time (team_uuid) acesso a um quadro restrito a membros: envie exatamente um dos dois; os dois ou nenhum é 400 invalid_filter_value. Uma permissão de time é viva: quem entrar no time depois fica dentro, e quem sair fica fora. Grava um evento board.member_added que os membros do quadro podem ver. Adicionar um membro existente retorna 200 com a linha existente. Não há papéis por quadro. Todo membro não convidado pode chamá-lo (com uma sessão iniciada ou uma API key pessoal); uma key de agente ou da organização recebe 403 insufficient_scope.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
Cabeçalhos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| Idempotency-Key | string | Opcional | Uma chave que você gera para esta intenção. Uma repetição com a mesma chave e o mesmo corpo retorna a primeira resposta sem um segundo efeito colateral e traz Idempotency-Replayed: true. As chaves são mantidas por 24 horas. A mesma chave com um corpo diferente é 409 idempotency_key_payload_mismatch; uma repetição enquanto a primeira chamada ainda está em execução recebe 409 idempotency_in_progress por até 120 segundos. |
| X-Dailybot-Agent-Name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa. Use-o em escritas multipart e sem corpo (DELETE, arquivar, restaurar); em escritas JSON envie o campo agent_name do corpo, que vence se os dois vierem. Codifique o valor em percent-encoding (UTF-8). Caracteres de controle são removidos; um valor em branco significa sem agente. Mais de 128 caracteres, ou um valor que não pode ser decodificado, é 400 invalid_agent_attribution (nunca é truncado). Uma chave do tipo agente, que não está ligada a uma pessoa, recebe 400 invalid_agent_attribution se enviá-lo. O selo nunca altera uma resposta de permissão. Veja Atribuição de agente. |
Corpo da requisição
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| user_uuid | uuid | Opcional | O uuid de usuário da pessoa. |
| team_uuid | uuid | Opcional | O uuid de um time, em vez de user_uuid. Cria uma única permissão de time viva: quem entrar no time depois fica dentro, e quem sair fica fora. |
| agent_name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa (máx. 128 caracteres, vazio significa sem agente). Tem prioridade sobre o header X-Dailybot-Agent-Name. Veja Atribuição de agente. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | BoardMember | Obrigatório | Um objeto BoardMember. |
Erros
| Status | Quando |
|---|---|
| 400 | Envie exatamente um de `user_uuid` e `team_uuid`; os dois ou nenhum é `invalid_filter_value`. `invalid_agent_attribution` significa que o nome do agente não é válido. |
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 403 | Autenticado, mas sem permissão: falta o scope (`insufficient_scope`, que é também o que uma key de agente ou da organização recebe em uma operação que exige uma pessoa, e o que uma key pessoal recebe quando seus scopes de Plan explícitos não cobrem o endpoint) ou é uma conta de convidado (`guest_not_allowed`). |
| 404 | Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo. |
curl -sS -X POST "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/members/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"user_uuid": "00000000-0000-4000-8000-00000000000c"
}'dailybot plan board member add 00000000-0000-4000-8000-000000000002 00000000-0000-4000-8000-00000000000cTestar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:admin` — escritas em contêineres. Um membro não convidado pode chamá-lo com uma sessão iniciada ou uma API key pessoal (uma key com scopes de Plan explícitos precisa de `tasks:write`, que o cobre); uma key de agente ou da organização recebe `403 insufficient_scope`.
- Limite de requisições: 60 escritas por minuto por ator.
- Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.
Remover um membro de um quadro
Emite board.member_removed. Remover o último membro de um quadro somente para membros é recusado com 409 last_grant_cannot_be_removed, porque um quadro privado sem membros não poderia ser lido por ninguém. Exige uma pessoa: keys de agente e da organização são recusadas; uma API key pessoal funciona.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
| user_id | string | Obrigatório | O uuid de usuário do membro. |
Cabeçalhos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| X-Dailybot-Agent-Name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa. Use-o em escritas multipart e sem corpo (DELETE, arquivar, restaurar); em escritas JSON envie o campo agent_name do corpo, que vence se os dois vierem. Codifique o valor em percent-encoding (UTF-8). Caracteres de controle são removidos; um valor em branco significa sem agente. Mais de 128 caracteres, ou um valor que não pode ser decodificado, é 400 invalid_agent_attribution (nunca é truncado). Uma chave do tipo agente, que não está ligada a uma pessoa, recebe 400 invalid_agent_attribution se enviá-lo. O selo nunca altera uma resposta de permissão. Veja Atribuição de agente. |
Erros
| Status | Quando |
|---|---|
| 400 | O nome do agente não é válido (`invalid_agent_attribution`). |
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 403 | Autenticado, mas sem permissão: falta o scope (`insufficient_scope`, que é também o que uma key de agente ou da organização recebe em uma operação que exige uma pessoa, e o que uma key pessoal recebe quando seus scopes de Plan explícitos não cobrem o endpoint) ou é uma conta de convidado (`guest_not_allowed`). |
| 404 | Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo. |
| 409 | Este é o último membro de um quadro somente para membros (`last_grant_cannot_be_removed`). |
curl -sS -X DELETE "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/members/00000000-0000-4000-8000-00000000000c/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan board member remove 00000000-0000-4000-8000-000000000002 00000000-0000-4000-8000-00000000000c --yesTestar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:admin` — escritas em contêineres. Um membro não convidado pode chamá-lo com uma sessão iniciada ou uma API key pessoal (uma key com scopes de Plan explícitos precisa de `tasks:write`, que o cobre); uma key de agente ou da organização recebe `403 insufficient_scope`.
- Limite de requisições: 60 escritas por minuto por ator.
- Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.
Inspecionar uma concessão de associação a um quadro (o papel é somente leitura)
A associação a quadros não tem coluna de papel: papéis da organização mais a visibilidade do quadro formam o modelo de acesso. Enviar role retorna 400. Um PATCH vazio retorna a linha de concessão atual.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
| user_id | string | Obrigatório | O uuid de usuário do membro. |
Cabeçalhos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| X-Dailybot-Agent-Name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa. Use-o em escritas multipart e sem corpo (DELETE, arquivar, restaurar); em escritas JSON envie o campo agent_name do corpo, que vence se os dois vierem. Codifique o valor em percent-encoding (UTF-8). Caracteres de controle são removidos; um valor em branco significa sem agente. Mais de 128 caracteres, ou um valor que não pode ser decodificado, é 400 invalid_agent_attribution (nunca é truncado). Uma chave do tipo agente, que não está ligada a uma pessoa, recebe 400 invalid_agent_attribution se enviá-lo. O selo nunca altera uma resposta de permissão. Veja Atribuição de agente. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | BoardMember | Obrigatório | Um objeto BoardMember. |
Erros
| Status | Quando |
|---|---|
| 400 | A validação falhou, ou um valor de filtro, ordenação ou `include` não foi reconhecido. O `code` da resposta indica qual. `invalid_agent_attribution` significa que o nome do agente não é válido. |
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 404 | Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo. |
curl -sS -X PATCH "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/members/00000000-0000-4000-8000-00000000000c/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"Testar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:admin` — escritas em contêineres. Um membro não convidado pode chamá-lo com uma sessão iniciada ou uma API key pessoal (uma key com scopes de Plan explícitos precisa de `tasks:write`, que o cobre); uma key de agente ou da organização recebe `403 insufficient_scope`.
- Limite de requisições: 60 escritas por minuto por ator.
- Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.
Listar etiquetas da organização (verificação de acesso ao quadro)
As etiquetas da organização, por trás da verificação de acesso deste quadro, para que as configurações do quadro possam gerenciá-las sem sair da API do Plan. Aplique etiquetas aos cards com o PATCH da tarefa, o endpoint de etiquetas em lote ou o set_labels em massa.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
Parâmetros de consulta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| page | integer | Opcional | Número da página, começando em 1. |
| page_size | integer | Opcional | Linhas por página. Padrão 50, máximo 100. Valores fora do intervalo são ajustados, nunca rejeitados: pedir 500 retorna 100. |
| search | string | Opcional | Correspondência de substring sem diferenciar maiúsculas e minúsculas, só no nome da etiqueta. Vazio significa sem filtro; um valor sem correspondências retorna uma lista vazia. |
| include_archived | boolean | Opcional | Incluir linhas arquivadas junto com as ativas. Diferente de is_archived, que seleciona um conjunto ou o outro: include_archived=true é a união. As listas retornam linhas ativas, a menos que você opte pelo contrário. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| results | array<Label> | Obrigatório | As linhas desta página. |
Erros
| Status | Quando |
|---|---|
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 404 | Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo. |
curl -sS "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/labels/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan board labels 00000000-0000-4000-8000-000000000002{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"uuid": "00000000-0000-4000-8000-00000000000b",
"name": "backend",
"color": "#2563eb"
}
]
}Testar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:read`.
- Limite de requisições: 120 leituras por minuto por ator.
- Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.
Criar uma etiqueta da organização
Cria uma etiqueta da organização a partir das configurações de um quadro, atrás da verificação de acesso desse quadro. A etiqueta pertence à organização, então todos os quadros podem usá-la.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
Cabeçalhos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| X-Dailybot-Agent-Name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa. Use-o em escritas multipart e sem corpo (DELETE, arquivar, restaurar); em escritas JSON envie o campo agent_name do corpo, que vence se os dois vierem. Codifique o valor em percent-encoding (UTF-8). Caracteres de controle são removidos; um valor em branco significa sem agente. Mais de 128 caracteres, ou um valor que não pode ser decodificado, é 400 invalid_agent_attribution (nunca é truncado). Uma chave do tipo agente, que não está ligada a uma pessoa, recebe 400 invalid_agent_attribution se enviá-lo. O selo nunca altera uma resposta de permissão. Veja Atribuição de agente. |
Corpo da requisição
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| name | string | Obrigatório | Nome de exibição. |
| color | string | Opcional | Cor de exibição (hex). |
| description | string | Opcional | Descrição livre. |
| agent_name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa (máx. 128 caracteres, vazio significa sem agente). Tem prioridade sobre o header X-Dailybot-Agent-Name. Veja Atribuição de agente. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | Label | Obrigatório | Um objeto Label. |
Erros
| Status | Quando |
|---|---|
| 400 | A validação falhou, ou um valor de filtro, ordenação ou `include` não foi reconhecido. O `code` da resposta indica qual. `invalid_agent_attribution` significa que o nome do agente não é válido. |
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 404 | Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo. |
curl -sS -X POST "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/labels/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "backend",
"color": "#2563eb"
}'dailybot plan board label create 00000000-0000-4000-8000-000000000002 -n backend --color "#2563eb"{
"uuid": "00000000-0000-4000-8000-00000000000b",
"name": "backend",
"color": "#2563eb"
}Testar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:write`.
- Limite de requisições: 60 escritas por minuto por ator.
- Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.
Uma visualização salva por uuid
Pode ser lida quando é a sua própria visualização, ou uma visualização shared ou board_default de um quadro que você pode ver. Qualquer outra, inclusive a visualização pessoal de outra pessoa, é 404, nunca 403.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| view_id | uuid | Obrigatório | O uuid da visualização salva. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | SavedView | Obrigatório | Um objeto SavedView. |
Erros
| Status | Quando |
|---|---|
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 404 | Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo. |
curl -sS "https://api.dailybot.com/v1/plan/views/{view_id}/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan tasks view get 00000000-0000-4000-8000-000000000010 --jsonTestar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:read`.
- Limite de requisições: 120 leituras por minuto por ator.
- Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.
Editar uma visualização salva
Parcial: só mudam os campos que você envia; campos desconhecidos são recusados. Tornar uma visualização shared ou board_default, ou editar uma que já é, exige quem administra o quadro; caso contrário, 403 view_visibility_forbidden.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| view_id | uuid | Obrigatório | O uuid da visualização salva. |
Cabeçalhos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| X-Dailybot-Agent-Name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa. Use-o em escritas multipart e sem corpo (DELETE, arquivar, restaurar); em escritas JSON envie o campo agent_name do corpo, que vence se os dois vierem. Codifique o valor em percent-encoding (UTF-8). Caracteres de controle são removidos; um valor em branco significa sem agente. Mais de 128 caracteres, ou um valor que não pode ser decodificado, é 400 invalid_agent_attribution (nunca é truncado). Uma chave do tipo agente, que não está ligada a uma pessoa, recebe 400 invalid_agent_attribution se enviá-lo. O selo nunca altera uma resposta de permissão. Veja Atribuição de agente. |
Corpo da requisição
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| name | string | Opcional | Nome de exibição. Máx. 64 caracteres. |
| view_mode | enum | Opcional | Como o conjunto filtrado é desenhado. kanban é aceito como alias de board. Um de list, board, kanban, timeline, calendar. |
| group_by | enum | Opcional | A dimensão de agrupamento. Um de state, owner, priority, category. |
| sort | string | Opcional | Uma chave de ordenação, com prefixo - para ordem decrescente. |
| filters | object | Opcional | Os filtros da visualização, na gramática compartilhada de filtros de tarefas. |
| schema_version | integer | Opcional | Versão do formato salvo da visualização. |
| visibility | enum | Opcional | personal, shared ou board_default. shared e board_default exigem quem administra o quadro nas visualizações de quadro, e supervisão do projeto (um administrador da organização ou quem gerencia todos os seus times) nas visualizações de projeto; caso contrário, 403 view_visibility_forbidden. Um de personal, shared, board_default. |
| collapsed | object | array | string | number | boolean | Opcional | Estado da interface do cliente salvo como está (quais grupos estão recolhidos). Só o tamanho e a profundidade são validados. |
| columns | object | array | string | number | boolean | Opcional | Estado da interface do cliente salvo como está (quais colunas são exibidas). Só o tamanho e a profundidade são validados. |
| agent_name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa (máx. 128 caracteres, vazio significa sem agente). Tem prioridade sobre o header X-Dailybot-Agent-Name. Veja Atribuição de agente. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | SavedView | Obrigatório | Um objeto SavedView. |
Erros
| Status | Quando |
|---|---|
| 400 | A validação falhou, ou um valor de filtro, ordenação ou `include` não foi reconhecido. O `code` da resposta indica qual. `invalid_agent_attribution` significa que o nome do agente não é válido. |
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 403 | Autenticado, mas sem permissão: falta o scope (`insufficient_scope`, que é também o que uma key de agente ou da organização recebe em uma operação que exige uma pessoa, e o que uma key pessoal recebe quando seus scopes de Plan explícitos não cobrem o endpoint) ou é uma conta de convidado (`guest_not_allowed`). |
| 404 | Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo. |
curl -sS -X PATCH "https://api.dailybot.com/v1/plan/views/{view_id}/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan tasks view update 00000000-0000-4000-8000-000000000010 --view-mode kanban --group-by ownerTestar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:write`.
- Limite de requisições: 60 escritas por minuto por ator.
- Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.
Excluir uma visualização salva
Permanente. Excluir uma visualização shared ou board_default exige quem administra o quadro; caso contrário, 403 view_visibility_forbidden.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| view_id | uuid | Obrigatório | O uuid da visualização salva. |
Cabeçalhos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| X-Dailybot-Agent-Name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa. Use-o em escritas multipart e sem corpo (DELETE, arquivar, restaurar); em escritas JSON envie o campo agent_name do corpo, que vence se os dois vierem. Codifique o valor em percent-encoding (UTF-8). Caracteres de controle são removidos; um valor em branco significa sem agente. Mais de 128 caracteres, ou um valor que não pode ser decodificado, é 400 invalid_agent_attribution (nunca é truncado). Uma chave do tipo agente, que não está ligada a uma pessoa, recebe 400 invalid_agent_attribution se enviá-lo. O selo nunca altera uma resposta de permissão. Veja Atribuição de agente. |
Erros
| Status | Quando |
|---|---|
| 400 | O nome do agente não é válido (`invalid_agent_attribution`). |
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 403 | Autenticado, mas sem permissão: falta o scope (`insufficient_scope`, que é também o que uma key de agente ou da organização recebe em uma operação que exige uma pessoa, e o que uma key pessoal recebe quando seus scopes de Plan explícitos não cobrem o endpoint) ou é uma conta de convidado (`guest_not_allowed`). |
| 404 | Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo. |
curl -sS -X DELETE "https://api.dailybot.com/v1/plan/views/{view_id}/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan tasks view delete 00000000-0000-4000-8000-000000000010 --yesTestar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:write`.
- Limite de requisições: 60 escritas por minuto por ator.
- Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.
Listar os anexos do quadro
Os anexos prontos do quadro, ordenados por posição, como uma página. Qualquer pessoa que possa ver o quadro pode listá-los; um quadro que você não pode ver é 404. Cada url é um link de download: não o guarde, mantenha o uuid do anexo e leia de novo quando precisar do arquivo.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
Parâmetros de consulta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| page | integer | Opcional | Número da página, começando em 1. |
| page_size | integer | Opcional | Linhas por página. Padrão 50, máximo 100. Valores fora do intervalo são ajustados, nunca rejeitados: pedir 500 retorna 100. |
Objeto TaskAttachment
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| uuid | uuid | Obrigatório | Identificador público estável. |
| filename | string | Obrigatório | Nome do arquivo. |
| content_type | string | Obrigatório | Tipo MIME. |
| size | integer | Obrigatório | Tamanho em bytes. |
| url | string | Obrigatório | Onde baixar o arquivo. |
| thumbnail_url | uri | null | Opcional | Miniatura para imagens. |
| width | integer | null | Opcional | — |
| height | integer | null | Opcional | — |
| status | enum | Obrigatório | Status atual. Um de pending, ready, scanning, rejected. |
| uploaded_by | ActorRef | null | Opcional | Quem enviou o arquivo. Veja ActorRef. |
| executed_by_agent | object | null | Opcional | O agente que executou isto em nome da pessoa, ou null quando nenhum foi nomeado: um objeto com uuid, name, username e avatar. A pessoa do campo de autor continua sendo a autora; o agente é mostrado como quem executou. |
| created_at | date-time | Obrigatório | Quando a linha foi criada. |
Objeto ActorRef
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| count | integer | Obrigatório | Número total de linhas. |
| next | uri | Obrigatório | URL da próxima página, ou null. |
| previous | uri | Obrigatório | URL da página anterior, ou null. |
| results | array<TaskAttachment> | Obrigatório | A página de objetos TaskAttachment. |
Erros
| Status | Quando |
|---|---|
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 404 | O quadro não existe ou você não pode vê-lo (`not_found`), nunca um 403. |
curl -sS "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/attachments/" \
-H "X-API-KEY: $DAILYBOT_API_KEY"{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"uuid": "00000000-0000-4000-8000-000000000009",
"filename": "roadmap.pdf",
"content_type": "application/pdf",
"size": 48213,
"url": "https://media.dailybot.com/\u2026",
"url_expires_at": null,
"content_url": "/v1/plan/boards/00000000-0000-4000-8000-000000000002/attachments/00000000-0000-4000-8000-000000000009/content/",
"thumbnail_url": null,
"width": null,
"height": null,
"status": "ready",
"uploaded_by": {
"kind": "user",
"uuid": "00000000-0000-4000-8000-000000000001",
"name": "Ana"
},
"created_at": "2026-09-30T14:00:00Z"
}
]
}Testar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:read`.
- Limite de requisições: 120 leituras por minuto por ator.
- Funciona com uma sessão iniciada, um token de usuário da CLI, uma API key pessoal, ou uma key de agente ou da organização. Uma key pessoal vê o que sua pessoa vê; uma key de agente ou da organização atua como um ator de sistema e vê apenas quadros visíveis para a organização.
Enviar um anexo para o quadro
Anexa um arquivo ao quadro em uma única requisição. Envie multipart/form-data com o campo file e um caption opcional; não há fluxo de presign aqui. O limite é 5 MiB: um arquivo maior é 400 attachment_too_large, com extra.max_size_bytes. O tipo do arquivo é verificado pelo conteúdo, com a mesma política dos anexos de projeto (400 attachment_invalid_type).
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
Cabeçalhos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| X-Dailybot-Agent-Name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa. Use-o em escritas multipart e sem corpo (DELETE, arquivar, restaurar); em escritas JSON envie o campo agent_name do corpo, que vence se os dois vierem. Codifique o valor em percent-encoding (UTF-8). Caracteres de controle são removidos; um valor em branco significa sem agente. Mais de 128 caracteres, ou um valor que não pode ser decodificado, é 400 invalid_agent_attribution (nunca é truncado). Uma chave do tipo agente, que não está ligada a uma pessoa, recebe 400 invalid_agent_attribution se enviá-lo. O selo nunca altera uma resposta de permissão. Veja Atribuição de agente. |
Corpo da requisição
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| file | binary | Obrigatório | O arquivo, como parte multipart. |
| caption | string | Opcional | Legenda opcional, máx. 255 caracteres. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | TaskAttachment | Obrigatório | Um objeto TaskAttachment. |
Erros
| Status | Quando |
|---|---|
| 400 | O arquivo está ausente, é grande demais (`attachment_too_large`) ou de um tipo recusado (`attachment_invalid_type`), ou o quadro já tem o máximo de anexos (`attachment_limit_reached`). `invalid_agent_attribution` significa que o nome do agente não é válido. |
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 403 | Você não é administrador da organização (`insufficient_scope`), ou é convidado (`guest_not_allowed`). Uma key de agente ou da organização também é recusada aqui. |
| 404 | O quadro não existe ou você não pode vê-lo (`not_found`), nunca um 403. |
curl -sS -X POST "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/attachments/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-F "file=@./roadmap.pdf" \
-F "caption=Q4 roadmap"Testar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:admin` — escritas em contêineres. Um membro não convidado pode chamá-lo com uma sessão iniciada ou uma API key pessoal (uma key com scopes de Plan explícitos precisa de `tasks:write`, que o cobre); uma key de agente ou da organização recebe `403 insufficient_scope`.
- Limite de requisições: 60 escritas por minuto por ator.
- Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.
Obter um anexo do quadro
Um anexo do quadro. Qualquer pessoa que possa ver o quadro pode lê-lo.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
| attachment_id | uuid | Obrigatório | O uuid do anexo. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | TaskAttachment | Obrigatório | Um objeto TaskAttachment. |
Erros
| Status | Quando |
|---|---|
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 404 | O quadro ou o anexo não existe ou você não pode vê-lo (`not_found`), nunca um 403. |
curl -sS "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/attachments/00000000-0000-4000-8000-000000000009/" \
-H "X-API-KEY: $DAILYBOT_API_KEY"Testar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:read`.
- Limite de requisições: 120 leituras por minuto por ator.
- Funciona com uma sessão iniciada, um token de usuário da CLI, uma API key pessoal, ou uma key de agente ou da organização. Uma key pessoal vê o que sua pessoa vê; uma key de agente ou da organização atua como um ator de sistema e vê apenas quadros visíveis para a organização.
Baixar os bytes de um anexo do quadro
Os bytes do arquivo, com o tipo de conteúdo registrado, pela API em vez do link de mídia. Um anexo cujo envio ainda não terminou é 409 attachment_not_ready.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
| attachment_id | uuid | Obrigatório | O uuid do anexo. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | binary | Obrigatório | Os bytes do arquivo; Content-Type é o do anexo. |
Erros
| Status | Quando |
|---|---|
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 404 | O quadro ou o anexo não existe ou você não pode vê-lo (`not_found`), nunca um 403. |
| 409 | O anexo ainda não está pronto (`attachment_not_ready`). |
curl -sS "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/attachments/00000000-0000-4000-8000-000000000009/content/" \
-H "X-API-KEY: $DAILYBOT_API_KEY" \
-o roadmap.pdfTestar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:read`.
- Limite de requisições: 120 leituras por minuto por ator.
- Funciona com uma sessão iniciada, um token de usuário da CLI, uma API key pessoal, ou uma key de agente ou da organização. Uma key pessoal vê o que sua pessoa vê; uma key de agente ou da organização atua como um ator de sistema e vê apenas quadros visíveis para a organização.
Renomear um anexo do quadro
Muda o nome de exibição do arquivo; os bytes guardados não mudam.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
| attachment_id | uuid | Obrigatório | O uuid do anexo. |
Cabeçalhos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| X-Dailybot-Agent-Name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa. Use-o em escritas multipart e sem corpo (DELETE, arquivar, restaurar); em escritas JSON envie o campo agent_name do corpo, que vence se os dois vierem. Codifique o valor em percent-encoding (UTF-8). Caracteres de controle são removidos; um valor em branco significa sem agente. Mais de 128 caracteres, ou um valor que não pode ser decodificado, é 400 invalid_agent_attribution (nunca é truncado). Uma chave do tipo agente, que não está ligada a uma pessoa, recebe 400 invalid_agent_attribution se enviá-lo. O selo nunca altera uma resposta de permissão. Veja Atribuição de agente. |
Corpo da requisição
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| filename | string | Obrigatório | O novo nome do arquivo (1–255 caracteres). Os bytes guardados não mudam. |
| agent_name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa (máx. 128 caracteres, vazio significa sem agente). Tem prioridade sobre o header X-Dailybot-Agent-Name. Veja Atribuição de agente. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | TaskAttachment | Obrigatório | Um objeto TaskAttachment. |
Erros
| Status | Quando |
|---|---|
| 400 | A validação falhou; o `code` da resposta indica qual campo. `invalid_agent_attribution` significa que o nome do agente não é válido. |
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 403 | Você não é administrador da organização (`insufficient_scope`), ou é convidado (`guest_not_allowed`). Uma key de agente ou da organização também é recusada aqui. |
| 404 | O quadro ou o anexo não existe ou você não pode vê-lo (`not_found`), nunca um 403. |
curl -sS -X PATCH "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/attachments/00000000-0000-4000-8000-000000000009/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"filename": "roadmap-q4.pdf"
}'Testar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:admin` — escritas em contêineres. Um membro não convidado pode chamá-lo com uma sessão iniciada ou uma API key pessoal (uma key com scopes de Plan explícitos precisa de `tasks:write`, que o cobre); uma key de agente ou da organização recebe `403 insufficient_scope`.
- Limite de requisições: 60 escritas por minuto por ator.
- Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.
Remover um anexo do quadro
Remove o anexo do quadro. Responde 204.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board_id | string | Obrigatório | O uuid do quadro. |
| attachment_id | uuid | Obrigatório | O uuid do anexo. |
Cabeçalhos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| X-Dailybot-Agent-Name | string | Opcional | O nome do agente que executou esta escrita em nome da pessoa. Use-o em escritas multipart e sem corpo (DELETE, arquivar, restaurar); em escritas JSON envie o campo agent_name do corpo, que vence se os dois vierem. Codifique o valor em percent-encoding (UTF-8). Caracteres de controle são removidos; um valor em branco significa sem agente. Mais de 128 caracteres, ou um valor que não pode ser decodificado, é 400 invalid_agent_attribution (nunca é truncado). Uma chave do tipo agente, que não está ligada a uma pessoa, recebe 400 invalid_agent_attribution se enviá-lo. O selo nunca altera uma resposta de permissão. Veja Atribuição de agente. |
Erros
| Status | Quando |
|---|---|
| 400 | A validação falhou; o `code` da resposta indica qual campo. `invalid_agent_attribution` significa que o nome do agente não é válido. |
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 402 | O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected]. |
| 403 | Você não é administrador da organização (`insufficient_scope`), ou é convidado (`guest_not_allowed`). Uma key de agente ou da organização também é recusada aqui. |
| 404 | O quadro ou o anexo não existe ou você não pode vê-lo (`not_found`), nunca um 403. |
curl -sS -X DELETE "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/attachments/00000000-0000-4000-8000-000000000009/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"Testar
Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.
- Scope: `tasks:admin` — escritas em contêineres. Um membro não convidado pode chamá-lo com uma sessão iniciada ou uma API key pessoal (uma key com scopes de Plan explícitos precisa de `tasks:write`, que o cobre); uma key de agente ou da organização recebe `403 insufficient_scope`.
- Limite de requisições: 60 escritas por minuto por ator.
- Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.
Esta página é a referência de Plan · Quadros. Todos os endpoints ficam em https://api.dailybot.com/v1/plan/ e respondem JSON.
Autentique com uma sessão iniciada ou um token de usuário da CLI (Authorization: Bearer …), ou com uma API key (X-API-KEY). Uma API key pessoal age como sua pessoa e pode fazer tudo o que essa pessoa pode fazer no Dailybot; uma key de agente ou da organização nunca age como uma pessoa e é recusada nos endpoints que exigem uma. Em um endpoint, o selo API key significa que uma key de agente ou da organização também é aceita. Veja Autenticação do Plan, Autenticação e Erros para as regras comuns a todas as APIs do Dailybot.
Se é sua primeira vez com o Plan, leia a visão geral para entender o modelo: projetos, quadros, estados, chaves, ordem, versões e arquivamento.