Inicia ejecuciones, síguelas y lee sus resultados. Todos los endpoints de esta página funcionan con claves de miembro y de administrador. Consulta ejecuciones para conocer el ciclo de vida y los límites.
Iniciar una ejecución
/v1/runsprompt o el nombre de un workflow guardado.promptstringworkflow; con un flujo de trabajo, reemplaza al prompt guardado. Hasta 128 KiB.inputany JSONworkflowstringmodelstringdefault_model de GET /v1/models.filesarray{"file": "<id or name>", "path": "..."} o {"path": "...", "content": "..."}. Consulta archivos.connectionsobject{"ref": "<saved name>"} con allowed_methods o allowed_tools opcionales, o una definición en línea. Consulta conexiones.descriptionstringinput_schemaobjectinput; si no coincide, se devuelve 400 con la ruta y el motivo, por ejemplo input.city: required. Con un flujo de trabajo, reemplaza el esquema guardado. Consulta describir la entrada y la salida.output_schemaobjectfailed. Con un flujo de trabajo, reemplaza el esquema guardado. Consulta describir la entrada y la salida.timeout_secondsintegershellbooleantrue.webboolean | objecttrue, o { "allow": [domains], "search": false } para limitarlo. Desactivado por defecto. Consulta acceso web.zero_data_retentionbooleanfalse.max_cost_microsintegerdefault_max_cost_micros de GET /v1/me. En el servicio alojado debe cubrir el cargo de cómputo del tiempo límite completo. Consulta presupuestos.callbackobject{"url": "...", "secret": "..."} para recibir una solicitud firmada cuando termine la ejecución. Consulta callbacks.Idempotency-Keystring200.curl $EPHEMERAL_URL/v1/runs \
-H "Authorization: Bearer $EPHEMERAL_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 7d0f3c1e-6a52-4b8e-9f21-0c4d5e6a7b89" \
-d '{
"workflow": "investigate-payment",
"input": { "payment_id": "pay_123" },
"max_cost_micros": 500000
}'La respuesta es 202 Accepted con el nuevo objeto de ejecución. Una solicitud que no pasa la validación devuelve 400 y no crea nada. En el servicio alojado, 402 significa que tus créditos disponibles no cubren el presupuesto.
El objeto de ejecución
idstringrun_4abb0f420c6623a12d2889610eb67284.statusstringreserving, queued, starting, running, succeeded, failed, cancelled, timed_out o interrupted.outputstringerrorstringcreated_attimestampstarted_attimestampfinished_attimestampmax_cost_microsintegercost_microsintegerbilling_pending sea false en una ejecución terminada. Se omite cuando es cero.billing_pendingbooleanschedule_idstringzero_data_retentionbooleantrue en una ejecución con retención cero de datos.surcharge_percentintegersurcharge_microsintegercost_micros que añade el recargo de retención cero de datos. Se omite si es cero.output_availablebooleanoutput_expires_attimestamp{
"id": "run_4abb0f420c6623a12d2889610eb67284",
"status": "succeeded",
"output": "The card issuer declined pay_123 for insufficient funds. The processor had no incidents. Ask the customer to retry or use another card.",
"created_at": "2026-10-03T09:14:05.118Z",
"started_at": "2026-10-03T09:14:05.402Z",
"finished_at": "2026-10-03T09:14:41.877Z",
"max_cost_micros": 500000,
"cost_micros": 14390,
"billing_pending": false
}Listar ejecuciones
/v1/runslimitintegercursorstringnext_cursor de la página anterior.statusstringschedulestring{
"items": [
{ "id": "run_91c0…", "status": "failed", "error": "Worker failed; inspect run events. External actions may have completed.", "created_at": "2026-10-03T08:51:12.004Z", "max_cost_micros": 500000, "cost_micros": 61200, "billing_pending": false },
{ "id": "run_3fd2…", "status": "failed", "error": "Credit reservation failed", "created_at": "2026-10-02T17:20:44.390Z", "max_cost_micros": 500000, "billing_pending": false }
],
"next_cursor": "eyJvIjoib3JnXzVlMmIi…"
}Sin limit ni cursor, la respuesta es un array simple con las 100 ejecuciones coincidentes más recientes. Consulta paginación.
Obtener una ejecución
/v1/runs/{id}Transmitir eventos
/v1/runs/{id}/eventsdone con el objeto de ejecución y se cierra.Last-Event-IDinteger: connected
id: 88412
event: status
data: {"id":88412,"type":"status","data":{"status":"running"},"created_at":"2026-10-03T09:14:05.431Z"}
id: 88415
event: worker_started
data: {"id":88415,"type":"worker_started","data":{"runtime":"pi","mode":"pi","shell":false},"created_at":"2026-10-03T09:14:07.906Z"}
id: 88419
event: tool_start
data: {"id":88419,"type":"tool_start","data":{"tool":"http_0","id":"call_1","arguments":{"method":"GET","path":"/payments/pay_123"}},"created_at":"2026-10-03T09:14:10.215Z"}
id: 88431
event: result
data: {"id":88431,"type":"result","data":{"output":"The card issuer declined pay_123 for insufficient funds."},"created_at":"2026-10-03T09:14:41.702Z"}
event: done
data: {"id":"run_4abb0f420c6623a12d2889610eb67284","status":"succeeded", …}El data de cada mensaje es un objeto de evento con id, type, data y created_at, salvo done, que lleva el objeto de ejecución. Las líneas que empiezan por dos puntos son comentarios; se envía un comentario de latido cada 15 segundos. Los tipos de evento se listan en tipos de evento. Desconectarse no cancela la ejecución.
curl -N $EPHEMERAL_URL/v1/runs/run_4abb0f420c6623a12d2889610eb67284/events \
-H "Authorization: Bearer $EPHEMERAL_API_KEY"Cancelar una ejecución
/v1/runs/{id}/cancelreserving, queued, starting o running y devuelve el objeto de ejecución. Una ejecución que ya ha terminado se devuelve sin cambios.Leer la definición de una ejecución
/v1/runs/{id}/definition{
"request": {
"prompt": "Find out why this payment failed. Follow the playbook.",
"model": "anthropic/claude-haiku-5.5",
"files": [{ "file": "file_9c41d2a07be35f1e8a6c0d4b9e2f7a13", "path": "playbook.md" }],
"connections": {
"payments": { "ref": "payments-api", "allowed_methods": ["GET"] },
"crm": { "type": "http", "url": "https://api.example.com", "allowed_methods": ["GET"] }
},
"timeout_seconds": 120,
"shell": false,
"max_cost_micros": 500000,
"input": { "payment_id": "pay_123" }
},
"requires_credentials": ["crm"]
}request es la definición resuelta. Los nombres de archivo se sustituyen por los IDs que se usaron, y se rellenan los campos guardados de un flujo de trabajo. El nombre del flujo de trabajo y el callback se omiten. Las conexiones guardadas conservan solo su referencia y sus listas de permitidos. Las conexiones en línea pierden sus credenciales y cualquier secreto de su URL.
requires_credentials lista las conexiones en línea que necesitan que se restauren las credenciales o su URL original. Para ejecutarla de nuevo, vuelve a añadirlas, elige un nuevo max_cost_micros y envía la solicitud a POST /v1/runs. Las referencias a conexiones guardadas se resuelven de nuevo en ese momento, y la solicitud falla si se ha eliminado un archivo o una conexión a los que hace referencia.
Ejecuciones con retención cero de datos
Una ejecución con zero_data_retention devuelve su salida una vez. El primer GET /v1/runs/{id} tras terminar incluye output y la elimina; las lecturas posteriores la omiten e informan output_available: false. Si la ejecución tiene un callback, este entrega la salida y GET la deja en su sitio hasta entonces. Una salida no entregada se elimina como máximo después de una hora.
El flujo de eventos funciona mientras la ejecución trabaja y unos minutos después. GET /v1/runs/{id}/definition devuelve 410 y las listas de ejecuciones nunca incluyen la salida. En el servicio alojado, cost_micros incluye el recargo y el presupuesto debe cubrirlo.