Testing

Run a test: score a captured transcript (offline) or run a live synthetic call

Three modes, selected by the body:

• Saved suite — send only { "suiteId": "…" }. The suite runs as saved: its target, its language, and every scenario (each with its own persona, expected lines and barge-in), one run per scenario, at most 25 scenarios per request. A suite the account does not own returns 404 SUITE_NOT_FOUND. This is the body to use from CI.

• Offline scoring — supply transcript (or turns) plus a scenarioGoal; the judge scores it synchronously and the completed run is returned. Works on every plan; not metered against call minutes.

• Live synthetic call — supply targetAgent and goal. For the hosted demo target ({transport:"direct", peerId:"wb-demo-dental"}) the run completes synchronously. For a direct (SIP/WebRTC) target the response returns a tokenized mediaWebSocketUrl per run for your agent-side harness to dial. For a sip target the SIP URI goes in sipUri (or in peerId as a sip: URI). For a pstn target a real carrier call is originated (pro+ plans only — starter returns 402).

Response shape (every live mode). data is the FIRST run the request created — so data.id, data.status and data.passed are always present — and data.runs lists every run the request created (one per scenario for a saved suite, concurrency for an ad-hoc run). A run that is not yet terminal is queued/running: poll GET /api/tests/{id} for each id in data.runs until its status is completed or failed, and gate on passed.

PSTN destinations must be verified. A pstn run is only placed to a number the account has proven it controls (or a Word Is Bond DID). An unproven destination returns 403 NUMBER_NOT_VERIFIED and no call is placed. Prove control once with POST /api/numbers/verify/start → POST /api/numbers/verify/confirm.

post/api/tests/run

Request

  • Base URL: https://api.wordis-bond.com
  • URL: https://api.wordis-bond.com/api/tests/run
  • Auth: HTTP bearer

Request body

OR
OR

Response

Offline → the completed run in data. Every live mode → data is the first run created (id, status, passed, …) plus runs (every run the request created; a direct run carries mediaWebSocketUrl), suite for a saved-suite run, and concurrency/transport for ad-hoc runs.

Changes

No recorded changes to this operation across all 1 revision of this API.