Invoke an agent

View as Markdown
Runs an agent on an instruction — the prompt-shaped door. Give it `input` in plain words and, optionally, `files`; the agent plans and executes from there. This is the same runtime as `POST /v1/agent-runs`, minus the requirement to lead with files. **Sync by default.** `?wait=<seconds>` (default 60, max 120) holds the request; a run that outlives the window answers `202` with a `statusUrl` to poll. Steering, approvals, tasks, timeline and result all use the existing `/v1/agent-runs/{id}` surface. **Learn more:** [Agents guide](https://docs.cloudraker.com/capabilities/agents)

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Path parameters

idstringRequired

Query parameters

waitintegerOptional0-120Defaults to 60

How many seconds to hold the request open. Releases early the moment the run finishes or blocks on a person. Maximum 120; 0 returns immediately.

Request

This endpoint expects an object.
inputstringRequired1-4000 characters

What you want done, in plain words. Frozen into the run — a later instruction is a steer, not a rewrite.

fileslist of objectsOptional

Files the agent works on. Omit entirely for a prompt-only run.

metadatamap from strings to anyOptional

Arbitrary JSON you attach to the run and get back on every read of it.

Use it to carry your own identifiers — an order number, a customer id — so a webhook or a polled run reconciles without a lookup table. Capped at 10 KB serialized.

webhookobjectOptional

Where to deliver this run’s events, given one of two ways.

  • { "url": "…" } — a one-off https endpoint for this run only.
  • { "id": "whe_…" } — a saved endpoint from POST /v1/webhooks. Runs hold the reference, so pausing or re-pointing that endpoint applies to this run too.

Deliveries are at-least-once and signed — dedupe on eventId and verify against GET /v1/webhooks/jwks.json.

Response headers

idempotent-replaystringOptional

true when this response replays an earlier request.

Response

The run finished (or blocked on a person) inside the wait window.

object"agent_run"
idstring
agentobject
inputobject
statusenum

Where the agent run is in its life.

StatusMeaning
queuedAccepted; its files are still being prepared
processingThe agent is working
waitingBlocked on a person — see waiting, approvals and tasks[]
pausedStopped short of finishing and resumable; not a failure
completedFinished; result and output are populated
failedFinished without producing a result
cancelledStopped on request
expiredReached its expiresAt without finishing

completed, failed, cancelled and expired are terminal. A completed run that still had outstanding work also carries incomplete: true.

progressobject
taskslist of objects
statusUrlstring
createdAtstring
expiresAtstring or null

The run’s deadline: about seven days after it starts, an unfinished run parks itself for good and its status becomes expired. null once the run is finished. Files and anything the run already filed are never taken back.

finishedAtstring or null
waitingobjectOptional

What is blocking the run. Present while status is waiting.

pausedobjectOptional

Why the run parked. Present while status is paused. A paused run keeps everything it produced and can be started again.

approvalslist of objectsOptional

Sign-offs the run is waiting on, oldest first.

incompletebooleanOptional

Present and true on a completed run that still had outstanding work — read tasks[] to see what.

resultstringOptional
The agent's closing summary.
outputobjectOptional
Files attached to the run while its steps were completed, each with a signed download link valid for about an hour.
errorobjectOptional

Why the run failed. Present whenever status is failed.

metadatamap from strings to anyOptional

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
422
Unprocessable Entity Error
429
Too Many Requests Error