Create message
Send a follow-up message to a running interactive agent, up to 8000 characters. The message is queued rather than answered inline, so poll the messages endpoint for the reply. Runs that are not interactive reject this with 400, and a session that has already ended returns 409; start a new run, or resume the finished one, instead.
Authentication
sf_… API key in the bearerAuth field below.A SaaSFlow API key (format sf_…) or an OAuth bearer token. Paste only the key — the proxy adds the Bearer prefix. Create an API key in Settings → Company settings → API keys — see API keys.
In: header
Path Parameters
1 <= length1 <= lengthRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/companies/string/agent_runs/string/messages" \ -H "Content-Type: application/json" \ -d '{ "content": "string" }'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "companyId": "8bb73d03-06b4-47c7-80c7-59301f770eda", "runId": "78c33d18-170c-44d3-a227-b3194f134f73", "role": "user", "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b", "content": "string", "createdTime": "2019-08-24T14:15:22Z"}List messages
Read the conversation of an agent run, oldest first. Poll with `afterId` set to the last id you saw to stream new messages without refetching the thread. Reading a run requires the permissions the agent itself used, so a caller with narrower access than the person who started it gets 403 rather than a filtered view.
Transcript
Download the full session transcript as JSON Lines: every message and every tool call the agent made, which is the record to read when debugging what an agent actually did. Transcripts run to megabytes, so pass `tailBytes` to take only the end of the run (the cut is aligned to a line start). Without it a transcript that is too large is refused with 413. Content type is `application/x-ndjson`, not JSON.