---
schema_version: "1"
id: 68b8f962d6d2c141b25f742248f8a6b65df1d8e91b6617699401464b2128d545
title: Bridge Methods
collection: tableau
version: current
locale: en-us
portal_url: https://docs.salesforce.com/tableau/current/en-us/api/rest_api/REST/rest_api_ref_bridge.md
canonical_url: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_bridge.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 11b0764905fb6ef26245d9e1d70c3e63a6dd07d03674258948a7978f6106c7fe
description: "Using the Bridge methods of the Tableau REST API you can:"
---
[Skip to main content](#main-content)

# Bridge Methods

Using the Bridge methods of the Tableau REST API you can:

- **Bridge clients:** List Bridge clients for a site or get details for a specific Bridge client; delete a Bridge client; move a Bridge client between pools or to unassigned status.
- **Bridge pools:** List, create, update, and delete Bridge pools. [Bridge pools](https://help.tableau.com/current/online/en-us/to_enable_bridge_live_connections.htm) are logical groupings of Bridge clients for load distribution and management.
- **Bridge domains:** Add domains to pools, block domains, update domain names or pool assignment, get domain mapping, and delete domain mappings.
- **Bridge routing rules:** Create, get, update, and delete Bridge routing rules; add or remove project scoping on an allow rule. Routing rules route a domain's Bridge queries to a specific pool (optionally scoped to projects) or block a domain from being routed.

These methods are available for Tableau Cloud. Bridge clients enable secure data connections between Tableau Cloud and on-premises data sources. For more information, see [Use Bridge to Keep Data Fresh](https://help.tableau.com/current/online/en-us/qs_refresh_local_data.htm).

## Add Domain to Pool

Associates a domain with a specific Bridge pool, allowing Bridge clients from that domain to use the pool.

Each domain can only be assigned to one pool at a time. Root domains and subdomains are supported. Domain assignments are site-specific. Adding a domain already in the pool returns an error.

This method is not available for Tableau Server.

**Version**: Available in API 3.28 (Tableau Cloud March 2026) and later. Not available for Tableau Server.

**License**: No additional license required.

**Permissions**: Tableau Cloud site admin.

**Access Scope**: `tableau:bridge_rest_api:create`

For more information, see [Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm), [Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm), [Access scopes for UATs](https://help.tableau.com/current/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes) (Cloud), and access scopes for [Cloud](https://help.tableau.com/current/online/en-us/connected_apps_scopes.htm), [Server-Windows,](https://help.tableau.com/current/server/en-us/connected_apps_scopes.htm) or [Server-Linux](https://help.tableau.com/current/server-linux/en-us/connected_apps_scopes.htm).

#### URI

POST /api/api-version/sites/site-luid/bridge-domain-maps

#### URI Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use. For more information, see <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-luid</span></td><td>The LUID for the site.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <bridgeDomain existingDomainName="example.com" newPoolLuid="ebae40a5-d7e4-4214-b3d5-b0715c627b71" />
</tsRequest>
```

```
{
  "bridgeDomain": {
    "existingDomainName": "example.com",
    "newPoolLuid": "ebae40a5-d7e4-4214-b3d5-b0715c627b71"
  }
}
```

#### Attribute Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1"> <col></colgroup><tbody><tr><td><span class="api-placeholder">existingDomainName</span></td><td>The domain to add to the pool. Root domains and subdomains are supported.</td></tr><tr><td><span class="api-placeholder">newPoolLuid</span></td><td>The UUID of the Bridge pool to add the domain to. Must be a user-created pool (not a reserved system pool).</td></tr></tbody></table>

#### Response Code

200

#### Response Body

None

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>400</td><td>409004</td><td>Invalid domain name, invalid pool ID, domain already exists, or pool not found</td><td>Domain must conform to valid format; pool ID must be valid UUID and exist; domain must not already be in this pool.</td></tr><tr><td>401</td><td>401000 / 401002</td><td>Missing or invalid authentication</td><td>No authentication token provided, or token is expired or invalid.</td></tr><tr><td>403</td><td>403000</td><td>Insufficient permissions</td><td>User does not have Site Administrator role.</td></tr><tr><td>429</td><td>429000</td><td>Rate limit exceeded</td><td>Too many requests sent in a given time period.</td></tr><tr><td>500</td><td>503904</td><td>Unexpected server error</td><td>An unexpected error occurred while adding the domain.</td></tr></tbody></table>

For more information, see [Handling Errors](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_errors.htm).

## Add Projects to Routing Rule

Adds one or more project filtering conditions to an existing allow rule, narrowing the rule so it applies only to the listed projects.

This method applies to allow rules only; adding projects to a block rule is rejected. Each project ID must be a valid UUID and reference a project that exists on the site, and a project already associated with the rule cannot be added again.

This method is not available for Tableau Server.

**Version**: Available in API 3.30 (Tableau Cloud October 2026) and later. Not available for Tableau Server.

**License**: No additional license required.

**Permissions**: Tableau Cloud site admin.

**Access Scope**: `tableau:bridge_rest_api:update`

For more information, see [Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm), [Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm), [Access scopes for UATs](https://help.tableau.com/current/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes) (Cloud), and access scopes for [Cloud](https://help.tableau.com/current/online/en-us/connected_apps_scopes.htm), [Server-Windows,](https://help.tableau.com/current/server/en-us/connected_apps_scopes.htm) or [Server-Linux](https://help.tableau.com/current/server-linux/en-us/connected_apps_scopes.htm).

#### URI

POST /api/api-version/sites/site-luid/bridge-routing-rules/routing-rule-id/projects

#### URI Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use. For more information, see <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-luid</span></td><td>The LUID for the site.</td></tr><tr><td><span class="api-placeholder">routing-rule-id</span></td><td>The unique identifier (UUID) of the allow rule to add projects to.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <routingRuleProjects mode="add">
    <project id="11111111-2222-3333-4444-555555555555" />
    <project id="66666666-7777-8888-9999-000000000000" />
  </routingRuleProjects>
</tsRequest>
```

```
{
  "routingRuleProjects": {
    "mode": "add",
    "project": [
      { "id": "11111111-2222-3333-4444-555555555555" },
      { "id": "66666666-7777-8888-9999-000000000000" }
    ]
  }
}
```

#### Attribute Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1"> <col></colgroup><tbody><tr><td><span class="api-placeholder">mode</span></td><td>Required. The operation mode; must be <code>add</code> for this method.</td></tr><tr><td><span class="api-placeholder">project</span></td><td>Required. One or more project IDs to add. Each entry requires an <code>id</code>.</td></tr></tbody></table>

#### Response Code

200

#### Response Body

Returns the updated `routingRule` with the added projects reflected in `project`.

```
<tsResponse>
  <routingRule id="d9e8f7a6-b5c4-3210-fedc-ba9876543210" domain="example.com" isBlocked="false" poolId="ebae40a5-d7e4-4214-b3d5-b0715c627b71" poolName="WindowsPool">
    <project id="11111111-2222-3333-4444-555555555555" name="Finance" isDeleted="false" />
    <project id="66666666-7777-8888-9999-000000000000" name="Sales" isDeleted="false" />
  </routingRule>
</tsResponse>
```

```
{
  "routingRule": {
    "id": "d9e8f7a6-b5c4-3210-fedc-ba9876543210",
    "domain": "example.com",
    "isBlocked": false,
    "poolId": "ebae40a5-d7e4-4214-b3d5-b0715c627b71",
    "poolName": "WindowsPool",
    "project": [
      { "id": "11111111-2222-3333-4444-555555555555", "name": "Finance", "isDeleted": false },
      { "id": "66666666-7777-8888-9999-000000000000", "name": "Sales", "isDeleted": false }
    ]
  }
}
```

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>400</td><td>503909</td><td>Validation failed</td><td>Missing or empty project list, invalid project or rule UUID, or projects not found on the site.</td></tr><tr><td>400</td><td>503910</td><td>Invariant violation</td><td>Attempted to add projects to a block rule.</td></tr><tr><td>401</td><td>401000 / 401002</td><td>Missing or invalid authentication</td><td>No authentication token provided, or token is expired or invalid.</td></tr><tr><td>403</td><td>503923</td><td>Permission denied</td><td>Caller is not a site administrator for the site.</td></tr><tr><td>404</td><td>503915</td><td>Routing rule not found</td><td>No routing rule exists with the given ID on this site.</td></tr><tr><td>409</td><td>503912</td><td>Project already present</td><td>One or more of the projects is already associated with this routing rule.</td></tr><tr><td>429</td><td>429000</td><td>Rate limit exceeded</td><td>Too many requests sent in a given time period.</td></tr><tr><td>500</td><td>503921</td><td>Unexpected server error</td><td>An unexpected error occurred while adding projects.</td></tr></tbody></table>

For more information, see [Handling Errors](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_errors.htm).

## Block Domain

Blocks a domain from being used with any Bridge pool, preventing Bridge clients from that domain from connecting.

Blocking is site-specific and takes precedence over pool assignments; blocked domains cannot be added to any pool. Existing connections from the domain may be terminated.

This method is not available for Tableau Server.

**Version**: Available in API 3.28 (Tableau Cloud March 2026) and later. Not available for Tableau Server.

**License**: No additional license required.

**Permissions**: Tableau Cloud site admin.

**Access Scope**: `tableau:bridge_rest_api:update`

For more information, see [Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm), [Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm), [Access scopes for UATs](https://help.tableau.com/current/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes) (Cloud), and access scopes for [Cloud](https://help.tableau.com/current/online/en-us/connected_apps_scopes.htm), [Server-Windows,](https://help.tableau.com/current/server/en-us/connected_apps_scopes.htm) or [Server-Linux](https://help.tableau.com/current/server-linux/en-us/connected_apps_scopes.htm).

#### URI

PATCH /api/api-version/sites/site-luid/bridge-domain-maps/block-domain

#### URI Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use. For more information, see <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-luid</span></td><td>The LUID for the site.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <bridgeDomain existingDomainName="example.com" isBlocked="true" />
</tsRequest>
```

```
{
  "bridgeDomain": {
    "existingDomainName": "example.com",
    "isBlocked": true
  }
}
```

#### Attribute Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1"> <col></colgroup><tbody><tr><td><span class="api-placeholder">existingDomainName</span></td><td>Required. The domain to block or unblock.</td></tr><tr><td><span class="api-placeholder">isBlocked</span></td><td>Set to <code>true</code> to block the domain; set to <code>false</code> to unblock (remove from blocked list).</td></tr></tbody></table>

#### Response Code

200

#### Response Body

None

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>400</td><td>409004</td><td>Invalid domain name or missing isBlocked</td><td>Domain must conform to valid format; isBlocked parameter is required.</td></tr><tr><td>401</td><td>401000 / 401002</td><td>Missing or invalid authentication</td><td>No authentication token provided, or token is expired or invalid.</td></tr><tr><td>403</td><td>403000</td><td>Insufficient permissions</td><td>User does not have Site Administrator role.</td></tr><tr><td>429</td><td>429000</td><td>Rate limit exceeded</td><td>Too many requests sent in a given time period.</td></tr><tr><td>500</td><td>503905</td><td>Unexpected server error</td><td>An unexpected error occurred while blocking the domain.</td></tr></tbody></table>

For more information, see [Handling Errors](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_errors.htm).

## Create Bridge Pool

Creates a new Bridge pool with the specified name.

The pool is created empty (no domain assignments or Bridge clients). The system assigns a UUID; use List Bridge Pools to get the pool ID after creation, then add domains and assign clients.

This method is not available for Tableau Server.

**Version**: Available in API 3.28 (Tableau Cloud March 2026) and later. Not available for Tableau Server.

**License**: No additional license required.

**Permissions**: Tableau Cloud site admin.

**Access Scope**: `tableau:bridge_rest_api:create`

For more information, see [Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm), [Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm), [Access scopes for UATs](https://help.tableau.com/current/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes) (Cloud), and access scopes for [Cloud](https://help.tableau.com/current/online/en-us/connected_apps_scopes.htm), [Server-Windows,](https://help.tableau.com/current/server/en-us/connected_apps_scopes.htm) or [Server-Linux](https://help.tableau.com/current/server-linux/en-us/connected_apps_scopes.htm).

#### URI

POST /api/api-version/sites/site-luid/bridge-pools

#### URI Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use. For more information, see <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-luid</span></td><td>The LUID for the site.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <edgePool>
    <pool name="Production Pool" />
  </edgePool>
</tsRequest>
```

```
{
  "edgePool": {
    "pool": {
      "name": "Production Pool"
    }
  }
}
```

#### Attribute Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1"> <col></colgroup><tbody><tr><td><span class="api-placeholder">name</span></td><td>Required. Display name for the pool, 1–80 characters. Must be unique within the site.</td></tr></tbody></table>

#### Response Code

201 Created

#### Response Body

None. The pool is created with a system-generated UUID; use List Bridge Pools to get the pool ID.

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>400</td><td>409004 / 400929</td><td>Missing, empty, invalid, or duplicate pool name</td><td>Pool name required, 1–80 characters; must be unique on the site.</td></tr><tr><td>401</td><td>401000 / 401002</td><td>Missing or invalid authentication</td><td>No authentication token provided, or token is expired or invalid.</td></tr><tr><td>403</td><td>403000</td><td>Insufficient permissions</td><td>User does not have Site Administrator role.</td></tr><tr><td>429</td><td>429000</td><td>Rate limit exceeded</td><td>Too many requests sent in a given time period.</td></tr><tr><td>500</td><td>503900</td><td>Unexpected server error</td><td>An unexpected error occurred while creating the pool.</td></tr></tbody></table>

For more information, see [Handling Errors](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_errors.htm).

## Create Routing Rule

Creates a Bridge routing rule for a site.

A routing rule controls how Bridge queries for a domain are routed. An allow rule (`isBlocked=false`) routes the domain to a designated pool, optionally scoped to specific projects; a block rule (`isBlocked=true`) prevents the domain from being routed through Bridge. All routing-rule methods require Tableau Cloud site admin privileges and Bridge feature enablement for the site.

This method is not available for Tableau Server.

**Version**: Available in API 3.30 (Tableau Cloud October 2026) and later. Not available for Tableau Server.

**License**: No additional license required.

**Permissions**: Tableau Cloud site admin.

**Access Scope**: `tableau:bridge_rest_api:create`

For more information, see [Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm), [Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm), [Access scopes for UATs](https://help.tableau.com/current/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes) (Cloud), and access scopes for [Cloud](https://help.tableau.com/current/online/en-us/connected_apps_scopes.htm), [Server-Windows,](https://help.tableau.com/current/server/en-us/connected_apps_scopes.htm) or [Server-Linux](https://help.tableau.com/current/server-linux/en-us/connected_apps_scopes.htm).

#### URI

POST /api/api-version/sites/site-luid/bridge-routing-rules

#### URI Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use. For more information, see <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-luid</span></td><td>The LUID for the site.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <routingRule domain="example.com" isBlocked="false" poolId="ebae40a5-d7e4-4214-b3d5-b0715c627b71">
    <project id="11111111-2222-3333-4444-555555555555" />
    <project id="66666666-7777-8888-9999-000000000000" />
  </routingRule>
</tsRequest>
```

```
{
  "routingRule": {
    "domain": "example.com",
    "isBlocked": false,
    "poolId": "ebae40a5-d7e4-4214-b3d5-b0715c627b71",
    "project": [
      { "id": "11111111-2222-3333-4444-555555555555" },
      { "id": "66666666-7777-8888-9999-000000000000" }
    ]
  }
}
```

#### Attribute Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1"> <col></colgroup><tbody><tr><td><span class="api-placeholder">domain</span></td><td>Required. The domain the rule matches, for example <code>example.com</code>. Both root domains and subdomains are supported.</td></tr><tr><td><span class="api-placeholder">isBlocked</span></td><td>Required. <code>true</code> creates a block rule; <code>false</code> creates an allow rule. The request is rejected if this attribute is omitted.</td></tr><tr><td><span class="api-placeholder">poolId</span></td><td>Required for allow rules (<code>isBlocked=false</code>). The UUID of the target Bridge pool. Must be omitted for block rules.</td></tr><tr><td><span class="api-placeholder">project</span></td><td>Optional. One or more project IDs that scope an allow rule to specific projects. Each entry requires an <code>id</code>. Must be omitted for block rules.</td></tr></tbody></table>

#### Response Code

201 Created

#### Response Body

Returns the created routing rule. The request accepts only the project `id`; the response returns `id`, `name`, and `isDeleted` for each project, populated by the server. Unset fields are omitted from the response.

```
<tsResponse>
  <routingRule id="d9e8f7a6-b5c4-3210-fedc-ba9876543210" domain="example.com" isBlocked="false" poolId="ebae40a5-d7e4-4214-b3d5-b0715c627b71" poolName="WindowsPool">
    <project id="11111111-2222-3333-4444-555555555555" name="Finance" isDeleted="false" />
  </routingRule>
</tsResponse>
```

```
{
  "routingRule": {
    "id": "d9e8f7a6-b5c4-3210-fedc-ba9876543210",
    "domain": "example.com",
    "isBlocked": false,
    "poolId": "ebae40a5-d7e4-4214-b3d5-b0715c627b71",
    "poolName": "WindowsPool",
    "project": [
      { "id": "11111111-2222-3333-4444-555555555555", "name": "Finance", "isDeleted": false }
    ]
  }
}
```

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>400</td><td>503909</td><td>Validation failed</td><td>Missing <code>routingRule</code>, missing <code>isBlocked</code>, blank or invalid domain, blank or invalid <code>poolId</code>, <code>poolId</code> missing for an allow rule, invalid UUID, or invalid, empty, or not-found projects.</td></tr><tr><td>400</td><td>503910</td><td>Invariant violation</td><td><code>poolId</code> or <code>project</code> supplied for a block rule.</td></tr><tr><td>401</td><td>401000 / 401002</td><td>Missing or invalid authentication</td><td>No authentication token provided, or token is expired or invalid.</td></tr><tr><td>403</td><td>503923</td><td>Permission denied</td><td>Caller is not a site administrator for the site.</td></tr><tr><td>409</td><td>503911</td><td>Duplicate routing rule</td><td>A routing rule already exists for this domain and project scope.</td></tr><tr><td>409</td><td>503931</td><td>Domain already blocked</td><td>The domain is already blocked by an existing block rule.</td></tr><tr><td>409</td><td>503932</td><td>Domain-only rule exists</td><td>A domain-only (unscoped) allow rule already exists for this domain; at most one is allowed.</td></tr><tr><td>409</td><td>503933</td><td>Blocked domain has allow rules</td><td>The domain being blocked still has allow rules; remove them before blocking the domain.</td></tr><tr><td>429</td><td>429000</td><td>Rate limit exceeded</td><td>Too many requests sent in a given time period.</td></tr><tr><td>500</td><td>503916</td><td>Unexpected server error</td><td>An unexpected error occurred while creating the rule.</td></tr></tbody></table>

For more information, see [Handling Errors](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_errors.htm).

## Delete Bridge Client

Permanently removes a Bridge client from the site.

This operation is irreversible; the Bridge client cannot be recovered through the API. Pool assignments are revoked and the client must be re-registered to reconnect. Data sources and scheduled refreshes using this client will be affected; consider moving to unassigned status for temporary deactivation instead of deleting.

This method is not available for Tableau Server.

**Version**: Available in API 3.28 (Tableau Cloud March 2026) and later. Not available for Tableau Server.

**License**: No additional license required.

**Permissions**: Tableau Cloud site admin.

**Access Scope**: `tableau:bridge_rest_api:delete`

For more information, see [Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm), [Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm), [Access scopes for UATs](https://help.tableau.com/current/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes) (Cloud), and access scopes for [Cloud](https://help.tableau.com/current/online/en-us/connected_apps_scopes.htm), [Server-Windows,](https://help.tableau.com/current/server/en-us/connected_apps_scopes.htm) or [Server-Linux](https://help.tableau.com/current/server-linux/en-us/connected_apps_scopes.htm).

#### URI

DELETE /api/api-version/sites/site-luid/bridge-clients/bridge-client-id

#### URI Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use. For more information, see <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-luid</span></td><td>The LUID for the site.</td></tr><tr><td><span class="api-placeholder">bridge-client-id</span></td><td>The unique identifier for the Bridge client to delete.</td></tr></tbody></table>

#### Request Body

None

#### Response Code

204 No Content

#### Response Body

None

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>401</td><td>401000 / 401002</td><td>Missing or invalid authentication</td><td>No authentication token provided, or token is expired or invalid.</td></tr><tr><td>403</td><td>403000</td><td>Insufficient permissions</td><td>User does not have Site Administrator role.</td></tr><tr><td>404</td><td>503001</td><td>Bridge client not found</td><td>Bridge client with the specified ID does not exist on this site.</td></tr><tr><td>429</td><td>429000</td><td>Rate limit exceeded</td><td>Too many requests sent in a given time period.</td></tr><tr><td>500</td><td>503003</td><td>Unexpected server error</td><td>An unexpected error occurred while deleting the Bridge client.</td></tr></tbody></table>

For more information, see [Handling Errors](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_errors.htm).

## Delete Bridge Pool

Permanently deletes a Bridge pool and all its associated domain mappings.

The pool must have no Bridge clients assigned (move clients first). Cannot delete reserved system pools. The operation is irreversible; domain mappings are removed and the pool ID becomes invalid.

This method is not available for Tableau Server.

**Version**: Available in API 3.28 (Tableau Cloud March 2026) and later. Not available for Tableau Server.

**License**: No additional license required.

**Permissions**: Tableau Cloud site admin.

**Access Scope**: `tableau:bridge_rest_api:delete`

For more information, see [Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm), [Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm), [Access scopes for UATs](https://help.tableau.com/current/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes) (Cloud), and access scopes for [Cloud](https://help.tableau.com/current/online/en-us/connected_apps_scopes.htm), [Server-Windows,](https://help.tableau.com/current/server/en-us/connected_apps_scopes.htm) or [Server-Linux](https://help.tableau.com/current/server-linux/en-us/connected_apps_scopes.htm).

#### URI

DELETE /api/api-version/sites/site-luid/bridge-pools/pool-id

#### URI Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use. For more information, see <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-luid</span></td><td>The LUID for the site.</td></tr><tr><td><span class="api-placeholder">pool-id</span></td><td>The unique identifier (UUID) of the pool to delete.</td></tr></tbody></table>

#### Request Body

None

#### Response Code

204 No Content

#### Response Body

None

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>400</td><td>409004</td><td>Invalid pool ID or pool not found</td><td>Pool ID must be valid UUID and exist on the site.</td></tr><tr><td>400</td><td>503902</td><td>System pool</td><td>Cannot delete reserved system pools.</td></tr><tr><td>401</td><td>401000 / 401002</td><td>Missing or invalid authentication</td><td>No authentication token provided, or token is expired or invalid.</td></tr><tr><td>403</td><td>403000</td><td>Insufficient permissions</td><td>User does not have Site Administrator role.</td></tr><tr><td>429</td><td>429000</td><td>Rate limit exceeded</td><td>Too many requests sent in a given time period.</td></tr><tr><td>500</td><td>503902</td><td>Unexpected server error</td><td>An unexpected error occurred while deleting the pool.</td></tr></tbody></table>

For more information, see [Handling Errors](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_errors.htm).

## Delete Domain

Removes a domain mapping from the system.

The domain is no longer associated with any pool and can be re-added later if needed. For blocked domains, deletion unblocks the domain. Deletion is immediate; existing connections may be terminated and Bridge clients from that domain lose access until the domain is re-added to a pool.

This method is not available for Tableau Server.

**Version**: Available in API 3.28 (Tableau Cloud March 2026) and later. Not available for Tableau Server.

**License**: No additional license required.

**Permissions**: Tableau Cloud site admin.

**Access Scope**: `tableau:bridge_rest_api:delete`

For more information, see [Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm), [Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm), [Access scopes for UATs](https://help.tableau.com/current/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes) (Cloud), and access scopes for [Cloud](https://help.tableau.com/current/online/en-us/connected_apps_scopes.htm), [Server-Windows,](https://help.tableau.com/current/server/en-us/connected_apps_scopes.htm) or [Server-Linux](https://help.tableau.com/current/server-linux/en-us/connected_apps_scopes.htm).

#### URI

PATCH /api/api-version/sites/site-luid/bridge-domain-maps/remove-domain

#### URI Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use. For more information, see <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-luid</span></td><td>The LUID for the site.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <bridgeDomain existingDomainName="example.com" />
</tsRequest>
```

```
{
  "bridgeDomain": {
    "existingDomainName": "example.com"
  }
}
```

#### Attribute Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1"> <col></colgroup><tbody><tr><td><span class="api-placeholder">existingDomainName</span></td><td>Required. The domain name to remove from the system.</td></tr></tbody></table>

#### Response Code

200

#### Response Body

None

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>400</td><td>409004</td><td>Invalid domain name or domain not found</td><td>Domain must conform to valid format and must exist in the system.</td></tr><tr><td>401</td><td>401000 / 401002</td><td>Missing or invalid authentication</td><td>No authentication token provided, or token is expired or invalid.</td></tr><tr><td>403</td><td>403000</td><td>Insufficient permissions</td><td>User does not have Site Administrator role.</td></tr><tr><td>429</td><td>429000</td><td>Rate limit exceeded</td><td>Too many requests sent in a given time period.</td></tr><tr><td>500</td><td>503907</td><td>Unexpected server error</td><td>An unexpected error occurred while deleting the domain.</td></tr></tbody></table>

For more information, see [Handling Errors](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_errors.htm).

## Delete Routing Rule

Permanently deletes a Bridge routing rule identified by its ID.

This method applies to both allow rules and block rules. Deletion is immediate; the domain is no longer routed (or blocked) by the removed rule. If no rule matches the ID, a 404 error is returned.

This method is not available for Tableau Server.

**Version**: Available in API 3.30 (Tableau Cloud October 2026) and later. Not available for Tableau Server.

**License**: No additional license required.

**Permissions**: Tableau Cloud site admin.

**Access Scope**: `tableau:bridge_rest_api:delete`

For more information, see [Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm), [Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm), [Access scopes for UATs](https://help.tableau.com/current/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes) (Cloud), and access scopes for [Cloud](https://help.tableau.com/current/online/en-us/connected_apps_scopes.htm), [Server-Windows,](https://help.tableau.com/current/server/en-us/connected_apps_scopes.htm) or [Server-Linux](https://help.tableau.com/current/server-linux/en-us/connected_apps_scopes.htm).

#### URI

DELETE /api/api-version/sites/site-luid/bridge-routing-rules/routing-rule-id

#### URI Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use. For more information, see <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-luid</span></td><td>The LUID for the site.</td></tr><tr><td><span class="api-placeholder">routing-rule-id</span></td><td>The unique identifier (UUID) of the routing rule to delete.</td></tr></tbody></table>

#### Request Body

None

#### Response Code

204 No Content

#### Response Body

None

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>400</td><td>503909</td><td>Validation failed</td><td>The <span class="api-placeholder">routing-rule-id</span> is not a valid UUID.</td></tr><tr><td>401</td><td>401000 / 401002</td><td>Missing or invalid authentication</td><td>No authentication token provided, or token is expired or invalid.</td></tr><tr><td>403</td><td>503923</td><td>Permission denied</td><td>Caller is not a site administrator for the site.</td></tr><tr><td>404</td><td>503915</td><td>Routing rule not found</td><td>No routing rule exists with the given ID on this site.</td></tr><tr><td>429</td><td>429000</td><td>Rate limit exceeded</td><td>Too many requests sent in a given time period.</td></tr><tr><td>500</td><td>503920</td><td>Unexpected server error</td><td>An unexpected error occurred while deleting the rule.</td></tr></tbody></table>

For more information, see [Handling Errors](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_errors.htm).

## Get Bridge Client

Retrieves detailed information about a single Bridge client.

Lookup is site-scoped. The response includes connection status, pool assignment (poolId, assignedToDefaultPool, unassigned), version, and ownership; lastStatusConnectedTime indicates when the client last connected (empty if never connected).

This method is not available for Tableau Server.

**Version**: Available in API 3.28 (Tableau Cloud March 2026) and later. Not available for Tableau Server.

**License**: No additional license required.

**Permissions**: Tableau Cloud site admin.

**Access Scope**: `tableau:bridge_rest_api:read`

For more information, see [Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm), [Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm), [Access scopes for UATs](https://help.tableau.com/current/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes) (Cloud), and access scopes for [Cloud](https://help.tableau.com/current/online/en-us/connected_apps_scopes.htm), [Server-Windows,](https://help.tableau.com/current/server/en-us/connected_apps_scopes.htm) or [Server-Linux](https://help.tableau.com/current/server-linux/en-us/connected_apps_scopes.htm).

#### URI

GET /api/api-version/sites/site-luid/bridge-clients/bridge-client-id

#### URI Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use. For more information, see <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-luid</span></td><td>The LUID for the site.</td></tr><tr><td><span class="api-placeholder">bridge-client-id</span></td><td>The unique identifier for the Bridge client to retrieve.</td></tr></tbody></table>

#### Request Body

None

#### Response Code

200

#### Response Body

```
<tsResponse>
  <bridgeClient id="12345" name="Bridge-Client-1" status="ONLINE" version="2024.1.0" poolId="abc-123-def-456" assignedToDefaultPool="false" unassigned="false" lastStatusConnectedTime="2024-10-30T10:30:00Z" ownerName="John Doe" ownerEmail="john.doe@example.com" />
</tsResponse>
```

```
{
  "bridgeClient": {
    "id": "12345",
    "name": "Bridge-Client-1",
    "status": "ONLINE",
    "version": "2024.1.0",
    "poolId": "abc-123-def-456",
    "assignedToDefaultPool": false,
    "unassigned": false,
    "lastStatusConnectedTime": "2024-10-30T10:30:00Z",
    "ownerName": "John Doe",
    "ownerEmail": "john.doe@example.com"
  }
}
```

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>401</td><td>401000 / 401002</td><td>Missing or invalid authentication</td><td>No authentication token provided, or token is expired or invalid.</td></tr><tr><td>403</td><td>403000</td><td>Insufficient permissions</td><td>User does not have Site Administrator role.</td></tr><tr><td>404</td><td>503001</td><td>Bridge client not found</td><td>Bridge client with the specified ID does not exist on this site.</td></tr><tr><td>429</td><td>429000</td><td>Rate limit exceeded</td><td>Too many requests sent in a given time period.</td></tr><tr><td>500</td><td>503002</td><td>Unexpected server error</td><td>An unexpected error occurred while retrieving the Bridge client.</td></tr></tbody></table>

For more information, see [Handling Errors](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_errors.htm).

## Get Domain Mapping

Retrieves information about all domain mappings for the site, including pool assignment and status (ALLOWED or BLOCKED).

When status is ALLOWED, poolId is the pool UUID; when BLOCKED, poolId is the string "BLOCKED". URL-encode special characters in domain names in the request.

This method is not available for Tableau Server.

**Version**: Available in API 3.28 (Tableau Cloud March 2026) and later. Not available for Tableau Server.

**License**: No additional license required.

**Permissions**: Tableau Cloud site admin.

**Access Scope**: `tableau:bridge_rest_api:read`

For more information, see [Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm), [Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm), [Access scopes for UATs](https://help.tableau.com/current/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes) (Cloud), and access scopes for [Cloud](https://help.tableau.com/current/online/en-us/connected_apps_scopes.htm), [Server-Windows,](https://help.tableau.com/current/server/en-us/connected_apps_scopes.htm) or [Server-Linux](https://help.tableau.com/current/server-linux/en-us/connected_apps_scopes.htm).

#### URI

GET /api/api-version/sites/site-luid/bridge-domain-maps

#### URI Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use. For more information, see <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-luid</span></td><td>The LUID for the site.</td></tr></tbody></table>

#### Request Body

None

#### Response Code

200

#### Response Body

```
<bridgeDomain>
  <domain name="abc.test.com" status="BLOCKED" poolId="BLOCKED" />
  <domain name="*.myco.lan" status="ALLOWED" poolId="185da21c-1598-4b2f-9137-fa632e935bf1" />
</bridgeDomain>
```

```
{
  "bridgeDomain": {
    "domain": [
      {
        "name": "abc.test.com",
        "status": "BLOCKED",
        "poolId": "BLOCKED"
      },
      {
        "name": "*.myco.lan",
        "status": "ALLOWED",
        "poolId": "185da21c-1598-4b2f-9137-fa632e935bf1"
      }
    ]
  }
}
```

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>401</td><td>401000 / 401002</td><td>Missing or invalid authentication</td><td>No authentication token provided, or token is expired or invalid.</td></tr><tr><td>403</td><td>403000</td><td>Insufficient permissions</td><td>User does not have Site Administrator role.</td></tr><tr><td>429</td><td>429000</td><td>Rate limit exceeded</td><td>Too many requests sent in a given time period.</td></tr><tr><td>500</td><td>503908</td><td>Unexpected server error</td><td>An unexpected error occurred while retrieving the domain.</td></tr></tbody></table>

For more information, see [Handling Errors](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_errors.htm).

## Get Routing Rule

Returns a single Bridge routing rule identified by its ID.

The routing-rule-id must be a valid UUID and reference a rule that exists on the specified site; a rule from another site is not returned. If no rule matches, a 404 error is returned.

This method is not available for Tableau Server.

**Version**: Available in API 3.30 (Tableau Cloud October 2026) and later. Not available for Tableau Server.

**License**: No additional license required.

**Permissions**: Tableau Cloud site admin.

**Access Scope**: `tableau:bridge_rest_api:read`

For more information, see [Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm), [Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm), [Access scopes for UATs](https://help.tableau.com/current/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes) (Cloud), and access scopes for [Cloud](https://help.tableau.com/current/online/en-us/connected_apps_scopes.htm), [Server-Windows,](https://help.tableau.com/current/server/en-us/connected_apps_scopes.htm) or [Server-Linux](https://help.tableau.com/current/server-linux/en-us/connected_apps_scopes.htm).

#### URI

GET /api/api-version/sites/site-luid/bridge-routing-rules/routing-rule-id

#### URI Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use. For more information, see <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-luid</span></td><td>The LUID for the site.</td></tr><tr><td><span class="api-placeholder">routing-rule-id</span></td><td>The unique identifier (UUID) of the routing rule to retrieve.</td></tr></tbody></table>

#### Request Body

None

#### Response Code

200

#### Response Body

Returns a single `routingRule`, identical in shape to the Create Routing Rule response.

```
<tsResponse>
  <routingRule id="d9e8f7a6-b5c4-3210-fedc-ba9876543210" domain="example.com" isBlocked="false" poolId="ebae40a5-d7e4-4214-b3d5-b0715c627b71" poolName="WindowsPool">
    <project id="11111111-2222-3333-4444-555555555555" name="Finance" isDeleted="false" />
  </routingRule>
</tsResponse>
```

```
{
  "routingRule": {
    "id": "d9e8f7a6-b5c4-3210-fedc-ba9876543210",
    "domain": "example.com",
    "isBlocked": false,
    "poolId": "ebae40a5-d7e4-4214-b3d5-b0715c627b71",
    "poolName": "WindowsPool",
    "project": [
      { "id": "11111111-2222-3333-4444-555555555555", "name": "Finance", "isDeleted": false }
    ]
  }
}
```

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>400</td><td>503909</td><td>Validation failed</td><td>The <span class="api-placeholder">routing-rule-id</span> is not a valid UUID.</td></tr><tr><td>401</td><td>401000 / 401002</td><td>Missing or invalid authentication</td><td>No authentication token provided, or token is expired or invalid.</td></tr><tr><td>403</td><td>503923</td><td>Permission denied</td><td>Caller is not a site administrator for the site.</td></tr><tr><td>404</td><td>503915</td><td>Routing rule not found</td><td>No routing rule exists with the given ID on this site.</td></tr><tr><td>429</td><td>429000</td><td>Rate limit exceeded</td><td>Too many requests sent in a given time period.</td></tr><tr><td>500</td><td>503919</td><td>Unexpected server error</td><td>An unexpected error occurred while retrieving the rule.</td></tr></tbody></table>

For more information, see [Handling Errors](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_errors.htm).

## Get Routing Rules

Returns all Bridge routing rules for the site.

Both allow rules and block rules are returned in a single `routingRules` list; the `isBlocked` flag distinguishes them. A site with no routing rules returns an empty `routingRules` container. Use this method to look up a rule's `id` before updating or deleting it.

This method is not available for Tableau Server.

**Version**: Available in API 3.30 (Tableau Cloud October 2026) and later. Not available for Tableau Server.

**License**: No additional license required.

**Permissions**: Tableau Cloud site admin.

**Access Scope**: `tableau:bridge_rest_api:read`

For more information, see [Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm), [Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm), [Access scopes for UATs](https://help.tableau.com/current/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes) (Cloud), and access scopes for [Cloud](https://help.tableau.com/current/online/en-us/connected_apps_scopes.htm), [Server-Windows,](https://help.tableau.com/current/server/en-us/connected_apps_scopes.htm) or [Server-Linux](https://help.tableau.com/current/server-linux/en-us/connected_apps_scopes.htm).

#### URI

GET /api/api-version/sites/site-luid/bridge-routing-rules

#### URI Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use. For more information, see <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-luid</span></td><td>The LUID for the site.</td></tr></tbody></table>

#### Request Body

None

#### Response Code

200

#### Response Body

Returns a `routingRules` list wrapping zero or more `routingRule` elements. Each `routingRule` has the same shape as the Create Routing Rule response.

```
<tsResponse>
  <routingRules>
    <routingRule id="d9e8f7a6-b5c4-3210-fedc-ba9876543210" domain="example.com" isBlocked="false" poolId="ebae40a5-d7e4-4214-b3d5-b0715c627b71" poolName="WindowsPool">
      <project id="11111111-2222-3333-4444-555555555555" name="Finance" isDeleted="false" />
    </routingRule>
    <routingRule id="aa11bb22-cc33-dd44-ee55-ff6677889900" domain="blocked.example.com" isBlocked="true" />
  </routingRules>
</tsResponse>
```

```
{
  "routingRules": {
    "routingRule": [
      {
        "id": "d9e8f7a6-b5c4-3210-fedc-ba9876543210",
        "domain": "example.com",
        "isBlocked": false,
        "poolId": "ebae40a5-d7e4-4214-b3d5-b0715c627b71",
        "poolName": "WindowsPool",
        "project": [
          { "id": "11111111-2222-3333-4444-555555555555", "name": "Finance", "isDeleted": false }
        ]
      },
      {
        "id": "aa11bb22-cc33-dd44-ee55-ff6677889900",
        "domain": "blocked.example.com",
        "isBlocked": true
      }
    ]
  }
}
```

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>401</td><td>401000 / 401002</td><td>Missing or invalid authentication</td><td>No authentication token provided, or token is expired or invalid.</td></tr><tr><td>403</td><td>503923</td><td>Permission denied</td><td>Caller is not a site administrator for the site.</td></tr><tr><td>429</td><td>429000</td><td>Rate limit exceeded</td><td>Too many requests sent in a given time period.</td></tr><tr><td>500</td><td>503918</td><td>Unexpected server error</td><td>An unexpected error occurred while listing the rules.</td></tr></tbody></table>

For more information, see [Handling Errors](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_errors.htm).

## List Bridge Clients

Retrieves a list of all Bridge clients for a specific site, with optional filtering by pool.

Only one filter (poolId, onlyDefaultPool, or onlyUnassigned) can be specified at a time. Each client is in one of three states: assigned to a named pool, assigned to the default pool, or unassigned. The response includes status, pool assignment, and ownership; filtering is mutually exclusive (multiple filters return 400).

This method is not available for Tableau Server.

**Version**: Available in API 3.28 (Tableau Cloud March 2026) and later. Not available for Tableau Server.

**License**: No additional license required.

**Permissions**: Tableau Cloud site admin.

**Access Scope**: `tableau:bridge_rest_api:read`

For more information, see [Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm), [Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm), [Access scopes for UATs](https://help.tableau.com/current/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes) (Cloud), and access scopes for [Cloud](https://help.tableau.com/current/online/en-us/connected_apps_scopes.htm), [Server-Windows,](https://help.tableau.com/current/server/en-us/connected_apps_scopes.htm) or [Server-Linux](https://help.tableau.com/current/server-linux/en-us/connected_apps_scopes.htm).

#### URI

All clients:

GET /api/api-version/sites/site-luid/bridge-clients

Filter by pool:

GET /api/api-version/sites/site-luid/bridge-clients?poolId=poolId

Filter by default pool:

GET /api/api-version/sites/site-luid/bridge-clients?onlyDefaultPool=boolean

Filter by unassigned:

GET /api/api-version/sites/site-luid/bridge-clients?onlyUnassigned=boolean

Only one filter can be specified at a time. Specifying multiple filters returns 400 Bad Request.

#### URI Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use, such as <code><span class="mc-variable Variables.REST-API-Version variable">3.29</span></code>. For more information, see <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-luid</span></td><td>The LUID for the site.</td></tr><tr><td><span class="api-placeholder">poolId</span></td><td>Optional. Filter by specific pool; returns only Bridge clients assigned to this pool. Mutually exclusive with <code>onlyDefaultPool</code> and <code>onlyUnassigned</code>.</td></tr><tr><td><span class="api-placeholder">onlyDefaultPool</span></td><td>Optional. If true, returns only Bridge clients in the default pool. Mutually exclusive with <code>poolId</code> and <code>onlyUnassigned</code>.</td></tr><tr><td><span class="api-placeholder">onlyUnassigned</span></td><td>Optional. If true, returns only Bridge clients not assigned to any pool. Mutually exclusive with <code>poolId</code> and <code>onlyDefaultPool</code>.</td></tr></tbody></table>

#### Request Body

None

#### cURL Request Example

`curl "https://myco/api/3.29/sites/9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d/bridge-clients" -X GET -H "X-Tableau-Auth:12ab34cd56ef78ab90cd12ef34ab56cd"`

#### Response Code

200

#### Response Body

```
<tsResponse>
  <bridgeClients>
    <bridgeClient id="12345" name="Bridge-Client-1" status="ONLINE" version="2024.1.0" poolId="abc-123-def-456" assignedToDefaultPool="false" unassigned="false" lastStatusConnectedTime="2024-10-30T10:30:00Z" ownerName="John Doe" ownerEmail="john.doe@example.com" />
    <bridgeClient id="67890" name="Bridge-Client-2" status="OFFLINE" version="2024.1.0" assignedToDefaultPool="true" unassigned="false" lastStatusConnectedTime="2024-10-29T15:45:00Z" ownerName="Jane Smith" ownerEmail="jane.smith@example.com" />
  </bridgeClients>
</tsResponse>
```

```
{
  "bridgeClients": {
    "bridgeClient": [
      {
        "id": "12345",
        "name": "Bridge-Client-1",
        "status": "ONLINE",
        "version": "2024.1.0",
        "poolId": "abc-123-def-456",
        "assignedToDefaultPool": false,
        "unassigned": false,
        "lastStatusConnectedTime": "2024-10-30T10:30:00Z",
        "ownerName": "John Doe",
        "ownerEmail": "john.doe@example.com"
      },
      {
        "id": "67890",
        "name": "Bridge-Client-2",
        "status": "OFFLINE",
        "version": "2024.1.0",
        "poolId": null,
        "assignedToDefaultPool": true,
        "unassigned": false,
        "lastStatusConnectedTime": "2024-10-29T15:45:00Z",
        "ownerName": "Jane Smith",
        "ownerEmail": "jane.smith@example.com"
      }
    ]
  }
}
```

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>400</td><td>BAD_REQUEST</td><td>Multiple filters specified</td><td>Only one filter parameter can be specified at a time (poolId, onlyDefaultPool, or onlyUnassigned).</td></tr><tr><td>400</td><td>BAD_REQUEST</td><td>Invalid poolId</td><td>The poolId specified is reserved and cannot be used as a filter.</td></tr><tr><td>401</td><td>401000 / 401002</td><td>Missing or invalid authentication</td><td>No authentication token provided, or token is expired or invalid.</td></tr><tr><td>403</td><td>403000</td><td>Insufficient permissions</td><td>User does not have Site Administrator role.</td></tr><tr><td>429</td><td>429000</td><td>Rate limit exceeded</td><td>Too many requests sent in a given time period.</td></tr><tr><td>500</td><td>503002</td><td>Unexpected server error</td><td>An unexpected error occurred while retrieving Bridge clients.</td></tr></tbody></table>

For more information, see [Handling Errors](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_errors.htm).

## List Bridge Pools

Retrieves a list of all Bridge pools for the specified site, including pool details and associated domain mappings.

Each pool includes its ID, display name, and domains with status ALLOWED or BLOCKED. There is no pagination; consider caching results for 5–15 minutes for large deployments.

This method is not available for Tableau Server.

**Version**: Available in API 3.28 (Tableau Cloud March 2026) and later. Not available for Tableau Server.

**License**: No additional license required.

**Permissions**: Tableau Cloud site admin.

**Access Scope**: `tableau:bridge_rest_api:read`

For more information, see [Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm), [Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm), [Access scopes for UATs](https://help.tableau.com/current/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes) (Cloud), and access scopes for [Cloud](https://help.tableau.com/current/online/en-us/connected_apps_scopes.htm), [Server-Windows,](https://help.tableau.com/current/server/en-us/connected_apps_scopes.htm) or [Server-Linux](https://help.tableau.com/current/server-linux/en-us/connected_apps_scopes.htm).

#### URI

GET /api/api-version/sites/site-luid/bridge-pools

#### URI Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use. For more information, see <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-luid</span></td><td>The LUID for the site.</td></tr></tbody></table>

#### Request Body

None

#### Response Code

200

#### Response Body

```
<tsResponse>
  <edgePool>
    <poolList>
      <pool id="abc-123-def-456" name="Production Pool">
        <domains>
          <domain name="example.com" status="ALLOWED" />
          <domain name="subdomain.example.com" status="ALLOWED" />
        </domains>
      </pool>
      <pool id="ghi-789-jkl-012" name="Development Pool">
        <domains>
          <domain name="dev.example.com" status="ALLOWED" />
        </domains>
      </pool>
    </poolList>
  </edgePool>
</tsResponse>
```

```
{
  "edgePool": {
    "poolList": [
      {
        "pool": {
          "id": "abc-123-def-456",
          "name": "Production Pool"
        },
        "domains": {
          "domain": [
            { "name": "example.com", "status": "ALLOWED" },
            { "name": "subdomain.example.com", "status": "ALLOWED" }
          ]
        }
      },
      {
        "pool": {
          "id": "ghi-789-jkl-012",
          "name": "Development Pool"
        },
        "domains": {
          "domain": [
            { "name": "dev.example.com", "status": "ALLOWED" }
          ]
        }
      }
    ]
  }
}
```

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>401</td><td>401000 / 401002</td><td>Missing or invalid authentication</td><td>No authentication token provided, or token is expired or invalid.</td></tr><tr><td>403</td><td>403000</td><td>Insufficient permissions</td><td>User does not have Site Administrator role.</td></tr><tr><td>429</td><td>429000</td><td>Rate limit exceeded</td><td>Too many requests sent in a given time period.</td></tr><tr><td>500</td><td>503903</td><td>Unexpected server error</td><td>An unexpected error occurred while retrieving pools.</td></tr></tbody></table>

For more information, see [Handling Errors](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_errors.htm).

## Move Bridge Client

Moves a Bridge client between pools or to unassigned status.

The operation is atomic (all-or-nothing). For moveToNamedPool the pool must exist and be a valid UUID; moveToUnassigned is useful for temporarily deactivating a client without deleting it.

This method is not available for Tableau Server.

**Version**: Available in API 3.28 (Tableau Cloud March 2026) and later. Not available for Tableau Server.

**License**: No additional license required.

**Permissions**: Tableau Cloud site admin.

**Access Scope**: `tableau:bridge_rest_api:update`

For more information, see [Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm), [Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm), [Access scopes for UATs](https://help.tableau.com/current/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes) (Cloud), and access scopes for [Cloud](https://help.tableau.com/current/online/en-us/connected_apps_scopes.htm), [Server-Windows,](https://help.tableau.com/current/server/en-us/connected_apps_scopes.htm) or [Server-Linux](https://help.tableau.com/current/server-linux/en-us/connected_apps_scopes.htm).

#### URI

PATCH /api/api-version/sites/site-luid/bridge-clients/bridge-client-id

#### URI Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use. For more information, see <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-luid</span></td><td>The LUID for the site.</td></tr><tr><td><span class="api-placeholder">bridge-client-id</span></td><td>The unique identifier for the Bridge client to move.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <bridgeClientMoveRequest>
    <moveToNamedPool poolId="abc-123-def-456" />
  </bridgeClientMoveRequest>
</tsRequest>
```

```
{
  "bridgeClientMoveRequest": {
    "moveToNamedPool": {
      "poolId": "abc-123-def-456"
    }
  }
}
```

#### Attribute Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1"> <col></colgroup><tbody><tr><td><span class="api-placeholder">poolId</span></td><td>Required when using <code>moveToNamedPool</code>. The UUID of the Bridge pool to move the client to.</td></tr><tr><td><span class="api-placeholder">moveToDefaultPool</span></td><td>Set to <code>true</code> to move the Bridge client to the default pool. Use in place of <code>moveToNamedPool</code>.</td></tr><tr><td><span class="api-placeholder">moveToUnassigned</span></td><td>Set to <code>true</code> to move the Bridge client to unassigned status. Use in place of <code>moveToNamedPool</code>.</td></tr></tbody></table>

#### Response Code

204 No Content

#### Response Body

None

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>400</td><td>BAD_REQUEST</td><td>Multiple operations specified</td><td>Cannot specify more than one move operation in a single request.</td></tr><tr><td>400</td><td>BAD_REQUEST</td><td>No operation / Missing poolId / Invalid poolId</td><td>Request must contain exactly one valid move operation; poolId required for moveToNamedPool and must be a valid UUID.</td></tr><tr><td>401</td><td>401000 / 401002</td><td>Missing or invalid authentication</td><td>No authentication token provided, or token is expired or invalid.</td></tr><tr><td>403</td><td>403000</td><td>Insufficient permissions</td><td>User does not have Site Administrator role.</td></tr><tr><td>404</td><td>503001</td><td>Bridge client not found</td><td>Bridge client with the specified ID does not exist on this site.</td></tr><tr><td>404</td><td>503005</td><td>Pool not found</td><td>The specified poolId does not exist on this site.</td></tr><tr><td>429</td><td>429000</td><td>Rate limit exceeded</td><td>Too many requests sent in a given time period.</td></tr><tr><td>500</td><td>503004</td><td>Unexpected server error</td><td>An unexpected error occurred while moving the Bridge client.</td></tr></tbody></table>

For more information, see [Handling Errors](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_errors.htm).

## Remove Projects from Routing Rule

Removes one or more project filtering conditions from an existing allow rule, broadening the rule so it no longer applies only to those projects.

This method applies to allow rules only; removing projects from a block rule is rejected. Each project ID must be a valid UUID.

This method is not available for Tableau Server.

**Version**: Available in API 3.30 (Tableau Cloud October 2026) and later. Not available for Tableau Server.

**License**: No additional license required.

**Permissions**: Tableau Cloud site admin.

**Access Scope**: `tableau:bridge_rest_api:update`

For more information, see [Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm), [Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm), [Access scopes for UATs](https://help.tableau.com/current/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes) (Cloud), and access scopes for [Cloud](https://help.tableau.com/current/online/en-us/connected_apps_scopes.htm), [Server-Windows,](https://help.tableau.com/current/server/en-us/connected_apps_scopes.htm) or [Server-Linux](https://help.tableau.com/current/server-linux/en-us/connected_apps_scopes.htm).

#### URI

DELETE /api/api-version/sites/site-luid/bridge-routing-rules/routing-rule-id/projects

#### URI Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use. For more information, see <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-luid</span></td><td>The LUID for the site.</td></tr><tr><td><span class="api-placeholder">routing-rule-id</span></td><td>The unique identifier (UUID) of the allow rule to remove projects from.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <routingRuleProjects mode="remove">
    <project id="11111111-2222-3333-4444-555555555555" />
  </routingRuleProjects>
</tsRequest>
```

```
{
  "routingRuleProjects": {
    "mode": "remove",
    "project": [
      { "id": "11111111-2222-3333-4444-555555555555" }
    ]
  }
}
```

#### Attribute Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1"> <col></colgroup><tbody><tr><td><span class="api-placeholder">mode</span></td><td>Required. The operation mode; must be <code>remove</code> for this method.</td></tr><tr><td><span class="api-placeholder">project</span></td><td>Required. One or more project IDs to remove. Each entry requires an <code>id</code>.</td></tr></tbody></table>

#### Response Code

200

#### Response Body

Returns the updated `routingRule` with the removed projects no longer present in `project`.

```
<tsResponse>
  <routingRule id="d9e8f7a6-b5c4-3210-fedc-ba9876543210" domain="example.com" isBlocked="false" poolId="ebae40a5-d7e4-4214-b3d5-b0715c627b71" poolName="WindowsPool">
  </routingRule>
</tsResponse>
```

```
{
  "routingRule": {
    "id": "d9e8f7a6-b5c4-3210-fedc-ba9876543210",
    "domain": "example.com",
    "isBlocked": false,
    "poolId": "ebae40a5-d7e4-4214-b3d5-b0715c627b71",
    "poolName": "WindowsPool",
    "project": []
  }
}
```

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>400</td><td>503909</td><td>Validation failed</td><td>Missing or empty project list, or invalid project or rule UUID.</td></tr><tr><td>400</td><td>503910</td><td>Invariant violation</td><td>Attempted to remove projects from a block rule.</td></tr><tr><td>401</td><td>401000 / 401002</td><td>Missing or invalid authentication</td><td>No authentication token provided, or token is expired or invalid.</td></tr><tr><td>403</td><td>503923</td><td>Permission denied</td><td>Caller is not a site administrator for the site.</td></tr><tr><td>404</td><td>503915</td><td>Routing rule not found</td><td>No routing rule exists with the given ID on this site.</td></tr><tr><td>429</td><td>429000</td><td>Rate limit exceeded</td><td>Too many requests sent in a given time period.</td></tr><tr><td>500</td><td>503922</td><td>Unexpected server error</td><td>An unexpected error occurred while removing projects.</td></tr></tbody></table>

For more information, see [Handling Errors](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_errors.htm).

## Update Bridge Pool

Updates the display name of an existing Bridge pool.

The pool ID and domain/Bridge client assignments are unchanged.

This method is not available for Tableau Server.

**Version**: Available in API 3.28 (Tableau Cloud March 2026) and later. Not available for Tableau Server.

**License**: No additional license required.

**Permissions**: Tableau Cloud site admin.

**Access Scope**: `tableau:bridge_rest_api:update`

For more information, see [Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm), [Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm), [Access scopes for UATs](https://help.tableau.com/current/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes) (Cloud), and access scopes for [Cloud](https://help.tableau.com/current/online/en-us/connected_apps_scopes.htm), [Server-Windows,](https://help.tableau.com/current/server/en-us/connected_apps_scopes.htm) or [Server-Linux](https://help.tableau.com/current/server-linux/en-us/connected_apps_scopes.htm).

#### URI

PATCH /api/api-version/sites/site-luid/bridge-pools/pool-id

#### URI Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use. For more information, see <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-luid</span></td><td>The LUID for the site.</td></tr><tr><td><span class="api-placeholder">pool-id</span></td><td>The unique identifier (UUID) of the pool to update.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <edgePool>
    <pool name="Updated Production Pool" />
  </edgePool>
</tsRequest>
```

```
{
  "edgePool": {
    "pool": {
      "name": "Updated Production Pool"
    }
  }
}
```

#### Attribute Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1"> <col></colgroup><tbody><tr><td><span class="api-placeholder">name</span></td><td>Required. New display name for the pool, 1–80 characters, unique on the site (excluding the current pool).</td></tr></tbody></table>

#### Response Code

200

#### Response Body

None

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>400</td><td>409004 / 400929</td><td>Invalid pool ID, missing name, or duplicate name</td><td>Pool ID must be valid UUID; name required, 1–80 characters, unique (excluding current pool).</td></tr><tr><td>401</td><td>401000 / 401002</td><td>Missing or invalid authentication</td><td>No authentication token provided, or token is expired or invalid.</td></tr><tr><td>403</td><td>403000</td><td>Insufficient permissions</td><td>User does not have Site Administrator role.</td></tr><tr><td>429</td><td>429000</td><td>Rate limit exceeded</td><td>Too many requests sent in a given time period.</td></tr><tr><td>500</td><td>503901</td><td>Unexpected server error</td><td>An unexpected error occurred while updating the pool.</td></tr></tbody></table>

For more information, see [Handling Errors](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_errors.htm).

## Update Domain Among Pools

Moves a domain from its current pool to a different pool.

The operation is atomic (all-or-nothing); on failure the domain mapping is unchanged.

This method is not available for Tableau Server.

**Version**: Available in API 3.28 (Tableau Cloud March 2026) and later. Not available for Tableau Server.

**License**: No additional license required.

**Permissions**: Tableau Cloud site admin.

**Access Scope**: `tableau:bridge_rest_api:update`

For more information, see [Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm), [Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm), [Access scopes for UATs](https://help.tableau.com/current/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes) (Cloud), and access scopes for [Cloud](https://help.tableau.com/current/online/en-us/connected_apps_scopes.htm), [Server-Windows,](https://help.tableau.com/current/server/en-us/connected_apps_scopes.htm) or [Server-Linux](https://help.tableau.com/current/server-linux/en-us/connected_apps_scopes.htm).

#### URI

PATCH /api/api-version/sites/site-luid/bridge-domain-maps/change-pool-assignment

#### URI Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use. For more information, see <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-luid</span></td><td>The LUID for the site.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <bridgeDomain existingDomainName="example.com" newPoolLuid="ebae40a5-d7e4-4214-b3d5-b0715c627b71" />
</tsRequest>
```

```
{
  "bridgeDomain": {
    "existingDomainName": "example.com",
    "newPoolLuid": "ebae40a5-d7e4-4214-b3d5-b0715c627b71"
  }
}
```

#### Attribute Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1"> <col></colgroup><tbody><tr><td><span class="api-placeholder">existingDomainName</span></td><td>Required. The domain to move.</td></tr><tr><td><span class="api-placeholder">newPoolLuid</span></td><td>Required. The UUID of the target Bridge pool.</td></tr></tbody></table>

#### Response Code

200

#### Response Body

None

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>400</td><td>409004</td><td>Invalid domain name, invalid pool ID, domain not found, or pool not found</td><td>Domain and pool ID must be valid; domain and pool must exist on the site.</td></tr><tr><td>401</td><td>401000 / 401002</td><td>Missing or invalid authentication</td><td>No authentication token provided, or token is expired or invalid.</td></tr><tr><td>403</td><td>403000</td><td>Insufficient permissions</td><td>User does not have Site Administrator role.</td></tr><tr><td>429</td><td>429000</td><td>Rate limit exceeded</td><td>Too many requests sent in a given time period.</td></tr><tr><td>500</td><td>503906</td><td>Unexpected server error</td><td>An unexpected error occurred while updating the domain.</td></tr></tbody></table>

For more information, see [Handling Errors](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_errors.htm).

## Update Domain Name

Updates an existing domain mapping by renaming the domain.

The operation is atomic (all-or-nothing).

This method is not available for Tableau Server.

**Version**: Available in API 3.28 (Tableau Cloud March 2026) and later. Not available for Tableau Server.

**License**: No additional license required.

**Permissions**: Tableau Cloud site admin.

**Access Scope**: `tableau:bridge_rest_api:update`

For more information, see [Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm), [Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm), [Access scopes for UATs](https://help.tableau.com/current/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes) (Cloud), and access scopes for [Cloud](https://help.tableau.com/current/online/en-us/connected_apps_scopes.htm), [Server-Windows,](https://help.tableau.com/current/server/en-us/connected_apps_scopes.htm) or [Server-Linux](https://help.tableau.com/current/server-linux/en-us/connected_apps_scopes.htm).

#### URI

PATCH /api/api-version/sites/site-luid/bridge-domain-maps/update-domain-name

#### URI Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use. For more information, see <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-luid</span></td><td>The LUID for the site.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <bridgeDomain existingDomainName="existing-domain.com" newDomainName="new-domain.com" />
</tsRequest>
```

```
{
  "bridgeDomain": {
    "existingDomainName": "existing-domain.com",
    "newDomainName": "new-domain.com"
  }
}
```

#### Attribute Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1"> <col></colgroup><tbody><tr><td><span class="api-placeholder">existingDomainName</span></td><td>Required. The current domain name.</td></tr><tr><td><span class="api-placeholder">newDomainName</span></td><td>Required. The new domain name. Must not already exist in the system.</td></tr></tbody></table>

#### Response Code

200

#### Response Body

None

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>400</td><td>409004</td><td>Invalid existing/new domain name, domain not found, or new name exists</td><td>Domain names must conform to valid format; existing domain must exist; new name must not already be in use.</td></tr><tr><td>401</td><td>401000 / 401002</td><td>Missing or invalid authentication</td><td>No authentication token provided, or token is expired or invalid.</td></tr><tr><td>403</td><td>403000</td><td>Insufficient permissions</td><td>User does not have Site Administrator role.</td></tr><tr><td>429</td><td>429000</td><td>Rate limit exceeded</td><td>Too many requests sent in a given time period.</td></tr><tr><td>500</td><td>503906</td><td>Unexpected server error</td><td>An unexpected error occurred while updating the domain.</td></tr></tbody></table>

For more information, see [Handling Errors](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_errors.htm).

## Update Routing Rule

Partially updates an existing Bridge routing rule.

You can change the rule's `domain`, `poolId`, and `isBlocked` flag. At least one attribute must be supplied; only the supplied attributes are changed. Project scoping is not changed here—use the Add Projects to Routing Rule and Remove Projects from Routing Rule methods.

This method is not available for Tableau Server.

**Version**: Available in API 3.30 (Tableau Cloud October 2026) and later. Not available for Tableau Server.

**License**: No additional license required.

**Permissions**: Tableau Cloud site admin.

**Access Scope**: `tableau:bridge_rest_api:update`

For more information, see [Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm), [Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm), [Access scopes for UATs](https://help.tableau.com/current/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes) (Cloud), and access scopes for [Cloud](https://help.tableau.com/current/online/en-us/connected_apps_scopes.htm), [Server-Windows,](https://help.tableau.com/current/server/en-us/connected_apps_scopes.htm) or [Server-Linux](https://help.tableau.com/current/server-linux/en-us/connected_apps_scopes.htm).

#### URI

PATCH /api/api-version/sites/site-luid/bridge-routing-rules/routing-rule-id

#### URI Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use. For more information, see <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-luid</span></td><td>The LUID for the site.</td></tr><tr><td><span class="api-placeholder">routing-rule-id</span></td><td>The unique identifier (UUID) of the routing rule to update.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <routingRule domain="new.example.com" poolId="b2c3d4e5-6f70-8192-a3b4-c5d6e7f80910" />
</tsRequest>
```

```
{
  "routingRule": {
    "domain": "new.example.com",
    "poolId": "b2c3d4e5-6f70-8192-a3b4-c5d6e7f80910"
  }
}
```

#### Attribute Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1"> <col></colgroup><tbody><tr><td><span class="api-placeholder">domain</span></td><td>Optional. A new domain for the rule.</td></tr><tr><td><span class="api-placeholder">isBlocked</span></td><td>Optional. Changes the rule between a block rule (<code>true</code>) and an allow rule (<code>false</code>).</td></tr><tr><td><span class="api-placeholder">poolId</span></td><td>Required when transitioning to an allow rule. The UUID of the target Bridge pool. Must be omitted when the rule is, or becomes, a block rule.</td></tr></tbody></table>

#### Response Code

200

#### Response Body

Returns the updated `routingRule`, identical in shape to the Create Routing Rule response.

```
<tsResponse>
  <routingRule id="d9e8f7a6-b5c4-3210-fedc-ba9876543210" domain="new.example.com" isBlocked="false" poolId="b2c3d4e5-6f70-8192-a3b4-c5d6e7f80910" poolName="WindowsPool">
    <project id="11111111-2222-3333-4444-555555555555" name="Finance" isDeleted="false" />
  </routingRule>
</tsResponse>
```

```
{
  "routingRule": {
    "id": "d9e8f7a6-b5c4-3210-fedc-ba9876543210",
    "domain": "new.example.com",
    "isBlocked": false,
    "poolId": "b2c3d4e5-6f70-8192-a3b4-c5d6e7f80910",
    "poolName": "WindowsPool",
    "project": [
      { "id": "11111111-2222-3333-4444-555555555555", "name": "Finance", "isDeleted": false }
    ]
  }
}
```

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>400</td><td>503909</td><td>Validation failed</td><td>Empty update (no attributes supplied), invalid <span class="api-placeholder">routing-rule-id</span> or <code>poolId</code> UUID, blank or invalid domain, or <code>poolId</code> missing when transitioning to an allow rule.</td></tr><tr><td>400</td><td>503910</td><td>Invariant violation</td><td><code>poolId</code> supplied while the rule is, or becomes, a block rule.</td></tr><tr><td>401</td><td>401000 / 401002</td><td>Missing or invalid authentication</td><td>No authentication token provided, or token is expired or invalid.</td></tr><tr><td>403</td><td>503923</td><td>Permission denied</td><td>Caller is not a site administrator for the site.</td></tr><tr><td>404</td><td>503915</td><td>Routing rule not found</td><td>No routing rule exists with the given ID on this site.</td></tr><tr><td>409</td><td>503911</td><td>Duplicate routing rule</td><td>The update would collide with an existing rule for the same domain and project scope.</td></tr><tr><td>429</td><td>429000</td><td>Rate limit exceeded</td><td>Too many requests sent in a given time period.</td></tr><tr><td>500</td><td>503917</td><td>Unexpected server error</td><td>An unexpected error occurred while updating the rule.</td></tr></tbody></table>

For more information, see [Handling Errors](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_errors.htm).