Skip to content
ver .md original

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).

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].

GET/v1/plan/goals/BetaChave de APICLI AuthPaginação por número de página

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

NomeTipoObrigatórioDescrição
includestringOpcionalResumos 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

NomeTipoObrigatórioDescrição
pageintegerOpcionalNúmero da página, começando em 1.
page_sizeintegerOpcionalLinhas por página. Padrão 50, máximo 100. Valores fora do intervalo são ajustados, nunca rejeitados: pedir 500 retorna 100.

Filtros

NomeTipoObrigatórioDescrição
searchstringOpcionalCorresponde ao título e à chave. Mais de 256 caracteres é 400 search_query_too_long, sem truncamento. q é um alias.
statusstringOpcionalRepetível. Filtra pelo status declarado.
owned_bystringOpcionalO 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_onstringOpcionalMetas cujo período cobre esta data - a pergunta própria do roadmap.

Linhas arquivadas

NomeTipoObrigatórioDescrição
include_archivedbooleanOpcionalIncluir 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

NomeTipoObrigatórioDescrição
uuiduuidObrigatórioIdentificador público estável.
namestringObrigatórioNome de exibição. Máx. 120 caracteres.
descriptionstring | nullOpcionalDescrição livre.
statusenumObrigatórioStatus atual. Um de not_started, on_track, at_risk, off_track, achieved, missed.
period_startdateObrigatórioPrimeiro dia do período da meta.
period_enddateObrigatórioÚltimo dia do período da meta.
ownerUserRef | nullOpcionalA pessoa responsável pela tarefa. Veja UserRef.
teamTeamRef | nullOpcionalA equipe. Veja TeamRef.
progressGoalProgress | nullOpcionalResumo agregado do progresso sobre as tarefas que você pode ver. Veja GoalProgress.
project_countintegerOpcionalNúmero de projetos vinculados.
projectsarrayOpcionalProjetos vinculados. Itens: {uuid, name, slug, health, lead}.
is_archivedbooleanObrigatórioSe a linha está arquivada. Arquivar é a exclusão: linhas arquivadas continuam legíveis e restauráveis.
completed_atdate-time | nullOpcionalQuando foi concluído, ou null.
archived_atdate-time | nullOpcionalQuando a linha foi arquivada.
created_atdate-timeOpcionalQuando a linha foi criada.
updated_atdate-timeOpcionalQuando a linha mudou pela última vez.
viewerobjectObrigatórioO que você pode fazer com esta linha. Formato: {can_manage: boolean}.

Objeto UserRef

NomeTipoObrigatórioDescrição
uuiduuidObrigatórioIdentificador público estável.
namestringOpcionalNome de exibição.
avatar_urlstring | nullOpcional—
has_photobooleanOpcional—

Objeto TeamRef

NomeTipoObrigatórioDescrição
uuidstringObrigatórioIdentificador público estável.
namestringOpcionalNome de exibição.

Objeto GoalProgress

NomeTipoObrigatórioDescrição
totalintegerObrigatórioTodas as tarefas contadas.
completedintegerObrigatórioTarefas em um estado done ou canceled.
openintegerOpcionalTarefas em um estado backlog, todo ou in_progress.
blockedintegerOpcionalTarefas com um bloqueio ativo.
overdueintegerOpcionalTarefas abertas com a data de vencimento ultrapassada.
percent_completeintegerObrigatóriocompleted como porcentagem de total.
is_partialbooleanObrigatóriotrue quando parte do trabalho da meta está oculta para você, então os números cobrem apenas o que você pode ver.

Resposta

NomeTipoObrigatórioDescrição
countintegerObrigatórioNúmero total de linhas.
nexturiObrigatórioURL da próxima página, ou null.
previousuriObrigatórioURL da página anterior, ou null.
resultsarray<Goal>ObrigatórioAs linhas desta página. Veja Goal.

Erros

StatusQuando
401Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`).
402O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected].
403Autenticado, 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`).
429Limite 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"

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.
POST/v1/plan/goals/BetaCLI Auth

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

NomeTipoObrigatórioDescrição
Idempotency-KeystringOpcionalUma 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-NamestringOpcionalO 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

NomeTipoObrigatórioDescrição
namestringObrigatórioNome de exibição. Máx. 120 caracteres.
descriptionstringOpcionalDescrição livre. Máx. 2000 caracteres.
period_startdateObrigatórioPrimeiro dia do período da meta.
period_enddateObrigatórioÚltimo dia do período da meta.
owneruuid | nullOpcionalO uuid de usuário do responsável. A pessoa já precisa conseguir ver o quadro (caso contrário, 400 participant_cannot_access_board).
teamuuid | nullOpcionalA equipe.
statusenumOpcionalStatus atual. Um de not_started, on_track, at_risk, off_track, achieved, missed.
agent_namestringOpcionalO 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

NomeTipoObrigatórioDescrição
(body)GoalObrigatórioUm objeto Goal.

Erros

