sessions module route (requires sessions:run:write)
const url = 'https://example.com/v1/m/sessions/runs/example/input';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"attachments":["example"],"line":"example","message":{},"text":"example","work_lease_fence":1}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/v1/m/sessions/runs/example/input \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "attachments": [ "example" ], "line": "example", "message": {}, "text": "example", "work_lease_fence": 1 }'Sends one input line or message to a live session run.
Authorizations
Section titled “ Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “ Path Parameters ”Path parameter ref.
Header Parameters
Section titled “ Header Parameters ”Target tenant id; required when the principal can act in more than one tenant.
Request Body required
Section titled “ Request Body required ”One run input. line/message are RAW frames for a Claude stream-json child; text is a turn for a session driven by an owned provider protocol, which refuses a raw frame. Send one form, never both. Omit work_lease_fence for legacy non-work runs; a positive value selects fenced WorkItem control and is accepted with either form, so a work-bound driver run is spoken to through the same fence as its other controls.
object
Ids of images stored with this session (POST /runs/{ref}/attachments), sent with text as one message. The engine encodes the message for the session’s tool; a tool that takes no images refuses it. Not accepted with line, message or work_lease_fence.
object
Example generated
{ "attachments": [ "example" ], "line": "example", "message": {}, "text": "example", "work_lease_fence": 1}Responses
Section titled “ Responses ”The input was accepted for the owned child; delivery is not confirmed by this response
object
Always true; a non-2xx status is the only way this operation reports refusal.
Example generated
{ "accepted": true}Bad request
object
Example generated
{}Unauthenticated
object
Example generated
{}Forbidden
object
Example generated
{}Not found
object
Example generated
{}Conflict / setup required
object
Example generated
{}Rate limited
object
Example generated
{}The outcome is UNKNOWN: required authority, evidence or store could not be observed, and any external effect may or may not have crossed
object
The durable outcome name, e.g. work_input_ambiguous or evidence_unavailable.
object
Present when the refusal names the field or evidence it could not resolve.
The uncertain verdict: the outcome could not be observed.
Example
{ "verdict": "NO_HE_PODIDO_MIRAR"}