Dispach
HTTP API
POST
/v1/agents/{id}/messages

Authorization

bearer
headerAuthorizationBearer <token>

An operator key or the configured token.

Path Parameters

id*string

Request Body

application/json
  1. body
text*string

What to say to the agent.

Length1 <= length
sessionKey?string

Which conversation this belongs to. Defaults to api:default.

Length1 <= length
role?string

A model role to run this turn on instead of main: one declared under model:, as a schedule names one with role:. This turn only; the conversation's other turns are unaffected. Refused before the turn starts when no such role is declared.

Length1 <= length
runtimeNote?string

Your application's note about this message: shown to the model in its own block before the text, labelled as not written by the person, for this turn only. Kept on the turn record (GET …/turns), never in history. Refused when from is an agent.

Length1 <= length <= 8000
images?array<>

Images sent with this message: PNG, JPEG, GIF or WebP, at most five, 3.75 MB each. A path inside the agent's directory, or inline base64 (within the 1 MB body limit). The model receives them on this turn; history keeps an [image: <path>] line.

deliver?|

Where the reply goes. "none" leaves it on the event stream and in the store.

from?

Attribution for a turn somebody other than the token-holder is sending. Omit for your own.

stream?boolean

Stream the turn's events inline as SSE rather than returning a handle.

chunks?boolean

Include per-token model.chunk frames. Off by default — the reader decides.

children?boolean

Include the events of subagents this turn runs (they carry parentTurnId). Off by default.

Response Body

accepted

Example Request
curl -X POST 'http://localhost:7420/v1/agents/string/messages' \  -H 'Content-Type: application/json' \  -d '{  "text": "string"}'
Example Response
Empty