Skip to content
ver .md sin procesar

Plan · Inicio y búsqueda

Habilitación, la pantalla de inicio en una sola solicitud, mis tareas, favoritos, bandeja de entrada, actividad, línea de tiempo, búsqueda, y etiquetas e hitos de la organización. 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/me/tasks/BetaCLI AuthPaginación por número de página

Las tareas del usuario que llama

Tus tareas, lo mismo que GET /v1/plan/tasks/?owner=me más la opción scope. Requiere una persona: una key de agente o de la organización recibe 403 insufficient_scope, nunca una lista vacía; una API key personal funciona.

Parámetros de consulta

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.

Filtros

NombreTipoRequeridoDescripción
scopestringOpcionalQué sentido de "mío": owned es owner = me; participating significa que estás en la tarjeta; involved es la unión de las tareas de las que eres responsable, en las que participas y las que creaste, que es lo que una persona entiende por "mis tareas".
statearrayOpcionalRepetible; los valores se combinan con OR. Cada valor es o bien un uuid de estado o bien uno de dos tokens de ciclo de vida: - open - las categorías de estado que no son terminales: backlog, todo, in_progress. - done - las categorías terminales: done, canceled. Los tokens se deciden solo por state.category y nunca consultan completed_at, así que un cliente que clasifica las filas por la categoría del chip de estado coincide con este filtro por construcción. Se permite mezclar: un uuid y un token en la misma solicitud se combinan con OR como cualquier otro valor repetido. Cualquier otro valor es 400 invalid_filter_value con extra.parameter: "state", incluido overdue, que no es un estado del ciclo de vida. Vencido es una cuestión de fecha de vencimiento: consulta due_before.
categoryarrayOpcionalLas cinco categorías de estado fijas. No existe una categoría blocked: estar bloqueado es una relación; usa blocked=true.
priorityarrayOpcional1=urgente, 2=alta, 3=media, 4=baja, 5=ninguna. Repetible.
blockedbooleanOpcionalDerivado de las relaciones, no de un estado. Es la consulta que el producto responde con un vínculo en lugar de un estado. blocked=true significa un bloqueador activo: una relación blocks cuya tarea de origen no está archivada ni en una categoría terminal. Un bloqueador que a su vez está done o canceled no bloquea nada y no coincide. Independiente del ciclo de vida. Una tarea terminada puede seguir teniendo un bloqueador activo, así que blocked=true por sí solo también devuelve filas terminales. El trabajo sobre el que una persona puede actuar es blocked=true&state=open: esa combinación es la que reproduce el mosaico blocked de GET /v1/plan/pulse/.

Fechas

NombreTipoRequeridoDescripción
due_beforestringOpcionalInclusivo. Por sí solo, significa vencido o con vencimiento hasta esa fecha; no excluye el trabajo que ya está terminado. Vencido se escribe due_before=<today>&state=open. Esa combinación es la forma admitida, es la que reproduce el mosaico overdue de GET /v1/plan/pulse/, y deliberadamente no existe el atajo state=overdue: state es una dimensión del ciclo de vida y vencido es una dimensión de fecha, así que una única forma evita que ambas se desalineen. state=overdue responde 400 invalid_filter_value, lo que dice algo sobre esa forma de escribirlo y no sobre la capacidad.

Orden y expansión

NombreTipoRequeridoDescripción
sortstringOpcionalUn campo, opcionalmente con prefijo -. Todo orden agrega un desempate interno estable para que una fila no pueda aparecer en dos páginas. Un valor no admitido es 400 invalid_sort, nunca una alternativa silenciosa.

Filas archivadas

NombreTipoRequeridoDescripción
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 Task

