Send a follow-up turn to a terminal run
Sends the next user message into a terminal run’s conversation — the API twin of typing another message in the Erstan chat UI. Always poll the runId returned by this call: a completed chat-lane run of an interactive agent usually continues under the same runId with full conversation context, while failed/cancelled chat runs fork a fresh execution on the same thread, and agents that use post-run continuation (non-interactive agents and graphs with dedicated human-input nodes) fork the conversational post-run shell — including follow-up questions about completed structured runs. Only the same API key that started the run may continue it. Waiting runs keep their exact interaction contract (/reply, /approval); a run that is still executing returns run_still_active, and Builder Preview tests and structured runs of interactive agents return run_not_continuable.
Authorizations
Workspace API key created in Erstan Settings. Keys carry scopes (agents:list, agents:read, agents:write, agents:run, runs:read, tasks:execute, documents:read, documents:write, files:read, files:write). Agent access follows the key creator's current workspace, team, and agent permissions. Agent draft creation requires agents:write; update, validation, and publishing require both agents:read and agents:write; draft testing also requires agents:run. Keys with tasks:execute must include at least one allowed project or team (allowedProjectIds / allowedTeamIds); keys with document or file scopes must include at least one allowed team. Empty allowlists mean no access — the API fails closed.
Path Parameters
Terminal run ID returned by POST /v1/public/agents/{agentId}/runs or a previous continue call.
Body
Request body for sending a follow-up conversation turn to a terminal run.
Next user message for the conversation.
1 - 20000Optional attachments supplied with this turn. Each item needs name, type, and either base64 or storageKey.
- Option 1
- Option 2
Reuse to prevent duplicate turns on retries of the same follow-up.
200Response
Existing accepted turn returned for a matching idempotency key.