Statuses
| Status | Meaning | Terminal? |
|---|---|---|
running | The agent is working. This includes startup before the first turn. | No — keep polling. |
finished | The agent is idle. When it ended its turn normally, the output for the last input is complete. | Terminal for your request; read the transcript. The agent can run again if it receives more input in the app. |
technical_error | The run hit an internal error. The transcript may be partial. | Yes — create a new run. |
terminated | The run was stopped or deleted. | Yes. |
Polling guidance
Poll every 3 to 10 seconds. Runs commonly take several minutes, so expect to poll for a while. Add jitter if you run many polls at once. This API doesn’t provide webhooks; to detect completion, pollGET /v1/agents/{agent_id}. If it returns 502 or 503, back off exponentially and keep polling. For details, see Errors and retries.
What the transcript contains
The transcript includes only the inputs the agent accepted (input_to_agent) and each turn’s final output (output_from_agent), ordered oldest first. It doesn’t include intermediate tool calls, reasoning, or files the agent produced. An empty transcript early in a run is normal, and the transcript can trail loop_status by a few seconds — if a run just turned finished and the transcript looks incomplete, read it again shortly after.
A finished run can run again. The status means the agent is idle at the end of a turn. A user in the Clicks app can give the same agent more input, which sets it back to
running. The API has no endpoint for sending more input, so for API callers finished is effectively terminal.