Plan · Metas
Metas dizem para que serve o trabalho. Elas apontam para projetos; uma meta não contém nada diretamente. 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 metas
As metas que você pode ver, em uma página. Filtre por status, owned_by, uma data dentro do período da meta com active_on ou com search. include=progress,projects adiciona o cálculo de progresso e os projetos vinculados.
Parâmetros de consulta
Ordenação e expansão
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| include | string | Opcional | Resumos agregados a incorporar, separados por vírgula: progress, projects. Ausentes por padrão porque cada um é um agregado. Um token desconhecido é 400 invalid_filter_value; um valor vazio não tem efeito. |
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 |
|---|---|---|---|
| search | string | Opcional | Corresponde ao título e à chave. Mais de 256 caracteres é 400 search_query_too_long, sem truncamento. q é um alias. |
| status | string | Opcional | Repetível. Filtra pelo status declarado. |
| owned_by | string | Opcional | O uuid da pessoa responsável. Chama-se owned_by em vez de owner porque o owner da gramática de tarefas aceita me e unowned, e um mesmo nome de parâmetro com dois espaços de valores diferentes é o caminho para um cliente enviar o errado. |
| active_on | string | Opcional | Metas cujo período cobre esta data - a pergunta própria do roadmap. |
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 Goal
| 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. |
| description | string | null | Opcional | Descrição livre. |
| status | enum | Obrigatório | Status atual. Um de not_started, on_track, at_risk, off_track, achieved, missed. |
| period_start | date | Obrigatório | Primeiro dia do período da meta. |
| period_end | date | Obrigatório | Último dia do período da meta. |
| owner | UserRef | null | Opcional | A pessoa responsável pela tarefa. Veja UserRef. |
| team | TeamRef | null | Opcional | A equipe. Veja TeamRef. |
| progress | GoalProgress | null | Opcional | Resumo agregado do progresso sobre as tarefas que você pode ver. Veja GoalProgress. |
| project_count | integer | Opcional | Número de projetos vinculados. |
| projects | array | Opcional | Projetos vinculados. Itens: {uuid, name, slug, health, lead}. |
| is_archived | boolean | Obrigatório | Se a linha está arquivada. Arquivar é a exclusão: linhas arquivadas continuam legíveis e restauráveis. |
| completed_at | date-time | null | Opcional | Quando foi concluído, ou null. |
| 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 | Obrigatório | O que você pode fazer com esta linha. Formato: {can_manage: boolean}. |
Objeto UserRef
Objeto TeamRef
Objeto GoalProgress
| 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. |
| is_partial | boolean | Obrigatório | true quando parte do trabalho da meta está oculta para você, então os números cobrem apenas o que você pode ver. |
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<Goal> | Obrigatório | As linhas desta página. Veja Goal. |
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`). |
| 429 | Limite de requisições atingido. Aguarde os segundos indicados em `Retry-After`. |
curl -sS "https://api.dailybot.com/v1/plan/goals/?include=progress,projects" \
-H "X-API-KEY: $DAILYBOT_API_KEY"dailybot plan goal list --include progress --include projects{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"uuid": "00000000-0000-4000-8000-000000000006",
"name": "Q4 Roadmap",
"description": null,
"status": "on_track",
"period_start": "2026-09-28",
"period_end": "2026-10-15",
"owner": {
"uuid": "00000000-0000-4000-8000-00000000000c",
"name": "Ada L."
},
"team": null,
"progress": {
"total": 10,
"completed": 4,
"percent_complete": 40,
"is_partial": false
},
"project_count": 1,
"projects": [],
"is_archived": false,
"completed_at": null,
"archived_at": null,
"created_at": "2026-09-25T10:14:02Z",
"updated_at": "2026-09-25T10:14:02Z",
"viewer": {}
}
]
}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 uma meta
Cria uma meta com um período e um status declarado. Uma meta ativa com o mesmo nome é 409 goal_name_conflict. 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 não pode.
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. |
| description | string | Opcional | Descrição livre. Máx. 2000 caracteres. |
| period_start | date | Obrigatório | Primeiro dia do período da meta. |
| period_end | date | Obrigatório | Último dia do período da meta. |
| owner | uuid | null | Opcional | O uuid de usuário do responsável. A pessoa já precisa conseguir ver o quadro (caso contrário, 400 participant_cannot_access_board). |
| team | uuid | null | Opcional | A equipe. |
| status | enum | Opcional | Status atual. Um de not_started, on_track, at_risk, off_track, achieved, missed. |
| 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) | Goal | Obrigatório | Um objeto Goal. |
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`). |
| 409 | Uma meta ativa já tem este nome (`goal_name_conflict`). |
| 429 | Limite de requisições atingido. Aguarde os segundos indicados em `Retry-After`. |
curl -sS -X POST "https://api.dailybot.com/v1/plan/goals/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"name": "Q4 Roadmap",
"period_start": "2026-10-01",
"period_end": "2026-12-31",
"status": "on_track"
}'dailybot plan goal create -n "Q4 Roadmap" --period-start 2026-10-01 --period-end 2026-12-31Testar
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`.
Uma meta, com seu progresso derivado
Sempre retorna progress, projects e project_count; o parâmetro include não é necessário aqui.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| goal_id | string | Obrigatório | O uuid da meta. |
Resposta
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| (body) | Goal | Obrigatório | Um objeto Goal. |
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. |
| 429 | Limite de requisições atingido. Aguarde os segundos indicados em `Retry-After`. |
curl -sS "https://api.dailybot.com/v1/plan/goals/00000000-0000-4000-8000-000000000006/" \
-H "X-API-KEY: $DAILYBOT_API_KEY"dailybot plan goal get 00000000-0000-4000-8000-000000000006Testar
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 uma meta ou declarar seu status
Altera os campos de uma meta ou declara o seu status (on_track, at_risk, …). Envie só os campos que mudam. 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 não pode.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| goal_id | string | Obrigatório | O uuid da meta. |
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. 120 caracteres. |
| description | string | Opcional | Descrição livre. Máx. 2000 caracteres. |
| period_start | date | Opcional | Primeiro dia do período da meta. |
| period_end | date | Opcional | Último dia do período da meta. |
| owner | uuid | null | Opcional | O uuid de usuário do responsável. A pessoa já precisa conseguir ver o quadro (caso contrário, 400 participant_cannot_access_board). |
| team | uuid | null | Opcional | A equipe. |
| status | enum | Opcional | Status atual. Um de not_started, on_track, at_risk, off_track, achieved, missed. |
| 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) | Goal | Obrigatório | Um objeto Goal. |
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. |
| 409 | Uma meta ativa já tem este nome (`goal_name_conflict`). |
| 429 | Limite de requisições atingido. Aguarde os segundos indicados em `Retry-After`. |
curl -sS -X PATCH "https://api.dailybot.com/v1/plan/goals/00000000-0000-4000-8000-000000000006/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"status": "at_risk"
}'dailybot plan goal update 00000000-0000-4000-8000-000000000006 --status at_riskTestar
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 uma meta. Os projetos permanecem, sem meta
Arquiva a meta. Nada vive dentro de uma meta, então os projetos continuam onde estão, sem apontar para ela. Envie ?dry_run=true antes para ver a consequência sem arquivar.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| goal_id | string | Obrigatório | O uuid da meta. |
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) | Goal | DryRunPreview | Obrigatório | Um objeto Goal. 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. |
| 429 | Limite de requisições atingido. Aguarde os segundos indicados em `Retry-After`. |
curl -sS -X POST "https://api.dailybot.com/v1/plan/goals/00000000-0000-4000-8000-000000000006/archive/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan goal archive 00000000-0000-4000-8000-000000000006 --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`.
Trazer de volta uma meta arquivada
O inverso de archive/, espelhando boards/{board_id}/restore/. Restaurar uma meta que já está ativa é um no-op 200, não um erro. Os nomes de metas são únicos entre as metas ATIVAS, então, se o nome foi usado enquanto esta estava arquivada, a restauração responde 409 goal_name_conflict, o único caso que distingue uma restauração real de uma simples troca de flag.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| goal_id | string | Obrigatório | O uuid da meta. |
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) | Goal | Obrigatório | Um objeto Goal. |
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 | Uma meta ativa já tem este nome (`goal_name_conflict`). |
curl -sS -X POST "https://api.dailybot.com/v1/plan/goals/00000000-0000-4000-8000-000000000006/restore/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan goal restore 00000000-0000-4000-8000-000000000006Testar
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`.
Vincular um projeto a uma meta (a partir da página da meta)
Vincula um projeto à meta, pelo lado da meta. Um projeto pode servir a várias metas. A resposta é a meta com os seus projects.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| goal_id | string | Obrigatório | O uuid da meta. |
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 |
|---|---|---|---|
| project | uuid | Obrigatório | O projeto. |
| 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) | Goal | Obrigatório | Um objeto Goal. |
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/goals/00000000-0000-4000-8000-000000000006/projects/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"project": "00000000-0000-4000-8000-000000000001"
}'dailybot plan goal link 00000000-0000-4000-8000-000000000006 00000000-0000-4000-8000-000000000001Testar
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`.
Desvincular um projeto de uma meta
Desvincula um projeto da meta. O projeto em si não muda.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| goal_id | string | Obrigatório | O uuid da meta. |
| project_id | string | Obrigatório | O uuid do projeto. |
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/goals/00000000-0000-4000-8000-000000000006/projects/00000000-0000-4000-8000-000000000001/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan goal unlink 00000000-0000-4000-8000-000000000006 00000000-0000-4000-8000-000000000001 --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`.
Listar os anexos de uma meta
Os anexos da meta, ordenados por posição. Qualquer pessoa que possa ver a meta pode listar os anexos; uma meta 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. Para mostrar uma imagem na descrição da meta, referencie-a como attachment:{uuid} e resolva-a ao renderizar com o url recente desta lista.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| goal_id | string | Obrigatório | O uuid da meta. |
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 | As linhas desta página. Veja 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 | A meta 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/goals/00000000-0000-4000-8000-000000000006/attachments/" \
-H "X-API-KEY: $DAILYBOT_API_KEY"dailybot plan goal attachments 00000000-0000-4000-8000-000000000006 --json{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"uuid": "00000000-0000-4000-8000-000000000009",
"filename": "screenshot.png",
"content_type": "image/png",
"size": 1,
"url": "https://your.app/files/screenshot.png",
"thumbnail_url": null,
"width": null,
"height": null,
"status": "ready",
"uploaded_by": {
"kind": "user",
"uuid": "00000000-0000-4000-8000-00000000000c",
"name": "Ada L."
},
"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.
- 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 uma meta
Anexa um arquivo a uma meta. Envie multipart/form-data com o campo file e um caption opcional; aqui não há fluxo de pré-assinatura. O limite é de 5 MiB em todos os ambientes: um arquivo maior é 400 attachment_too_large, com extra.max_size_bytes. O tipo de arquivo é verificado pelo conteúdo contra a mesma lista dos anexos de tarefas (attachment_invalid_type). Uma meta aceita no máximo 50 anexos (attachment_limit_reached).
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| goal_id | string | Obrigatório | O uuid da meta. |
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 a enviar (máximo de 5 MiB por esta via). |
| caption | string | Opcional | Legenda opcional. Máximo de 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`, acima de 5 MiB), tem um tipo não aceito (`attachment_invalid_type`) ou o limite de 50 foi atingido (`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 age como membro não convidado com uma sessão iniciada ou uma API key pessoal (`insufficient_scope`); uma key de agente ou da organização sempre recebe isto. |
| 404 | A meta ou o anexo 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/goals/00000000-0000-4000-8000-000000000006/attachments/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-F "file=@./screenshot.png" \
-F "caption=Staging dashboard"dailybot plan goal attach 00000000-0000-4000-8000-000000000006 ./okr-brief.pdf --caption "OKR brief"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`.
Baixar os bytes de um anexo de uma meta
Transmite o arquivo com o tipo de conteúdo registrado no envio, X-Content-Type-Options: nosniff e Cache-Control: no-store. Nunca redireciona para o armazenamento. Qualquer pessoa que possa ver a meta pode baixá-lo.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| goal_id | string | Obrigatório | O uuid da meta. |
| attachment_id | string | Obrigatório | O uuid 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 | A meta 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/goals/00000000-0000-4000-8000-000000000006/attachments/00000000-0000-4000-8000-000000000009/content/" \
-H "X-API-KEY: $DAILYBOT_API_KEY"dailybot plan goal attachment get 00000000-0000-4000-8000-000000000006 00000000-0000-4000-8000-000000000009 -o ./okr-brief.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.
Remover um anexo de uma meta
Remove o anexo da meta.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| goal_id | string | Obrigatório | O uuid da meta. |
| attachment_id | string | 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 | 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 | Você não age como membro não convidado com uma sessão iniciada ou uma API key pessoal (`insufficient_scope`); uma key de agente ou da organização sempre recebe isto. |
| 404 | A meta 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/goals/00000000-0000-4000-8000-000000000006/attachments/00000000-0000-4000-8000-000000000009/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN"dailybot plan goal attachment delete 00000000-0000-4000-8000-000000000006 00000000-0000-4000-8000-000000000009 --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`.
Renomear um anexo da meta
Muda o nome de exibição do arquivo; os bytes guardados não mudam. As regras são as do contêiner: somente administradores da organização.
Parâmetros de rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| goal_id | string | Obrigatório | O uuid da meta. |
| 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 item pai 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/goals/00000000-0000-4000-8000-000000000006/attachments/00000000-0000-4000-8000-000000000009/" \
-H "Authorization: Bearer $DAILYBOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"filename": "spec-v2.pdf"
}'dailybot plan goal attachments rename 00000000-0000-4000-8000-000000000006 00000000-0000-4000-8000-000000000009 spec-v2.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: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 · Metas. 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.