Reference
Every Agent API endpoint. All except the stream itself use the same Bearer-token auth as the rest of the Developer API (see Authentication and Rate limiting) — scope is the additional scope each one requires on top of that. The console on the right sends a real request against ai.synup.com — paste your own key to try one.
Always returns immediately with a job id — never blocks on the agent's reply.
Dispatch a message
/v1/agent/messages{
"data": {
"id": "task_9f2c...",
"status": "queued",
"stream_url": "https://ai.synup.com/api/v1/agent/stream?token=...",
"stream_refresh_token": "..."
}
}A task belonging to a different token 404s — never confirms it exists.
Poll a message's status
/v1/agent/messages/{id}{
"data": {
"id": "task_9f2c...",
"status": "completed",
"resultText": "Your average rating this month is 4.6.",
"errorReason": null,
"conversationId": "3f7900ae-34b2-47b0-8254-27864bf3b5c8"
}
}The stream
Not Bearer-token auth like the endpoints above — its own short-lived token instead. No Try It console for these two: an SSE connection and a token-refresh call don't fit this console's request/response shape. See Streaming for the full walkthrough.
SSE stream for one task. Authenticated via the token embedded in stream_url, not a Bearer header. Accepts ?starting_after=<seq> to resume — see the Streaming page.
text/event-stream — see the Streaming page.
Reissue an expired stream token from its refresh secret.
{ "task_id": "task_...", "refresh_token": "..." }{ "data": { "stream_url": "..." } }