Skip to content
ver .md sin procesar

Plan · Proyectos

Los proyectos agrupan tableros y reúnen su salud, notas de estado, hitos, miembros y vistas guardadas. Parte de la API de Dailybot Plan (Beta).

En esta página

Beta

Plan está en beta. Todo lo que está bajo /plan en la aplicación web, los comandos del CLI y de la agent skill para proyectos, objetivos, tableros y tareas, y la API pública /v1/plan/ puede cambiar antes de la disponibilidad general. ¿Quieres probarlo con tu equipo? Escribe a [email protected].

GET/v1/plan/projects/BetaAPI keyCLI AuthPaginación por número de página

Listar proyectos

Los proyectos que puedes ver, en una página. Busca con search, filtra por fechas con start_date / end_date y trae los proyectos archivados con include_archived. include agrega bloques opcionales a cada fila.

Parámetros de consulta

Orden y expansión

NombreTipoRequeridoDescripción
includestringOpcionalResúmenes agregados para incrustar, separados por comas. progress es el único token. Se omite por defecto porque es un agregado; cuando se pide, se calcula sobre la página devuelta. Un token desconocido es 400 invalid_filter_value; un valor vacío no tiene efecto.

Paginación

NombreTipoRequeridoDescripción
pageintegerOpcionalNúmero de página, empezando en 1.
page_sizeintegerOpcionalFilas por página. 50 por defecto, máximo 100. Los valores fuera de rango se ajustan, nunca se rechazan: pedir 500 devuelve 100.
limitintegerOpcionalAlias de page_size, traducido en el servidor.
offsetintegerOpcionalAlias traducido a page en el servidor.

Filtros

NombreTipoRequeridoDescripción
searchstringOpcionalCoincide con el título y la clave. Más de 256 caracteres es 400 search_query_too_long, no se trunca. q es un alias.

Filas archivadas

NombreTipoRequeridoDescripción
is_archivedbooleanOpcionaltrue devuelve solo las filas archivadas; false (por defecto), solo las activas. Archivar es la eliminación, así que las filas archivadas siguen siendo legibles.
include_archivedbooleanOpcionalIncluye las filas archivadas junto con las activas. Es distinto de is_archived, que selecciona un conjunto u otro: include_archived=true es la unión. Las listas devuelven filas activas a menos que lo pidas.

Fechas

NombreTipoRequeridoDescripción
start_datestringOpcionalInicio de la ventana de fecha de creación. Es lo que produce --since del CLI.
end_datestringOpcionalFin de la ventana de fecha de creación. Es lo que produce --until del CLI.

Objeto Project

NombreTipoRequeridoDescripción
uuiduuidRequeridoIdentificador público estable.
namestringRequeridoNombre visible. Máx. 120 caracteres.
slugstringOpcionalNombre apto para URL. Máx. 48 caracteres.
descriptionstring | nullOpcionalDescripción libre.
leadUserRef | nullOpcionalEl líder del proyecto. Ver UserRef.
goalsarrayOpcionalObjetivos a los que apunta este proyecto. Un proyecto puede servir a varios objetivos. Siempre presentes: uuid. Elementos: {uuid, name}.
goalobjectOpcionalEl objetivo, cuando hay exactamente uno. Forma: {uuid, name}|null.
board_countintegerOpcionalNúmero de tableros activos en el proyecto.
healthenumOpcionalSalud declarada. Uno de not_set, on_track, at_risk, off_track.
start_datedate | nullOpcionalFecha de inicio planificada.
target_datedate | nullOpcionalFecha de fin planificada.
progressProjectProgress | nullOpcionalResumen agregado del progreso sobre las tareas que puedes ver. Ver ProjectProgress.
is_archivedbooleanRequeridoSi la fila está archivada. Archivar es la forma de eliminar: las filas archivadas siguen siendo legibles y se pueden restaurar.
archived_atdate-time | nullOpcionalCuándo se archivó la fila.
created_atdate-timeOpcionalCuándo se creó la fila.
updated_atdate-timeOpcionalCuándo cambió la fila por última vez.
viewerobjectOpcionalLo que puedes hacer con esta fila. Forma: {can_see_content: boolean, can_manage: boolean} (both required).

Objeto UserRef

NombreTipoRequeridoDescripción
uuiduuidRequeridoIdentificador público estable.
namestringOpcionalNombre visible.
avatar_urlstring | nullOpcional—
has_photobooleanOpcional—

Objeto ProjectProgress

NombreTipoRequeridoDescripción
totalintegerRequeridoTodas las tareas contadas.
completedintegerRequeridoTareas en un estado done o canceled.
openintegerOpcionalTareas en un estado backlog, todo o in_progress.
blockedintegerOpcionalTareas con un bloqueo activo.
overdueintegerOpcionalTareas abiertas con la fecha de vencimiento ya pasada.
percent_completeintegerRequeridocompleted como porcentaje de total.

Respuesta

NombreTipoRequeridoDescripción
countintegerRequeridoNúmero total de filas.
nexturiRequeridoURL de la página siguiente, o null.
previousuriRequeridoURL de la página anterior, o null.
resultsarray<Project>RequeridoLas filas de esta página. Ver Project.

Errores

EstadoCuándo
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403Autenticado pero sin permiso: falta el scope (`insufficient_scope`, que es también lo que recibe una key de agente o de la organización en una operación que requiere una persona, y lo que recibe una key personal cuando sus scopes de Plan explícitos no cubren el endpoint) o es una cuenta de invitado (`guest_not_allowed`).
429Llegaste al límite de solicitudes. Espera los segundos que indica `Retry-After`.
curl -sS "https://api.dailybot.com/v1/plan/projects/?include=progress" \
  -H "X-API-KEY: $DAILYBOT_API_KEY"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:read`.
  • Límite de solicitudes: 120 lecturas por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
POST/v1/plan/projects/BetaCLI Auth

Crear un proyecto

Crea un proyecto, el contenedor que agrupa tableros. Todo miembro no invitado puede llamarlo (con una sesión iniciada o una API key personal); una key de agente o de la organización no puede. Envía un Idempotency-Key para reintentar sin riesgo; el límite de proyectos del plan responde 402 task_projects_limit_reached.

Encabezados

NombreTipoRequeridoDescripción
Idempotency-KeystringOpcionalUna clave que generas para esta intención. Una repetición con la misma clave y el mismo cuerpo devuelve la primera respuesta sin un segundo efecto secundario y lleva Idempotency-Replayed: true. Las claves se conservan durante 24 horas. La misma clave con un cuerpo distinto es 409 idempotency_key_payload_mismatch; una repetición mientras la primera llamada sigue en curso recibe 409 idempotency_in_progress durante hasta 120 segundos.
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Cuerpo de la solicitud

NombreTipoRequeridoDescripción
visibilityenumOpcionalorg (todos en la organización — espacio compartido) o members (solo grants explícitos; invita con POST …/members/). Crear como members te otorga. Uno de org, members. Valor por defecto org.
namestringRequeridoNombre visible. Máx. 120 caracteres.
descriptionstring | nullOpcionalDescripción libre. Máx. 2000 caracteres.
leaduuid | nullOpcionalEl líder del proyecto.
healthenumOpcionalSalud declarada. Uno de not_set, on_track, at_risk, off_track.
start_datedate | nullOpcionalFecha de inicio planificada.
target_datedate | nullOpcionalFecha de fin planificada.
agent_namestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona (máx. 128 caracteres, vacío significa sin agente). Tiene prioridad sobre el header X-Dailybot-Agent-Name. Ver Atribución de agente.

Respuesta

NombreTipoRequeridoDescripción
(body)ProjectRequeridoUn objeto Project.

Errores

EstadoCuándo
400La validación falló, o no se reconoció un valor de filtro, orden o `include`. El `code` de la respuesta indica cuál. `invalid_agent_attribution` significa que el nombre del agente no es válido.
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`), o se alcanzó el tope de proyectos del plan (`task_projects_limit_reached`).
403Autenticado pero sin permiso: falta el scope (`insufficient_scope`, que es también lo que recibe una key de agente o de la organización en una operación que requiere una persona, y lo que recibe una key personal cuando sus scopes de Plan explícitos no cubren el endpoint) o es una cuenta de invitado (`guest_not_allowed`).
409Conflicto. El `code` de la respuesta indica cuál (por ejemplo, `version_conflict`).
429Llegaste al límite de solicitudes. Espera los segundos que indica `Retry-After`.
curl -sS -X POST "https://api.dailybot.com/v1/plan/projects/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Q4 Roadmap",
    "visibility": "org",
    "health": "on_track",
    "target_date": "2026-12-18"
  }'

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:admin` — escrituras de contenedores. Un miembro no invitado puede llamarlo con una sesión iniciada o una API key personal (una key con scopes de Plan explícitos necesita `tasks:write`, que lo cubre); una key de agente o de la organización recibe `403 insufficient_scope`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Requiere una persona: llámalo con una sesión iniciada, un token de usuario del CLI o una API key personal. Una key de agente o de la organización recibe `403 insufficient_scope`.
GET/v1/plan/projects/{project_id}/BetaAPI keyCLI Auth

Obtener un proyecto

Un proyecto por su uuid. Un proyecto que no puedes ver responde 404, igual que uno que no existe.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.

Respuesta

NombreTipoRequeridoDescripción
(body)ProjectRequeridoUn objeto Project.

Errores

EstadoCuándo
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
404No existe o no es visible para ti. Ambos casos devuelven el mismo cuerpo.
curl -sS "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:read`.
  • Límite de solicitudes: 120 lecturas por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
PATCH/v1/plan/projects/{project_id}/BetaCLI Auth

Actualizar un proyecto

Cambia los campos de un proyecto. Envía solo los campos que cambias. Todo miembro no invitado puede llamarlo (con una sesión iniciada o una API key personal); una key de agente o de la organización no puede. Poner visibility en members privatiza el proyecto y otorga automáticamente al actor que lo privatiza.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.

Encabezados

NombreTipoRequeridoDescripción
Idempotency-KeystringOpcionalUna clave que generas para esta intención. Una repetición con la misma clave y el mismo cuerpo devuelve la primera respuesta sin un segundo efecto secundario y lleva Idempotency-Replayed: true. Las claves se conservan durante 24 horas. La misma clave con un cuerpo distinto es 409 idempotency_key_payload_mismatch; una repetición mientras la primera llamada sigue en curso recibe 409 idempotency_in_progress durante hasta 120 segundos.
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Cuerpo de la solicitud

NombreTipoRequeridoDescripción
visibilityenumOpcionalorg (todos en la organización) o members (solo miembros explícitos). Cambiar de org a members otorga automáticamente al actor que privatiza. Uno de org, members.
namestringOpcionalNombre visible. Máx. 120 caracteres.
descriptionstring | nullOpcionalDescripción libre. Máx. 2000 caracteres.
leaduuid | nullOpcionalEl líder del proyecto.
healthenumOpcionalSalud declarada. Uno de not_set, on_track, at_risk, off_track.
start_datedate | nullOpcionalFecha de inicio planificada.
target_datedate | nullOpcionalFecha de fin planificada.
agent_namestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona (máx. 128 caracteres, vacío significa sin agente). Tiene prioridad sobre el header X-Dailybot-Agent-Name. Ver Atribución de agente.

