Reference/Chat
POST
/v1/agents/:id/threads/:threadId/messages/streamSend a chat message (stream)
Streams a UIMessage turn (same protocol as the app). Simple send: put your text in "message". After a tool asks for approval, POST again with the full "messages" array including an approval-responded part.
Full URL
POST https://api.tryleadreach.com/v1/agents/:id/threads/:threadId/messages/stream
Headers
X-Api-Key(required): your API key from the app Keys tab.Content-Type: application/json(required)
Path params (in the URL)
| Name | Type | Required | Meaning |
|---|---|---|---|
| id | uuid | Yes | The agent's id (from Create agent or List agents). |
| threadId | uuid | Yes | The chat thread id (from Create thread or List threads). |
Query params (after ?)
None
Request body (JSON)
| Field | Type | Required | Meaning |
|---|---|---|---|
| message | string | No | User text for a normal send. |
| messages | array | No | Full UIMessage list (needed for tool approval continue). |
| trigger | string | No | Optional: "submit-message" or "regenerate-message". |
| messageId | uuid | No | Used for edit / regenerate. |
| leadIds | uuid[] | No | Optional leads attached to this turn (max 25). |
Example request (JSON)
What you send: headers, and path / query / body when used.
{
"headers": {
"X-Api-Key": "lr_your_key_here",
"Content-Type": "application/json"
},
"path": {
"id": "a1111111-1111-1111-1111-111111111111",
"threadId": "t1111111-1111-1111-1111-111111111111"
},
"body": {
"message": "Find 5 people leads"
}
}Example response (JSON)
Typical successful response shape.
{
"_note": "Streaming UIMessage / SSE bytes (not one JSON object). Read the stream until it ends."
}Response
Streaming UIMessage / SSE body (not a single JSON object).
Credits
chat turn