Skip to content
ver .md sin procesar

Plan · Tareas

Crea, lee, actualiza, mueve, archiva y restaura tareas, una a una o en lote, además de relaciones, etiquetas, participantes y suscripciones. 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/boards/{board_id}/tasks/BetaAPI keyCLI AuthPaginación por número de página

Listar las tareas de un tablero (alias de `GET /v1/plan/tasks/?board=`)

Alias de conveniencia para clientes que anidan bajo la URL del tablero. Mismo sobre paginado de Task y misma gramática de filtros compartida que GET /v1/plan/tasks/?board={board_id}. El board_id de la ruta prevalece sobre un parámetro de consulta board= en conflicto. Prefiere este o ?board= para listas planas; usa GET …/boards/{id}/board/ para la interfaz de instantánea más densa.

Parámetros de ruta

NombreTipoRequeridoDescripción
board_idstringRequeridoEl uuid del tablero.

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
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.
key_prefixstringOpcionalSelecciona las tareas de todos los tableros que una clave haya nombrado alguna vez, incluidas las claves retiradas: ?key_prefix=ENG. Un prefijo desconocido devuelve una lista vacía.
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.
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.
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.
priorityarrayOpcional1=urgente, 2=alta, 3=media, 4=baja, 5=ninguna. Repetible.
parentstringOpcionalUn uuid de tarea padre, o none para obtener solo tareas de nivel superior. parent_task se acepta como alias de este parámetro (mismo valor). Enviar ambos con valores en conflicto es 400 invalid_filter_value.
parent_taskstringOpcionalAlias de parent, preferido por algunos clientes web. Misma gramática (uuid o none). No envíes ambos con valores distintos.
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/.
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.
participantstringOpcionalRepetible. Alguien en la tarjeta, sea responsable o no.
created_bystringOpcionalRepetible. Quién abrió la tarjeta.
estimate_minintegerOpcionalestimate mínimo, inclusive, en las unidades guardadas en la tarea (sin conversión desde la escala del tablero).
estimate_maxintegerOpcionalestimate máximo, inclusive, en las unidades guardadas en la tarea (sin conversión desde la escala del tablero).

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.
due_afterstringOpcionalInclusivo.
start_afterstringOpcionalUna fecha (YYYY-MM-DD): tareas con start_date igual o posterior, inclusive. Un valor inválido es 400 invalid_filter_value.
start_beforestringOpcionalUna fecha (YYYY-MM-DD): tareas con start_date igual o anterior, inclusive. Un valor inválido es 400 invalid_filter_value.
completed_afterstringOpcionalUna fecha (YYYY-MM-DD): tareas completadas ese día o después, inclusive (la fecha de completed_at). Un valor inválido es 400 invalid_filter_value.
completed_beforestringOpcionalUna fecha (YYYY-MM-DD): tareas completadas ese día o antes, inclusive (la fecha de completed_at). Un valor inválido es 400 invalid_filter_value.
has_due_datebooleanOpcionalfalse es la primera pregunta del planificador: qué no está programado.
has_start_datebooleanOpcionaltrue conserva las tareas con start_date; false, las que no tienen.
has_datesbooleanOpcionalAmbos extremos de la planificación a la vez. has_dates=false significa ninguna: ni fecha de inicio ni fecha de vencimiento (la bandeja sin programar). has_dates=true significa al menos una, que no es lo mismo que has_due_date=true.
updated_sincestringOpcionalUn filtro de marca de tiempo sobre esta lista paginada: devuelve {count, next, previous, results}, nunca un cursor. Para un feed de cambios usa el endpoint delta del tablero.
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.

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.

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.

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
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/boards/00000000-0000-4000-8000-000000000002/tasks/?state=open" \
  -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/boards/{board_id}/tasks/BetaAPI keyCLI Auth

Crear una tarea en este tablero (alias de `POST /v1/plan/tasks/`)

La misma semántica de creación que POST /v1/plan/tasks/, con el tablero tomado de la ruta (board en el cuerpo es opcional y se sobrescribe). Idempotency-Key es opcional y recomendado.

Parámetros de ruta

NombreTipoRequeridoDescripción
board_idstringRequeridoEl uuid del tablero.

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
milestoneuuid | nullOpcionalTodavía no se acepta al crear (501 not_implemented): asigna el hito con PATCH después de crear la tarea.
titlestringRequeridoEl título de la tarea. Máx. 255 caracteres.
descriptionstring | nullOpcionalDescripción libre. Máx. 50000 caracteres.
priorityintegerOpcional1 urgente, 2 alta, 3 media, 4 baja, 5 ninguna. De 1 a 5.
estimateinteger | nullOpcionalEstimación en la escala del tablero.
ownerstring | nullOpcionalEl uuid de usuario del responsable. La persona ya debe poder ver el tablero (de lo contrario, 400 participant_cannot_access_board).
start_datedate | nullOpcionalFecha de inicio planificada.
due_datedate | nullOpcionalFecha de vencimiento.
parent_taskuuid | nullOpcionalLa tarea padre, para una subtarea. Solo un nivel de anidación.
label_uuidsarrayOpcionaluuids de las etiquetas que se asignan a la tarea. Elementos: uuid.
afteruuid | nullOpcionalColoca el pin justo debajo de este pin.
beforeuuid | nullOpcionalColoca el pin justo encima de este pin.
versionintegerOpcionalLa versión que cargaste. Un valor desactualizado devuelve 409 version_conflict.
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)TaskRequeridoUn objeto Task.

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].
409Conflicto. El `code` de la respuesta indica cuál (por ejemplo, `version_conflict`).
curl -sS -X POST "https://api.dailybot.com/v1/plan/boards/00000000-0000-4000-8000-000000000002/tasks/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Ship the delta feed",
    "priority": 2
  }'

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/tasks/BetaAPI keyCLI AuthPaginación por número de página