NombreTipoRequeridoDescripción
uuiduuidRequeridoIdentificador público estable.
keystringRequeridoClave legible KEY-n, por ejemplo ENG-142. Las claves retiradas siguen resolviéndose.
titlestringRequeridoEl título de la tarea. Máx. 255 caracteres.
descriptionstring | nullOpcionalDescripción libre.
boarduuidOpcionalEl tablero.
stateWorkflowStateRequeridoEl estado de la tarea (su columna). Ver WorkflowState.
priorityintegerOpcional1 urgente, 2 alta, 3 media, 4 baja, 5 ninguna. De 1 a 5.
estimateinteger | nullOpcionalEstimación en la escala del tablero.
ownerUserRef | nullOpcionalLa persona responsable de la tarea. Ver UserRef.
executorActorRef | nullOpcionalEl actor que hace el trabajo, cuando es distinto del responsable (por ejemplo, un agente). Ver ActorRef.
executorsobject[]OpcionalCada agente que ejecutó una escritura en esta tarea en nombre de alguien, del más reciente al más antiguo: {uuid, name, username, avatar, first_at, last_at}. Es distinto de executor, que sigue siendo quien tiene la pelota ahora. Solo en el detalle de la tarea y en las respuestas de escritura de una sola tarea; no viene en las filas de listas.
participant_countintegerOpcionalNúmero de participantes.
start_datedate | nullOpcionalFecha de inicio planificada.
due_datedate | nullOpcionalFecha de vencimiento.
milestonenull | {uuid, name, date}OpcionalEl hito al que cuenta esta tarea. Todos los campos están siempre presentes.
parent_tasknull | {uuid, key, title}OpcionalLa tarea padre, para una subtarea. Solo un nivel de anidación. Todos los campos están siempre presentes.
subtask_countintegerOpcionalNúmero de subtareas.
subtask_done_countintegerOpcionalNúmero de subtareas terminadas.
attachment_countintegerOpcionalNúmero de adjuntos.
open_blocker_countintegerOpcionalNúmero de bloqueos activos.
labelsarray<Label>OpcionalEtiquetas de la organización en la tarea. Ver Label.
rankstring | nullOpcionalOrden opaco dentro de la columna. Nunca lo calcules: mueve con after / before.
blockedbooleanOpcionalTareas con un bloqueo activo.
blocked_sincedate-time | nullOpcionalCuándo se bloqueó la tarea.
completed_atdate-time | nullOpcionalCuándo se completó, o null.
is_archivedbooleanRequeridoSi la fila está archivada. Archivar es la forma de eliminar: las filas archivadas siguen siendo legibles y se pueden restaurar.
subscribedbooleanOpcionalSi observas esta tarea.
versionintegerRequeridoSe incrementa en cada escritura. Devuélvelo como If-Match para rechazar una actualización desactualizada.
created_byActorRef | nullOpcionalQuién creó la fila. Ver ActorRef.
created_atdate-timeOpcionalCuándo se creó la fila.
updated_atdate-timeOpcionalCuándo cambió la fila por última vez.

Objeto WorkflowState

NombreTipoRequeridoDescripción
uuiduuidRequeridoIdentificador público estable.
namestringRequeridoNombre visible. Máx. 48 caracteres.
categoryenumRequeridoUna de las cinco categorías fijas. Nunca cambia después de crearse. Uno de backlog, todo, in_progress, done, canceled.
positionintegerRequeridoPosición de la columna, de izquierda a derecha. Mínimo 0.
colorstringOpcionalColor de visualización (hex).
is_defaultbooleanOpcionalSi las tareas nuevas llegan a este estado de forma predeterminada.
is_archivedbooleanOpcionalSi la fila está archivada. Archivar es la forma de eliminar: las filas archivadas siguen siendo legibles y se pueden restaurar.
task_countintegerOpcionalNúmero de tareas activas.

Objeto UserRef

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

Objeto ActorRef

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

Objeto Label

NombreTipoRequeridoDescripción
uuiduuidRequeridoIdentificador público estable.
namestringRequeridoNombre visible. Máx. 64 caracteres.
colorstringOpcionalColor de visualización (hex).

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<Task>RequeridoLas filas de esta página. Ver Task.

Errores

EstadoCuándo
400Un valor de filtro invá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`).
curl -sS "https://api.dailybot.com/v1/plan/me/tasks/?scope=involved&state=open" \
  -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`.
GET/v1/plan/me/tasks/counts/BetaCLI Auth

Conteos de las pestañas de tareas personales

Conteos con alcance de quien llama para el trabajo del que es responsable, en el que participa, en el que está involucrado y vencido. Los cuatro enteros de nivel superior son totales de población en todo el ciclo de vida: owned cuenta todas las tareas de las que quien llama es responsable, estén abiertas, terminadas o canceladas. overdue es la excepción y solo cubre owned, excluyendo ya el trabajo archivado y terminal. by_scope contiene los números calificados por estado, para que una insignia pueda decir "N abiertas" sin una segunda solicitud. open se decide por la CATEGORÍA del estado, exactamente como lo decide ?state=open; overdue significa abierta Y vencida; blocked usa el único predicado de bloqueador activo. Cada número se calcula en el mismo agregado único sobre la misma raíz de visibilidad. by_scope.<scope>.total es igual, por construcción, al entero de nivel superior con el mismo nombre.

Objeto MyTaskCounts

NombreTipoRequeridoDescripción
ownedintegerRequeridoTareas de las que eres responsable (todos los ciclos de vida).
participatingintegerRequeridoTareas en las que participas.
involvedintegerRequeridoTareas de las que eres responsable, en las que participas o que creaste.
overdueintegerRequeridoTareas abiertas con la fecha de vencimiento ya pasada.
by_scopeobjectRequeridoConteos por estado para cada scope: {total, open, overdue, blocked}. Forma: {owned, participating, involved} — each {total, open, overdue, blocked: integer} (all required).