StatusQuando
400A 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.
401Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`).
402O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected].
403Autenticado, 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`).
409Uma meta ativa já tem este nome (`goal_name_conflict`).
429Limite 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"
  }'

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`.
GET/v1/plan/goals/{goal_id}/BetaChave de APICLI Auth

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

NomeTipoObrigatórioDescrição
goal_idstringObrigatórioO uuid da meta.

Resposta

NomeTipoObrigatórioDescrição
(body)GoalObrigatórioUm objeto Goal.

Erros

StatusQuando
401Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`).
402O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected].
403Autenticado, 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`).
404Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo.
429Limite 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"

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.
PATCH/v1/plan/goals/{goal_id}/BetaCLI Auth

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

NomeTipoObrigatórioDescrição
goal_idstringObrigatórioO uuid da meta.

Cabeçalhos

NomeTipoObrigatórioDescrição
X-Dailybot-Agent-NamestringOpcionalO 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

NomeTipoObrigatórioDescrição
namestringOpcionalNome de exibição. Máx. 120 caracteres.
descriptionstringOpcionalDescrição livre. Máx. 2000 caracteres.
period_startdateOpcionalPrimeiro dia do período da meta.
period_enddateOpcionalÚltimo dia do período da meta.
owneruuid | nullOpcionalO uuid de usuário do responsável. A pessoa já precisa conseguir ver o quadro (caso contrário, 400 participant_cannot_access_board).
teamuuid | nullOpcionalA equipe.
statusenumOpcionalStatus atual. Um de not_started, on_track, at_risk, off_track, achieved, missed.
agent_namestringOpcionalO 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

NomeTipoObrigatórioDescrição
(body)GoalObrigatórioUm objeto Goal.

Erros

StatusQuando
400A 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.
401Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`).
402O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected].
403Autenticado, 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`).
404Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo.
409Uma meta ativa já tem este nome (`goal_name_conflict`).
429Limite 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"
  }'

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`.
POST/v1/plan/goals/{goal_id}/archive/BetaCLI Auth

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

NomeTipoObrigatórioDescrição
goal_idstringObrigatórioO uuid da meta.

Parâmetros de consulta

NomeTipoObrigatórioDescrição
dry_runbooleanOpcionalMostra 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

NomeTipoObrigatórioDescrição
Idempotency-KeystringOpcionalUma 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-NamestringOpcionalO 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.

NomeTipoObrigatórioDescrição
operationstringObrigatórioA operação que seria executada.
dry_runbooleanObrigatórioSempre true.
reversiblebooleanObrigatórioSe a operação pode ser desfeita.
restore_pathstring | nullObrigatórioO caminho que a desfaria, ou null quando não há nenhum.
consequencestringObrigatórioUma frase para mostrar a uma pessoa antes de agir. Descreve o efeito em cascata em vez de resumi-lo.
affectsobjectObrigatórioO que a operação afetaria, como contagens (inteiros) por tipo.
would_refusebooleanOpcionalSomente ao arquivar um estado do fluxo de trabalho: true quando a chamada real seria recusada.
refusal_codestringOpcionalSomente ao arquivar um estado do fluxo de trabalho: o código de erro com que a chamada real responderia.

Resposta

NomeTipoObrigatórioDescrição
(body)Goal | DryRunPreviewObrigatórioUm objeto Goal. Com ?dry_run=true, um objeto DryRunPreview no lugar.

Erros

StatusQuando
400O nome do agente não é válido (`invalid_agent_attribution`).
401Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`).
402O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected].
403Autenticado, 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`).
404Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo.
429Limite 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"

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`.
POST/v1/plan/goals/{goal_id}/restore/BetaCLI Auth

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

NomeTipoObrigatórioDescrição
goal_idstringObrigatórioO uuid da meta.

Cabeçalhos

NomeTipoObrigatórioDescrição
X-Dailybot-Agent-NamestringOpcionalO 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

NomeTipoObrigatórioDescrição
(body)GoalObrigatórioUm objeto Goal.

Erros

StatusQuando
400O nome do agente não é válido (`invalid_agent_attribution`).
401Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`).
402O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected].
403Autenticado, 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`).
404Não encontrado ou não visível para você. Os dois casos retornam o mesmo corpo.
409Uma 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"

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`.
GET/v1/plan/goals/{goal_id}/attachments/BetaChave de APICLI AuthPaginação por número de página

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

NomeTipoObrigatórioDescrição
goal_idstringObrigatórioO uuid da meta.

Parâmetros de consulta

NomeTipoObrigatórioDescrição
pageintegerOpcionalNúmero da página, começando em 1.
page_sizeintegerOpcionalLinhas por página. Padrão 50, máximo 100. Valores fora do intervalo são ajustados, nunca rejeitados: pedir 500 retorna 100.

Objeto TaskAttachment