Listar tareas con la gramática de filtros compartida

Con varios valores, se aplica OR dentro de un parámetro y AND entre parámetros. Un parámetro desconocido se ignora; un valor no interpretable de un parámetro conocido 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
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.
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.
key_prefixstringOpcionalSelecciona las tareas de todos los tableros que una clave haya nombrado alguna vez, incluidas las claves retiradas: ?key_prefix=ENG. Un prefijo desconocido devuelve una lista vacía.
projectarrayOpcionaluuids de proyectos. Repetible; los valores se combinan con OR.
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.
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.
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.
priorityarrayOpcional1=urgente, 2=alta, 3=media, 4=baja, 5=ninguna. Repetible.
parentstringOpcionalUn uuid de tarea padre, o none para obtener solo tareas de nivel superior. parent_task se acepta como alias de este parámetro (mismo valor). Enviar ambos con valores en conflicto es 400 invalid_filter_value.
parent_taskstringOpcionalAlias de parent, preferido por algunos clientes web. Misma gramática (uuid o none). No envíes ambos con valores distintos.
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/.
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.
participantstringOpcionalRepetible. Alguien en la tarjeta, sea responsable o no.
created_bystringOpcionalRepetible. Quién abrió la tarjeta.
estimate_minintegerOpcionalestimate mínimo, inclusive, en las unidades guardadas en la tarea (sin conversión desde la escala del tablero).
estimate_maxintegerOpcionalestimate máximo, inclusive, en las unidades guardadas en la tarea (sin conversión desde la escala del tablero).

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.
due_afterstringOpcionalInclusivo.
start_afterstringOpcionalUna fecha (YYYY-MM-DD): tareas con start_date igual o posterior, inclusive. Un valor inválido es 400 invalid_filter_value.
start_beforestringOpcionalUna fecha (YYYY-MM-DD): tareas con start_date igual o anterior, inclusive. Un valor inválido es 400 invalid_filter_value.
completed_afterstringOpcionalUna fecha (YYYY-MM-DD): tareas completadas ese día o después, inclusive (la fecha de completed_at). Un valor inválido es 400 invalid_filter_value.
completed_beforestringOpcionalUna fecha (YYYY-MM-DD): tareas completadas ese día o antes, inclusive (la fecha de completed_at). Un valor inválido es 400 invalid_filter_value.
has_due_datebooleanOpcionalfalse es la primera pregunta del planificador: qué no está programado.
has_start_datebooleanOpcionaltrue conserva las tareas con start_date; false, las que no tienen.
has_datesbooleanOpcionalAmbos extremos de la planificación a la vez. has_dates=false significa ninguna: ni fecha de inicio ni fecha de vencimiento (la bandeja sin programar). has_dates=true significa al menos una, que no es lo mismo que has_due_date=true.
updated_sincestringOpcionalUn filtro de marca de tiempo sobre esta lista paginada: devuelve {count, next, previous, results}, nunca un cursor. Para un feed de cambios usa el endpoint delta del tablero.
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.

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.

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.

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
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/tasks/?board=ENG&state=open&owner=me" \
  -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/tasks/BetaAPI keyCLI Auth

Crear una tarea

La clave (ENG-143) se asigna desde el contador del tablero y nunca se reutiliza, ni siquiera después de archivar.

Cuando se define owner, esa persona ya debe poder ver el tablero; de lo contrario, la llamada se rechaza con 400 participant_cannot_access_board y no se escribe nada.