Respuesta

NombreTipoRequeridoDescripción
(body)ProjectRequeridoUn objeto Project.

Errores

EstadoCuándo
400La validación falló, o no se reconoció un valor de filtro, orden o `include`. El `code` de la respuesta indica cuál. `invalid_agent_attribution` significa que el nombre del agente no es válido.
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403Autenticado pero sin permiso: falta el scope (`insufficient_scope`, que es también lo que recibe una key de agente o de la organización en una operación que requiere una persona, y lo que recibe una key personal cuando sus scopes de Plan explícitos no cubren el endpoint) o es una cuenta de invitado (`guest_not_allowed`).
404No existe o no es visible para ti. Ambos casos devuelven el mismo cuerpo.
curl -sS -X PATCH "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "health": "at_risk"
  }'

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:admin` — escrituras de contenedores. Un miembro no invitado puede llamarlo con una sesión iniciada o una API key personal (una key con scopes de Plan explícitos necesita `tasks:write`, que lo cubre); una key de agente o de la organización recibe `403 insufficient_scope`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Requiere una persona: llámalo con una sesión iniciada, un token de usuario del CLI o una API key personal. Una key de agente o de la organización recibe `403 insufficient_scope`.
GET/v1/plan/projects/updates/BetaAPI keyCLI AuthPaginación por número de página

Las actualizaciones más recientes de todos los proyectos que quien llama puede ver

La forma agrupada de la lista de actualizaciones por proyecto, para una pantalla de inicio que de otro modo la llamaría una vez por proyecto.

Devuelve las per_project actualizaciones más recientes de cada proyecto visible como una sola lista plana y paginada; cada fila lleva su project, así que agrupa por ese campo. Ordenada por nombre de proyecto y luego de la más reciente a la más antigua. Es un avance, no un historial: para un hilo completo o un proyecto archivado, usa GET /v1/plan/projects/{project_id}/updates/.

projects limita a los proyectos indicados. Un proyecto que no puedes ver se omite en silencio en lugar de rechazarse, y los proyectos archivados se excluyen aunque se indiquen. body_html se genera y se sanitiza en el servidor.

Parámetros de consulta

NombreTipoRequeridoDescripción
pageintegerOpcionalNúmero de página, empezando en 1.
page_sizeintegerOpcionalFilas por página. 50 por defecto, máximo 100. Los valores fuera de rango se ajustan, nunca se rechazan: pedir 500 devuelve 100.
projectsarrayOpcionaluuids de proyectos a los que limitar. Repetible; los valores se combinan con OR. Un proyecto que quien llama no puede ver, o uno archivado, no aporta nada en lugar de generar un error. Más del máximo publicado es 400 too_many_filter_values.
per_projectintegerOpcionalCuántas actualizaciones aporta cada proyecto. Se ajusta al máximo publicado en lugar de rechazarse: es un tamaño de avance, no un identificador, y una pantalla de inicio que pide demasiadas debería recibir una página completa en lugar de un error.

Objeto ProjectUpdate

NombreTipoRequeridoDescripción
uuiduuidRequeridoIdentificador público estable.
projectuuid | nullRequeridoEl proyecto.
bodystringRequeridoMarkdown tal como se escribió. Menciona a alguien con <@DB@{uuid}>, usando un uuid de la lista de mencionables.
body_htmlstringRequeridobody renderizado y sanitizado por el servidor. Nunca se acepta HTML del cliente.
mentionsarray<ActorRef>OpcionalLas personas mencionadas. Léelas desde aquí, nunca analizando body. Ver ActorRef.
healthenum | nullOpcionalSalud declarada. Uno de not_set, on_track, at_risk, off_track.
created_byActorRef | nullOpcionalQuién creó la fila. Ver ActorRef.
created_atdate-timeRequeridoCuándo se creó la fila.
updated_atdate-timeOpcionalCuándo cambió la fila por última vez.
executed_by_agentobject | nullOpcionalEl agente que ejecutó la publicación de esta persona, junto a created_by, o null si es una publicación humana normal: {uuid, name, username, avatar}.
provenanceenumOpcionalCómo llegó el texto: typed, agent_authored o retrieved. Una nota publicada con una API key, o sellada con un agente, es agent_authored.
edited_atdate-time | nullOpcionalNulo hasta la primera edición.
attachmentsarray<TaskAttachment>OpcionalAdjuntos listos, ordenados por posición, incluidos. Súbelos con POST …/updates/{update_id}/attachments/.

Objeto ActorRef

NombreTipoRequeridoDescripción
kindstringRequerido—
uuidstringRequeridoIdentificador público estable.
namestringOpcionalNombre visible.
usernamestring | nullOpcional—
avatar_urlstring | nullOpcional—
has_photobooleanOpcional—

Respuesta

NombreTipoRequeridoDescripción
countintegerRequeridoNúmero total de filas.
nexturiRequeridoURL de la página siguiente, o null.
previousuriRequeridoURL de la página anterior, o null.
resultsarray<ProjectUpdate>RequeridoLas filas de esta página. Ver ProjectUpdate.

Errores

EstadoCuándo
400La validación falló, o no se reconoció un valor de filtro, orden o `include`. El `code` de la respuesta indica cuál.
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
curl -sS "https://api.dailybot.com/v1/plan/projects/updates/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:read`.
  • Límite de solicitudes: 120 lecturas por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
GET/v1/plan/projects/{project_id}/updates/BetaAPI keyCLI AuthPaginación por número de página

Notas de estado de un proyecto, las más recientes primero

La mitad narrativa de un roadmap: por qué la salud es la que es, con un nombre y una fecha. body es el Markdown tal como se escribió; body_html se genera en el servidor con el mismo sanitizador que usan los comentarios, así que nunca se confía en HTML enviado por el cliente.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.

Parámetros de consulta

NombreTipoRequeridoDescripción
pageintegerOpcionalNúmero de página, empezando en 1.
page_sizeintegerOpcionalFilas por página. 50 por defecto, máximo 100. Los valores fuera de rango se ajustan, nunca se rechazan: pedir 500 devuelve 100.

Respuesta

NombreTipoRequeridoDescripción
countintegerRequeridoNúmero total de filas.
nexturiRequeridoURL de la página siguiente, o null.
previousuriRequeridoURL de la página anterior, o null.
resultsarray<ProjectUpdate>RequeridoLas filas de esta página. Ver ProjectUpdate.

Errores

EstadoCuándo
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403Autenticado pero sin permiso: falta el scope (`insufficient_scope`, que es también lo que recibe una key de agente o de la organización en una operación que requiere una persona, y lo que recibe una key personal cuando sus scopes de Plan explícitos no cubren el endpoint) o es una cuenta de invitado (`guest_not_allowed`).
404No existe o no es visible para ti. Ambos casos devuelven el mismo cuerpo.
curl -sS "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/updates/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:read`.
  • Límite de solicitudes: 120 lecturas por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
POST/v1/plan/projects/{project_id}/updates/BetaAPI keyCLI Auth

Publicar una nota de estado

Envía body como Markdown. NO se acepta un body_html: el servidor lo renderiza y sanitiza, así que la lista de permitidos es nuestra y hay una sola. health registra lo que el autor declaró ese día y no cambia Project.health.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.

Encabezados

NombreTipoRequeridoDescripción
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Cuerpo de la solicitud

NombreTipoRequeridoDescripción
bodystringRequeridoMarkdown. Menciona a alguien con <@DB@{uuid}>, usando un uuid de la lista de mencionables.
healthenum | nullOpcionalSalud declarada. Uno de not_set, on_track, at_risk, off_track.
agent_namestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona (máx. 128 caracteres, vacío significa sin agente). Tiene prioridad sobre el header X-Dailybot-Agent-Name. Ver Atribución de agente.

Respuesta

NombreTipoRequeridoDescripción
(body)ProjectUpdateRequeridoUn objeto ProjectUpdate.

Errores

EstadoCuándo
400La validación falló, o no se reconoció un valor de filtro, orden o `include`. El `code` de la respuesta indica cuál. `invalid_agent_attribution` significa que el nombre del agente no es válido.
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403Autenticado pero sin permiso: falta el scope (`insufficient_scope`, que es también lo que recibe una key de agente o de la organización en una operación que requiere una persona, y lo que recibe una key personal cuando sus scopes de Plan explícitos no cubren el endpoint) o es una cuenta de invitado (`guest_not_allowed`).
404No existe o no es visible para ti. Ambos casos devuelven el mismo cuerpo.
curl -sS -X POST "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/updates/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "body": "Staging is green; rolling out Friday. <@DB@00000000-0000-4000-8000-00000000000c> owns the release.",
    "health": "on_track"
  }'

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:write`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
GET/v1/plan/projects/{project_id}/milestones/BetaAPI keyCLI AuthPaginación por número de página

Compromisos con fecha dentro de un proyecto, en orden de fecha

Cada fila incluye task_count, calculado en la misma consulta: un roadmap dibuja todos los marcadores a la vez, así que un conteo por marcador sería una consulta por fila.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.

Parámetros de consulta

NombreTipoRequeridoDescripción
pageintegerOpcionalNúmero de página, empezando en 1.
page_sizeintegerOpcionalFilas por página. 50 por defecto, máximo 100. Los valores fuera de rango se ajustan, nunca se rechazan: pedir 500 devuelve 100.
include_archivedbooleanOpcionalIncluye las filas archivadas junto con las activas. Es distinto de is_archived, que selecciona un conjunto u otro: include_archived=true es la unión. Las listas devuelven filas activas a menos que lo pidas.

Objeto ProjectMilestone

NombreTipoRequeridoDescripción
uuiduuidRequeridoIdentificador público estable.
namestringRequeridoNombre visible.
descriptionstring | nullOpcionalDescripción libre.
datedateRequeridoLa fecha del hito.
task_countintegerOpcionalNúmero de tareas activas.
attachment_countintegerOpcionalAdjuntos listos de este hito. Refiérete a ellos desde description con marcadores attachment:{uuid} y lístalos en …/milestones/{milestone_id}/attachments/.
is_archivedbooleanOpcionalSi la fila está archivada. Archivar es la forma de eliminar: las filas archivadas siguen siendo legibles y se pueden restaurar.
completed_atdate-time | nullOpcionalCuándo se completó, o null.
created_atdate-timeOpcionalCuándo se creó la fila.
updated_atdate-timeOpcionalCuándo cambió la fila por última vez.

Respuesta

NombreTipoRequeridoDescripción
countintegerRequeridoNúmero total de filas.
nexturiRequeridoURL de la página siguiente, o null.
previousuriRequeridoURL de la página anterior, o null.
resultsarray<ProjectMilestone>RequeridoLas filas de esta página. Ver ProjectMilestone.

Errores

EstadoCuándo
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403Autenticado pero sin permiso: falta el scope (`insufficient_scope`, que es también lo que recibe una key de agente o de la organización en una operación que requiere una persona, y lo que recibe una key personal cuando sus scopes de Plan explícitos no cubren el endpoint) o es una cuenta de invitado (`guest_not_allowed`).
404No existe o no es visible para ti. Ambos casos devuelven el mismo cuerpo.
curl -sS "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/milestones/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:read`.
  • Límite de solicitudes: 120 lecturas por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