Respuesta

NombreTipoRequeridoDescripción
(body)MyTaskCountsRequeridoUn objeto MyTaskCounts.

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/me/tasks/counts/" \
  -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`.
GET/v1/plan/me/recents/BetaCLI Auth

Tableros visitados recientemente por quien llama

Tableros que abriste recientemente, los más recientes primero, según lo registrado por POST /v1/plan/boards/{board_id}/visit/. Los tableros ocultos, archivados y de otras organizaciones se omiten en lugar de generar un error. Requiere una persona (una key de agente o de la organización recibe 403; una API key personal funciona).

Objeto RecentBoardList

NombreTipoRequeridoDescripción
countintegerRequeridoNúmero total de filas.
limitintegerRequeridoTamaño de página aplicado.
resultsarrayRequeridoLas filas de esta página. Elementos: {board: uuid, name: string, key: string, visited_at: date-time}.

Respuesta

NombreTipoRequeridoDescripción
(body)RecentBoardListRequeridoUn objeto RecentBoardList.

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/me/recents/" \
  -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`.
GET/v1/plan/inbox/BetaCLI AuthPaginación por número de página

Eventos de tareas relevantes para notificar a quien llama

Tu bandeja: eventos de tareas que merecen tu atención, del más reciente al más antiguo, en una página. mentioned=true conserva solo los eventos en los que alguien te mencionó; type conserva un tipo de evento. Ambos se combinan, y count y la paginación son exactos, así que no hay páginas vacías.

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.
typestringOpcionalSolo eventos de este tipo, como task.owner_changed (la pestaña Asignadas). Se combina con mentioned (Y).
mentionedbooleanOpcionaltrue conserva solo los eventos en los que alguien te mencionó. Debe ser true o false.

Objeto ActivityEvent

NombreTipoRequeridoDescripción
uuidstringRequeridoIdentificador público estable.
typestringRequeridoEl tipo de evento. Se agregan tipos nuevos con el tiempo: ignora los que no reconozcas.
actorobjectRequeridoQuién actuó.
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_atstringRequeridoCuándo se creó la fila.
taskobjectOpcionalForma: {uuid, key, title, board {uuid, key, name} | null} | null.
payloadobjectRequeridoSolo ids, valores de enum, números, booleanos y fechas; nunca texto escrito por usuarios.
changesarrayRequeridoCambios de campos resueltos, [{field, from, to}].

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<ActivityEvent>RequeridoLas filas de esta página. Ver ActivityEvent.

Errores

EstadoCuándo
400Un parámetro no declarado o un valor inválido (`invalid_filter_value`).
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/inbox/" \
  -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/inbox/read-all/BetaCLI Auth

Marcar como leídos todos los elementos de la bandeja de entrada

Marca como leídos todos los elementos de la bandeja moviendo tu cursor de lectura a ahora. La respuesta es el nuevo last_seen_at.

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
last_seen_atdate-timeRequeridoTodo lo ocurrido hasta este momento, inclusive, cuenta como leído.

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`).
curl -sS -X POST "https://api.dailybot.com/v1/plan/inbox/read-all/" \
  -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.
  • 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/inbox/{item_uuid}/read/BetaCLI Auth

Ponerse al día hasta una fila de la bandeja de entrada

Marca como leída esta fila y todo lo anterior, y responde con el nuevo unread_count. La bandeja de entrada no tiene estado de lectura por elemento, por diseño: leído/no leído se deriva de un único cursor en lugar de una marca por fila. Marcar como leída la fila cinco mientras la uno a la cuatro siguen sin leer no tiene representación en ese modelo, y dársela implica una segunda fuente de verdad que debe coincidir con el cursor para siempre. Lo que una marca de agua SÍ puede expresar es "me puse al día hasta aquí", y en un feed ordenado de lo más reciente a lo más antiguo eso es lo que suele significar hacer clic en una fila. Una fila que este actor no puede ver devuelve 404, así que un uuid de evento de otra organización no puede mover el cursor de otra persona.

Parámetros de ruta

NombreTipoRequeridoDescripción
item_uuidstringRequeridoEl uuid de la fila de la bandeja de entrada.

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
last_seen_atdate-timeRequeridoTodo lo ocurrido hasta este momento, inclusive, cuenta como leído.
unread_countintegerRequeridoElementos no leídos.

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/inbox/00000000-0000-4000-8000-00000000000f/read/" \
  -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.
  • 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/inbox/unread-count/BetaCLI Auth

Conteo de no leídos en la bandeja de entrada de quien llama

Cuántos elementos de la bandeja aún no leíste, para una insignia. Acepta los mismos filtros que la lista de la bandeja, así la insignia de cada pestaña cuenta exactamente sus filas: mentioned=true para Menciones, type=task.owner_changed para Asignadas. Sin parámetros cuenta toda la bandeja. Más barato que listar la bandeja.

Parámetros de consulta

NombreTipoRequeridoDescripción
typestringOpcionalSolo eventos de este tipo, como task.owner_changed (la pestaña Asignadas). Se combina con mentioned (Y).
mentionedbooleanOpcionaltrue conserva solo los eventos en los que alguien te mencionó. Debe ser true o false.

Respuesta

NombreTipoRequeridoDescripción
unread_countintegerRequeridoElementos no leídos.

Errores

EstadoCuándo
400Un parámetro no declarado o un valor inválido (`invalid_filter_value`).
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/inbox/unread-count/" \
  -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`.