La ubicación es relativa: after o before indica una tarea visible en la columna de destino (como máximo uno de los dos); omite ambos para agregar al final. Nunca se acepta un rank en bruto.

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
boarduuidRequeridoEl tablero: su uuid o su clave (ENG).
milestoneuuid | nullOpcionalTodavía no se acepta al crear (501 not_implemented): asigna el hito con PATCH después de crear la tarea.
titlestringRequeridoEl título de la tarea. Máx. 255 caracteres.
descriptionstring | nullOpcionalDescripción libre. Máx. 50000 caracteres.
priorityintegerOpcional1 urgente, 2 alta, 3 media, 4 baja, 5 ninguna. De 1 a 5.
estimateinteger | nullOpcionalEstimación en la escala del tablero.
ownerstring | nullOpcionalEl uuid de usuario del responsable. La persona ya debe poder ver el tablero (de lo contrario, 400 participant_cannot_access_board).
start_datedate | nullOpcionalFecha de inicio planificada.
due_datedate | nullOpcionalFecha de vencimiento.
parent_taskuuid | nullOpcionalLa tarea padre, para una subtarea. Solo un nivel de anidación.
label_uuidsarrayOpcionaluuids de las etiquetas que se asignan a la tarea. Elementos: uuid.
afteruuid | nullOpcionalColoca el pin justo debajo de este pin.
beforeuuid | nullOpcionalColoca el pin justo encima de este pin.
versionintegerOpcionalLa versión que cargaste. Un valor desactualizado devuelve 409 version_conflict.
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)TaskRequeridoUn objeto Task.

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].
409Conflicto. El `code` de la respuesta indica cuál (por ejemplo, `version_conflict`).
422No se pudo aplicar la solicitud (`column_too_large`).
curl -sS -X POST "https://api.dailybot.com/v1/plan/tasks/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "board": "00000000-0000-4000-8000-000000000002",
    "title": "Ship the delta feed",
    "priority": 2,
    "due_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.
POST/v1/plan/tasks/bulk/BetaAPI keyCLI Auth

Crear hasta 100 tareas, o aplicarles una operación

Registrado ANTES de la ruta de detalle {task_id}, o bulk se interpretaría como un identificador. La atomicidad es por elemento, no por lote: la respuesta informa cada elemento por separado y el estado HTTP describe si el lote fue aceptado, no si todos los elementos se aplicaron. Idempotency-Key es obligatorio: un movimiento masivo que se aplica a medias dos veces deja el tablero corrupto. La operación restore es la forma por lotes de POST .../tasks/{task_id}/restore/ y sigue las mismas reglas.

Parámetros de consulta

NombreTipoRequeridoDescripción
dry_runbooleanOpcionalEjecuta la llamada y la revierte. Responde {operation, dry_run, reversible, consequence, affects{tasks}, items[{index, task, key, changes{field:{from,to}}}], refused[{index, code, detail}]}. No se necesita Idempotency-Key.

Encabezados

NombreTipoRequeridoDescripción
Idempotency-KeystringRequeridoObligatorio en operaciones masivas: un lote que se aplica a medias dos veces deja el tablero corrupto. Si falta, devuelve 400 idempotency_key_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.

Cuerpo de la solicitud

NombreTipoRequeridoDescripción
operationenumRequeridoLa operación a aplicar. Uno de move, update, archive, restore, create, set_labels. Alias: set_owner, set_priority, set_due_date, set_parent (→ update); delete (→ archive).
boarduuidOpcionalEl tablero. Obligatorio cuando operation es create.
itemsarray (max 100): mutate items {task (uuid or KEY-n, required), state, after, before, owner, priority 1-5, due_date, version, label_uuids (or labels), parent_task}; create items {title (≤512, required), description, state, owner, priority, estimate, start_date, due_date, external_id}RequeridoHasta 100 elementos.
positionenumOpcionalSolo con create: dónde quedan las tareas nuevas en cada columna. start las pone arriba, en el orden de los elementos; end, abajo. Uno de start, end. Valor por defecto end.
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.

Objeto BulkResponse

NombreTipoRequeridoDescripción
succeededintegerRequeridoElementos que se aplicaron correctamente.
failedintegerRequeridoElementos que fallaron.
resultsarrayRequeridoLas filas de esta página. Siempre presentes: task, status. Elementos: {task: string, status: string, version: integer|null, code: string|null, detail: string|null, extra: object, external_id?: string, key?: string}.

Respuesta

NombreTipoRequeridoDescripción
(body)BulkResponseRequeridoUn objeto BulkResponse.

Errores

EstadoCuándo
400Falta `Idempotency-Key` (`idempotency_key_required`), hay más de 100 elementos (`too_many_items`) o el payload 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].
409El mismo `Idempotency-Key` todavía está en ejecución (`idempotency_in_progress`) o se usó con un cuerpo distinto (`idempotency_key_payload_mismatch`).
429Llegaste al límite de solicitudes. Espera los segundos que indica `Retry-After`.
curl -sS -X POST "https://api.dailybot.com/v1/plan/tasks/bulk/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "operation": "create",
    "board": "00000000-0000-4000-8000-000000000002",
    "items": [
      {
        "title": "Write the migration guide",
        "external_id": "row-1"
      },
      {
        "title": "Record the demo",
        "external_id": "row-2"
      }
    ]
  }'

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: 30 llamadas masivas 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/tasks/{task_id}/BetaAPI keyCLI Auth

Obtener una tarea por uuid o por KEY-n

Identifica la tarea por uuid o por clave. Una tarea archivada sigue siendo legible para cualquiera que pueda ver su tablero; no hace falta include_archived en una lectura directa. El ETag lleva la versión de la tarea.

