---
title: Bridge Actions
slug: voice-apis/bridge-actions
docTags: 
createdAt: 2026-01-20T03:19:51.398Z
---



## Description

Bridge Actions allow you to control an existing **bridge** after it has been created.
&#x20;Using these actions, you can play audio announcements, perform text-to-speech, start or stop recordings, and route bridge-level events to external systems.

Bridge Actions apply **to all legs currently joined to the bridge**, making them ideal for conferencing, announcements, and supervisory use cases.

All Bridge Actions are executed via a single **Actions API** using an **EXOML payload**.

## Authentication

**Type:** HTTP Basic Authentication

- **Username:** API Key&#x20;
- **Password:** API Token&#x20;

## Request Headers

:::BlockQuote
Content-Type: application/json
Authorization: Basic \<base64(API\_KEY\:API\_TOKEN)>
:::

## Request Body Structure

| Field                 | Type   | Required | Description                                 |
| --------------------- | ------ | -------- | ------------------------------------------- |
| exoml                 | string | Yes      | XML describing the bridge action            |
| action\_custom\_param | string | No       | Custom value echoed back in external events |

## Base URL

:::BlockQuote
https\://cpaas-api.in.exotel.com/v2/accounts/&#x7B;account\_sid}
:::

### Example

:::BlockQuote
https\://cpaas-api.in.exotel.com/v2/accounts/ameyo5m
:::

## Common Endpoint

All Bridge Actions are executed using:

### POST

:::BlockQuote
/v2/accounts/&#x7B;account\_sid}/bridges/&#x7B;bridge\_sid}/actions
:::

### Full URL

:::BlockQuote
https\://cpaas-api.in.exotel.com/v2/accounts/&#x7B;account\_sid}/bridges/&#x7B;bridge\_sid}/actions
:::

## Common Request Body

| Parameter             | Type   | Required | Description                                 |
| --------------------- | ------ | -------- | ------------------------------------------- |
| action\_custom\_param | string | No       | Custom value echoed back in external events |
| exoml                 | string | Yes      | EXOML XML defining the bridge action        |

## Common Response

**HTTP 202 – Accepted**

:::BlockQuote
\{
&#x20; "request\_id": "abc123",
&#x20; "http\_code": 202,
&#x20; "response": \{
&#x20;   "data": \{
&#x20;     "bridge\_sid": "BRIDGE\_SID"
&#x20;   }
&#x20; }
}
:::

:::BlockQuote
Bridge Actions are **asynchronous**.
&#x20;Final success or failure is communicated via **external events**.
:::

## Common Error Responses (applies to all bridge actions)

| HTTP Code | Description                 |
| --------- | --------------------------- |
| 400       | Invalid EXOML or parameters |
| 401       | Authentication failed       |
| 403       | Not authorized              |
| 404       | Bridge not found            |
| 429       | Rate limit exceeded         |
| 500       | Internal server error       |

## External Events (General)

- Events are delivered asynchronously to the configured **bridge\_event\_endpoint** (gRPC)&#x20;
- Each bridge action emits one or more **action-specific events**&#x20;
- Event details are documented in individual Bridge Action pages&#x20;

## Supported Bridge Actions

- Refer&#x20;
- StartPlay&#x20;
- StopPlay&#x20;
- StartSay&#x20;
- StopSay&#x20;
- StartRecording&#x20;
- StopRecording&#x20;

## Notes for Developers

- Bridge Actions affect **all participants** in the bridge&#x20;
- Media actions apply to **current and future legs**&#x20;
- Use **Leg Actions (JoinBridge / LeaveBridge)** to manage bridge membership&#x20;
- Prefer Bridge Actions for **announcements and conferencing**, not individual control