GET/v1/plan/activity/BetaAPI keyCLI AuthPaginación por número de página

Feed de actividad de la organización para Plan Home

Eventos paginados que puedes abrir, enriquecidos con tarjetas de tarea y changes[{field, from, to}] resueltos para mostrar. Las tareas que no puedes ver se omiten aunque su tablero sea visible.

Solo se aceptan los parámetros listados aquí: cualquier otro parámetro de consulta es 400 invalid_filter_value.

Parámetros de consulta

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
typestringOpcionalFiltra por un tipo de evento. event_type es un alias.
actoruuidOpcionalSolo eventos de esta persona (uuid de usuario).
projectuuidOpcionalSolo eventos de este proyecto (uuid).
boarduuidOpcionalSolo eventos de este tablero (uuid).
taskuuidOpcionalSolo eventos sobre esta tarea (uuid).
sincestringOpcionalFecha y hora ISO: eventos registrados en ese momento o después (observed_at).
untilstringOpcionalFecha y hora ISO: eventos registrados en ese momento o antes (observed_at).

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<ActivityEvent>RequeridoLas filas de esta página. Ver ActivityEvent.

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/activity/" \
  -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/me/activity-cursor/BetaCLI Auth

Leer el cursor de lectura de actividad de quien llama

Tu cursor de lectura de actividad: el momento hasta el que leíste el feed de actividad. Es null hasta que lo fijes.

Objeto ActivityCursor

NombreTipoRequeridoDescripción
last_seen_atdate-time | nullRequeridoTodo lo ocurrido hasta este momento, inclusive, cuenta como leído.

Respuesta

NombreTipoRequeridoDescripción
(body)ActivityCursorRequeridoUn objeto ActivityCursor.

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/me/activity-cursor/" \
  -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/me/activity-cursor/BetaCLI Auth

Marcar la actividad como leída hasta una marca de tiempo

Guarda tu cursor de lectura de actividad en last_seen_at, así otro cliente puede seguir donde lo dejaste.

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
last_seen_atdate-timeRequeridoTodo lo ocurrido hasta este momento, inclusive, cuenta como leído.
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)ActivityCursorRequeridoUn objeto ActivityCursor.

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].
curl -sS -X PUT "https://api.dailybot.com/v1/plan/me/activity-cursor/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "last_seen_at": "2026-09-25T10:14:02Z"
  }'

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/labels/BetaCLI Auth

Listar las etiquetas de la organización

La taxonomía de etiquetas de la organización, compartida con formularios y check-ins. Prefiere este endpoint para las pantallas de configuración; la lista con alcance de tablero es la misma taxonomía tras una verificación de acceso al tablero.

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.
searchstringOpcionalCoincidencia de subcadena sin distinguir mayúsculas y minúsculas, solo en el nombre de la etiqueta. Vacío significa sin filtro; un valor sin coincidencias devuelve una lista vacía.
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.

Respuesta