POST/v1/plan/projects/{project_id}/milestones/BetaAPI keyCLI Auth

Comprometerse con un momento fechado

Agrega un hito a un proyecto: un name, una date y una description opcional. Complétalo después con el endpoint de completar.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.

Encabezados

NombreTipoRequeridoDescripción
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Cuerpo de la solicitud

NombreTipoRequeridoDescripción
namestringRequeridoNombre visible.
datedateRequeridoLa fecha del hito.
descriptionstring | nullOpcionalDescripción libre.
agent_namestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona (máx. 128 caracteres, vacío significa sin agente). Tiene prioridad sobre el header X-Dailybot-Agent-Name. Ver Atribución de agente.

Respuesta

NombreTipoRequeridoDescripción
(body)ProjectMilestoneRequeridoUn objeto ProjectMilestone.

Errores

EstadoCuándo
400La validación falló, o no se reconoció un valor de filtro, orden o `include`. El `code` de la respuesta indica cuál. `invalid_agent_attribution` significa que el nombre del agente no es válido.
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403Autenticado pero sin permiso: falta el scope (`insufficient_scope`, que es también lo que recibe una key de agente o de la organización en una operación que requiere una persona, y lo que recibe una key personal cuando sus scopes de Plan explícitos no cubren el endpoint) o es una cuenta de invitado (`guest_not_allowed`).
404No existe o no es visible para ti. Ambos casos devuelven el mismo cuerpo.
curl -sS -X POST "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/milestones/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Beta launch",
    "date": "2026-10-15"
  }'

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:write`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
PATCH/v1/plan/projects/{project_id}/milestones/{milestone_id}/BetaAPI keyCLI Auth

Mover o renombrar un hito

Renombra un hito, cambia su fecha o edita su descripción. Envía solo los campos que cambias.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
milestone_idstringRequeridoEl uuid del hito.

Encabezados

NombreTipoRequeridoDescripción
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Cuerpo de la solicitud

NombreTipoRequeridoDescripción
namestringOpcionalNombre visible.
datedateOpcionalLa fecha del hito.
descriptionstring | nullOpcionalDescripción libre.
agent_namestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona (máx. 128 caracteres, vacío significa sin agente). Tiene prioridad sobre el header X-Dailybot-Agent-Name. Ver Atribución de agente.

Respuesta

NombreTipoRequeridoDescripción
(body)ProjectMilestoneRequeridoUn objeto ProjectMilestone.

Errores

EstadoCuándo
400La validación falló, o no se reconoció un valor de filtro, orden o `include`. El `code` de la respuesta indica cuál. `invalid_agent_attribution` significa que el nombre del agente no es válido.
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403Autenticado pero sin permiso: falta el scope (`insufficient_scope`, que es también lo que recibe una key de agente o de la organización en una operación que requiere una persona, y lo que recibe una key personal cuando sus scopes de Plan explícitos no cubren el endpoint) o es una cuenta de invitado (`guest_not_allowed`).
404No existe o no es visible para ti. Ambos casos devuelven el mismo cuerpo.
curl -sS -X PATCH "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/milestones/00000000-0000-4000-8000-000000000007/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "date": "2026-10-22"
  }'

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:write`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
DELETE/v1/plan/projects/{project_id}/milestones/{milestone_id}/BetaAPI keyCLI Auth

Retirar un hito (lo archiva; las tareas siguen apuntando a él)

Archiva en lugar de eliminar de forma definitiva, así que las tareas siguen apuntando al hito y la asociación nunca se pierde. El cambio se registra en el feed de actividad como project.milestone_deleted; léelo como "retirado". No es un evento de webhook.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
milestone_idstringRequeridoEl uuid del hito.

Encabezados

NombreTipoRequeridoDescripción
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Errores

EstadoCuándo
400El nombre del agente no es válido (`invalid_agent_attribution`).
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403Autenticado pero sin permiso: falta el scope (`insufficient_scope`, que es también lo que recibe una key de agente o de la organización en una operación que requiere una persona, y lo que recibe una key personal cuando sus scopes de Plan explícitos no cubren el endpoint) o es una cuenta de invitado (`guest_not_allowed`).
404No existe o no es visible para ti. Ambos casos devuelven el mismo cuerpo.
curl -sS -X DELETE "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/milestones/00000000-0000-4000-8000-000000000007/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:write`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
POST/v1/plan/projects/{project_id}/milestones/{milestone_id}/complete/BetaAPI keyCLI Auth

Marcar un hito como completado

Completar con tareas abiertas está permitido. Esas tareas siguen abiertas; la respuesta informa open_task_count. Reversible con …/reopen/. ?dry_run=true devuelve la consecuencia sin escribir.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
milestone_idstringRequeridoEl uuid del hito.

Parámetros de consulta

NombreTipoRequeridoDescripción
dry_runbooleanOpcionalPrevisualiza la consecuencia sin ejecutarla. La respuesta tiene la misma forma, {operation, dry_run, reversible, restore_path, consequence, affects}, pero no se escribe nada ni se emite ningún evento. Muestra consequence a una persona antes de actuar.

Encabezados

NombreTipoRequeridoDescripción
Idempotency-KeystringOpcionalUna clave que generas para esta intención. Una repetición con la misma clave y el mismo cuerpo devuelve la primera respuesta sin un segundo efecto secundario y lleva Idempotency-Replayed: true. Las claves se conservan durante 24 horas. La misma clave con un cuerpo distinto es 409 idempotency_key_payload_mismatch; una repetición mientras la primera llamada sigue en curso recibe 409 idempotency_in_progress durante hasta 120 segundos.
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Objeto DryRunPreview

Lo que responde la llamada con ?dry_run=true: la consecuencia, sin ejecutarla. No se escribe nada ni se emite ningún evento.

NombreTipoRequeridoDescripción
operationstringRequeridoLa operación que se ejecutaría.
dry_runbooleanRequeridoSiempre true.
reversiblebooleanRequeridoSi la operación se puede deshacer.
restore_pathstring | nullRequeridoLa ruta que la desharía, o null cuando no hay ninguna.
consequencestringRequeridoUna frase para mostrarle a una persona antes de actuar. Describe el efecto en cascada en lugar de resumirlo.
affectsobjectRequeridoLo que tocaría la operación, como conteos (enteros) por tipo.
would_refusebooleanOpcionalSolo al archivar un estado del flujo de trabajo: true cuando la llamada real se rechazaría.
refusal_codestringOpcionalSolo al archivar un estado del flujo de trabajo: el código de error con el que respondería la llamada real.

Respuesta

NombreTipoRequeridoDescripción
(body)ProjectMilestone | DryRunPreviewRequeridoUn objeto ProjectMilestone. Con ?dry_run=true, un objeto DryRunPreview en su lugar.
open_task_countintegerOpcionalTareas aún abiertas en el hito. Se permite completarlo con tareas abiertas.

Errores

EstadoCuándo
400El nombre del agente no es válido (`invalid_agent_attribution`).
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403Autenticado pero sin permiso: falta el scope (`insufficient_scope`, que es también lo que recibe una key de agente o de la organización en una operación que requiere una persona, y lo que recibe una key personal cuando sus scopes de Plan explícitos no cubren el endpoint) o es una cuenta de invitado (`guest_not_allowed`).
404No existe o no es visible para ti. Ambos casos devuelven el mismo cuerpo.
curl -sS -X POST "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/milestones/00000000-0000-4000-8000-000000000007/complete/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:write`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
POST/v1/plan/projects/{project_id}/milestones/{milestone_id}/reopen/BetaAPI keyCLI Auth

Quitar la finalización del hito

Borra la finalización de un hito, así vuelve a contar como abierto.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
milestone_idstringRequeridoEl uuid del hito.

Encabezados

NombreTipoRequeridoDescripción
Idempotency-KeystringOpcionalUna clave que generas para esta intención. Una repetición con la misma clave y el mismo cuerpo devuelve la primera respuesta sin un segundo efecto secundario y lleva Idempotency-Replayed: true. Las claves se conservan durante 24 horas. La misma clave con un cuerpo distinto es 409 idempotency_key_payload_mismatch; una repetición mientras la primera llamada sigue en curso recibe 409 idempotency_in_progress durante hasta 120 segundos.
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Respuesta

NombreTipoRequeridoDescripción
(body)ProjectMilestoneRequeridoUn objeto ProjectMilestone.

Errores

EstadoCuándo
400El nombre del agente no es válido (`invalid_agent_attribution`).
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403Autenticado pero sin permiso: falta el scope (`insufficient_scope`, que es también lo que recibe una key de agente o de la organización en una operación que requiere una persona, y lo que recibe una key personal cuando sus scopes de Plan explícitos no cubren el endpoint) o es una cuenta de invitado (`guest_not_allowed`).
404No existe o no es visible para ti. Ambos casos devuelven el mismo cuerpo.
curl -sS -X POST "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/milestones/00000000-0000-4000-8000-000000000007/reopen/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:write`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
POST/v1/plan/projects/{project_id}/archive/BetaCLI Auth

Archivar un proyecto, en cascada a sus tableros y sus tareas

Archivar es la forma de eliminar. Nada en esta API elimina un proyecto de forma definitiva; las filas se conservan para que los identificadores, enlaces y eventos sigan resolviéndose.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.

Parámetros de consulta

NombreTipoRequeridoDescripción
dry_runbooleanOpcionalPrevisualiza la consecuencia sin ejecutarla. La respuesta tiene la misma forma, {operation, dry_run, reversible, restore_path, consequence, affects}, pero no se escribe nada ni se emite ningún evento. Muestra consequence a una persona antes de actuar.

Encabezados

NombreTipoRequeridoDescripción
Idempotency-KeystringOpcionalUna clave que generas para esta intención. Una repetición con la misma clave y el mismo cuerpo devuelve la primera respuesta sin un segundo efecto secundario y lleva Idempotency-Replayed: true. Las claves se conservan durante 24 horas. La misma clave con un cuerpo distinto es 409 idempotency_key_payload_mismatch; una repetición mientras la primera llamada sigue en curso recibe 409 idempotency_in_progress durante hasta 120 segundos.
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Respuesta

NombreTipoRequeridoDescripción
(body)Project | DryRunPreviewRequeridoUn objeto Project. Con ?dry_run=true, un objeto DryRunPreview en su lugar.

Errores

