Skip to content

API reference

Start voice test

voice.StartVoiceTestWriteAPI key

Start a test call for a team inbox. Returns a test ID and an audio connection URL when available; text turns use voice.RunVoiceTestTurn.

POST/v1/operations/voice.StartVoiceTest
On this page

Access & visibility

Allow voice.StartVoiceTest on your API key.

Workspace access by default. Private member data requires approved member delegation through Brigg-Act-As; the key supplies permissions while private ownership and project boundaries remain enforced.

Set up authentication · Choose permissions

Request fields

Send a JSON object with the following fields. Required fields must be included; omit optional fields you do not need.

inbox_idstringOptional

Inbox record ID from List inboxes. Supply this when testing an inbox; use assistant: true instead for the acting member's own assistant.

At least 1 character.

caller_idstring or nullRequired

Person record ID to simulate a known caller, or null to test an unknown caller. Find a known caller with List people.

selectionsarray of objectOptional

Capabilities to test with, overriding the bound set.

Item fields
offering_keystringRequired

Stable key identifying a published voice capability.

At least 1 character.

revisionstringRequired

Revision identifying the version of this capability or configuration.

At least 1 character.

settingsobjectRequired

Configuration fields defined by this voice capability.

Nested fields

Run a conversation test

Start a test for the intended inbox and retain its test_id. Text clients can use Run voice test turn; an audio connection URL is only needed for an audio client. Keep temporary connection URLs secret.

Pass the simulated caller's utterance and previous conversation history in order. Keep a stable turn_id for a retried turn. Review the returned reply and capability trace; a simulated response is not evidence that a real customer call succeeded. Review voice test accepts the conversation transcript for feedback. End the session when finished; an expired session needs a new start.

Response

Returns 200 OK with a JSON body.

test_idstringRequired

Names this test to voice.RunVoiceTestTurn, voice.ReviewVoiceTest and voice.EndVoiceTest.

expiresnumberRequired

Epoch ms after which the test is no longer accepted.

socket_urlstring or nullRequired

The audio socket URL, or null on a stage without an audio service.

Errors & retries

Set BRIGG_REQUEST_ID once for each logical action. The samples send it as Idempotency-Key. Reuse the same value and body on retries, including after a timeout; a missing response does not prove the action failed.

For rate limits, follow the server’s retry guidance and back off. See HTTP errors and safe retries and limits.

HTTP status Code What to do
400 invalid_json Send a JSON object with Content-Type: application/json.
400 invalid_input Check the request fields and types. Supply a stable Idempotency-Key containing 1–200 characters.
401 invalid_key The workspace API key is missing, invalid or revoked.
403 forbidden Check the key’s operation and resource grants. If Brigg-Act-As is supplied, the key must be authorized to delegate to that member.
404 not_found The requested operation or resource is not available to this credential.
429 rate_limited Wait for Retry-After before retrying. Reuse the original Idempotency-Key.

Next steps

Download OpenAPI · Versioning & retirement

JSON schemas

Use the complete schemas for validation or client generation.

Full request JSON schema
{
  "type": "object",
  "properties": {
    "inbox_id": {
      "type": "string",
      "minLength": 1,
      "description": "Inbox record ID from [List inboxes](/developers/reference/support/ListInboxes). Supply this when testing an inbox; use assistant: true instead for the acting member's own assistant."
    },
    "caller_id": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "description": "Person record ID to simulate a known caller, or null to test an unknown caller. Find a known caller with [List people](/developers/reference/customers/ListPeople)."
        },
        {
          "type": "null",
          "description": "Person record ID to simulate a known caller, or null to test an unknown caller. Find a known caller with [List people](/developers/reference/customers/ListPeople)."
        }
      ],
      "description": "Person record ID to simulate a known caller, or null to test an unknown caller. Find a known caller with [List people](/developers/reference/customers/ListPeople)."
    },
    "selections": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "offering_key": {
            "type": "string",
            "minLength": 1,
            "description": "Stable key identifying a published voice capability."
          },
          "revision": {
            "type": "string",
            "minLength": 1,
            "description": "Revision identifying the version of this capability or configuration."
          },
          "settings": {
            "type": "object",
            "properties": {
              "booking_link_id": {
                "type": "string",
                "description": "Booking link identifier."
              }
            },
            "additionalProperties": false,
            "description": "Configuration fields defined by this voice capability."
          }
        },
        "required": [
          "offering_key",
          "revision",
          "settings"
        ],
        "additionalProperties": false
      },
      "description": "Capabilities to test with, overriding the bound set."
    }
  },
  "required": [
    "caller_id"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "inbox_id": "e_inbox_support",
      "caller_id": null
    }
  ]
}
Full response JSON schema
{
  "type": "object",
  "properties": {
    "test_id": {
      "type": "string",
      "description": "Names this test to voice.RunVoiceTestTurn, voice.ReviewVoiceTest and voice.EndVoiceTest."
    },
    "expires": {
      "type": "number",
      "description": "Epoch ms after which the test is no longer accepted."
    },
    "socket_url": {
      "type": [
        "string",
        "null"
      ],
      "description": "The audio socket URL, or null on a stage without an audio service."
    }
  },
  "required": [
    "test_id",
    "expires",
    "socket_url"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "test_id": "voice_test_kickoff",
      "expires": 1794301800000,
      "socket_url": null
    }
  ]
}

Search by operation name or what you want to build.

Use arrow keys to browse. Enter opens a result.