For the complete documentation index, see llms.txt. Any page on this site can be fetched as Markdown by appending .md to its URL.

Voice agentsAgent tests

Start a test run

POST
/v1/agent-media/agents/{agentId}/test-runs

Run the agent's tests against one version, draft or published. Each test runs repeat times (its own, or the settings' defaultRepeat), and each attempt is a case. Cases run in the background; poll the run for progress.

Each test is first checked against the version. A test is recorded as invalid straight away and not run when it stubs a tool the version does not have or one that runs inside the agent, stubs a tool chat tests cannot reach, has a tool_called check on a tool the version does not have or chat tests cannot reach, or has a disposition_is check on a disposition the version does not define. A tool_not_called check is not checked against the version. Invalid tests never fail a run, so a run where every test is invalid finishes as passed.

An agent has one active run at a time. A run still queued or running two hours after it started no longer counts.

Authorization

bearerAuth
AuthorizationBearer <token>

A Tandem bearer token. Requests are scoped to the organization the token belongs to; no organization header is required.

In: header

Path Parameters

agentId*string

The agent's unique ID.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/agent-media/agents/string/test-runs" \  -H "Content-Type: application/json" \  -d '{    "version": "string"  }'
{  "runId": "string"}
{  "error": "string",  "message": "string",  "limit": 0,  "length": 0,  "reason": "string"}
{  "error": "string",  "message": "string",  "limit": 0,  "length": 0,  "reason": "string"}
{  "error": "string",  "message": "string",  "limit": 0,  "length": 0,  "reason": "string"}
{  "error": "string",  "message": "string",  "limit": 0,  "length": 0,  "reason": "string"}
{  "error": "string",  "message": "string",  "limit": 0,  "length": 0,  "reason": "string"}