EstadoCuándo
400El nombre del agente no es válido (`invalid_agent_attribution`).
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403Autenticado pero sin permiso: falta el scope (`insufficient_scope`, que es también lo que recibe una key de agente o de la organización en una operación que requiere una persona, y lo que recibe una key personal cuando sus scopes de Plan explícitos no cubren el endpoint) o es una cuenta de invitado (`guest_not_allowed`).
404No existe o no es visible para ti. Ambos casos devuelven el mismo cuerpo.
curl -sS -X POST "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/archive/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:admin` — escrituras de contenedores. Un miembro no invitado puede llamarlo con una sesión iniciada o una API key personal (una key con scopes de Plan explícitos necesita `tasks:write`, que lo cubre); una key de agente o de la organización recibe `403 insufficient_scope`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Requiere una persona: llámalo con una sesión iniciada, un token de usuario del CLI o una API key personal. Una key de agente o de la organización recibe `403 insufficient_scope`.
POST/v1/plan/projects/{project_id}/restore/BetaCLI Auth

Restaurar un proyecto archivado

Lo inverso de archivar, y la razón por la que archivar un proyecto ya no es la única acción en Plan que una persona no puede deshacer. Los tableros y tareas archivados en cascada siguen archivados: restaurar sube por la jerarquía, nunca baja, porque "restaurar todo lo archivado en ese momento" no puede distinguir la cascada de un tablero que alguien archivó a propósito antes. Recupéralos con POST …/boards/{board_id}/restore/. Restaurar consume un cupo de creación de proyectos (archivar libera uno) y responde 402 cuando el plan no tiene ninguno disponible.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.

Encabezados

NombreTipoRequeridoDescripción
Idempotency-KeystringOpcionalUna clave que generas para esta intención. Una repetición con la misma clave y el mismo cuerpo devuelve la primera respuesta sin un segundo efecto secundario y lleva Idempotency-Replayed: true. Las claves se conservan durante 24 horas. La misma clave con un cuerpo distinto es 409 idempotency_key_payload_mismatch; una repetición mientras la primera llamada sigue en curso recibe 409 idempotency_in_progress durante hasta 120 segundos.
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Respuesta

NombreTipoRequeridoDescripción
(body)ProjectRequeridoUn objeto Project.

Errores

EstadoCuándo
400El nombre del agente no es válido (`invalid_agent_attribution`).
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan todavía no está habilitado para tu organización (`plan_upgrade_required`), o no hay ningún cupo de proyecto libre (`task_projects_limit_reached`).
403Autenticado pero sin permiso: falta el scope (`insufficient_scope`, que es también lo que recibe una key de agente o de la organización en una operación que requiere una persona, y lo que recibe una key personal cuando sus scopes de Plan explícitos no cubren el endpoint) o es una cuenta de invitado (`guest_not_allowed`).
404No existe o no es visible para ti. Ambos casos devuelven el mismo cuerpo.
curl -sS -X POST "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/restore/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:admin` — escrituras de contenedores. Un miembro no invitado puede llamarlo con una sesión iniciada o una API key personal (una key con scopes de Plan explícitos necesita `tasks:write`, que lo cubre); una key de agente o de la organización recibe `403 insufficient_scope`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Requiere una persona: llámalo con una sesión iniciada, un token de usuario del CLI o una API key personal. Una key de agente o de la organización recibe `403 insufficient_scope`.
GET/v1/plan/milestones/BetaAPI keyCLI AuthPaginación por número de página

Todos los hitos que quien consulta puede ver, en todos los proyectos

Todos los hitos que puedes ver en todos los proyectos, en una sola llamada, para los marcadores de un roadmap. La visibilidad sigue a los proyectos que puedes abrir. project__in reduce ese conjunto y nunca lo amplía: un uuid desconocido y el uuid de otra organización devuelven un resultado vacío. Las filas incluyen project como referencia.

Parámetros de consulta

NombreTipoRequeridoDescripción
pageintegerOpcionalNúmero de página, empezando en 1.
page_sizeintegerOpcionalFilas por página. 50 por defecto, máximo 100. Los valores fuera de rango se ajustan, nunca se rechazan: pedir 500 devuelve 100.
project__instringOpcionaluuids de proyectos separados por comas; como máximo 50. Reduce el conjunto visible, nunca lo amplía.
include_archivedstringOpcionalIncluye los hitos retirados junto con los activos.

Objeto OrganizationMilestone

NombreTipoRequeridoDescripción
uuidstringRequeridoIdentificador público estable.
namestringRequeridoNombre visible.
descriptionstring | nullOpcionalDescripción libre.
datestringRequeridoLa fecha del hito.
task_countintegerOpcionalNúmero de tareas activas.
attachment_countintegerOpcionalAdjuntos listos de este hito. Refiérete a ellos desde description con marcadores attachment:{uuid} y lístalos en …/milestones/{milestone_id}/attachments/.
is_archivedbooleanOpcionalSi la fila está archivada. Archivar es la forma de eliminar: las filas archivadas siguen siendo legibles y se pueden restaurar.
projectobjectRequeridoEl proyecto. Un objeto de referencia.
created_atstringOpcionalCuándo se creó la fila.
updated_atstringOpcionalCuándo cambió la fila por última vez.

Respuesta

NombreTipoRequeridoDescripción
countintegerRequeridoNúmero total de filas.
nexturiRequeridoURL de la página siguiente, o null.
previousuriRequeridoURL de la página anterior, o null.
resultsarray<OrganizationMilestone>RequeridoLas filas de esta página. Ver OrganizationMilestone.

Errores

EstadoCuándo
400La validación falló, o no se reconoció un valor de filtro, orden o `include`. El `code` de la respuesta indica cuál.
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403Autenticado pero sin permiso: falta el scope (`insufficient_scope`, que es también lo que recibe una key de agente o de la organización en una operación que requiere una persona, y lo que recibe una key personal cuando sus scopes de Plan explícitos no cubren el endpoint) o es una cuenta de invitado (`guest_not_allowed`).
curl -sS "https://api.dailybot.com/v1/plan/milestones/?project__in=00000000-0000-4000-8000-000000000001" \
  -H "X-API-KEY: $DAILYBOT_API_KEY"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:read`.
  • Límite de solicitudes: 120 lecturas por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
GET/v1/plan/projects/{project_id}/views/BetaCLI AuthPaginación por número de página

Las vistas guardadas de esta persona dentro de un proyecto

Tus vistas guardadas dentro de un proyecto: conjuntos de filtros con nombre que abarcan todos sus tableros. Las vistas son personales y tienen alcance por proyecto, así que el mismo nombre puede existir en dos proyectos. Requiere una persona: las keys de agente y de la organización se rechazan; una API key personal funciona.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.

Objeto SavedView

NombreTipoRequeridoDescripción
namestringRequeridoNombre visible. Máx. 64 caracteres.
view_modeenumOpcionalCómo se dibuja el conjunto filtrado. Las lecturas siempre devuelven board para el diseño kanban. Uno de list, board, timeline, calendar.
group_byenumOpcionalLa dimensión de agrupación. Uno de state, owner, priority, category.
sortstringOpcionalUna clave de orden, con prefijo - para orden descendente.
filtersobjectRequeridoLos filtros de la vista, con la gramática compartida de filtros de tareas.
schema_versionintegerOpcionalVersión del formato guardado de la vista.
visibilityenumOpcionalpersonal (por defecto) es solo tuya. shared y board_default (la vista por defecto de ese tablero o proyecto) las puede leer todo el que ve el tablero o el proyecto. Asignarlas requiere a quien administra el tablero en las vistas de tablero, y supervisión del proyecto (un administrador de la organización o quien gestiona todos sus equipos) en las vistas de proyecto; si no, 403 view_visibility_forbidden. Uno de personal, shared, board_default.
collapsedobject | array | string | number | booleanOpcionalEstado de la interfaz del cliente guardado tal cual (qué grupos están colapsados). Solo se validan el tamaño y la profundidad.
columnsobject | array | string | number | booleanOpcionalEstado de la interfaz del cliente guardado tal cual (qué columnas se muestran). Solo se validan el tamaño y la profundidad.
uuiduuidOpcionalIdentificador público estable.
scopeenumOpcionalA qué contenedor pertenece la vista: board o project. Solo lectura. Uno de board, project.
boarduuid | nullOpcionalEl uuid del tablero cuando scope es board; null para una vista de proyecto. Solo lectura.
ownerobjectOpcionalQuién es dueño de la vista. Forma: {uuid, name}.
created_atdate-timeOpcionalCuándo se creó la fila.
updated_atdate-timeOpcionalCuándo cambió la fila por última vez.

Respuesta

NombreTipoRequeridoDescripción
countintegerRequeridoNúmero total de filas.
nexturiRequeridoURL de la página siguiente, o null.
previousuriRequeridoURL de la página anterior, o null.
resultsarray<SavedView>RequeridoLas filas de esta página. Ver SavedView.

Errores

EstadoCuándo
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403Autenticado pero sin permiso: falta el scope (`insufficient_scope`, que es también lo que recibe una key de agente o de la organización en una operación que requiere una persona, y lo que recibe una key personal cuando sus scopes de Plan explícitos no cubren el endpoint) o es una cuenta de invitado (`guest_not_allowed`).
404No existe o no es visible para ti. Ambos casos devuelven el mismo cuerpo.
429Llegaste al límite de solicitudes. Espera los segundos que indica `Retry-After`.
curl -sS "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/views/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:read`.
  • Límite de solicitudes: 120 lecturas por minuto por actor.
  • Requiere una persona: llámalo con una sesión iniciada, un token de usuario del CLI o una API key personal. Una key de agente o de la organización recibe `403 insufficient_scope`.
PUT/v1/plan/projects/{project_id}/views/BetaCLI Auth

Reemplazar las vistas guardadas de esta persona en un proyecto

Reemplaza todo tu arreglo de vistas guardadas del proyecto. If-Match es obligatorio, por la misma razón que en las vistas de tablero.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.

Encabezados

NombreTipoRequeridoDescripción
If-MatchstringRequeridoEl ETag que recibiste de GET .../views/, entre comillas. Obligatorio, porque este PUT reemplaza todo el arreglo: sin una precondición, dos guardados simultáneos descartan en silencio la vista del otro. Un validador desactualizado es 412 precondition_failed; uno ausente es 428 precondition_required.
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Respuesta

NombreTipoRequeridoDescripción
(body)array<SavedView>RequeridoUn arreglo JSON de objetos SavedView.

Errores