NombreTipoRequeridoDescripción
nextstring|nullRequeridoURL de la página siguiente, o null.
previousstring|nullRequeridoURL de la página anterior, o null.
resultsarray<Label>RequeridoLas filas de esta página.

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`).
curl -sS "https://api.dailybot.com/v1/plan/labels/" \
  -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/labels/BetaCLI Auth

Crear una etiqueta de la organización

Crea una etiqueta en la taxonomía de la organización. Misma forma que POST /boards/{board_id}/labels/.

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.
colorstringOpcionalColor de visualización (hex).
descriptionstringOpcionalDescripció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)LabelRequeridoUn objeto Label.

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`).
curl -sS -X POST "https://api.dailybot.com/v1/plan/labels/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "backend",
    "color": "#2563eb"
  }'

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`.
PATCH/v1/plan/labels/{label_id}/BetaCLI Auth

Actualizar una etiqueta de la organización

Actualización parcial de nombre, color, descripción o is_archived. Archivar oculta la etiqueta de la lista por defecto sin eliminarla definitivamente. Restaurar es el mismo campo en sentido inverso: {"is_archived": false}. Lee una etiqueta retirada con GET /v1/plan/labels/?include_archived=true.

Parámetros de ruta

NombreTipoRequeridoDescripción
label_idstringRequeridoEl uuid de la etiqueta.

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.
colorstringOpcionalColor de visualización (hex).
descriptionstringOpcionalDescripción libre.
is_archivedbooleanOpcionalSi la fila está archivada. Archivar es la forma de eliminar: las filas archivadas siguen siendo legibles y se pueden restaurar.
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)LabelRequeridoUn objeto Label.

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/labels/00000000-0000-4000-8000-00000000000b/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "is_archived": true
  }'

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`.
DELETE/v1/plan/labels/{label_id}/BetaCLI Auth

Eliminar una etiqueta de la organización

Elimina de forma definitiva cuando la etiqueta no está en ninguna tarea. De lo contrario, 409 label_in_use. Prefiere PATCH con is_archived: true para retirar una etiqueta que todavía está en tarjetas.

Parámetros de ruta

NombreTipoRequeridoDescripción
label_idstringRequeridoEl uuid de la etiqueta.

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.
409La etiqueta todavía está en tareas (`label_in_use`). Archívala con `PATCH` en su lugar.
curl -sS -X DELETE "https://api.dailybot.com/v1/plan/labels/00000000-0000-4000-8000-00000000000b/" \
  -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.
  • 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/entitlements/BetaAPI keyCLI Auth

Si Plan está disponible aquí y los topes del plan

Si Plan está disponible para tu organización y los topes de su plan. Es el único endpoint de Plan que nunca responde 402, así que llámalo antes de decidir si mostrar el producto.

enabled es la misma verificación que aplican todos los demás endpoints. reason es null cuando está habilitado; de lo contrario, rollout (tu organización todavía no está habilitada para la Beta) o usage (un administrador desactivó Plan). boards y projects informan {used, limit}, incluso cuando está deshabilitado; limit es null cuando el plan no tiene tope. El plan gratuito incluye hasta 3 tableros y 1 proyecto. used cuenta solo filas activas, así que archivar libera un lugar, y used > limit puede ocurrir en planes heredados.

Un invitado recibe 403 guest_not_allowed aquí, no 200 con enabled: false, y nunca ve los topes del plan.

Objeto Entitlements

NombreTipoRequeridoDescripción
enabledbooleanRequeridoSi Plan está habilitado para tu organización.
reasonenum | nullRequeridoPor qué Tasks no está habilitado: rollout o usage; null cuando está habilitado. Uno de rollout, usage.
boardsobjectRequeridoForma: {used: integer, limit: integer|null} (both required).
projectsobjectRequeridoProyectos vinculados. Forma: {used: integer, limit: integer|null} (both required).
labelsobjectRequeridoEtiquetas de la organización en la tarea. Forma: {enabled: boolean}.

Respuesta

NombreTipoRequeridoDescripción
(body)EntitlementsRequeridoUn objeto Entitlements.

Errores

EstadoCuándo
401Credencial ausente, vencida o con formato inválido (`credential_absent`, `credential_expired`, `credential_malformed`).
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/entitlements/" \
  -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/timeline/BetaAPI keyCLI Auth

El trabajo planificado en una ventana, con sus aristas de dependencia y bandas de objetivos

El mismo conjunto filtrado que la lista de tareas, visto como una pregunta de planificación. rows son las tarjetas que se SUPERPONEN con la ventana; unscheduled cuenta las tarjetas coincidentes sin ninguna fecha; dependencies incluye solo aristas cuyos dos extremos están en rows, porque una flecha hacia una fila que el lector no puede ver es una línea hacia ninguna parte en la pantalla y una filtración fuera de ella. Selección de la ventana (gana la primera coincidencia): - from + to (fechas ISO): rango explícito; from puede estar en el pasado (por ejemplo, hoy−7 … hoy+21). Alias: window_from / window_to. - window_days: ayuda hacia adelante: desde hoy hasta hoy+N (rango inclusivo). - omitido: ventana predeterminada de 14 días hacia adelante desde hoy (con un filtro de tablero).

Parámetros de consulta

Filtros

