Create a WebRTC session for a draft agent
Mints a realtime session without requiring a saved agent — pass a full config inline to talk to a configuration that has not been created yet. This is what the builder's Live Preview uses.
Pass agent_id instead to mint a session for a saved agent; that is equivalent to POST /v1/agents/voice/agents/{agent_id}/rooms.
The response is bare — it is not wrapped in a data envelope.
Authorization
personalAccessToken Personal Access Token of a Dynamiq user — the only credential accepted by the management API (api.*). Prefix dyn_pat_ (legacy uak_ tokens still authenticate). Send as Authorization: Bearer <token>.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/v1/agents/voice/rooms" \ -H "Content-Type: application/json" \ -d '{}'{
"token": "string",
"room_name": "string",
"url": "string"
}{
"error": {
"code": "bad_request",
"message": "Bad Request",
"details": {
"input": "cannot be blank"
}
}
}{
"error": {
"code": "unauthorized",
"message": "Unauthorized"
}
}Create a WebSocket call
Reserves a call and returns a single-use WebSocket URL for streaming raw audio from your own backend. The URL carries its own token, is valid for about two minutes, and can be connected exactly once. Connecting to that URL can itself be refused with `503` and body `{"code": "capacity"}` when the serving replica has no free call slot. The reservation is not consumed in that case, so create a new call and connect again. The message protocol — audio framing and every JSON event in both directions — is documented under Platform → Voice Agents → WebSocket transport.
Test an MCP server
Probes an MCP server and lists the tools it exposes, so you can verify a server before attaching it to an agent. Backs the **Test connection** button in the builder. A failed probe is reported as `200` with `ok: false` and an `error` string — it is not an HTTP error. The response is **bare**, with no `data` envelope.