EstadoCuándo
400La validación falló, o no se reconoció un valor de filtro, orden o `include`. El `code` de la respuesta indica cuál. `invalid_agent_attribution` significa que el nombre del agente no es válido.
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403Autenticado pero sin permiso: falta el scope (`insufficient_scope`, que es también lo que recibe una key de agente o de la organización en una operación que requiere una persona, y lo que recibe una key personal cuando sus scopes de Plan explícitos no cubren el endpoint) o es una cuenta de invitado (`guest_not_allowed`).
404No existe o no es visible para ti. Ambos casos devuelven el mismo cuerpo.
412El validador `If-Match` está desactualizado (`precondition_failed`). Vuelve a leer e inténtalo de nuevo.
428`If-Match` es obligatorio (`precondition_required`).
429Llegaste al límite de solicitudes. Espera los segundos que indica `Retry-After`.
curl -sS -X PUT "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/views/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN" \
  -H "If-Match: $VIEWS_ETAG" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "name": "Overdue",
      "view_mode": "list",
      "filters": {
        "due_before": "2026-09-25",
        "state": [
          "open"
        ]
      }
    }
  ]'

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:write`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Requiere una persona: llámalo con una sesión iniciada, un token de usuario del CLI o una API key personal. Una key de agente o de la organización recibe `403 insufficient_scope`.
GET/v1/plan/projects/{project_id}/members/BetaCLI AuthPaginación por número de página

Miembros de un proyecto

Visible para cualquiera que pueda ver el proyecto. En un proyecto members, esta es la membresía que da visibilidad del proyecto y sus tableros.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.

Parámetros de consulta

NombreTipoRequeridoDescripción
pageintegerOpcionalNúmero de página, empezando en 1.
page_sizeintegerOpcionalFilas por página. 50 por defecto, máximo 100. Los valores fuera de rango se ajustan, nunca se rechazan: pedir 500 devuelve 100.

Objeto BoardMember

NombreTipoRequeridoDescripción
subject_typeenumRequeridoUno de user, team.
user_uuiduuid | nullOpcionalEl uuid de usuario de la persona.
uuiduuid | nullOpcionalIdentificador público estable.
full_namestringOpcional—
namestringOpcionalNombre visible.
roleenum | nullOpcionalRol del participante. Uno de admin, member, guest.
team_uuiduuid | nullOpcionalEl uuid de un equipo, en lugar de user_uuid. Crea un único permiso de equipo vivo: quien se una al equipo después queda dentro y quien salga queda fuera.
team_namestringOpcional—
added_atdate-timeRequerido—
added_by_uuiduuid | nullOpcional—

Respuesta

NombreTipoRequeridoDescripción
countintegerRequeridoNúmero total de filas.
nexturiRequeridoURL de la página siguiente, o null.
previousuriRequeridoURL de la página anterior, o null.
resultsarray<BoardMember>RequeridoLas filas de esta página. Ver BoardMember.

Errores

EstadoCuándo
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
404No existe o no es visible para ti. Ambos casos devuelven el mismo cuerpo.
curl -sS "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/members/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:read`.
  • Límite de solicitudes: 120 lecturas por minuto por actor.
  • Requiere una persona: llámalo con una sesión iniciada, un token de usuario del CLI o una API key personal. Una key de agente o de la organización recibe `403 insufficient_scope`.
POST/v1/plan/projects/{project_id}/members/BetaCLI Auth

Invitar a alguien, o a todo un equipo, a un proyecto

Da acceso al proyecto a una persona (user_uuid) o a un equipo (team_uuid): envía exactamente uno de los dos; ambos o ninguno es 400 invalid_filter_value. Un permiso de equipo es vivo: quien se una al equipo después queda dentro y quien salga queda fuera. Todo miembro no invitado puede llamarlo (con una sesión iniciada o una API key personal); una key de agente o de la organización recibe 403 insufficient_scope.

Escribe un evento project.member_added con actor_is_self, para que los miembros del proyecto puedan distinguir una invitación de alguien que se une por su cuenta.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.

Encabezados

NombreTipoRequeridoDescripción
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Cuerpo de la solicitud

NombreTipoRequeridoDescripción
user_uuiduuidOpcionalEl uuid de usuario de la persona.
team_uuiduuidOpcionalEl uuid de un equipo, en lugar de user_uuid. Crea un único permiso de equipo vivo: quien se una al equipo después queda dentro y quien salga queda fuera.
agent_namestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona (máx. 128 caracteres, vacío significa sin agente). Tiene prioridad sobre el header X-Dailybot-Agent-Name. Ver Atribución de agente.

Respuesta

NombreTipoRequeridoDescripción
(body)BoardMemberRequeridoUn objeto BoardMember.

Errores

EstadoCuándo
400Envía exactamente uno de `user_uuid` y `team_uuid`; ambos o ninguno es `invalid_filter_value`. `invalid_agent_attribution` significa que el nombre del agente no es válido.
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403Autenticado pero sin permiso: falta el scope (`insufficient_scope`, que es también lo que recibe una key de agente o de la organización en una operación que requiere una persona, y lo que recibe una key personal cuando sus scopes de Plan explícitos no cubren el endpoint) o es una cuenta de invitado (`guest_not_allowed`).
404No existe o no es visible para ti. Ambos casos devuelven el mismo cuerpo.
curl -sS -X POST "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/members/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "user_uuid": "00000000-0000-4000-8000-00000000000c"
  }'

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:admin` — escrituras de contenedores. Un miembro no invitado puede llamarlo con una sesión iniciada o una API key personal (una key con scopes de Plan explícitos necesita `tasks:write`, que lo cubre); una key de agente o de la organización recibe `403 insufficient_scope`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Requiere una persona: llámalo con una sesión iniciada, un token de usuario del CLI o una API key personal. Una key de agente o de la organización recibe `403 insufficient_scope`.
DELETE/v1/plan/projects/{project_id}/members/{user_id}/BetaCLI Auth

Quitar a alguien de un proyecto

Quita el permiso explícito de una persona en el proyecto. Todo miembro no invitado puede llamarlo (con una sesión iniciada o una API key personal); una key de agente o de la organización no puede.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
user_idstringRequeridoEl uuid de usuario del miembro.

Encabezados

NombreTipoRequeridoDescripción
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Errores

EstadoCuándo
400El nombre del agente no es válido (`invalid_agent_attribution`).
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403Autenticado pero sin permiso: falta el scope (`insufficient_scope`, que es también lo que recibe una key de agente o de la organización en una operación que requiere una persona, y lo que recibe una key personal cuando sus scopes de Plan explícitos no cubren el endpoint) o es una cuenta de invitado (`guest_not_allowed`).
404No existe o no es visible para ti. Ambos casos devuelven el mismo cuerpo.
curl -sS -X DELETE "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/members/00000000-0000-4000-8000-00000000000c/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:admin` — escrituras de contenedores. Un miembro no invitado puede llamarlo con una sesión iniciada o una API key personal (una key con scopes de Plan explícitos necesita `tasks:write`, que lo cubre); una key de agente o de la organización recibe `403 insufficient_scope`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Requiere una persona: llámalo con una sesión iniciada, un token de usuario del CLI o una API key personal. Una key de agente o de la organización recibe `403 insufficient_scope`.
PATCH/v1/plan/projects/{project_id}/members/{user_id}/BetaCLI Auth

Consultar un permiso de membresía del proyecto (el rol es de solo lectura)

La membresía del proyecto no tiene columna de rol: los roles de la organización más la visibilidad del proyecto son el modelo de acceso. Enviar role devuelve 400. Un PATCH vacío devuelve la fila de permiso actual.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
user_idstringRequeridoEl uuid de usuario del miembro.

Encabezados

NombreTipoRequeridoDescripción
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Respuesta

NombreTipoRequeridoDescripción
(body)BoardMemberRequeridoUn objeto BoardMember.

Errores

EstadoCuándo
400La validación falló, o no se reconoció un valor de filtro, orden o `include`. El `code` de la respuesta indica cuál. `invalid_agent_attribution` significa que el nombre del agente no es válido.
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
404No existe o no es visible para ti. Ambos casos devuelven el mismo cuerpo.
curl -sS -X PATCH "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/members/00000000-0000-4000-8000-00000000000c/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:admin` — escrituras de contenedores. Un miembro no invitado puede llamarlo con una sesión iniciada o una API key personal (una key con scopes de Plan explícitos necesita `tasks:write`, que lo cubre); una key de agente o de la organización recibe `403 insufficient_scope`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Requiere una persona: llámalo con una sesión iniciada, un token de usuario del CLI o una API key personal. Una key de agente o de la organización recibe `403 insufficient_scope`.
GET/v1/plan/projects/{project_id}/attachments/BetaAPI keyCLI AuthPaginación por número de página

Listar los adjuntos de un proyecto

Los adjuntos del proyecto, ordenados por posición. Cualquiera que pueda ver el proyecto puede listar sus adjuntos; un proyecto que no puedes ver es 404. Cada url es un enlace de descarga. No lo guardes: conserva el uuid del adjunto y vuelve a leerlo cuando necesites el archivo. Para mostrar una imagen en la descripción del proyecto, refiérete a ella como attachment:{uuid} y resuélvela al renderizar con el url reciente de esta lista.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.

Parámetros de consulta

NombreTipoRequeridoDescripción
pageintegerOpcionalNúmero de página, empezando en 1.
page_sizeintegerOpcionalFilas por página. 50 por defecto, máximo 100. Los valores fuera de rango se ajustan, nunca se rechazan: pedir 500 devuelve 100.

Objeto TaskAttachment

NombreTipoRequeridoDescripción
uuiduuidRequeridoIdentificador público estable.
filenamestringRequeridoNombre del archivo.
content_typestringRequeridoTipo MIME.
sizeintegerRequeridoTamaño en bytes.
urlstringRequeridoDónde descargar el archivo.
thumbnail_urluri | nullOpcionalMiniatura para imágenes.
widthinteger | nullOpcional—
heightinteger | nullOpcional—
statusenumRequeridoEstado actual. Uno de pending, ready, scanning, rejected.
uploaded_byActorRef | nullOpcionalQuién subió el archivo. Ver ActorRef.
executed_by_agentobject | nullOpcionalEl agente que ejecutó esto en nombre de la persona, o null si no se nombró a ninguno: un objeto con uuid, name, username y avatar. La persona del campo de autor sigue siendo la autora; el agente se muestra como quien lo ejecutó.
created_atdate-timeRequeridoCuándo se creó la fila.

Respuesta

NombreTipoRequeridoDescripción
countintegerRequeridoNúmero total de filas.
nexturiRequeridoURL de la página siguiente, o null.
previousuriRequeridoURL de la página anterior, o null.
resultsarray<TaskAttachment>RequeridoLas filas de esta página. Ver TaskAttachment.

Errores

EstadoCuándo
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
404El proyecto o el adjunto no existe o no puedes verlo (`not_found`), nunca un 403.
curl -sS "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/attachments/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:read`.
  • Límite de solicitudes: 120 lecturas por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
POST/v1/plan/projects/{project_id}/attachments/BetaCLI Auth

Subir un adjunto a un proyecto

Adjunta un archivo a un proyecto. Envía multipart/form-data con el campo file y un caption opcional; aquí no hay flujo de prefirmado. El límite es de 5 MiB en todos los entornos: un archivo más grande es 400 attachment_too_large, con extra.max_size_bytes. El tipo de archivo se verifica por su contenido contra la misma lista que los adjuntos de tareas (attachment_invalid_type). Un proyecto admite como máximo 50 adjuntos (attachment_limit_reached).

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.

Encabezados

NombreTipoRequeridoDescripción
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Cuerpo de la solicitud

NombreTipoRequeridoDescripción
filebinaryRequeridoEl archivo a subir (máximo 5 MiB por esta vía).
captionstringOpcionalPie de texto opcional. Máximo 255 caracteres.

Respuesta

NombreTipoRequeridoDescripción
(body)TaskAttachmentRequeridoUn objeto TaskAttachment.

Errores