NombreTipoRequeridoDescripción
fromstringOpcionalPrimer día de una ventana explícita (fecha ISO). Puede estar en el pasado. Úsalo junto con to. Alias: window_from.
tostringOpcionalÚltimo día de una ventana explícita (fecha ISO). Debe ser ≥ from. Alias: window_to.
window_fromstringOpcionalAlias de from.
window_tostringOpcionalAlias de to.
window_daysintegerOpcionalAyuda hacia adelante desde hoy. Se ignora cuando están presentes from y to (o sus alias). El valor predeterminado sin ventana explícita es 14.
boardarrayOpcionaluuids de tableros o claves de tableros (ENG). Repetible; los valores se combinan con OR. Las claves se resuelven solo dentro de tu organización; una clave que no corresponde a ninguno de tus tableros no aporta nada y nunca devuelve un 404. Las claves retiradas se siguen resolviendo.
projectarrayOpcionaluuids de proyectos. Repetible; los valores se combinan con OR.
goalstringOpcionalRepetible. Coincide con el objetivo propio de una tarea, o con el que hereda de su proyecto cuando no tiene uno, la misma regla que usa cada resumen agregado de progreso.
teamstringOpcionalRepetible. El equipo del tablero. Reduce lo que ves y nunca lo amplía.
ownerarrayOpcionalUn uuid de usuario, me o unowned. Repetible; los valores se combinan con OR, incluidos los tokens: owner=me&owner=unowned devuelve tus tareas y las que no tienen responsable. me con una key de agente o de la organización es 400 actor_required.
categoryarrayOpcionalLas cinco categorías de estado fijas. No existe una categoría blocked: estar bloqueado es una relación; usa blocked=true.
labelarrayOpcionaluuids de etiquetas: solo v4, como máximo 50, igual que el límite existente del filtro de etiquetas compartido. Un valor que no es v4 es 400 invalid_label_filter.
include_unscheduledstringOpcionalCuando es 1 o true, unscheduled es {count, results[]} (con tope) en lugar de un simple conteo entero.

Objeto Timeline

NombreTipoRequeridoDescripción
windowobjectRequeridoLa ventana cubierta. Forma: {from: string, to: string}.
bandsarrayOpcionalObjetivos vigentes a lo largo de la ventana. Elementos: {uuid, name, status, period_start, period_end}.
rowsarrayRequeridoTareas que se superponen con la ventana. Elementos: {uuid, key, title, state (state name), category, owner (UserRef|null), goal (uuid|null), start_date, due_date, completed_at, is_blocked, is_overdue}.
dependenciesarrayOpcionalAristas de dependencia cuyos dos extremos están en rows. Elementos: {source (task uuid), target (task uuid), relation_type}.
unscheduledinteger | {count: integer, results: array}RequeridoTareas coincidentes sin ninguna fecha.
truncatedbooleanOpcionaltrue cuando hay más cambios esperando: consulta de nuevo de inmediato.

Respuesta

