bearerAuthorizationBearer <token>An operator key or the configured token.
id*stringapplication/json- body
text*stringWhat to say to the agent.
1 <= lengthsessionKey?stringWhich conversation this belongs to. Defaults to api:default.
1 <= lengthrole?stringA 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.
1 <= lengthruntimeNote?stringYour 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.
1 <= length <= 8000images?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?booleanStream the turn's events inline as SSE rather than returning a handle.
chunks?booleanInclude per-token model.chunk frames. Off by default — the reader decides.
children?booleanInclude the events of subagents this turn runs (they carry parentTurnId). Off by default.
accepted
curl -X POST 'http://localhost:7420/v1/agents/string/messages' \ -H 'Content-Type: application/json' \ -d '{ "text": "string"}'