Parámetros de ruta

NombreTipoRequeridoDescripción
task_idstringRequeridoUn uuid de tarea o su clave, como ENG-142, incluida una clave retirada por el cambio de nombre de un tablero. La resolución se limita primero a tu organización, así que la clave de otra organización es un 404 idéntico al de una inexistente. Los ids numéricos nunca se aceptan.

Parámetros de consulta

NombreTipoRequeridoDescripción
includestringOpcionalTokens de inclusión separados por comas en el detalle de la tarea. Permitidos: children, relations, participants, attachments, comment_count, activity, comments. Cada colección incluida es la primera página del endpoint de lista correspondiente (activity corresponde a /tasks/{id}/activity/; comments corresponde a /tasks/{id}/comments/). Los tokens desconocidos devuelven 400 invalid_filter_value. Un valor vacío (?include=) se trata como sin inclusiones (200). Las inclusiones no cambian el ETag de la tarea (solo depende de la versión).

Encabezados

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

Respuesta

NombreTipoRequeridoDescripción
(body)TaskRequeridoUn objeto Task.

Errores

EstadoCuándo
304Sin cambios: el ETag que enviaste en `If-None-Match` sigue coincidiendo.
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/tasks/ENG-142/?include=relations,participants" \
  -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/tasks/{task_id}/BetaAPI keyCLI Auth

Actualizar una tarea

Envía If-Match con la versión que cargaste para detectar una actualización perdida. Sin él, la escritura es de tipo "la última gana" y aun así devuelve la nueva versión. Los campos desconocidos en el cuerpo devuelven 400 (nunca un 200 silencioso). is_archived no se acepta en PATCH: usa POST …/archive/ o POST …/restore/.

Parámetros de ruta

NombreTipoRequeridoDescripción
task_idstringRequeridoUn uuid de tarea o su clave, como ENG-142, incluida una clave retirada por el cambio de nombre de un tablero. La resolución se limita primero a tu organización, así que la clave de otra organización es un 404 idéntico al de una inexistente. Los ids numéricos nunca se aceptan.

Encabezados

NombreTipoRequeridoDescripción
If-MatchstringOpcionalLa version que cargaste, como validador entre comillas (o envíala en el campo version del cuerpo). Un valor desactualizado es 409 version_conflict con extra.current_version; enviar ambos con valores distintos es 400 version_precondition_ambiguous. Si se omite, la última escritura gana.
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
boarduuidOpcionalEl tablero.
milestoneuuid | nullOpcionalEl hito al que cuenta esta tarea.
titlestringOpcionalEl título de la tarea. Máx. 255 caracteres.
descriptionstring | nullOpcionalDescripción libre. Máx. 50000 caracteres.
priorityintegerOpcional1 urgente, 2 alta, 3 media, 4 baja, 5 ninguna. De 1 a 5.
estimateinteger | nullOpcionalEstimación en la escala del tablero.
ownerstring | nullOpcionalEl uuid de usuario del responsable. La persona ya debe poder ver el tablero (de lo contrario, 400 participant_cannot_access_board).
start_datedate | nullOpcionalFecha de inicio planificada.
due_datedate | nullOpcionalFecha de vencimiento.
parent_taskuuid | nullOpcionalLa tarea padre, para una subtarea. Solo un nivel de anidación.
label_uuidsarrayOpcionaluuids de las etiquetas que se asignan a la tarea. Elementos: uuid.
afteruuid | nullOpcionalColoca el pin justo debajo de este pin.
beforeuuid | nullOpcionalColoca el pin justo encima de este pin.
versionintegerOpcionalLa versión que cargaste. Un valor desactualizado devuelve 409 version_conflict.
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)TaskRequeridoUn objeto Task.

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.
409La tarea cambió desde que la cargaste (`version_conflict`); `extra.current_version` contiene la nueva versión.
curl -sS -X PATCH "https://api.dailybot.com/v1/plan/tasks/ENG-142/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY" \
  -H 'If-Match: "7"' \
  -H "Content-Type: application/json" \
  -d '{
    "owner": "00000000-0000-4000-8000-00000000000c",
    "due_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/tasks/{task_id}/BetaAPI keyCLI Auth

Archivar una tarea (alias con DELETE)

DELETE es un alias de archivar: la tarea y sus subtareas se archivan (204). Las tareas ya archivadas devuelven 204 de forma idempotente. Prefiere POST …/archive/ cuando necesites que se devuelva el cuerpo archivado. La concurrencia (If-Match) no se aplica en este alias; usa PATCH para actualizaciones con versión antes de archivar si hace falta.

Parámetros de ruta

NombreTipoRequeridoDescripción
task_idstringRequeridoUn uuid de tarea o su clave, como ENG-142, incluida una clave retirada por el cambio de nombre de un tablero. La resolución se limita primero a tu organización, así que la clave de otra organización es un 404 idéntico al de una inexistente. Los ids numéricos nunca se aceptan.

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/tasks/ENG-142/" \
  -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.