NombreTipoRequeridoDescripción
(body)TimelineRequeridoUn objeto Timeline.

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`).
429Llegaste al límite de solicitudes. Espera los segundos que indica `Retry-After`.
curl -sS "https://api.dailybot.com/v1/plan/timeline/?board=ENG&from=2026-09-18&to=2026-10-16" \
  -H "X-API-KEY: $DAILYBOT_API_KEY"

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/pulse/BetaAPI keyCLI Auth

La pantalla de inicio en una sola solicitud (HomePulse), o un agregado de salud del tablero (TaskPulse)

Dos modos, según la presencia de group_by.

HomePulse (sin group_by): el inicio de Plan en una sola solicitud: generated_at, counts enteros, tu my_preview, avances de tableros, objetivos y línea de tiempo, agent_summary y las bandas opcionales de include. La población se indica como scope: "viewer_visible": todas las tareas activas y no terminales que puedes ver, no toda la organización. Cada mosaico indica la consulta que lo reproduce: open → ?state=open, overdue → ?due_before=<today>&state=open, blocked → ?blocked=true&state=open.

TaskPulse (con group_by, p. ej. group_by=state): un agregado de salud del tablero con totales, rendimiento y tiempo de ciclo. Los conteos son solo enteros y no hay desglose por persona. Responde a If-None-Match con 304.

Parámetros de consulta

NombreTipoRequeridoDescripción
boardarrayOpcionaluuids de tableros o claves de tableros (ENG). Repetible; los valores se combinan con OR. Las claves se resuelven solo dentro de tu organización; una clave que no corresponde a ninguno de tus tableros no aporta nada y nunca devuelve un 404. Las claves retiradas se siguen resolviendo.
projectarrayOpcionaluuids de proyectos. Repetible; los valores se combinan con OR.
window_daysintegerOpcionalLa ventana móvil para el rendimiento y el tiempo de ciclo.
group_bystringOpcionalSu presencia selecciona el modo TaskPulse (un agregado de salud del tablero). Omítelo por completo para HomePulse; no hay valor por defecto. El enum es cerrado y no contiene ninguna dimensión de persona: la salida por persona se rechaza por diseño.
includestringOpcionalSolo HomePulse (sin group_by). Bandas opcionales separadas por comas para que una pantalla de inicio se genere con una sola solicitud: projects → projects_preview (proyectos activos visibles, progreso, actualización más reciente), attention → attention (tu trabajo abierto vencido o bloqueado), activity → recent_activity, goal_progress → progress y projects en cada fila de goals_preview. Una banda que no pides no aparece y no cuesta nada. Un token desconocido es 400 invalid_filter_value.

Encabezados

NombreTipoRequeridoDescripción
If-None-MatchstringOpcionalEl ETag de tu lectura anterior. Si coincide, responde 304.

Objeto HomePulse

NombreTipoRequeridoDescripción
generated_atdate-timeRequeridoCuándo se calculó la respuesta.
scopeenumRequeridoLa población contada: viewer_visible (todo lo que puedes ver). Uno de viewer_visible.
openintegerOpcionalTareas en un estado backlog, todo o in_progress.
overdueintegerOpcionalTareas abiertas con la fecha de vencimiento ya pasada.
blockedintegerOpcionalTareas con un bloqueo activo.
unread_countintegerRequeridoElementos no leídos.
countsHomePulseCounts {open_tasks, open_tasks_on_goal_linked_projects, overdue_tasks, blocked_tasks, active_boards, active_projects, active_goals: integer}RequeridoConteos enteros sobre lo que puedes ver. Todos los campos están siempre presentes.
my_previewobjectRequeridoTu trabajo vencido y el que vence hoy. Forma: {overdue: integer, due_today: integer, top_tasks: array of {uuid, title, due_date, priority, board (uuid)}} (all required).
recent_boardsarrayRequeridoElementos: {uuid, name, key, project (uuid|null), updated_at, viewer{is_member, can_see_content, can_manage}}.
featured_boardsarrayRequeridoElementos: {uuid, name, key, project (uuid|null), updated_at, viewer{is_member, can_see_content, can_manage}}.
goals_previewarrayRequeridoElementos: {uuid, name, status, period_start, period_end}; with include=goal_progress also progress (GoalProgress|null) and projects [{uuid, name, …}].
timeline_teaserobjectRequeridoTrabajo que vence pronto. Forma: {window_from: string, window_to: string, due_soon_count: integer, rows: array} (all required).
agent_summaryobjectRequeridoTableros donde actúan agentes y aprobaciones pendientes. Forma: {boards_advisory, boards_autonomous, pending_approvals: integer} (all required).
projects_previewarrayOpcionalSolo presente con include=projects. Elementos: {uuid, name, health, progress (ProjectProgress|null), latest_update (ProjectUpdate|null)}.
attentionarrayOpcionalSolo presente con include=attention. Elementos: {uuid, key, title, due_date, priority, board, state{uuid, name, category}, overdue, blocked}.
recent_activityarray<ActivityEvent>OpcionalSolo presente con include=activity. Ver ActivityEvent.

Objeto TaskPulse

NombreTipoRequeridoDescripción
boardBoard | nullOpcionalEl tablero. Ver Board.
window_daysintegerRequerido—
generated_atdate-timeRequeridoCuándo se calculó la respuesta.
group_byenumRequeridoLa dimensión de agrupación. Uno de state, category, label, priority, board, age.
groupsarrayRequeridoUna entrada por columna (o grupo), en orden. Siempre presentes: key, count. Elementos: {key: string, name: string|null, count: integer, oldest_age_days: integer|null}.
totalsobjectRequeridoForma: {total, blocked, unassigned, overdue , created_in_window, completed_in_window: integer}.
throughputarrayOpcionalTodos los campos están siempre presentes. Elementos: {week_start: string, created: integer, completed: integer}.
cycle_time_days_p50number | nullOpcional—
cycle_time_days_p90number | nullOpcional—

Objeto Board

NombreTipoRequeridoDescripción
uuiduuidRequeridoIdentificador público estable.
keystringRequeridoLa clave del tablero: el prefijo de las claves de sus tareas. Al renombrarla, la clave anterior queda reservada y sigue resolviéndose.
namestringRequeridoNombre visible. Máx. 120 caracteres.
projectProjectOpcionalEl proyecto. Ver Project.
teamuuid | nullOpcionalEl equipo.
visibilityenumRequeridoorg (todos en la organización) o members (solo miembros explícitos). Uno de org, members.
effective_visibilitystringOpcionalSi el tablero es efectivamente visible para toda la organización (org) o solo para los miembros (members). Un tablero dentro de un proyecto members es members aquí, mientras que visibility sigue siendo el ajuste almacenado del propio tablero.
estimate_scaleenumOpcionalCómo se expresan las estimaciones en este tablero. Uno de none, fibonacci, linear.
default_viewSavedView | nullOpcionalLa vista guardada predeterminada del tablero, o null. Ver SavedView.
archive_after_daysinteger | nullOpcionalArchivar automáticamente las tareas terminadas después de esta cantidad de días, o null para conservarlas.
task_countintegerOpcionalNúmero de tareas activas.
wip_limitsobjectOpcionalLímites de trabajo en curso por columna.
is_archivedbooleanOpcionalSi la fila está archivada. Archivar es la forma de eliminar: las filas archivadas siguen siendo legibles y se pueden restaurar.
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: {is_member, can_see_content, can_manage: boolean} (all required).
statesarray<WorkflowState>OpcionalLos estados del tablero, en orden de columnas. Ver WorkflowState.

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

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.

Errores

EstadoCuándo
304Sin cambios: el ETag que enviaste en `If-None-Match` sigue coincidiendo.
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].
404No existe o no es visible para ti. Ambos casos devuelven el mismo cuerpo.
curl -sS "https://api.dailybot.com/v1/plan/pulse/?include=projects,attention,activity,goal_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.
GET/v1/plan/me/favorites/BetaCLI AuthPaginación por número de página

Tus tableros y vistas guardadas fijados

Todos tus pines, en orden de rank (1 es el primero). Un pin cuyo destino ya no puedes ver (un tablero archivado u oculto, o una vista guardada que ya no existe o dejó de estar compartida) se omite en lugar de dar error. La lista usa el sobre de lista estándar pero nunca se pagina: next y previous siempre son null, y contiene hasta 50 pines. Requiere una persona: las keys de agente y de la organización se rechazan; una API key personal funciona.

Objeto Favorite

NombreTipoRequeridoDescripción
uuiduuidRequeridoIdentificador público estable.
target_typeenumRequeridoQué está fijado: board o view. Uno de board, view.
target_uuiduuidRequeridoEl uuid del tablero o de la vista guardada, según target_type.
rankintegerRequeridoPosición en tu lista, empezando en 1. Mínimo 1.
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<Favorite>RequeridoLas filas de esta página. Ver Favorite.

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].
curl -sS "https://api.dailybot.com/v1/plan/me/favorites/" \
  -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/me/favorites/BetaCLI Auth

Fijar un tablero o una vista guardada

Los pines nuevos quedan al final de tu lista. Fijar algo que ya está fijado devuelve el pin existente en lugar de duplicarlo. Un destino que no puedes ver es 404, nunca 403. Puedes fijar hasta 50 tableros y vistas; uno más es 400 favorite_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
target_typeenumRequeridoQué está fijado: board o view. Uno de board, view.
target_uuiduuidRequeridoEl uuid del tablero o de la vista guardada, según target_type.
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)FavoriteRequeridoUn objeto Favorite.

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 POST "https://api.dailybot.com/v1/plan/me/favorites/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "target_type": "board",
    "target_uuid": "00000000-0000-4000-8000-000000000012"
  }'

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`.
PATCH/v1/plan/me/favorites/{favorite_id}/BetaCLI Auth

