Plan · Início e busca
Habilitação, a tela inicial em uma única requisição, minhas tarefas, favoritos, caixa de entrada, atividade, linha do tempo, busca, e etiquetas e marcos da organização. 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].
As tarefas do usuário que faz a chamada
Suas tarefas, o mesmo que GET /v1/plan/tasks/?owner=me mais a escolha de scope. Exige uma pessoa: uma key de agente ou da organização recebe 403 insufficient_scope, nunca uma lista vazia; uma API key pessoal funciona.
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. |
Filtros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| scope | string | Opcional | Qual sentido de "minhas": owned é owner = me; participating significa que você está no card; involved é a união das tarefas das quais você é responsável, das quais participa e que você criou, que é o que uma pessoa quer dizer com "minhas tarefas". |
| state | array | Opcional | Repetível; os valores são combinados com OR. Cada valor é ou um uuid de estado ou um de dois tokens de ciclo de vida:
- open - as categorias de estado que não são terminais: backlog, todo, in_progress.
- done - as categorias terminais: done, canceled.
Os tokens são decididos apenas por state.category e nunca consultam completed_at, então um cliente que classifica as linhas pela categoria do chip de estado concorda com este filtro por construção.
Misturar é permitido: um uuid e um token na mesma requisição são combinados com OR como qualquer outro valor repetido. Qualquer outro valor é 400 invalid_filter_value com extra.parameter: "state" - incluindo overdue, que não é um estado de ciclo de vida. Atraso é uma questão de data de entrega: veja due_before. |
| category | array | Opcional | As cinco categorias fixas de estado. Não existe uma categoria blocked: estar bloqueada é uma relação; use blocked=true. |
| 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/. |
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. |
Ordenação e expansão
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| sort | string | Opcional | Um campo, opcionalmente com prefixo -. Toda ordenação acrescenta um critério de desempate interno estável para que uma linha não apareça em duas páginas. Um valor não suportado é 400 invalid_sort, nunca uma alternativa silenciosa. |
Linhas arquivadas
| 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. |
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 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 ActorRef
Objeto Label
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<Task> | Obrigatório | As linhas desta página. Veja Task. |
Erros
| Status | Quando |
|---|---|
| 400 | Um valor de filtro invá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`). |
curl -sS "https://api.dailybot.com/v1/plan/me/tasks/?scope=involved&state=open" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan tasks mine --scope involved --json{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"uuid": "00000000-0000-4000-8000-000000000005",
"key": "ENG-142",
"title": "Ship the delta feed",
"description": null,
"board": "00000000-0000-4000-8000-000000000002",
"state": {
"uuid": "00000000-0000-4000-8000-000000000003",
"name": "In Progress",
"category": "in_progress",
"position": 2
},
"priority": 2,
"estimate": 3,
"owner": {
"uuid": "00000000-0000-4000-8000-00000000000c",
"name": "Ada L."
},
"executor": null,
"participant_count": 1,
"start_date": "2026-09-28",
"due_date": "2026-10-15",
"milestone": null,
"parent_task": null,
"subtask_count": 1,
"subtask_done_count": 1,
"attachment_count": 1,
"open_blocker_count": 1,
"labels": [],
"rank": "aU",
"blocked": false,
"blocked_since": null,
"completed_at": null,
"is_archived": false,
"subscribed": true,
"version": 7,
"created_by": {
"kind": "user",
"uuid": "00000000-0000-4000-8000-00000000000c",
"name": "Ada L."
},
"created_at": "2026-09-25T10:14:02Z",
"updated_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: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`.
Contagens das abas de tarefas pessoais
Contagens com escopo de quem chama para trabalho do qual é responsável, em que participa, em que está envolvido e atrasado.
Os quatro inteiros de nível superior são totais da população em todo o ciclo de vida: owned conta todas as tarefas das quais quem chama é responsável, estejam abertas, concluídas ou canceladas. overdue é a exceção e é somente owned, já excluindo trabalho arquivado e terminal.
by_scope traz os números qualificados por status, para que um badge possa dizer "N abertas" sem uma segunda requisição. open é decidido pela CATEGORIA do estado, exatamente como ?state=open decide; overdue significa aberta E com prazo vencido; blocked usa o único predicado de bloqueador ativo. Todos os números são calculados no mesmo agregado único sobre a mesma raiz de visibilidade.
by_scope.<scope>.total é igual, por construção, ao inteiro de nível superior de mesmo nome.
Objeto MyTaskCounts
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| owned | integer | Obrigatório | Tarefas das quais você é responsável (todos os ciclos de vida). |
| participating | integer | Obrigatório | Tarefas das quais você participa. |
| involved | integer | Obrigatório | Tarefas das quais você é responsável, participa ou que você criou. |
| overdue | integer | Obrigatório | Tarefas abertas com a data de vencimento ultrapassada. |
| by_scope | object | Obrigatório | Contagens qualificadas por status para cada scope: {total, open, overdue, blocked}. Formato: {owned, participating, involved} — each {total, open, overdue, blocked: integer} (all required). |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | MyTaskCounts | Obrigatório | Um objeto MyTaskCounts. |
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/me/tasks/counts/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan tasks counts{
"owned": 1,
"participating": 1,
"involved": 1,
"overdue": 1,
"by_scope": {}
}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`.
Quadros visitados recentemente por quem chama
Quadros que você abriu recentemente, dos mais recentes para os mais antigos, conforme registrado por POST /v1/plan/boards/{board_id}/visit/. Quadros ocultos, arquivados e de outras organizações são omitidos em vez de gerar erro. Exige uma pessoa (uma key de agente ou da organização recebe 403; uma API key pessoal funciona).
Objeto RecentBoardList
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | RecentBoardList | Obrigatório | Um objeto RecentBoardList. |
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/me/recents/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"{
"count": 1,
"limit": 1,
"results": []
}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`.
Eventos de tarefas relevantes para notificação de quem chama
A sua caixa de entrada: eventos de tarefas que merecem a sua atenção, do mais recente ao mais antigo, em uma página. mentioned=true mantém só os eventos em que alguém mencionou você; type mantém um tipo de evento. Os dois se combinam, e count e a paginação são exatos, então não há páginas vazias.
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. |
| type | string | Opcional | Só eventos deste tipo, como task.owner_changed (a aba Atribuídas). Combina com mentioned (E). |
| mentioned | boolean | Opcional | true mantém só os eventos em que alguém mencionou você. Deve ser true ou false. |
Objeto ActivityEvent
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| uuid | string | Obrigatório | Identificador público estável. |
| type | string | Obrigatório | O tipo de evento. Novos tipos são adicionados com o tempo: ignore os que você não reconhecer. |
| actor | object | Obrigatório | Quem agiu. |
| 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 | string | Obrigatório | Quando a linha foi criada. |
| task | object | Opcional | Formato: {uuid, key, title, board {uuid, key, name} | null} | null. |
| payload | object | Obrigatório | Apenas ids, valores de enum, números, booleanos e datas, nunca texto escrito por usuários. |
| changes | array | Obrigatório | Mudanças de campos resolvidas, [{field, from, to}]. |
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<ActivityEvent> | Obrigatório | As linhas desta página. Veja ActivityEvent. |
Erros
| Status | Quando |
|---|---|
| 400 | Um parâmetro não declarado ou um valor inválido (`invalid_filter_value`). |
| 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/inbox/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan tasks inbox --json{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"uuid": "00000000-0000-4000-8000-00000000000f",
"type": "task.moved",
"actor": {},
"created_at": "example",
"task": {},
"payload": {},
"changes": []
}
]
}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`.
Marcar todos os itens da caixa de entrada como lidos
Marca todos os itens da caixa de entrada como lidos, movendo o seu cursor de leitura para agora. A resposta é o novo last_seen_at.
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 |
|---|---|---|---|
| last_seen_at | date-time | Obrigatório | Tudo o que ocorreu até este momento conta como lido. |
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`). |
curl -sS -X POST "https://api.dailybot.com/v1/plan/inbox/read-all/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan tasks inbox-read-all{
"last_seen_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`.
Alcançar até uma linha da caixa de entrada
Marca esta linha e tudo o que for mais antigo como lido, e responde com o novo unread_count.
A caixa de entrada não tem estado de leitura por item, por design: lido/não lido deriva de um único cursor em vez de uma flag por linha. Marcar a linha cinco como lida enquanto as linhas um a quatro continuam não lidas não tem representação nesse modelo, e dar uma a isso significa uma segunda fonte de verdade que precisa concordar com o cursor para sempre. O que uma marca d'água PODE expressar é "alcancei até aqui", e em um feed do mais novo para o mais antigo é isso que clicar em uma linha costuma significar.
Uma linha que este ator não pode ver resulta em 404, então um uuid de evento de outra organização não pode mover o cursor de outra pessoa.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| item_uuid | string | Obrigatório | O uuid da linha da caixa de entrada. |
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 |
|---|---|---|---|
| last_seen_at | date-time | Obrigatório | Tudo o que ocorreu até este momento conta como lido. |
| unread_count | integer | Obrigatório | Itens não lidos. |
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/inbox/00000000-0000-4000-8000-00000000000f/read/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan tasks inbox-read 00000000-0000-4000-8000-00000000000f{
"last_seen_at": "2026-09-25T10:14:02Z",
"unread_count": 3
}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`.
Contagem de não lidos da caixa de entrada de quem chama
Quantos itens da caixa de entrada você ainda não leu, para um selo. Aceita os mesmos filtros da lista da caixa, então o selo de cada aba conta exatamente as linhas dela: mentioned=true para Menções, type=task.owner_changed para Atribuídas. Sem parâmetros conta a caixa inteira. Mais barato do que listar a caixa.
Parâmetros de consulta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| type | string | Opcional | Só eventos deste tipo, como task.owner_changed (a aba Atribuídas). Combina com mentioned (E). |
| mentioned | boolean | Opcional | true mantém só os eventos em que alguém mencionou você. Deve ser true ou false. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| unread_count | integer | Obrigatório | Itens não lidos. |
Erros
| Status | Quando |
|---|---|
| 400 | Um parâmetro não declarado ou um valor inválido (`invalid_filter_value`). |
| 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/inbox/unread-count/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan tasks inbox-unread{
"unread_count": 3
}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`.
Feed de atividade da organização para o Plan Home
Eventos paginados que você pode abrir, enriquecidos com cartões de tarefa e changes[{field, from, to}] resolvidos para exibição. Tarefas que você não pode ver são omitidas mesmo quando o quadro é visível.
Só os parâmetros listados aqui são aceitos: qualquer outro parâmetro de consulta é 400 invalid_filter_value.
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 |
|---|---|---|---|
| type | string | Opcional | Filtra por um tipo de evento. event_type é um alias. |
| actor | uuid | Opcional | Só eventos desta pessoa (uuid de usuário). |
| project | uuid | Opcional | Só eventos deste projeto (uuid). |
| board | uuid | Opcional | Só eventos deste quadro (uuid). |
| task | uuid | Opcional | Só eventos sobre esta tarefa (uuid). |
| since | string | Opcional | Data e hora ISO: eventos registrados nesse momento ou depois (observed_at). |
| until | string | Opcional | Data e hora ISO: eventos registrados nesse momento ou antes (observed_at). |
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<ActivityEvent> | Obrigatório | As linhas desta página. Veja ActivityEvent. |
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]. |
curl -sS "https://api.dailybot.com/v1/plan/activity/" \
-H "X-API-KEY: $DAILYBOT_API_KEY"dailybot plan tasks activity --last-week --json
dailybot plan tasks activity --board 00000000-0000-4000-8000-000000000002 --since 2026-09-20T00:00:00Z --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.
- 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.
Ler o cursor de leitura de atividade de quem chama
O seu cursor de leitura de atividade: o momento até o qual você leu o feed de atividade. É null até você defini-lo.
Objeto ActivityCursor
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | ActivityCursor | Obrigatório | Um objeto ActivityCursor. |
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]. |
curl -sS "https://api.dailybot.com/v1/plan/me/activity-cursor/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan tasks cursor{
"last_seen_at": 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.
- 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`.
Marcar a atividade como lida até um timestamp
Guarda o seu cursor de leitura de atividade em last_seen_at, para que outro cliente continue de onde você parou.
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 |
|---|---|---|---|
| last_seen_at | date-time | Obrigatório | Tudo o que ocorreu até este momento conta como lido. |
| 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) | ActivityCursor | Obrigatório | Um objeto ActivityCursor. |
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]. |
curl -sS -X PUT "https://api.dailybot.com/v1/plan/me/activity-cursor/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"last_seen_at": "2026-09-25T10:14:02Z"
}'dailybot plan tasks cursor --nowTestar
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 etiquetas da organização
A taxonomia de etiquetas da organização, compartilhada com formulários e check-ins. Prefira este endpoint para telas de configuração; a lista com escopo de quadro é a mesma taxonomia por trás de uma verificação de acesso ao 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 |
|---|---|---|---|
| next | string|null | Obrigatório | URL da próxima página, ou null. |
| previous | string|null | Obrigatório | URL da página anterior, ou null. |
| 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]. |
| 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/labels/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"{
"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 na taxonomia da organização. Mesmo formato que POST /boards/{board_id}/labels/.
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]. |
| 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 -X POST "https://api.dailybot.com/v1/plan/labels/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "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`.
Atualizar uma etiqueta da organização
Atualização parcial de nome, cor, descrição ou is_archived. Arquivar oculta a etiqueta da lista padrão sem excluí-la definitivamente. Restaurar é o mesmo campo no sentido inverso: {"is_archived": false}. Leia uma etiqueta retirada com GET /v1/plan/labels/?include_archived=true.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| label_id | string | Obrigatório | O uuid da etiqueta. |
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. |
| color | string | Opcional | Cor de exibição (hex). |
| description | string | Opcional | Descrição livre. |
| is_archived | boolean | Opcional | Se a linha está arquivada. Arquivar é a exclusão: linhas arquivadas continuam legíveis e restauráveis. |
| 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]. |
| 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/labels/00000000-0000-4000-8000-00000000000b/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"is_archived": true
}'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`.
Excluir uma etiqueta da organização
Exclui definitivamente quando a etiqueta não está em nenhuma tarefa. Caso contrário, 409 label_in_use. Prefira PATCH com is_archived: true para aposentar uma etiqueta que ainda está em cards.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| label_id | string | Obrigatório | O uuid da etiqueta. |
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 | A etiqueta ainda está em tarefas (`label_in_use`). Em vez disso, arquive-a com `PATCH`. |
curl -sS -X DELETE "https://api.dailybot.com/v1/plan/labels/00000000-0000-4000-8000-00000000000b/" \
-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: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`.
Se Plan está disponível aqui, e os tetos do plano
Se Plan está disponível para a sua organização, e os tetos do plano. É o único endpoint de Plan que nunca responde 402, então chame-o antes de decidir se deve mostrar o produto.
enabled é a mesma verificação que todos os outros endpoints aplicam. reason é null quando habilitado; caso contrário, rollout (sua organização ainda não foi habilitada para a Beta) ou usage (um admin desativou Plan). boards e projects informam {used, limit}, mesmo quando desabilitado; limit é null quando o plano não tem teto. O plano gratuito inclui até 3 quadros e 1 projeto. used conta apenas linhas ativas, então arquivar libera uma vaga, e used > limit pode acontecer em planos legados.
Um convidado recebe 403 guest_not_allowed aqui, não 200 com enabled: false, e nunca vê os tetos do plano.
Objeto Entitlements
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| enabled | boolean | Obrigatório | Se Plan está habilitado para a sua organização. |
| reason | enum | null | Obrigatório | Por que Tasks não está habilitado: rollout ou usage; null quando habilitado. Um de rollout, usage. |
| boards | object | Obrigatório | Formato: {used: integer, limit: integer|null} (both required). |
| projects | object | Obrigatório | Projetos vinculados. Formato: {used: integer, limit: integer|null} (both required). |
| labels | object | Obrigatório | Etiquetas da organização na tarefa. Formato: {enabled: boolean}. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | Entitlements | Obrigatório | Um objeto Entitlements. |
Erros
| Status | Quando |
|---|---|
| 401 | Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`). |
| 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/entitlements/" \
-H "X-API-KEY: $DAILYBOT_API_KEY"dailybot plan tasks entitlements{
"enabled": false,
"reason": null,
"boards": {},
"projects": {},
"labels": {}
}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 trabalho agendado em uma janela, com suas arestas de dependência e faixas de metas
O mesmo conjunto filtrado da lista de tarefas, com uma pergunta de agendamento. rows são os cards que SE SOBREPÕEM à janela; unscheduled conta os cards correspondentes sem nenhuma data; dependencies traz apenas arestas cujas duas pontas estão em rows, porque uma seta para uma linha que o leitor não pode ver é uma linha para lugar nenhum na tela e uma revelação fora dela.
Seleção da janela (vale a primeira correspondência):
- from + to (datas ISO) — intervalo explícito; from pode estar no passado (ex.: hoje−7 … hoje+21). Aliases: window_from / window_to.
- window_days — auxiliar para frente: de hoje até hoje+N (intervalo inclusivo).
- omitido — janela padrão para frente de 14 dias a partir de hoje (com um filtro de quadro).
Parâmetros de consulta
Filtros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| from | string | Opcional | Primeiro dia de uma janela explícita (data ISO). Pode estar no passado. Use junto com to. Alias: window_from. |
| to | string | Opcional | Último dia de uma janela explícita (data ISO). Deve ser ≥ from. Alias: window_to. |
| window_from | string | Opcional | Alias de from. |
| window_to | string | Opcional | Alias de to. |
| window_days | integer | Opcional | Auxiliar a partir de hoje para frente. Ignorado quando from e to (ou seus aliases) estão presentes. O padrão, sem janela explícita, é 14. |
| board | array | Opcional | Uuids de quadros ou chaves de quadros (ENG). Repetível; os valores são combinados com OR. As chaves são resolvidas somente dentro da sua organização; uma chave que não corresponde a nenhum quadro seu não contribui com nada e nunca retorna 404. Chaves retiradas continuam sendo resolvidas. |
| project | array | Opcional | Uuids de projetos. Repetível; os valores são combinados com OR. |
| goal | string | Opcional | Repetível. Corresponde à meta da própria tarefa ou, quando ela não tem uma, à meta herdada do seu projeto, a mesma regra que todo resumo agregado de progresso usa. |
| team | string | Opcional | Repetível. A equipe do quadro. Restringe o que você vê e nunca o amplia. |
| 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. |
| category | array | Opcional | As cinco categorias fixas de estado. Não existe uma categoria blocked: estar bloqueada é uma relação; use blocked=true. |
| 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. |
| include_unscheduled | string | Opcional | Quando 1 ou true, unscheduled é {count, results[]} (limitado) em vez de uma contagem inteira simples. |
Objeto Timeline
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| window | object | Obrigatório | A janela coberta. Formato: {from: string, to: string}. |
| bands | array | Opcional | Metas ativas ao longo da janela. Itens: {uuid, name, status, period_start, period_end}. |
| rows | array | Obrigatório | Tarefas que se sobrepõem à janela. Itens: {uuid, key, title, state (state name), category, owner (UserRef|null), goal (uuid|null), start_date, due_date, completed_at, is_blocked, is_overdue}. |
| dependencies | array | Opcional | Arestas de dependência cujas duas pontas estão em rows. Itens: {source (task uuid), target (task uuid), relation_type}. |
| unscheduled | integer | {count: integer, results: array} | Obrigatório | Tarefas correspondentes sem nenhuma data. |
| truncated | boolean | Opcional | true quando há mais mudanças esperando: consulte de novo imediatamente. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | Timeline | Obrigatório | Um objeto Timeline. |
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`). |
| 429 | Limite de requisições atingido. Aguarde os segundos indicados em `Retry-After`. |
curl -sS "https://api.dailybot.com/v1/plan/timeline/?board=ENG&from=2026-09-18&to=2026-10-16" \
-H "X-API-KEY: $DAILYBOT_API_KEY"dailybot plan tasks timeline --today{
"window": {},
"bands": [],
"rows": [],
"dependencies": [],
"unscheduled": 1,
"truncated": false
}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.
Pesquisar tarefas e contêineres visíveis para quem chama
Pesquise tarefas (título, chave, descrição) e, com types, projetos, quadros e metas que você pode ver.
A correspondência é uma busca de substring sem diferenciar maiúsculas e minúsculas, não um ranking de texto completo. score é um auxílio de ordenação aproximado entre 0.6 e 1.0 (chave exata 1.0, acerto no título ou nome 0.9 / 0.85, acerto na descrição 0.6), não uma relevância calibrada, e snippet é uma janela em torno da primeira correspondência. A resposta repete isso em approximation. Tarefas ocultas e quadros privados nunca aparecem.
Parâmetros de consulta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| q | string | Obrigatório | A string de consulta. Menos de 2 caracteres é recusado com search_query_too_short; mais de 256, com search_query_too_long. |
| types | array | Opcional | Tipos de entidade a incluir: task, project, board, goal (padrão: todos). Repetível ou separado por vírgula: ?types=task,board e ?types=task&types=board são equivalentes. Valores desconhecidos são 400 invalid_filter_value. |
| board | array | Opcional | Uuids de quadros ou chaves de quadros (ENG). Repetível; os valores são combinados com OR. As chaves são resolvidas somente dentro da sua organização; uma chave que não corresponde a nenhum quadro seu não contribui com nada e nunca retorna 404. Chaves retiradas continuam sendo resolvidas. |
| project | array | Opcional | Uuids de projetos. Repetível; os valores são combinados com OR. |
| limit | integer | Opcional | Alias de page_size, traduzido no servidor. |
Objeto SearchResponse
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| q | string | Obrigatório | A consulta que você enviou. |
| limit | integer | Obrigatório | Tamanho de página aplicado. De 1 a 100. |
| approximation | string | Obrigatório | Como a correspondência funciona (busca por substring, não ranqueamento de texto completo). |
| results | array | Obrigatório | As linhas desta página. Itens: {type: task|project|board|goal, uuid, title (tasks) or name (containers), key? (tasks), score?, snippet?}. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | SearchResponse | Obrigatório | Um objeto SearchResponse. |
Erros
| Status | Quando |
|---|---|
| 400 | `q` tem menos de 2 caracteres (`search_query_too_short`) ou mais de 256 (`search_query_too_long`), ou um valor de `types` é desconhecido. |
| 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`). |
| 429 | Limite de requisições atingido. Aguarde os segundos indicados em `Retry-After`. |
curl -sS "https://api.dailybot.com/v1/plan/search/?q=delta&types=task,board" \
-H "X-API-KEY: $DAILYBOT_API_KEY"dailybot plan tasks search -q "delta" --json{
"q": "delta",
"limit": 1,
"approximation": "substring",
"results": []
}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.
A tela inicial em uma requisição (HomePulse) ou um agregado de saúde do quadro (TaskPulse)
Dois modos, escolhidos pela presença de group_by.
HomePulse (sem group_by): a página inicial do Plan em uma requisição: generated_at, counts inteiros, o seu my_preview, prévias de quadros, metas e linha do tempo, agent_summary e as faixas opcionais de include. A população é declarada como scope: "viewer_visible": todas as tarefas ativas e não terminais que você pode ver, não a organização inteira. Cada bloco indica a consulta que o reproduz: open → ?state=open, overdue → ?due_before=<today>&state=open, blocked → ?blocked=true&state=open.
TaskPulse (com group_by, por exemplo group_by=state): um agregado de saúde do quadro com totais, throughput e tempo de ciclo. As contagens são apenas inteiros e não há detalhamento por pessoa. Responde a If-None-Match com 304.
Parâmetros de consulta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board | array | Opcional | Uuids de quadros ou chaves de quadros (ENG). Repetível; os valores são combinados com OR. As chaves são resolvidas somente dentro da sua organização; uma chave que não corresponde a nenhum quadro seu não contribui com nada e nunca retorna 404. Chaves retiradas continuam sendo resolvidas. |
| project | array | Opcional | Uuids de projetos. Repetível; os valores são combinados com OR. |
| window_days | integer | Opcional | A janela retroativa para throughput e tempo de ciclo. |
| group_by | string | Opcional | A presença seleciona o modo TaskPulse (um agregado de saúde do quadro). Omita-o por completo para HomePulse; não há valor padrão. O enum é fechado e não contém dimensão de pessoa: a saída por pessoa é recusada por design. |
| include | string | Opcional | Somente HomePulse (sem group_by). Faixas opcionais separadas por vírgula para que uma tela inicial seja renderizada com uma requisição: projects → projects_preview (projetos ativos visíveis, progresso, atualização mais recente), attention → attention (seu trabalho aberto que está atrasado ou bloqueado), activity → recent_activity, goal_progress → progress e projects em cada linha de goals_preview. Uma faixa que você não pede fica ausente e não tem custo. Um token desconhecido é 400 invalid_filter_value. |
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 HomePulse
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| generated_at | date-time | Obrigatório | Quando a resposta foi calculada. |
| scope | enum | Obrigatório | A população contada: viewer_visible (tudo o que você pode ver). Um de viewer_visible. |
| open | integer | Opcional | Tarefas em um estado backlog, todo ou in_progress. |
| overdue | integer | Opcional | Tarefas abertas com a data de vencimento ultrapassada. |
| blocked | integer | Opcional | Tarefas com um bloqueio ativo. |
| unread_count | integer | Obrigatório | Itens não lidos. |
| counts | HomePulseCounts {open_tasks, open_tasks_on_goal_linked_projects, overdue_tasks, blocked_tasks, active_boards, active_projects, active_goals: integer} | Obrigatório | Contagens inteiras sobre o que você pode ver. Todos os campos estão sempre presentes. |
| my_preview | object | Obrigatório | Seu trabalho atrasado e com vencimento hoje. Formato: {overdue: integer, due_today: integer, top_tasks: array of {uuid, title, due_date, priority, board (uuid)}} (all required). |
| recent_boards | array | Obrigatório | Itens: {uuid, name, key, project (uuid|null), updated_at, viewer{is_member, can_see_content, can_manage}}. |
| featured_boards | array | Obrigatório | Itens: {uuid, name, key, project (uuid|null), updated_at, viewer{is_member, can_see_content, can_manage}}. |
| goals_preview | array | Obrigatório | Itens: {uuid, name, status, period_start, period_end}; with include=goal_progress also progress (GoalProgress|null) and projects [{uuid, name, …}]. |
| timeline_teaser | object | Obrigatório | Trabalho com vencimento próximo. Formato: {window_from: string, window_to: string, due_soon_count: integer, rows: array} (all required). |
| agent_summary | object | Obrigatório | Quadros onde agentes atuam e aprovações pendentes. Formato: {boards_advisory, boards_autonomous, pending_approvals: integer} (all required). |
| projects_preview | array | Opcional | Presente apenas com include=projects. Itens: {uuid, name, health, progress (ProjectProgress|null), latest_update (ProjectUpdate|null)}. |
| attention | array | Opcional | Presente apenas com include=attention. Itens: {uuid, key, title, due_date, priority, board, state{uuid, name, category}, overdue, blocked}. |
| recent_activity | array<ActivityEvent> | Opcional | Presente apenas com include=activity. Veja ActivityEvent. |
Objeto TaskPulse
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| board | Board | null | Opcional | O quadro. Veja Board. |
| window_days | integer | Obrigatório | — |
| generated_at | date-time | Obrigatório | Quando a resposta foi calculada. |
| group_by | enum | Obrigatório | A dimensão de agrupamento. Um de state, category, label, priority, board, age. |
| groups | array | Obrigatório | Uma entrada por coluna (ou grupo), em ordem. Sempre presentes: key, count. Itens: {key: string, name: string|null, count: integer, oldest_age_days: integer|null}. |
| totals | object | Obrigatório | Formato: {total, blocked, unassigned, overdue , created_in_window, completed_in_window: integer}. |
| throughput | array | Opcional | Todos os campos estão sempre presentes. Itens: {week_start: string, created: integer, completed: integer}. |
| cycle_time_days_p50 | number | null | Opcional | — |
| cycle_time_days_p90 | number | null | Opcional | — |
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 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. |
Erros
| Status | Quando |
|---|---|
| 304 | Sem mudanças: o ETag que você enviou em `If-None-Match` ainda corresponde. |
| 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]. |
| 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/pulse/?include=projects,attention,activity,goal_progress" \
-H "X-API-KEY: $DAILYBOT_API_KEY"dailybot plan tasks status --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.
- 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.
Seus quadros e visualizações salvas fixados
Todos os seus pins, na ordem de rank (1 é o primeiro). Um pin cujo destino você não pode mais ver (um quadro arquivado ou oculto, ou uma visualização salva que não existe mais ou deixou de ser compartilhada) é omitido em vez de gerar erro. A lista usa o envelope de lista padrão, mas nunca é paginada: next e previous são sempre null, e ela tem até 50 pins. Exige uma pessoa: keys de agente e da organização são recusadas; uma API key pessoal funciona.
Objeto Favorite
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| uuid | uuid | Obrigatório | Identificador público estável. |
| target_type | enum | Obrigatório | O que está fixado: board ou view. Um de board, view. |
| target_uuid | uuid | Obrigatório | O uuid do quadro ou da visualização salva, conforme target_type. |
| rank | integer | Obrigatório | Posição na sua lista, começando em 1. Mínimo 1. |
| created_at | date-time | Obrigatório | Quando a linha foi criada. |
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<Favorite> | Obrigatório | As linhas desta página. Veja Favorite. |
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/me/favorites/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan tasks favorites --json{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"uuid": "00000000-0000-4000-8000-000000000012",
"target_type": "board",
"target_uuid": "00000000-0000-4000-8000-000000000012",
"rank": "aU",
"created_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: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`.
Fixar um quadro ou uma visualização salva
Novos pins ficam no fim da sua lista. Fixar algo que já está fixado retorna o pin existente em vez de duplicá-lo. Um destino que você não pode ver é 404, nunca 403. Você pode fixar até 50 quadros e visualizações; mais um é 400 favorite_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 |
|---|---|---|---|
| target_type | enum | Obrigatório | O que está fixado: board ou view. Um de board, view. |
| target_uuid | uuid | Obrigatório | O uuid do quadro ou da visualização salva, conforme target_type. |
| 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) | Favorite | Obrigatório | Um objeto Favorite. |
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/me/favorites/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"target_type": "board",
"target_uuid": "00000000-0000-4000-8000-000000000012"
}'dailybot plan board star 00000000-0000-4000-8000-000000000002
dailybot plan tasks view star 00000000-0000-4000-8000-000000000010Testar
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`.
Mover um pin dentro da sua lista
Envie um de after (coloca logo abaixo desse pin), before (logo acima) ou rank (posição começando em 1, limitada à lista). Se enviar mais de um, after vence, depois before. As posições são renumeradas para 1..n. Um vizinho que não seja um dos seus pins é 404.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| favorite_id | uuid | Obrigatório | O uuid do pin. |
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 |
|---|---|---|---|
| rank | integer | Opcional | Posição de destino começando em 1, limitada ao tamanho da lista. Mínimo 1. |
| before | uuid | Opcional | Coloca o pin logo acima deste pin. |
| after | uuid | Opcional | Coloca o pin logo abaixo deste pin. |
| 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) | Favorite | Obrigatório | Um objeto Favorite. |
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/me/favorites/{favorite_id}/" \
-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: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`.
Desafixar
Remove o pin, nunca o destino. Os pins restantes são renumerados para 1..n.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| favorite_id | uuid | Obrigatório | O uuid do pin. |
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]. |
| 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/me/favorites/{favorite_id}/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan board unstar 00000000-0000-4000-8000-000000000002
dailybot plan tasks view unstar 00000000-0000-4000-8000-000000000010Testar
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`.
Esta página é a referência de Plan · Início e busca. 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.