EstadoCuándo
400Falta el archivo, es demasiado grande (`attachment_too_large`, más de 5 MiB), su tipo no se admite (`attachment_invalid_type`) o se alcanzó el límite de 50 (`attachment_limit_reached`). `invalid_agent_attribution` significa que el nombre del agente no es válido.
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403No actúas como miembro no invitado con una sesión iniciada o una API key personal (`insufficient_scope`); una key de agente o de la organización siempre recibe esto.
404El proyecto o el adjunto no existe o no puedes verlo (`not_found`), nunca un 403.
curl -sS -X POST "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/attachments/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN" \
  -F "file=@./screenshot.png" \
  -F "caption=Staging dashboard"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:admin` — escrituras de contenedores. Un miembro no invitado puede llamarlo con una sesión iniciada o una API key personal (una key con scopes de Plan explícitos necesita `tasks:write`, que lo cubre); una key de agente o de la organización recibe `403 insufficient_scope`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Requiere una persona: llámalo con una sesión iniciada, un token de usuario del CLI o una API key personal. Una key de agente o de la organización recibe `403 insufficient_scope`.
GET/v1/plan/projects/{project_id}/attachments/{attachment_id}/content/BetaAPI keyCLI Auth

Descargar los bytes de un adjunto de un proyecto

Transmite el archivo con el tipo de contenido registrado al subirlo, X-Content-Type-Options: nosniff y Cache-Control: no-store. Nunca redirige al almacenamiento. Cualquiera que pueda ver el proyecto puede descargarlo.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
attachment_idstringRequeridoEl uuid del adjunto.

Errores

EstadoCuándo
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
404El proyecto o el adjunto no existe o no puedes verlo (`not_found`), nunca un 403.
curl -sS "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/attachments/00000000-0000-4000-8000-000000000009/content/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:read`.
  • Límite de solicitudes: 120 lecturas por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
DELETE/v1/plan/projects/{project_id}/attachments/{attachment_id}/BetaCLI Auth

Quitar un adjunto de un proyecto

Quita el adjunto del proyecto.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
attachment_idstringRequeridoEl uuid del adjunto.

Encabezados

NombreTipoRequeridoDescripción
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Errores

EstadoCuándo
400El nombre del agente no es válido (`invalid_agent_attribution`).
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403No actúas como miembro no invitado con una sesión iniciada o una API key personal (`insufficient_scope`); una key de agente o de la organización siempre recibe esto.
404El proyecto o el adjunto no existe o no puedes verlo (`not_found`), nunca un 403.
curl -sS -X DELETE "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/attachments/00000000-0000-4000-8000-000000000009/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:admin` — escrituras de contenedores. Un miembro no invitado puede llamarlo con una sesión iniciada o una API key personal (una key con scopes de Plan explícitos necesita `tasks:write`, que lo cubre); una key de agente o de la organización recibe `403 insufficient_scope`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Requiere una persona: llámalo con una sesión iniciada, un token de usuario del CLI o una API key personal. Una key de agente o de la organización recibe `403 insufficient_scope`.
POST/v1/plan/projects/{project_id}/milestones/{milestone_id}/restore/BetaAPI keyCLI Auth

Restaurar un hito retirado

Trae de vuelta un hito retirado. Es lo inverso de retirar un hito con DELETE. Idempotente: un hito que no está retirado se devuelve sin cambios. Envía un Idempotency-Key para reintentar sin riesgo.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
milestone_idstringRequeridoEl uuid del hito.

Encabezados

NombreTipoRequeridoDescripción
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Respuesta

NombreTipoRequeridoDescripción
(body)ProjectMilestoneRequeridoUn objeto ProjectMilestone.

Errores

EstadoCuándo
400El nombre del agente no es válido (`invalid_agent_attribution`).
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403La credencial no puede escribir en Plan (`insufficient_scope`), o quien llama es invitado (`guest_not_allowed`).
404El proyecto o el hito no existe o no puedes verlo (`not_found`), nunca un 403.
curl -sS -X POST "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/milestones/00000000-0000-4000-8000-000000000007/restore/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:write`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
GET/v1/plan/projects/{project_id}/milestones/{milestone_id}/attachments/BetaAPI keyCLI AuthPaginación por número de página

Listar los adjuntos del hito

Los adjuntos listos del hito, ordenados por posición. Cualquiera que pueda ver el proyecto puede listarlos; un proyecto que no puedes ver es 404. Cada url es un enlace de descarga. No lo guardes: conserva el uuid del adjunto y vuelve a leerlo cuando necesites el archivo. Refiérete a él desde la description del hito con un marcador attachment:{uuid} y resuélvelo con GET /v1/plan/attachments/resolve/ al renderizar.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
milestone_idstringRequeridoEl uuid del hito.

Parámetros de consulta

NombreTipoRequeridoDescripción
pageintegerOpcionalNúmero de página, empezando en 1.
page_sizeintegerOpcionalFilas por página. 50 por defecto, máximo 100. Los valores fuera de rango se ajustan, nunca se rechazan: pedir 500 devuelve 100.

Objeto TaskAttachment

NombreTipoRequeridoDescripción
uuiduuidRequeridoIdentificador público estable.
filenamestringRequeridoNombre del archivo.
content_typestringRequeridoTipo MIME.
sizeintegerRequeridoTamaño en bytes.
urlstringRequeridoDónde descargar el archivo.
thumbnail_urluri | nullOpcionalMiniatura para imágenes.
widthinteger | nullOpcional—
heightinteger | nullOpcional—
statusenumRequeridoEstado actual. Uno de pending, ready, scanning, rejected.
uploaded_byActorRef | nullOpcionalQuién subió el archivo. Ver ActorRef.
executed_by_agentobject | nullOpcionalEl agente que ejecutó esto en nombre de la persona, o null si no se nombró a ninguno: un objeto con uuid, name, username y avatar. La persona del campo de autor sigue siendo la autora; el agente se muestra como quien lo ejecutó.
created_atdate-timeRequeridoCuándo se creó la fila.

Respuesta

NombreTipoRequeridoDescripción
countintegerRequeridoNúmero total de filas.
nexturiRequeridoURL de la página siguiente, o null.
previousuriRequeridoURL de la página anterior, o null.
resultsarray<TaskAttachment>RequeridoLas filas de esta página. Ver TaskAttachment.

Errores

EstadoCuándo
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
404El proyecto o el hito no existe o no puedes verlo (`not_found`), nunca un 403.
curl -sS "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/milestones/00000000-0000-4000-8000-000000000007/attachments/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:read`.
  • Límite de solicitudes: 120 lecturas por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
POST/v1/plan/projects/{project_id}/milestones/{milestone_id}/attachments/BetaAPI keyCLI Auth

Subir un adjunto del hito

Adjunta un archivo del hito. Envía multipart/form-data con el campo file y un caption opcional; aquí no hay flujo de prefirmado. El límite es de 5 MiB: un archivo más grande es 400 attachment_too_large, con extra.max_size_bytes. El tipo de archivo se verifica por su contenido contra la misma lista que los adjuntos de proyectos (attachment_invalid_type). Adjuntar sigue las reglas de escritura del propio hito. Refiérete a él desde la description del hito con un marcador attachment:{uuid} y resuélvelo con GET /v1/plan/attachments/resolve/ al renderizar.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
milestone_idstringRequeridoEl uuid del hito.

Encabezados

NombreTipoRequeridoDescripción
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Cuerpo de la solicitud

NombreTipoRequeridoDescripción
filebinaryRequeridoEl archivo a subir (máximo 5 MiB por esta vía).
captionstringOpcionalPie de texto opcional. Máximo 255 caracteres.

Respuesta

NombreTipoRequeridoDescripción
(body)TaskAttachmentRequeridoUn objeto TaskAttachment.

Errores

EstadoCuándo
400Falta el archivo, es demasiado grande (`attachment_too_large`, más de 5 MiB), su tipo no se admite (`attachment_invalid_type`) o se alcanzó el límite de 50 (`attachment_limit_reached`). `invalid_agent_attribution` significa que el nombre del agente no es válido.
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403La credencial no puede escribir en Plan (`insufficient_scope`), o quien llama es invitado (`guest_not_allowed`).
404El proyecto o el hito no existe o no puedes verlo (`not_found`), nunca un 403.
curl -sS -X POST "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/milestones/00000000-0000-4000-8000-000000000007/attachments/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN" \
  -F "[email protected]"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:write`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
GET/v1/plan/projects/{project_id}/milestones/{milestone_id}/attachments/{attachment_id}/BetaAPI keyCLI Auth

Obtener un adjunto del hito

Un adjunto del hito. Cualquiera que pueda ver el proyecto puede leerlo.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
milestone_idstringRequeridoEl uuid del hito.
attachment_idstringRequeridoEl uuid del adjunto.

Respuesta

NombreTipoRequeridoDescripción
(body)TaskAttachmentRequeridoUn objeto TaskAttachment.

Errores

EstadoCuándo
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
404El proyecto, el hito o el adjunto no existe o no puedes verlo (`not_found`), nunca un 403.
curl -sS "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/milestones/00000000-0000-4000-8000-000000000007/attachments/00000000-0000-4000-8000-000000000009/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:read`.
  • Límite de solicitudes: 120 lecturas por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
PATCH/v1/plan/projects/{project_id}/milestones/{milestone_id}/attachments/{attachment_id}/BetaAPI keyCLI Auth

Renombrar un adjunto del hito

Cambia el nombre del archivo del adjunto; el contenido no cambia. Las reglas son las del propio hito.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
milestone_idstringRequeridoEl uuid del hito.
attachment_idstringRequeridoEl uuid del adjunto.

Encabezados

NombreTipoRequeridoDescripción
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Cuerpo de la solicitud

NombreTipoRequeridoDescripción
filenamestringRequeridoEl nuevo nombre del archivo.
agent_namestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona (máx. 128 caracteres, vacío significa sin agente). Tiene prioridad sobre el header X-Dailybot-Agent-Name. Ver Atribución de agente.

Respuesta

NombreTipoRequeridoDescripción
(body)TaskAttachmentRequeridoUn objeto TaskAttachment.

Errores

EstadoCuándo
400Falta el nombre o no es válido. `invalid_agent_attribution` significa que el nombre del agente no es válido.
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403La credencial no puede escribir en Plan (`insufficient_scope`), o quien llama es invitado (`guest_not_allowed`).
404El proyecto, el hito o el adjunto no existe o no puedes verlo (`not_found`), nunca un 403.
curl -sS -X PATCH "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/milestones/00000000-0000-4000-8000-000000000007/attachments/00000000-0000-4000-8000-000000000009/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"filename": "roadmap-v2.png"}'

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:write`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
DELETE/v1/plan/projects/{project_id}/milestones/{milestone_id}/attachments/{attachment_id}/BetaAPI keyCLI Auth

Quitar un adjunto del hito

Quita el adjunto. Las reglas son las del propio hito.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
milestone_idstringRequeridoEl uuid del hito.
attachment_idstringRequeridoEl uuid del adjunto.

Encabezados

NombreTipoRequeridoDescripción
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Errores

EstadoCuándo
400El nombre del agente no es válido (`invalid_agent_attribution`).
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403La credencial no puede escribir en Plan (`insufficient_scope`), o quien llama es invitado (`guest_not_allowed`).
404El proyecto, el hito o el adjunto no existe o no puedes verlo (`not_found`), nunca un 403.
curl -sS -X DELETE "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/milestones/00000000-0000-4000-8000-000000000007/attachments/00000000-0000-4000-8000-000000000009/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:write`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
GET/v1/plan/projects/{project_id}/milestones/{milestone_id}/attachments/{attachment_id}/content/BetaAPI keyCLI Auth