Mover un pin dentro de tu lista

Envía uno de after (colócalo justo debajo de ese pin), before (justo encima) o rank (posición empezando en 1, ajustada a la lista). Si envías más de uno, gana after y luego before. Los rangos se renumeran a 1..n. Un vecino que no sea uno de tus pines es 404.

Parámetros de ruta

NombreTipoRequeridoDescripción
favorite_iduuidRequeridoEl uuid del pin.

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
rankintegerOpcionalPosición destino empezando en 1, ajustada al tamaño de la lista. Mínimo 1.
beforeuuidOpcionalColoca el pin justo encima de este pin.
afteruuidOpcionalColoca el pin justo debajo de este pin.
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)FavoriteRequeridoUn objeto Favorite.

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/me/favorites/{favorite_id}/" \
  -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.
  • 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/me/favorites/{favorite_id}/BetaCLI Auth

Quitar un pin

Quita el pin, nunca su destino. Los pines restantes se renumeran a 1..n.

Parámetros de ruta

NombreTipoRequeridoDescripción
favorite_iduuidRequeridoEl uuid del pin.

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].
404No existe o no es visible para ti. Ambos casos devuelven el mismo cuerpo.
curl -sS -X DELETE "https://api.dailybot.com/v1/plan/me/favorites/{favorite_id}/" \
  -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.
  • 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`.

Esta página es la referencia de Plan · Inicio y búsqueda. 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.