---
title: "Create a reusable test suite"
method: POST
path: "/api/tests/suites"
tags: ["Suites"]
---

# Create a reusable test suite

`POST /api/tests/suites`

## Request

- Base URL: `https://api.wordis-bond.com`
- URL: `https://api.wordis-bond.com/api/tests/suites`
- Auth: HTTP bearer

## Request body

- object
  - `name` string, required
  - `targetAgent` TargetAgent, required: The voice agent under test (a system YOU control). `direct` = SIP/WebRTC (near-zero cost, all plans); `pstn` = a real carrier call (pro+). The hosted demo target is `{transport:"direct", peerId:"wb-demo-dental"}`.
    - `transport` 'pstn' | 'webrtc' | 'direct' | 'sip', required
    - `toNumber` string: E.164 number to dial (required for a pstn target).
    - `peerId` string: Hosted-agent id (e.g. "wb-demo-dental"), a direct peer label, or — for a `sip` target — the SIP URI.
    - `sipUri` string: For a `sip` target: the agent SIP URI (`sip:` / `sips:`).
  - `language` string
  - `scenarios` Scenario[]
    - `persona` union
      - string
      - object
        - `name` string
        - `description` string
    - `goal` string
    - `expected` string[]
    - `bargeIn` boolean: Inject one persona-initiated barge-in.
  - `schedule` string: Cadence for scheduled runs (plan-gated), e.g. "weekly" | "daily" | "hourly".

## Response `201`

Created suite

- object
  - `data` TestSuite, required
    - `id` string, uuid, required
    - `accountId` string, uuid
    - `name` string, required
    - `targetAgent` TargetAgent, required: The voice agent under test (a system YOU control). `direct` = SIP/WebRTC (near-zero cost, all plans); `pstn` = a real carrier call (pro+). The hosted demo target is `{transport:"direct", peerId:"wb-demo-dental"}`.
      - `transport` 'pstn' | 'webrtc' | 'direct' | 'sip', required
      - `toNumber` string: E.164 number to dial (required for a pstn target).
      - `peerId` string: Hosted-agent id (e.g. "wb-demo-dental"), a direct peer label, or — for a `sip` target — the SIP URI.
      - `sipUri` string: For a `sip` target: the agent SIP URI (`sip:` / `sips:`).
    - `language` string
    - `scenarios` Scenario[]
      - `persona` union
        - string
        - object
          - `name` string
          - `description` string
      - `goal` string
      - `expected` string[]
      - `bargeIn` boolean: Inject one persona-initiated barge-in.
    - `schedule` string, nullable
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
  - `error` union, required
    - object
    - string

## Other responses

- `401`: Missing, invalid, or revoked credentials.
- `422`: The request body failed validation.

---

[API](https://skmtc.dev/wordis-bond/apis/word-is-bond-voice-agent-testing-api.md) · [All operations](https://skmtc.dev/wordis-bond/apis/word-is-bond-voice-agent-testing-api/llms.txt) · [OpenAPI document](https://skmtc.dev/wordis-bond/apis/word-is-bond-voice-agent-testing-api/revisions/66c2d5480d84?raw)