Descargar los bytes de un adjunto del hito

Transmite el archivo con el tipo de contenido registrado al subirlo, X-Content-Type-Options: nosniff y Cache-Control: no-store. Nunca redirige al almacenamiento. Cualquiera que pueda ver el proyecto puede descargarlo.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
milestone_idstringRequeridoEl uuid del hito.
attachment_idstringRequeridoEl uuid del adjunto.

Errores

EstadoCuándo
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
404El proyecto, el hito o el adjunto no existe o no puedes verlo (`not_found`), nunca un 403.
409El adjunto aún no está listo (`attachment_not_ready`).
curl -sS "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/milestones/00000000-0000-4000-8000-000000000007/attachments/00000000-0000-4000-8000-000000000009/content/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN" -o roadmap.png

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:read`.
  • Límite de solicitudes: 120 lecturas por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
GET/v1/plan/projects/{project_id}/updates/{update_id}/BetaAPI keyCLI Auth

Obtener una actualización de proyecto

Una nota de estado, con sus attachments listos incluidos, provenance, edited_at (nulo hasta la primera edición) y executed_by_agent.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
update_idstringRequeridoEl uuid de la actualización.

Respuesta

NombreTipoRequeridoDescripción
(body)ProjectUpdateRequeridoUn objeto ProjectUpdate.

Errores

EstadoCuándo
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
404El proyecto o la actualización no existe o no puedes verlo (`not_found`), nunca un 403.
curl -sS "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/updates/00000000-0000-4000-8000-00000000000a/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:read`.
  • Límite de solicitudes: 120 lecturas por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
PATCH/v1/plan/projects/{project_id}/updates/{update_id}/BetaAPI keyCLI Auth

Editar una actualización de proyecto

Cambia body y/o health (null lo borra) y sella edited_at. Solo la persona autora puede editar (403 update_not_author). created_by y el executed_by_agent original nunca cambian; una edición hecha con una API key, o sellada con un agente, deja provenance en agent_authored. Para colocar imágenes en línea, súbelas a los adjuntos de la actualización y agrega marcadores attachment:{uuid} al body. Envía If-Match o un version en el cuerpo para no pisar una edición concurrente.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
update_idstringRequeridoEl uuid de la actualización.

Encabezados

NombreTipoRequeridoDescripción
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Cuerpo de la solicitud

NombreTipoRequeridoDescripción
bodystringOpcionalMarkdown. Máx. 20000 caracteres.
healthenum | nullOpcionalSalud declarada. Uno de not_set, on_track, at_risk, off_track.
agent_namestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona (máx. 128 caracteres, vacío significa sin agente). Tiene prioridad sobre el header X-Dailybot-Agent-Name. Ver Atribución de agente.

Respuesta

NombreTipoRequeridoDescripción
(body)ProjectUpdateRequeridoUn objeto ProjectUpdate.

Errores

EstadoCuándo
400El cuerpo está vacío o es demasiado largo (`update_body_too_long`), o `health` no es válido. `invalid_agent_attribution` significa que el nombre del agente no es válido.
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403Solo la persona autora de la actualización puede hacerlo (`update_not_author`).
404El proyecto o la actualización no existe o no puedes verlo (`not_found`), nunca un 403.
curl -sS -X PATCH "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/updates/00000000-0000-4000-8000-00000000000a/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"body": "Staging is green; rolling out Friday.", "health": "on_track"}'

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:write`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
DELETE/v1/plan/projects/{project_id}/updates/{update_id}/BetaAPI keyCLI Auth

Eliminar una actualización de proyecto

Elimina la actualización y sus adjuntos; un archivo almacenado se borra cuando nada más lo referencia. La persona autora o un administrador de la organización puede eliminarla (403 update_not_author para cualquier otra persona).

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
update_idstringRequeridoEl uuid de la actualización.

Encabezados

NombreTipoRequeridoDescripción
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Errores

EstadoCuándo
400El nombre del agente no es válido (`invalid_agent_attribution`).
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403Solo la persona autora de la actualización puede hacerlo (`update_not_author`).
404El proyecto o la actualización no existe o no puedes verlo (`not_found`), nunca un 403.
curl -sS -X DELETE "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/updates/00000000-0000-4000-8000-00000000000a/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:write`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
GET/v1/plan/projects/{project_id}/updates/{update_id}/attachments/BetaAPI keyCLI AuthPaginación por número de página

Listar los adjuntos de la actualización

Los adjuntos listos de la actualización, ordenados por posición. Cualquiera que pueda ver el proyecto puede listarlos; un proyecto que no puedes ver es 404. Cada url es un enlace de descarga. No lo guardes: conserva el uuid del adjunto y vuelve a leerlo cuando necesites el archivo. Refiérete a él desde el body de la actualización con un marcador attachment:{uuid} y resuélvelo con GET /v1/plan/attachments/resolve/ al renderizar.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
update_idstringRequeridoEl uuid de la actualización.

Parámetros de consulta

NombreTipoRequeridoDescripción
pageintegerOpcionalNúmero de página, empezando en 1.
page_sizeintegerOpcionalFilas por página. 50 por defecto, máximo 100. Los valores fuera de rango se ajustan, nunca se rechazan: pedir 500 devuelve 100.

Objeto TaskAttachment

NombreTipoRequeridoDescripción
uuiduuidRequeridoIdentificador público estable.
filenamestringRequeridoNombre del archivo.
content_typestringRequeridoTipo MIME.
sizeintegerRequeridoTamaño en bytes.
urlstringRequeridoDónde descargar el archivo.
thumbnail_urluri | nullOpcionalMiniatura para imágenes.
widthinteger | nullOpcional—
heightinteger | nullOpcional—
statusenumRequeridoEstado actual. Uno de pending, ready, scanning, rejected.
uploaded_byActorRef | nullOpcionalQuién subió el archivo. Ver ActorRef.
executed_by_agentobject | nullOpcionalEl agente que ejecutó esto en nombre de la persona, o null si no se nombró a ninguno: un objeto con uuid, name, username y avatar. La persona del campo de autor sigue siendo la autora; el agente se muestra como quien lo ejecutó.
created_atdate-timeRequeridoCuándo se creó la fila.

Respuesta

NombreTipoRequeridoDescripción
countintegerRequeridoNúmero total de filas.
nexturiRequeridoURL de la página siguiente, o null.
previousuriRequeridoURL de la página anterior, o null.
resultsarray<TaskAttachment>RequeridoLas filas de esta página. Ver TaskAttachment.

Errores

EstadoCuándo
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
404El proyecto o la actualización no existe o no puedes verlo (`not_found`), nunca un 403.
curl -sS "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/updates/00000000-0000-4000-8000-00000000000a/attachments/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:read`.
  • Límite de solicitudes: 120 lecturas por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
POST/v1/plan/projects/{project_id}/updates/{update_id}/attachments/BetaAPI keyCLI Auth

Subir un adjunto de la actualización

Adjunta un archivo de la actualización. Envía multipart/form-data con el campo file y un caption opcional; aquí no hay flujo de prefirmado. El límite es de 5 MiB: un archivo más grande es 400 attachment_too_large, con extra.max_size_bytes. El tipo de archivo se verifica por su contenido contra la misma lista que los adjuntos de proyectos (attachment_invalid_type). Solo la persona autora de la actualización puede adjuntar (403 update_not_author). Sube primero y luego agrega el marcador al body de la actualización con un PATCH. Refiérete a él desde el body de la actualización con un marcador attachment:{uuid} y resuélvelo con GET /v1/plan/attachments/resolve/ al renderizar.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
update_idstringRequeridoEl uuid de la actualización.

Encabezados

NombreTipoRequeridoDescripción
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Cuerpo de la solicitud

NombreTipoRequeridoDescripción
filebinaryRequeridoEl archivo a subir (máximo 5 MiB por esta vía).
captionstringOpcionalPie de texto opcional. Máximo 255 caracteres.

Respuesta

NombreTipoRequeridoDescripción
(body)TaskAttachmentRequeridoUn objeto TaskAttachment.

Errores

EstadoCuándo
400Falta el archivo, es demasiado grande (`attachment_too_large`, más de 5 MiB), su tipo no se admite (`attachment_invalid_type`) o se alcanzó el límite de 50 (`attachment_limit_reached`). `invalid_agent_attribution` significa que el nombre del agente no es válido.
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403Solo la persona autora de la actualización puede hacerlo (`update_not_author`).
404El proyecto o la actualización no existe o no puedes verlo (`not_found`), nunca un 403.
curl -sS -X POST "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/updates/00000000-0000-4000-8000-00000000000a/attachments/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN" \
  -F "[email protected]"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:write`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
GET/v1/plan/projects/{project_id}/updates/{update_id}/attachments/{attachment_id}/BetaAPI keyCLI Auth

Obtener un adjunto de la actualización

Un adjunto de la actualización. Cualquiera que pueda ver el proyecto puede leerlo.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
update_idstringRequeridoEl uuid de la actualización.
attachment_idstringRequeridoEl uuid del adjunto.

Respuesta

NombreTipoRequeridoDescripción
(body)TaskAttachmentRequeridoUn objeto TaskAttachment.

Errores

EstadoCuándo
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
404El proyecto, la actualización o el adjunto no existe o no puedes verlo (`not_found`), nunca un 403.
curl -sS "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/updates/00000000-0000-4000-8000-00000000000a/attachments/00000000-0000-4000-8000-000000000009/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:read`.
  • Límite de solicitudes: 120 lecturas por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
PATCH/v1/plan/projects/{project_id}/updates/{update_id}/attachments/{attachment_id}/BetaAPI keyCLI Auth

Renombrar un adjunto de la actualización

Cambia el nombre del archivo del adjunto; el contenido no cambia. Solo la persona autora de la actualización puede renombrarlo (403 update_not_author).

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
update_idstringRequeridoEl uuid de la actualización.
attachment_idstringRequeridoEl uuid del adjunto.

Encabezados

NombreTipoRequeridoDescripción
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Cuerpo de la solicitud

NombreTipoRequeridoDescripción
filenamestringRequeridoEl nuevo nombre del archivo.
agent_namestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona (máx. 128 caracteres, vacío significa sin agente). Tiene prioridad sobre el header X-Dailybot-Agent-Name. Ver Atribución de agente.

Respuesta

NombreTipoRequeridoDescripción
(body)TaskAttachmentRequeridoUn objeto TaskAttachment.

Errores

