ScenebrewDevelopers
API referenceSessions

Send Session Message

POST
/v1/sessions/{session_id}/messages

Post a message in the key's user's name and run one agent turn on it, as an Operation (202 + Location). The agent answers as it would in the app — reading the session's context, running tools, writing artifacts to the scenes it touches — and the turn is billed like a web turn. One turn at a time per session (409 turn_in_progress). Prefer: wait=N holds the response; result.reply then carries the answer. Requires the write scope.

AuthorizationBearer <token>

First-party API key (sbk_live_…), presented as a Bearer token.

In: header

Path Parameters

session_id*Session Id
Formatuuid

Header Parameters

Idempotency-Key?|

Optional. Repeating a request with the same key returns what it already created (200) instead of running it again.

Prefer?|

RFC 7240. wait=N (N ≤ 60) holds the response until the operation is terminal or N seconds passed: 200 with the finished operation, or the same 202 as without it. respond-async (the default) returns the queued operation at once.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

A message to post to the session; the agent answers it in one turn.

Response Body

application/json

application/json

application/problem+json

curl -X POST "https://example.com/v1/sessions/497f6eca-6276-4993-bfeb-53cbbbba6f08/messages" \  -H "Content-Type: application/json" \  -d '{    "text": "string"  }'
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "kind": "scene_step",  "status": "queued",  "target": {    "type": "scene",    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"  },  "input": {},  "progress": {},  "result": {},  "error": {    "code": "string",    "message": "string",    "retryable": false  },  "credits_charged": 0,  "model": {    "id": "string",    "hosting": "scenebrew",    "billing": "credits"  },  "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",  "created_at": "2019-08-24T14:15:22Z",  "started_at": "2019-08-24T14:15:22Z",  "finished_at": "2019-08-24T14:15:22Z",  "cancel_requested_at": "2019-08-24T14:15:22Z"}