NomeTipoObrigatórioDescrição
uuiduuidObrigatórioIdentificador público estável.
filenamestringObrigatórioNome do arquivo.
content_typestringObrigatórioTipo MIME.
sizeintegerObrigatórioTamanho em bytes.
urlstringObrigatórioOnde baixar o arquivo.
thumbnail_urluri | nullOpcionalMiniatura para imagens.
widthinteger | nullOpcional—
heightinteger | nullOpcional—
statusenumObrigatórioStatus atual. Um de pending, ready, scanning, rejected.
uploaded_byActorRef | nullOpcionalQuem enviou o arquivo. Veja ActorRef.
executed_by_agentobject | nullOpcionalO 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_atdate-timeObrigatórioQuando a linha foi criada.

Objeto ActorRef

NomeTipoObrigatórioDescrição
kindstringObrigatório—
uuidstringObrigatórioIdentificador público estável.
namestringOpcionalNome de exibição.
usernamestring | nullOpcional—
avatar_urlstring | nullOpcional—
has_photobooleanOpcional—

Resposta

NomeTipoObrigatórioDescrição
countintegerObrigatórioNúmero total de linhas.
nexturiObrigatórioURL da próxima página, ou null.
previousuriObrigatórioURL da página anterior, ou null.
resultsarray<TaskAttachment>ObrigatórioAs linhas desta página. Veja TaskAttachment.

Erros

StatusQuando
401Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`).
402O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected].
404A 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"

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.
POST/v1/plan/goals/{goal_id}/attachments/BetaCLI Auth

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

NomeTipoObrigatórioDescrição
goal_idstringObrigatórioO uuid da meta.

Cabeçalhos

NomeTipoObrigatórioDescrição
X-Dailybot-Agent-NamestringOpcionalO 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

NomeTipoObrigatórioDescrição
filebinaryObrigatórioO arquivo a enviar (máximo de 5 MiB por esta via).
captionstringOpcionalLegenda opcional. Máximo de 255 caracteres.

Resposta

NomeTipoObrigatórioDescrição
(body)TaskAttachmentObrigatórioUm objeto TaskAttachment.

Erros

StatusQuando
400O 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.
401Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`).
402O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected].
403Você 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.
404A 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"

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`.
GET/v1/plan/goals/{goal_id}/attachments/{attachment_id}/content/BetaChave de APICLI Auth

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

NomeTipoObrigatórioDescrição
goal_idstringObrigatórioO uuid da meta.
attachment_idstringObrigatórioO uuid do anexo.

Erros

StatusQuando
401Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`).
402O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected].
404A 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"

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.
DELETE/v1/plan/goals/{goal_id}/attachments/{attachment_id}/BetaCLI Auth

Remover um anexo de uma meta

Remove o anexo da meta.

Parâmetros de rota

NomeTipoObrigatórioDescrição
goal_idstringObrigatórioO uuid da meta.
attachment_idstringObrigatórioO uuid do anexo.

Cabeçalhos

NomeTipoObrigatórioDescrição
X-Dailybot-Agent-NamestringOpcionalO 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

StatusQuando
400O nome do agente não é válido (`invalid_agent_attribution`).
401Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`).
402O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected].
403Você 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.
404A 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"

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`.
PATCH/v1/plan/goals/{goal_id}/attachments/{attachment_id}/BetaCLI Auth

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

NomeTipoObrigatórioDescrição
goal_idstringObrigatórioO uuid da meta.
attachment_iduuidObrigatórioO uuid do anexo.

Cabeçalhos

NomeTipoObrigatórioDescrição
X-Dailybot-Agent-NamestringOpcionalO 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

NomeTipoObrigatórioDescrição
filenamestringObrigatórioO novo nome do arquivo (1–255 caracteres). Os bytes guardados não mudam.
agent_namestringOpcionalO 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

NomeTipoObrigatórioDescrição
(body)TaskAttachmentObrigatórioUm objeto TaskAttachment.

Erros

StatusQuando
400A validação falhou; o `code` da resposta indica qual campo. `invalid_agent_attribution` significa que o nome do agente não é válido.
401Credencial ausente, expirada ou malformada (`credential_absent`, `credential_expired`, `credential_malformed`).
402O Plan ainda não está habilitado para sua organização (`plan_upgrade_required`). É o esperado durante a Beta: escreva para [email protected].
403Você 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.
404O 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"
}'

Testar

Este é um ajudante apenas de cópia — a requisição não é enviada do seu navegador. Cole o comando no seu terminal para executá-lo.

  • Scope: `tasks:admin` — escritas em contêineres. Um membro não convidado pode chamá-lo com uma sessão iniciada ou uma API key pessoal (uma key com scopes de Plan explícitos precisa de `tasks:write`, que o cobre); uma key de agente ou da organização recebe `403 insufficient_scope`.
  • Limite de requisições: 60 escritas por minuto por ator.
  • Exige uma pessoa: chame com uma sessão iniciada, um token de usuário da CLI ou uma API key pessoal. Uma key de agente ou da organização recebe `403 insufficient_scope`.

Esta página é a referência de Plan · 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.