EstadoCuándo
400Falta el nombre o no es válido. `invalid_agent_attribution` significa que el nombre del agente no es válido.
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403Solo la persona autora de la actualización puede hacerlo (`update_not_author`).
404El proyecto, la actualización o el adjunto no existe o no puedes verlo (`not_found`), nunca un 403.
curl -sS -X PATCH "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/updates/00000000-0000-4000-8000-00000000000a/attachments/00000000-0000-4000-8000-000000000009/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"filename": "roadmap-v2.png"}'

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:write`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
DELETE/v1/plan/projects/{project_id}/updates/{update_id}/attachments/{attachment_id}/BetaAPI keyCLI Auth

Quitar un adjunto de la actualización

Quita el adjunto. La persona autora de la actualización puede quitarlo, y también un administrador de la organización (403 update_not_author para cualquier otra persona).

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
update_idstringRequeridoEl uuid de la actualización.
attachment_idstringRequeridoEl uuid del adjunto.

Encabezados

NombreTipoRequeridoDescripción
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Errores

EstadoCuándo
400El nombre del agente no es válido (`invalid_agent_attribution`).
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403Solo la persona autora de la actualización puede hacerlo (`update_not_author`).
404El proyecto, la actualización o el adjunto no existe o no puedes verlo (`not_found`), nunca un 403.
curl -sS -X DELETE "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/updates/00000000-0000-4000-8000-00000000000a/attachments/00000000-0000-4000-8000-000000000009/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:write`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
GET/v1/plan/projects/{project_id}/updates/{update_id}/attachments/{attachment_id}/content/BetaAPI keyCLI Auth

Descargar los bytes de un adjunto de la actualización

Transmite el archivo con el tipo de contenido registrado al subirlo, X-Content-Type-Options: nosniff y Cache-Control: no-store. Nunca redirige al almacenamiento. Cualquiera que pueda ver el proyecto puede descargarlo.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
update_idstringRequeridoEl uuid de la actualización.
attachment_idstringRequeridoEl uuid del adjunto.

Errores

EstadoCuándo
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
404El proyecto, la actualización o el adjunto no existe o no puedes verlo (`not_found`), nunca un 403.
409El adjunto aún no está listo (`attachment_not_ready`).
curl -sS "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000001/updates/00000000-0000-4000-8000-00000000000a/attachments/00000000-0000-4000-8000-000000000009/content/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN" -o roadmap.png

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:read`.
  • Límite de solicitudes: 120 lecturas por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
PATCH/v1/plan/projects/{project_id}/attachments/{attachment_id}/BetaCLI Auth

Renombrar un adjunto del proyecto

Cambia el nombre visible del archivo; los bytes guardados no cambian. Las reglas son las del contenedor: solo administradores de la organización.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
attachment_iduuidRequeridoEl uuid del adjunto.

Encabezados

NombreTipoRequeridoDescripción
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Cuerpo de la solicitud

NombreTipoRequeridoDescripción
filenamestringRequeridoEl nuevo nombre del archivo (1–255 caracteres). Los bytes guardados no cambian.
agent_namestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona (máx. 128 caracteres, vacío significa sin agente). Tiene prioridad sobre el header X-Dailybot-Agent-Name. Ver Atribución de agente.

Respuesta

NombreTipoRequeridoDescripción
(body)TaskAttachmentRequeridoUn objeto TaskAttachment.

Errores

EstadoCuándo
400La validación falló; el `code` de la respuesta indica qué campo. `invalid_agent_attribution` significa que el nombre del agente no es válido.
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
403No eres administrador de la organización (`insufficient_scope`), o eres invitado (`guest_not_allowed`). Una key de agente o de la organización también se rechaza aquí.
404El elemento padre o el adjunto no existe o no puedes verlo (`not_found`), nunca un 403.
curl -sS -X PATCH "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000003/attachments/00000000-0000-4000-8000-000000000009/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "filename": "spec-v2.pdf"
}'

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:admin` — escrituras de contenedores. Un miembro no invitado puede llamarlo con una sesión iniciada o una API key personal (una key con scopes de Plan explícitos necesita `tasks:write`, que lo cubre); una key de agente o de la organización recibe `403 insufficient_scope`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Requiere una persona: llámalo con una sesión iniciada, un token de usuario del CLI o una API key personal. Una key de agente o de la organización recibe `403 insufficient_scope`.
GET/v1/plan/projects/{project_id}/updates/{update_id}/reactions/BetaAPI keyCLI AuthPaginación por número de página

Listar quién reaccionó a una actualización del proyecto

Todos los que reaccionaron a la actualización, del más antiguo al más reciente, como una página. emoji la reduce a un solo emoji. La misma forma que la lista de reacciones de un comentario.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
update_idstringRequeridoEl uuid de la actualización.

Parámetros de consulta

NombreTipoRequeridoDescripción
pageintegerOpcionalNúmero de página, empezando en 1.
page_sizeintegerOpcionalFilas por página. 50 por defecto, máximo 100. Los valores fuera de rango se ajustan, nunca se rechazan: pedir 500 devuelve 100.
emojistringOpcionalUn emoji; todos los emojis si se omite. La misma regla que en las escrituras: cualquier otra cosa es 400 reaction_invalid_emoji.

Objeto Reactor

NombreTipoRequeridoDescripción
emojistringRequerido—
userActorRefRequeridoQuién reaccionó.
executed_by_agentAgentRef | nullOpcionalEl agente que ejecutó la reacción por esa persona, o null.
created_atdatetimeRequerido—

Objeto ActorRef

NombreTipoRequeridoDescripción
kindstringRequerido—
uuidstringRequeridoIdentificador público estable.
namestringOpcionalNombre visible.
usernamestring | nullOpcional—
avatar_urlstring | nullOpcional—
has_photobooleanOpcional—

Respuesta

NombreTipoRequeridoDescripción
countintegerRequeridoNúmero total de filas.
nexturiRequeridoURL de la página siguiente, o null.
previousuriRequeridoURL de la página anterior, o null.
resultsarray<Reactor>RequeridoLa página de objetos Reactor.

Errores

EstadoCuándo
400`emoji` no es un solo emoji (`reaction_invalid_emoji`), o un valor de paginación no es válido.
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
404El proyecto o la actualización no existe o no puedes verlo (`not_found`), nunca un 403.
curl -sS "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000003/updates/00000000-0000-4000-8000-000000000007/reactions/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:read`.
  • Límite de solicitudes: 120 lecturas por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
POST/v1/plan/projects/{project_id}/updates/{update_id}/reactions/BetaAPI keyCLI Auth

Agregar una reacción con emoji a una actualización del proyecto (idempotente)

Agrega tu reacción emoji a la actualización; agregarla otra vez no cambia nada. Las mismas reglas que las reacciones a comentarios: un emoji, una reacción por persona por emoji, y una persona detrás de la credencial. Una persona tiene como máximo 20 emojis distintos en una actualización (400 reaction_limit_reached, extra.limit). La respuesta es la actualización completa con sus reacciones.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
update_idstringRequeridoEl uuid de la actualización.

Encabezados

NombreTipoRequeridoDescripción
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Cuerpo de la solicitud

NombreTipoRequeridoDescripción
emojistringRequeridoEl emoji. Máx. 32 caracteres.
agent_namestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona (máx. 128 caracteres, vacío significa sin agente). Tiene prioridad sobre el header X-Dailybot-Agent-Name. Ver Atribución de agente.

Respuesta

NombreTipoRequeridoDescripción
(body)ProjectUpdateRequeridoUn objeto ProjectUpdate.

Errores

EstadoCuándo
400No es un solo emoji (`reaction_invalid_emoji`), una key de agente o de la organización (`actor_required`), demasiados emojis distintos tuyos en esta actualización (`reaction_limit_reached`), o un nombre de agente no válido (`invalid_agent_attribution`).
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
404El proyecto o la actualización no existe o no puedes verlo (`not_found`), nunca un 403.
curl -sS -X POST "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000003/updates/00000000-0000-4000-8000-000000000007/reactions/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "emoji": "👍"
}'

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:write`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.
DELETE/v1/plan/projects/{project_id}/updates/{update_id}/reactions/{emoji}/BetaAPI keyCLI Auth

Quitar la reacción con emoji de quien llama de una actualización del proyecto

Quita tu reacción con este emoji de la actualización. Responde 204 incluso cuando la reacción ya no estaba.

Parámetros de ruta

NombreTipoRequeridoDescripción
project_idstringRequeridoEl uuid del proyecto.
update_idstringRequeridoEl uuid de la actualización.
emojistringRequeridoEl emoji, codificado con percent-encoding (UTF-8).

Encabezados

NombreTipoRequeridoDescripción
X-Dailybot-Agent-NamestringOpcionalEl nombre del agente que ejecutó esta escritura en nombre de la persona. Úsalo en escrituras multipart y sin cuerpo (DELETE, archivar, restaurar); en escrituras JSON envía el campo agent_name del cuerpo, que gana si vienen los dos. Codifica el valor con percent-encoding (UTF-8). Los caracteres de control se eliminan; un valor vacío significa sin agente. Más de 128 caracteres, o un valor que no se puede decodificar, es 400 invalid_agent_attribution (nunca se trunca). Una clave de tipo agente, que no está ligada a una persona, recibe 400 invalid_agent_attribution si lo envía. El sello nunca cambia una respuesta de permisos. Ver Atribución de agente.

Errores

EstadoCuándo
400La validación falló; el `code` de la respuesta indica qué campo. `invalid_agent_attribution` significa que el nombre del agente no es válido.
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
402Plan aún no está habilitado para tu organización (`plan_upgrade_required`). Es lo esperado durante la Beta: escribe a [email protected].
404El proyecto o la actualización no existe o no puedes verlo (`not_found`), nunca un 403.
curl -sS -X DELETE "https://api.dailybot.com/v1/plan/projects/00000000-0000-4000-8000-000000000003/updates/00000000-0000-4000-8000-000000000007/reactions/%F0%9F%91%8D/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY"

Probarlo

Este es un asistente de solo copia — la solicitud no se envía desde tu navegador. Pega el comando en tu terminal para ejecutarlo.

  • Scope: `tasks:write`.
  • Límite de solicitudes: 60 escrituras por minuto por actor.
  • Funciona con una sesión iniciada, un token de usuario del CLI, una API key personal, o una key de agente o de la organización. Una key personal ve lo que ve su persona; una key de agente o de la organización actúa como actor del sistema y solo ve los tableros visibles para la organización.

Esta página es la referencia de Plan · Proyectos. Todos los endpoints viven bajo https://api.dailybot.com/v1/plan/ y responden JSON.

Autentícate con una sesión iniciada o un token de usuario del CLI (Authorization: Bearer …), o con una API key (X-API-KEY). Una API key personal actúa como su persona y puede hacer todo lo que esa persona puede hacer en Dailybot; una key de agente o de la organización nunca actúa como una persona y se rechaza en los endpoints que la requieren. En un endpoint, la insignia API key significa que también se acepta una key de agente o de la organización. Consulta Autenticación para Plan, Autenticación y Errores para las reglas comunes a todas las APIs de Dailybot.

Si es tu primera vez con Plan, lee la introducción para entender el modelo: proyectos, tableros, estados, claves, orden, versiones y archivado.