GET/v1/plan/tasks/{task_id}/children/BetaAPI keyCLI AuthPaginación por número de página

Listar las subtareas directas de una tarea

Tarjetas de tareas paginadas (misma forma que la lista de tareas o la instantánea del tablero). El orden por defecto es created_at (el rango tiene alcance de columna, así que las subtareas en estados distintos no se ordenan entre sí). Pasa ?sort=rank o ?ordering=rank cuando todas las subtareas comparten una columna. Los valores de orden no admitidos son 400 invalid_sort (nunca se ignoran en silencio). Para arrastrar entre hermanas se usa POST …/move/ con after / before. Solo un nivel de anidación: las subtareas de subtareas se rechazan al escribir con subtask_depth_exceeded.

Parámetros de ruta

NombreTipoRequeridoDescripción
task_idstringRequeridoUn uuid de tarea o su clave, como ENG-142, incluida una clave retirada por el cambio de nombre de un tablero. La resolución se limita primero a tu organización, así que la clave de otra organización es un 404 idéntico al de una inexistente. Los ids numéricos nunca se aceptan.

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.
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.
orderingstringOpcionalAlias web de sort en la lista de subtareas. Misma lista permitida y misma semántica de rechazo: los valores no admitidos son 400 invalid_sort, nunca se ignoran en silencio. No envíes ambos parámetros con valores en conflicto.

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
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/tasks/ENG-142/children/" \
  -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/tasks/{task_id}/archive/BetaAPI keyCLI Auth

Archivar una tarea y sus subtareas

Archivar deja en null el rank de la tarea, así que sale de todo orden del tablero sin salir de la tabla. Las relaciones y los participantes se conservan.

Parámetros de ruta

NombreTipoRequeridoDescripción
task_idstringRequeridoUn uuid de tarea o su clave, como ENG-142, incluida una clave retirada por el cambio de nombre de un tablero. La resolución se limita primero a tu organización, así que la clave de otra organización es un 404 idéntico al de una inexistente. Los ids numéricos nunca se aceptan.

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)Task | DryRunPreviewRequeridoUn objeto Task. 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].
404No existe o no es visible para ti. Ambos casos devuelven el mismo cuerpo.
409Conflicto. El `code` de la respuesta indica cuál (por ejemplo, `version_conflict`).
curl -sS -X POST "https://api.dailybot.com/v1/plan/tasks/ENG-142/archive/" \
  -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/tasks/{task_id}/duplicate/BetaAPI keyCLI Auth

Duplicar una tarea en el mismo tablero

Crea una tarea nueva en la misma columna. El include predeterminado copia title, description y labels. Emite task.created.

Parámetros de ruta

NombreTipoRequeridoDescripción
task_idstringRequeridoUn uuid de tarea o su clave, como ENG-142, incluida una clave retirada por el cambio de nombre de un tablero. La resolución se limita primero a tu organización, así que la clave de otra organización es un 404 idéntico al de una inexistente. Los ids numéricos nunca se aceptan.

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
includearrayOpcionalQué copiar. Predeterminado: title, description, labels. Elementos: enum title|description|labels|priority|estimate|owner|start_date|due_date.
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)TaskRequeridoUn objeto Task.

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 tarea está archivada (`task_delete_forbidden`): restáurala antes de duplicarla.
404No existe o no es visible para ti. Ambos casos devuelven el mismo cuerpo.
curl -sS -X POST "https://api.dailybot.com/v1/plan/tasks/ENG-142/duplicate/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "include": [
      "title",
      "description",
      "labels"
    ]
  }'

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/tasks/{task_id}/move-board/BetaAPI keyCLI Auth

Mover una tarea a otro tablero

El cuerpo requiere board (uuid del tablero destino). Resolución de la columna destino: state explícito, o state_map de uuid de columna de origen → uuid de columna destino, o la misma category en el tablero destino. Emite task.moved (con from_board_uuid al cambiar de tablero). Las correspondencias inválidas devuelven 400 move_board_state_invalid.

Parámetros de ruta

NombreTipoRequeridoDescripción
task_idstringRequeridoUn uuid de tarea o su clave, como ENG-142, incluida una clave retirada por el cambio de nombre de un tablero. La resolución se limita primero a tu organización, así que la clave de otra organización es un 404 idéntico al de una inexistente. Los ids numéricos nunca se aceptan.

Encabezados

NombreTipoRequeridoDescripción
If-MatchstringOpcionalLa version que cargaste, como validador entre comillas (o envíala en el campo version del cuerpo). Un valor desactualizado es 409 version_conflict con extra.current_version; enviar ambos con valores distintos es 400 version_precondition_ambiguous. Si se omite, la última escritura gana.
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
boarduuidRequeridoEl tablero.
stateuuidOpcionalEl estado de la tarea (su columna).
state_mapobjectOpcionaluuid de la columna de origen → uuid de la columna de destino.
versionintegerOpcionalLa versión que cargaste. Un valor desactualizado devuelve 409 version_conflict.
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)TaskRequeridoUn objeto Task.

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.
409La tarea cambió desde que la cargaste (`version_conflict`).
curl -sS -X POST "https://api.dailybot.com/v1/plan/tasks/ENG-142/move-board/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "board": "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.
  • 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/tasks/{task_id}/move/BetaAPI keyCLI Auth

