Skip to content
TriedDocs
Realtime and SDK

Test custom LLM connection

Check that a custom LLM WebSocket URL accepts a connection and answers.

POSThttps://api.tried.com.au/test-custom-llm-connection

Opens the same WebSocket the voice runtime would open ({llm_websocket_url}/test_connection_<random>), sends a call_details frame and a ping_pong, and waits up to 5 s for your server's first frame. This is the Test connection button in the custom LLM builder. Beyond Retell

Private, loopback and reserved addresses are refused unless the server sets EGRESS_ALLOW_PRIVATE. Requires the admin or developer role.

Request#

Body#

Field Type Required Description
llm_websocket_url string Yes A ws:// or wss:// URL, 5 to 2000 characters.

Example request#

curl -X POST "https://api.tried.com.au/test-custom-llm-connection" \
  -H "Authorization: Bearer $TRIED_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "llm_websocket_url": "wss://llm.example.com/ws"
}'
const res = await fetch("https://api.tried.com.au/test-custom-llm-connection", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.TRIED_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "llm_websocket_url": "wss://llm.example.com/ws"
  }),
});
const data = await res.json();
import os, requests

res = requests.post(
    "https://api.tried.com.au/test-custom-llm-connection",
    headers={"Authorization": f"Bearer {os.environ['TRIED_API_KEY']}"},
    json={
        "llm_websocket_url": "wss://llm.example.com/ws",
    },
)
data = res.json()

Response#

200 OK whether or not the test passed.

{ "ok": true, "latency_ms": 184, "first_frame": "{\"response_type\":\"config\",\"config\":{\"auto_reconnect\":true}}", "error": null }
Field Type Description
ok boolean A frame arrived within 5 s.
latency_ms integer or null Time from opening the socket to the first frame.
first_frame string or null The first frame, up to 2000 characters.
error string or null For example Use a ws:// or wss:// URL, No frame within 5 s, Could not connect to the WebSocket server, or a close code.

Errors#

Status When
400 Validation failed.
401 Missing or invalid API key.
403 The key's IP allowlist or scopes reject the request. This route needs the admin scope. The member role cannot run this test.
429 Rate limit exceeded. See Rate limits.

See Errors for the body format.