Send a message
Send a message to an agent, with files if you like, and get its reply in the format of OpenAI’s Responses API.
Authorizations
Your QX API key. The X-API-Key header works too
Body
The agent's ID, as shown in its URL in the app, or builtin:qx_agent for the QX agent
"builtin:qx_agent"
The message as text, or a list holding one user message, or a list of answers to approval requests. Answers go on the conversation that paused, with no message
"Summarise my unread emails from today"
Continues the conversation of this response
Continues this conversation. Send this or previous_response_id, not both
Stream the turn as server-sent events
What happens to a tool that needs approval, for this message only.
delegated (the default for a message): it's refused. normal (the default for answers): the turn pauses with approval requests. auto: it runs without asking.
delegated, normal, auto The account to use for an app on this message, as app to account ID, from the connected accounts endpoint
Response
The agent's turn. With stream, a stream of Responses API events instead
The response's ID. Send it as previous_response_id to continue the conversation
completed, failed or cancelled
The previous_response_id the request sent
What the agent did, in order. Its thinking as reasoning items, its messages as message items, its finished tool calls as mcp_call items, and mcp_approval_request items when the turn paused
The turn's tokens. Null while the turn runs
Why the turn failed. Null otherwise
Only when the conversation was already running a turn. The message joined that turn, which answers it