Mover una tarea a un estado y una posición relativa

La única forma de cambiar el estado de una tarea. La posición es un vecino, no un número, así que si dos personas arrastran la misma tarjeta a la vez, ambas producen un orden válido. Como máximo se puede indicar uno de after / before; si ambos son null, se agrega al final de la columna. Una escritura, un evento task.moved. Envía If-Match (o version) para rechazar un movimiento desactualizado.

Parámetros de ruta

NombreTipoRequeridoDescripción
task_idstringRequeridoUn uuid de tarea o su clave, como ENG-142, incluida una clave retirada por el cambio de nombre de un tablero. La resolución se limita primero a tu organización, así que la clave de otra organización es un 404 idéntico al de una inexistente. Los ids numéricos nunca se aceptan.

Encabezados

NombreTipoRequeridoDescripción
If-MatchstringOpcionalLa version que cargaste, como validador entre comillas (o envíala en el campo version del cuerpo). Un valor desactualizado es 409 version_conflict con extra.current_version; enviar ambos con valores distintos es 400 version_precondition_ambiguous. Si se omite, la última escritura gana.
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
stateuuidRequeridoEl estado de la tarea (su columna).
boarduuid | nullOpcionalEl tablero.
afteruuid | nullOpcionalColoca el pin justo debajo de este pin.
beforeuuid | nullOpcionalColoca el pin justo encima 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)TaskRequeridoUn objeto Task.

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.
409La tarea cambió desde que la cargaste (`version_conflict`), o un vecino indicado se movió (`rank_neighbor_missing`). La respuesta indica el primer y el último elemento actuales de la columna para que puedas reintentar.
422No se pudo aplicar la solicitud (`column_too_large`).
curl -sS -X POST "https://api.dailybot.com/v1/plan/tasks/ENG-142/move/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "state": "00000000-0000-4000-8000-000000000004",
    "after": null,
    "before": null
  }'

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/tasks/{task_id}/relations/BetaAPI keyCLI AuthPaginación por número de página

Las relaciones de una tarea, en ambas direcciones

blocked_by no se almacena: es la lectura inversa de blocks, así que hay exactamente una fila por hecho y las dos direcciones no pueden contradecirse. El campo direction indica de qué lado estás.

Parámetros de ruta

NombreTipoRequeridoDescripción
task_idstringRequeridoUn uuid de tarea o su clave, como ENG-142, incluida una clave retirada por el cambio de nombre de un tablero. La resolución se limita primero a tu organización, así que la clave de otra organización es un 404 idéntico al de una inexistente. Los ids numéricos nunca se aceptan.

Objeto TaskRelation

NombreTipoRequeridoDescripción
uuiduuidRequeridoIdentificador público estable.
relation_typeenumRequeridoblocks, relates_to o duplicates. Pueden agregarse tipos nuevos: ignora los que no reconozcas. Uno de blocks, relates_to, duplicates.
directionenum | nullRequeridooutgoing cuando esta tarea es el origen, incoming cuando es el destino. Uno de outgoing, incoming.
other_taskobjectRequeridoLa tarea del otro lado. Forma: {uuid, key, title, state_category}.
created_atdate-timeOpcionalCuá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<TaskRelation>RequeridoLas filas de esta página. Ver TaskRelation.

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/tasks/ENG-142/relations/" \
  -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/tasks/{task_id}/relations/BetaAPI keyCLI Auth

Vincular dos tareas

Vincula esta tarea con otra. Envía relation_type (blocks, relates_to o duplicates) y target_task, un uuid de tarea o una clave como ENG-142; una tarea que no puedes ver es 404. kind y target son alias obsoletos de esos dos campos: enviar un alias y su campo con valores distintos es 400. Un vínculo que ya existe o que crearía un ciclo es 409.

Parámetros de ruta

NombreTipoRequeridoDescripción
task_idstringRequeridoUn uuid de tarea o su clave, como ENG-142, incluida una clave retirada por el cambio de nombre de un tablero. La resolución se limita primero a tu organización, así que la clave de otra organización es un 404 idéntico al de una inexistente. Los ids numéricos nunca se aceptan.

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
relation_typeenumRequeridoblocks, relates_to o duplicates. Se pueden agregar tipos nuevos: ignora los que no reconozcas. Obligatorio, o su alias obsoleto kind. Uno de blocks, relates_to, duplicates.
target_taskstringRequeridoLa otra tarea: su uuid o una clave como ENG-142. Una tarea que no puedes ver es 404. Obligatorio, o su alias obsoleto target.
kindenumOpcionalAlias obsoleto de relation_type, que se conserva para clientes antiguos. Envía relation_type en su lugar; ambos con valores distintos es 400. Uno de blocks, relates_to, duplicates.
targetstringOpcionalAlias obsoleto de target_task, que se conserva para clientes antiguos. Envía target_task en su lugar; ambos con valores distintos es 400.
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)TaskRelationRequeridoUn objeto TaskRelation.

Errores

EstadoCuándo
400Falta el tipo o el destino, un alias no coincide con su campo o hay un valor invá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].
404No existe o no es visible para ti. Ambos casos devuelven el mismo cuerpo.
409El vínculo ya existe (`relation_exists`) o crearía un ciclo (`relation_cycle`).
curl -sS -X POST "https://api.dailybot.com/v1/plan/tasks/ENG-142/relations/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "relation_type": "blocks",
    "target_task": "ENG-150"
  }'

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/tasks/{task_id}/relations/{relation_id}/BetaAPI keyCLI Auth

Desvincular dos tareas

Emite task.unrelated en el flujo de eventos de la tarea (no relation_removed). El enriquecimiento de actividad lo traduce a changes[{field: related, from: …, to: null}].

Parámetros de ruta

NombreTipoRequeridoDescripción
task_idstringRequeridoUn uuid de tarea o su clave, como ENG-142, incluida una clave retirada por el cambio de nombre de un tablero. La resolución se limita primero a tu organización, así que la clave de otra organización es un 404 idéntico al de una inexistente. Los ids numéricos nunca se aceptan.
relation_idstringRequeridoEl uuid de la relació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].
404No existe o no es visible para ti. Ambos casos devuelven el mismo cuerpo.
curl -sS -X DELETE "https://api.dailybot.com/v1/plan/tasks/ENG-142/relations/00000000-0000-4000-8000-00000000000a/" \
  -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/tasks/{task_id}/labels/batch/BetaAPI keyCLI Auth

Agregar, quitar o reemplazar las etiquetas de una tarea

Las etiquetas son la taxonomía de toda la organización, compartida con formularios y check-ins; no hay un vocabulario de etiquetas exclusivo de tareas. Como máximo 50 etiquetas por tarea.

Parámetros de ruta

NombreTipoRequeridoDescripción
task_idstringRequeridoUn uuid de tarea o su clave, como ENG-142, incluida una clave retirada por el cambio de nombre de un tablero. La resolución se limita primero a tu organización, así que la clave de otra organización es un 404 idéntico al de una inexistente. Los ids numéricos nunca se aceptan.

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
modeenumRequeridoadd, remove o replace. Uno de add, remove, replace.
label_uuidsarrayRequeridouuids de las etiquetas que se asignan a la tarea. Elementos: uuid.
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
labelsarray<Label>RequeridoEtiquetas de la organización en la tarea.

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.
429Llegaste al límite de solicitudes. Espera los segundos que indica `Retry-After`.
curl -sS -X POST "https://api.dailybot.com/v1/plan/tasks/ENG-142/labels/batch/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "mode": "add",
    "label_uuids": [
      "00000000-0000-4000-8000-00000000000b"
    ]
  }'

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/tasks/{task_id}/subscription/BetaCLI Auth

Suscribirse a las notificaciones de la tarea (rol de observador)

La única forma de definir el campo subscribed de la tarea (enviar subscribed en un PATCH de tarea es 400). Devuelve {"subscribed": true}, así que no hace falta volver a leer.

Parámetros de ruta

NombreTipoRequeridoDescripción
task_idstringRequeridoUn uuid de tarea o su clave, como ENG-142, incluida una clave retirada por el cambio de nombre de un tablero. La resolución se limita primero a tu organización, así que la clave de otra organización es un 404 idéntico al de una inexistente. Los ids numéricos nunca se aceptan.

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
subscribedbooleanRequeridoSi observas esta tarea.

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 POST "https://api.dailybot.com/v1/plan/tasks/ENG-142/subscription/" \
  -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/tasks/{task_id}/subscription/BetaCLI Auth

Quitar una suscripción de observador

Elimina la suscripción de observador de quien llama. Devuelve 204 (cuerpo vacío). Vuelve a hacer GET de la tarea para ver subscribed: false, o actualiza el estado del cliente localmente.

Parámetros de ruta

NombreTipoRequeridoDescripción
task_idstringRequeridoUn uuid de tarea o su clave, como ENG-142, incluida una clave retirada por el cambio de nombre de un tablero. La resolución se limita primero a tu organización, así que la clave de otra organización es un 404 idéntico al de una inexistente. Los ids numéricos nunca se aceptan.

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/tasks/ENG-142/subscription/" \
  -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/tasks/{task_id}/restore/BetaAPI keyCLI Auth

Restaurar una tarea archivada

El reflejo de archivar: mismo scope, mismas credenciales, misma idempotencia. La tarea vuelve al final de su columna, porque sus vecinos anteriores ya no están. Restaurar una tarea activa es un 200 sin efecto.

Parámetros de ruta

NombreTipoRequeridoDescripción
task_idstringRequeridoUn uuid de tarea o su clave, como ENG-142, incluida una clave retirada por el cambio de nombre de un tablero. La resolución se limita primero a tu organización, así que la clave de otra organización es un 404 idéntico al de una inexistente. Los ids numéricos nunca se aceptan.

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)TaskRequeridoUn objeto Task.

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.
409El tablero o el estado de la tarea se archivó mientras tanto (`state_in_use`). La respuesta indica el estado para que puedas elegir un destino.
curl -sS -X POST "https://api.dailybot.com/v1/plan/tasks/ENG-142/restore/" \
  -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.
GET/v1/plan/tasks/{task_id}/participants/BetaCLI AuthPaginación por número de página

Quién está en esta tarjeta

Participantes y observadores, los más antiguos primero: el orden en que se muestra la franja de personas de la tarjeta. Visible para cualquiera que pueda ver la tarea. Participar no otorga acceso: esta lista nunca amplía lo que sus miembros pueden ver.

Parámetros de ruta

NombreTipoRequeridoDescripción
task_idstringRequeridoUn uuid de tarea o su clave, como ENG-142, incluida una clave retirada por el cambio de nombre de un tablero. La resolución se limita primero a tu organización, así que la clave de otra organización es un 404 idéntico al de una inexistente. Los ids numéricos nunca se aceptan.

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 TaskParticipant

NombreTipoRequeridoDescripción
memberActorRefRequeridoLa persona. Ver ActorRef.
roleenumRequeridoRol del participante. Uno de participant, watcher.
sourceenumRequeridoCómo llegó la persona a la tarjeta. Uno de manual, creator, owner, commented, mentioned, sync.
is_mutedbooleanRequeridoPermanecer en la tarjeta sin notificaciones.
added_byActorRef | nullOpcionalQuién agregó a la persona. Ver ActorRef.
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<TaskParticipant>RequeridoLas filas de esta página. Ver TaskParticipant.

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/tasks/ENG-142/participants/" \
  -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/tasks/{task_id}/participants/BetaCLI Auth

Poner a alguien en esta tarjeta

Agrega un participante u observador. Agregar a alguien que ya está en la tarjeta devuelve 200 con la fila existente. Agregar o quitar un participante emite task.participant_added con actor_is_self, para distinguir "alguien me agregó" de "me uní". Un cambio de observador no emite nada: seguir una tarea es una preferencia privada. Silenciar (is_muted) mantiene a la persona en la tarjeta.

Parámetros de ruta

NombreTipoRequeridoDescripción
task_idstringRequeridoUn uuid de tarea o su clave, como ENG-142, incluida una clave retirada por el cambio de nombre de un tablero. La resolución se limita primero a tu organización, así que la clave de otra organización es un 404 idéntico al de una inexistente. Los ids numéricos nunca se aceptan.

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
user_uuiduuidRequeridoEl uuid de usuario de la persona.
roleenumOpcionalRol del participante. Uno de participant, watcher. Valor por defecto participant.
is_mutedbooleanOpcionalPermanecer en la tarjeta sin notificaciones. Valor por defecto false.
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)TaskParticipantRequeridoUn objeto TaskParticipant.

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/tasks/ENG-142/participants/" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "user_uuid": "00000000-0000-4000-8000-00000000000c",
    "role": "participant"
  }'

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/tasks/{task_id}/participants/{user_uuid}/BetaCLI Auth

Quitar a alguien de esta tarjeta

Quita a la persona de la tarjeta y emite task.participant_removed. Salir no es silenciar: para dejar de recibir notificaciones sin salir de la tarjeta, define is_muted mediante el endpoint de agregar.

Parámetros de ruta

NombreTipoRequeridoDescripción
task_idstringRequeridoUn uuid de tarea o su clave, como ENG-142, incluida una clave retirada por el cambio de nombre de un tablero. La resolución se limita primero a tu organización, así que la clave de otra organización es un 404 idéntico al de una inexistente. Los ids numéricos nunca se aceptan.
user_uuidstringRequeridoEl uuid de usuario del participante.

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/tasks/ENG-142/participants/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: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/tasks/{task_id}/attachments/{attachment_id}/BetaAPI keyCLI Auth

Renombrar un adjunto de la tarea

Cambia el nombre visible del archivo; los bytes guardados no cambian. Cualquiera que pueda escribir en el elemento padre puede renombrar sus adjuntos.

Parámetros de ruta

NombreTipoRequeridoDescripción
task_idstringRequeridoUn uuid de tarea o su clave, como ENG-142, incluida una clave retirada por el cambio de nombre de un tablero. La resolución se limita primero a tu organización, así que la clave de otra organización es un 404 idéntico al de una inexistente. Los ids numéricos nunca se aceptan.
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 puedes escribir aquí (`insufficient_scope`), o eres invitado (`guest_not_allowed`).
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/tasks/ENG-142/attachments/00000000-0000-4000-8000-000000000009/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY" \
  -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: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 · Tareas. 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.