---
schema_version: "1"
id: bb4b28adeae8a7ca8ce6c468517c20cccb1a33f5e66670d3006da24acf3b446d
title: Metadata 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_metadata.md
canonical_url: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_metadata.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 85fe4047d6ef9fefeceff90ed963fc420319557ecd2722fa37ec4a27d7c7bdce
description: Metadata methods have been released incrementally beginning with Tableau version 2019
---
[Skip to main content](#main-content)

# Metadata Methods

Metadata methods have been released incrementally beginning with Tableau version 2019.3.

Using the metadata methods of the Tableau REST API, you can do the following tasks with Tableau metadata. Some methods require Data Management and are noted where this applies.

**Database**, including files (external asset type)

- Query a database or multiple databases
- Update (e.g., certify), move, or remove a database
- Add, query, or delete database permissions
- Add, query, or delete default database permissions

**Table** (external asset type)

- Query a table or multiple tables
- Update (e.g., certify), move, or remove a table
- Add, query, or delete table permissions

**Column** (external asset type)

- Query a column or multiple columns that belong to a specific table
- Update the column description or remove a column that belongs to a specific table

**Label** (a common interface for managing certifications, data quality warnings, sensitivity labels, and other data labels)

- Add, update, or delete labels
- Query labels on one or more assets
- Get, list, create, update, or delete label values
- List, create, update, or delete label categories

**Quality warning trigger** (enables monitoring of content and displays alerts when extract refresh and flow run failures occur)

- Add, update, delete quality warning trigger
- Query quality warning trigger

**Tag** (keywords that helps users find, filter, and categorize external assets and Tableau content)

- Add tags to a database, table, or column
- Delete a tag from a database, table, or column
- Batch add and delete tags on Tableau content and external assets

**Data quality warning (DQW)** (conveys data quality warning information about databases, tables, published data sources, and flows)  

- Add, update (e.g., severity), or delete a data quality warning
- Query data quality warnings
- Batch add, update, or delete data quality warnings to and from Tableau content and external assets

_**Note**: Both data quality warnings and certifications can be more generally managed through the newer **Label** methods. Tableau recommends using them instead._

**Data quality certification** (conveys data quality certification information for databases, tables, and data sources)  

- Add, update, or delete a data quality certification
- Query data quality certification

_**Note**: Both data quality certifications and warnings can be more generally managed through the newer **Label** methods. Tableau recommends using them instead._

The above functionality relates to metadata concepts and Data Catalog UI elements described at: [About Tableau Catalog](https://help.tableau.com/current/server/en-us/dm_catalog_overview.htm).

For deeper and more comprehensive API functionality for querying metadata and schema information for Tableau content, see [Tableau Metadata API](https://help.tableau.com/current/api/metadata_api/en-us/index.html) Help.

## Use Postman

Our Postman collection of requests enables you to construct, send, and examine HTTP requests to the Tableau Server or Tableau Cloud API without writing initial code. Postman is a free online app used by many developers for prototyping API calls, investigating issues, and generating request code in a variety of languages.

[Postman: Metadata](https://www.postman.com/salesforce-developers/salesforce-developers/folder/hiib1bv/metadata)

## Add Database Permissions

Add permissions to a database asset.

To add permissions, the database asset must be associated with a published data source.

**Version:** Available in API 3.5 (Tableau Cloud and Tableau Server) and later.  _[Version Overview](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm)_

**License:** Available with [Tableau Data Management](https://help.tableau.com/current/online/en-us/dm_overview.htm).

**Permissions:** Users that are granted ChangePermissions capabilities for the asset metadata and all administrators can add database permissions.  _[Permissions Overview](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm)_

**JWT Access Scope**: _Not available._      

#### URI

PUT api/_api-version_/sites/_site-luid_/databases/_database-luid_/permissions

#### 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 of the site asset.</td></tr><tr><td><span class="api-placeholder">database-luid</span></td><td>The LUID of the database asset.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <permissions>
    <database id="8d4aa9f-3d1a-4b49-8d6d-27f113cbd25e" />
    <granteeCapabilities>
      <user id="user-luid" />
      <capabilities>
        <capability name="ChangePermissions" mode="allow" />
        <!-- ...  additional capabilities ... -->
      </capabilities>
    </granteeCapabilities>
    <granteeCapabilities>
      <group id="group-luid" />
 	  <capabilities>
	    <capability name="Read" mode="Allow" />
	    <!-- ...  additional capabilities ... -->
	  </capabilities>
	</granteeCapabilities>
    <!-- ... additional grantee capability sets ...  -->
  </permissions>
</tsRequest>
```

#### Attribute Values

```
{
  "permissions": {
    "database": {
      "id": "1d4aa9f-3d1a-4b49-8d6d-27f113cbd25e"
    },
    "granteeCapabilities": [
      {
        "user": {
          "@id": "2d4aa9f-3d1a-4b49-8d6d-27f113cbd25e"
        },
        "capabilities": {
          "capability": {
            "name": "ChangePermissions",
            "mode": "allow"
          }
        }
      },
      {
        "group": {
          "id": "3d4aa9f-3d1a-4b49-8d6d-27f113cbd25e"
        },
        "capabilities": {
          "capability": {
            "name": "Read",
            "mode": "Allow"
          }
        }
      }
    ]
  }
}
```

#### Request Attributes

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><code>database</code>
                                </td>
                                <td>The LUID of the database asset you want to add permissions to.</td>
                            </tr>
                            <tr>
                                <td><code>user id</code>
                                </td>
                                <td>The LUID of the user to add permissions for.</td>
                            </tr>
                            <tr>
                                <td><code>capability name</code>
                                </td>
                                <td>
                                    <p>The capability to assign. If any capability has been granted or denied for a specified user or group, that capability is ignored. Valid capabilities for a database are:</p>
                                    <ul>
                                        <li><b>Read</b> (view)</li>
                                        <li><b>Write</b> (edit)</li>
                                        <li><b>ChangePermissions</b> (set permissions)</li>
                                        <li><b>ChangeHierarchy</b> (move)</li>
                                    </ul>
                                    <p>These values are case sensitive.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><code>capability mode</code>
                                </td>
                                <td>
                                    <p>Use one of the following capabilities:</p>
                                    <ul>
                                        <li><b>Allow</b>
                                        </li>
                                        <li><b>Deny</b>
                                        </li>
                                    </ul>
                                    <p>These values are case sensitive.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><code>group id</code>
                                </td>
                                <td>The LUID of the group to add permissions for.</td>
                            </tr>
                        </tbody>
                    </table>

#### Response Code

200

#### Response Body

```
<tsResponse>
  <permissions>
	<database id="e8d4aa9f-3d1a-4b49-8d6d-27f113cbd25e" name="oracle.test.tsi.lan:1521"/>
	<granteeCapabilities>
	  <user id="6265b714-7533-465d-b6db-6d0be92bfd07"/>
	  <capabilities>
		<capability name="Read" mode="Allow"/>
	  </capabilities>
	</granteeCapabilities>
  </permissions>
</tsResponse>
```

```
{
  "permissions": {
    "database": {
      "id": "e8d4aa9f-3d1a-4b49-8d6d-27f113cbd25e",
      "name": "oracle.test.tsi.lan:1521"
    },
    "granteeCapabilities": {
      "user": {
        " id": "6265b714-7533-465d-b6db-6d0be92bfd07"
      },
      "capabilities": {
        "capability": {
          "name": "Read",
          "mode": "Allow"
        }
      }
    }
  }
}
```

#### 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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>400</td><td>400120</td><td>Bad request</td><td>Permissions could not be added because support for explicit permissions is available for database assets associated with published data sources only.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site LUID in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404031</td><td>Database not found</td><td>The requested database could not be found.</td></tr><tr><td>405</td><td>405000</td><td>Invalid request method</td><td>Request type was not <span class="uicontrol">PUT</span>.</td></tr><tr><td>409</td><td>409045</td><td>Database error</td><td>An unknown database asset error occurred.</td></tr><tr><td>409</td><td>409050</td><td>Database update error</td><td>An unknown error occurred and the database asset could not be updated.</td></tr><tr><td>409</td><td>409051</td><td>Database update forbidden</td><td>A user without "write"&nbsp;permissions to the database asset attempted an update.</td></tr></tbody></table>

## Add Default Database Permissions

Adds default permission capabilities to a user or group for table resources in that database.

Default permissions function as a permissions template for the database's table assets.

Note: If a database is in a project, default database permissions are not evaluated to determine table permissions. Use the [Add Default Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#add_default_permissions) method to control default permission capabilities on tables through projects instead.

How default permissions are enforced depends on whether the database is locked or unlocked.

- **Locked to the database:** If the permissions on a database are locked or Locked to the database, existing child table assets and new child table assets that get indexed by Catalog will inherit the default permissions applied to the parent database asset. **Note:** If the database is locked, explicit permissions cannot be made for individual tables.
- **Managed by the owner:** If the permissions on a database are unlocked or **Managed by the owner**, only new child table assets that get indexed by Catalog will inherit the default permissions applied to the parent database asset. **Note:** If the database is unlocked, explicit permissions for the table can be made in a separate request.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

PUT /api/_api-version_/sites/_site-luid_/databases/_database-luid_/default-permissions/tables

#### 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 of the site asset.</td></tr><tr><td><span class="api-placeholder">database-luid</span></td><td>The LUID of the database asset to set default permissions for.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <permissions>
    <granteeCapabilities>
      <user id="user-luid" />
      <capabilities>
        <capability name="capability-name" mode="capability-mode" />
        <!-- ... additional capabilities ... -->
      </capabilities>
    </granteeCapabilities>
    <granteeCapabilities>
      <group id="group-luid" />
      <capabilities>
        <capability name="capability-name" mode="capability-mode" />
        <!-- ...  additional capabilities ... -->
      </capabilities>
    </granteeCapabilities>
    <!-- ... additional grantee capability sets ... -->
  </permissions>
</tsRequest>
```

#### Attribute Values

<table class="api-parameters-table">
                            <colgroup>
                                <col class="api-parameters-table-col-1-extra-wide">
                                <col>
                            </colgroup>
                            <tbody>
                                <tr>
                                    <td><span class="api-placeholder">user-luid</span>
                                    </td>
                                    <td>The LUID of the user to add default permissions for.</td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">group-luid</span>
                                    </td>
                                    <td>The LUID of the group to add permissions for.</td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">capability-name</span>
                                    </td>
                                    <td>
                                        <p>                                     The capability to assign. If any capability has been granted or denied for a specified user or group, that capability is ignored. Valid capabilities for a databases are the following:                                    </p>
                                        <ul>
                                            <li><b>Read</b> (view)
                                </li>
                                            <li><b>Write</b> (edit)
                                </li>
                                            <li><b>ChangePermissions</b> (set permissions)</li>
                                            <li><b>ChangeHierarchy</b> (move)</li>
                                        </ul>
                                        <p>These values are case sensitive.</p>
                                    </td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">capability-mode</span>
                                    </td>
                                    <td>
                                        <p>Use one of the following capabilities: </p>
                                        <ul>
                                            <li><span class="api-command-ref">Allow</span>
                                            </li>
                                            <li><span class="api-command-ref">Deny</span>
                                            </li>
                                        </ul>
                                        <p>These values are case sensitive.</p>
                                    </td>
                                </tr>
                            </tbody>
                        </table>

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following authorized users set default permissions for the database asset:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to set or "ChangePermissions" to the asset metadata

#### Response Code

200

#### Response Body

```
<tsResponse>
  <permissions>
	<database id="e8d4aa9f-3d1a-4b49-8d6d-27f113cbd25e" name="oracle.test.tsi.lan:1521"/>
	<granteeCapabilities>
	  <user id="6265b714-7533-465d-b6db-6d0be92bfd07"/>
	  <capabilities>
		<capability name="Read" mode="Allow"/>
	  </capabilities>
	</granteeCapabilities>
  </permissions>
</tsResponse>
```

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### 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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>403</td><td>403004</td><td>Permissions setting forbidden</td><td>A non-administrator user called this method but doesn't have permission to add permissions on the project.</td></tr><tr><td>403</td><td>403114</td><td>Permissions setting forbidden</td><td>Default permissions cannot be added because the database asset is locked.</td></tr><tr><td>404</td><td>404000</td><td>Site not found</td><td>The site LUID in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404003</td><td>Resource not found</td><td>The database LUID&nbsp;in the URI doesn't correspond to a database asset on the site.</td></tr><tr><td>404</td><td>404002</td><td>User not found</td><td>A user LUID in the request body as the grantee doesn't correspond to an existing user.</td></tr><tr><td>404</td><td>404012</td><td>Group not found</td><td>A group LUID in the request body doesn't correspond to an existing group.</td></tr><tr><td>404</td><td>404013</td><td>Capability not found</td><td>The capability in the request body doesn't correspond to a defined capability. This can apply to either an invalid capability name or to a capability other than <b>Allow</b> or <span class="api-command-ref">Deny</span> for any mode value.</td></tr><tr><td>405</td><td>405000</td><td>Invalid request method</td><td>Request type was not <span class="api-command-ref">PUT</span>.</td></tr></tbody></table>

## Add Data Quality Warning

Add a data quality warning to a database, table, column, published data source, flow, virtual connection, or virtual connection table.

**Note:** Data quality warnings and certifications can be more generally managed through the newer **Labels** methods. Tableau recommends using them to help ensure that you can manage your assets as new features are developed.

Try the [Update Labels](#update_labels_on_assets) method instead.

The Add Data Quality Warning method adds a data quality warning to an asset. (An automatically-generated monitoring warning does not count towards this limit.) In Tableau Cloud February 2024 and Tableau Server 2024.2 and earlier, adding a data quality warning to an asset that already has one causes an error.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

POST api/_api-version_/sites/_site-id_/dataQualityWarnings/_content-type_/_content-luid_

#### 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-id</span>
                                    </td>
                                    <td>The unique ID of the site asset.</td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">content-type</span>
                                    </td>
                                    <td>
                            The type of asset that the data quality warning is being attached to. To specify the  type, use:
                            <ul><li><span class="uicontrol">database</span></li><li><span class="uicontrol">table</span></li><li><span class="uicontrol">column</span> <i>- Available in API 3.16 and later (Tableau Cloud October 2022, Server 2022.3)</i></li><li><span class="uicontrol">datasource</span></li><li><span class="uicontrol">flow</span></li><li><span class="uicontrol">virtual connection</span></li><li><span class="uicontrol">virtual connection table</span></li></ul><p>These values are not case sensitive.</p></td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">content-luid</span>
                                    </td>
                                    <td>
                            The unique ID of the asset (database, table, column, published data source, flow, virtual connection, or virtual connection table). This is the same as the content ID.
                        </td>
                                </tr>
                            </tbody>
                        </table>

#### Request Body

```
<tsRequest>
  <dataQualityWarning type="type" isActive="state" message="message" isSevere="severity"/>
</tsRequest>
```

#### Attribute Values

Any combination of attributes inside the **<dataQualityWarning>** element is valid, but the data quality warning type is required. If the data quality warning type is not included, an error is thrown.

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">type</span>
                                </td>
                                <td>
                                    <p>Type of data quality warning to apply to the asset. To specify the type, use one of the following values:</p>
                                    <ul>
                                        <li><span class="uicontrol">DEPRECATED</span>
                                        </li>
                                        <li><span class="uicontrol">WARNING</span>
                                        </li>
                                        <li><span class="uicontrol">STALE</span>
                                        </li>
                                        <li><span class="uicontrol">SENSITIVE_DATA</span>
                                        </li>
                                        <li><span class="uicontrol">MAINTENANCE</span>
                                        </li>
                                    </ul>
                                    <p>These values are case sensitive.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">state</span>
                                </td>
                                <td>
                                    <p>(Optional) Controls whether the data quality warning displays. Value can be "<span class="uicontrol">true</span>" or "<span class="uicontrol">false</span>". If the state is not specified, the data quality warning is set to "true" and is visible by default.  For more information about data quality warnings, see "Set a Data Quality Warning" in the <a href="https://help.tableau.com/current/server/en-us/dm_dqw.htm">Server Help</a> or <a href="https://help.tableau.com/current/online/en-us/dm_dqw.htm">Cloud Help</a>.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">message</span>
                                </td>
                                <td>
                                    <p>(Optional. Was required in Tableau Server 2023.3 and earlier.)</p>
                                    <p>A custom message to accompany the data quality warning. You can format the message with italics, bold text, links, images, and more. Use HTML character entities to match the special characters in the <a href="https://help.tableau.com/current/api/rest_api/en-us/Img/formatting_guide.png" target="_blank">formatting guide</a> that's normally visible as a tooltip in the UI.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">severity</span>
                                </td>
                                <td>(Optional) Enables high visibility for the data quality warning when set to "<span class="uicontrol">true</span>". Value can be "<span class="uicontrol">true</span>" or "<span class="uicontrol">false</span>". For more information, see the "Visibility" section of the "Set a Data Quality Warning" topic in the <a href="https://help.tableau.com/current/server/en-us/dm_dqw.htm#high_visibility">Server Help</a> or <a href="https://help.tableau.com/current/online/en-us/dm_dqw.htm#high_visibility">Cloud Help</a>. </td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to add the data quality warning:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:labels:update
```

For more information, see [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 connected apps: [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).

#### Response Code

201

#### Response Body

**Example response:**

```
<tsResponse>
   <dataQualityWarning id="1c8ebdfc-270a-4414-812c-3306a1c95e07" userDisplayName="Steve Nguyen"
	contentId="0d7465f2-4989-417e-b88d-f787359edc63" contentType="DATABASE" message="Delayed"
	type="WARNING" isActive="true" createdAt="2020-10-08T00:00:35Z" isSevere="false">
	<site id="a946d998-2ead-4894-bb50-1054a91dcab3"/>
	<owner id="cdfe8548-84c8-418e-9b33-2c0728b1234a"/>
   </dataQualityWarning>
</tsResponse>
```

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>400</td><td>400108</td><td>Generic add data quality warning error</td><td>The data quality warning could not be added for some other reason than those specified in this table.</td></tr><tr><td>400</td><td>400109</td><td>Bad request</td><td>The request body is missing the data quality warning type.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>403</td><td>403004</td><td>Unauthorized operation</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site ID in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404029</td><td>Content not found</td><td>The requested asset could not be found.</td></tr><tr><td>409</td><td>409004</td><td>Invalid parameter</td><td>One or more values in the request body are invalid.</td></tr></tbody></table>

## Batch Add or Update Data Quality Warnings

Add or update multiple data quality warnings on assets.

**Note:** Data quality warnings and certifications can be more generally managed through the newer **Labels** methods. Tableau recommends using them to help ensure that you can manage your assets as new features are developed.

Try the [Update Labels](#update_labels_on_assets) method instead.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

POST api/api-version/sites/site-id/dataQualityWarnings/createOrUpdate

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <contentList>
	<content contentType="content" id="database-id" />
	<content contentType="content" id="table-id" />
	<content contentType="content" id="column-id" />
	<content contentType="content" id="datasource-id" />
	<content contentType="content" id="flow-id" />
	<content contentType="content" id="virtualconnection-id" />
	<content contentType="content" id="virtualconnectiontable-id" />
  </contentList>
  <dataQualityWarning type="type" message="message" isActive="state" isSevere="severity" />
</tsRequest>
```

#### Attribute Values

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">content</span>
                                </td>
                                <td>
                                    <p>The type of content or asset the data quality warning is attached to. To specify type, use one of the following values:</p>
                                    <ul>
                                        <li><span class="api-label">database</span>
                                        </li>
                                        <li><span class="api-label">table</span>
                                        </li>
                                        <li><span class="api-label">column</span> <i>- Available in API 3.16 and later (Tableau Cloud October 2022, Server 2022.3)</i></li>
                                        <li><span class="api-label">datasource</span>
                                        </li>
                                        <li><span class="api-label">flow</span>
                                        </li>
                                        <li><span class="api-label">virtualconnection</span>
                                        </li>
                                        <li><span class="api-label">virtualconnectiontable</span>
                                        </li>
                                    </ul>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">database-id</span>
                                </td>
                                <td>The unique ID of the database asset.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">table-id</span>
                                </td>
                                <td>The unique ID of the table asset.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">column-id</span>
                                </td>
                                <td>The unique ID of the column asset.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">datasource-id</span>
                                </td>
                                <td>The unique ID of the data source content.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">flow-id</span>
                                </td>
                                <td>The unique ID of the flow content.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">virtualconnection-id</span>
                                </td>
                                <td>The unique ID of the virtual connection.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">virtualconnectiontable-id</span>
                                </td>
                                <td>The unique ID of the virtual connection table.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">type</span>
                                </td>
                                <td>
                                    <p>The type of data quality warning to apply to the content or asset. To specify type, use one of the following values:</p>
                                    <ul>
                                        <li><span class="uicontrol">DEPRECATED</span>
                                        </li>
                                        <li><span class="uicontrol">WARNING</span>
                                        </li>
                                        <li><span class="uicontrol">STALE</span>
                                        </li>
                                        <li><span class="uicontrol">SENSITIVE_DATA</span>
                                        </li>
                                        <li><span class="uicontrol">MAINTENANCE</span>
                                        </li>
                                    </ul>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">message</span>
                                </td>
                                <td>(Optional) A custom message to accompany the data quality warning. You can format the message with italics, bold text, links, images, and more. Use HTML character entities to match the special characters in the <a href="https://help.tableau.com/current/api/rest_api/en-us/Img/formatting_guide.png" target="_blank">formatting guide</a> that's normally visible as a tooltip in the UI.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">state</span>
                                </td>
                                <td>(Optional) Controls whether the data quality warning displays. Value can be "<span class="uicontrol">true</span>" or "<span class="uicontrol">false</span>". If the state is not specified, the data quality warning is set to "true" and is visible by default.  For more information about data quality warnings, see "Set a Data Quality Warning" in the <a href="https://help.tableau.com/current/server/en-us/dm_dqw.htm">Server Help</a> or <a href="https://help.tableau.com/current/online/en-us/dm_dqw.htm">Cloud Help</a>.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">severity</span>
                                </td>
                                <td>(Optional) Enables high visibility for when the data quality warning is set to "<span class="uicontrol">true</span>". Value can be "<span class="uicontrol">true</span>" or "<span class="uicontrol">false</span>". For more information, see the "Visibility" section of the "Set a Data Quality Warning" topic in the <a href="https://help.tableau.com/current/server/en-us/dm_dqw.htm#high_visibility">Server Help</a> or <a href="https://help.tableau.com/current/online/en-us/dm_dqw.htm#high_visibility">Cloud Help</a>. </td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to batch add or update data quality warnings:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:labels:update
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response**

```
<tsRequest>
  <dataQualityWarningList>
	<dataQualityWarning id="8f58aa47-7313-4504-8537-52d869552e18" userDisplayName="Mark Nguyen" contentId="7cfd2ac8-a934-4aa8-bf24-96bff08a019c" contentType="DATABASE" message="Contact admin with questions" type="WARNING" isActive="true" createdAt="2021-06-26T21:34:46Z" updatedAt="2021-06-26T21:34:46Z" isSevere="true">
	  <site id="1e4b3aa0-b48a-4b8e-9bdf-74b7596b9f0a" />
	  <owner id="adcc51d7-8558-4099-9f87-dc1a1615d297" />
	</dataQualityWarning>
	<dataQualityWarning id="c8f0b332-a1c1-48f1-b650-86f342ab937f" userDisplayName="Mark Nguyen" contentId="f6dcfd24-7c65-40f4-a3f3-c29f91b7731e" contentType="DATASOURCE" message="Contact admin with questions" type="WARNING" isActive="true" createdAt="2021-06-26T21:34:46Z" updatedAt="2021-06-26T21:34:46Z" isSevere="true">
	  <site id="1e4b3aa0-b48a-4b8e-9bdf-74b7596b9f0a" />
	  <owner id="adcc51d7-8558-4099-9f87-dc1a1615d297" />
	<dataQualityWarning>
  </dataQualityWarningList>
</tsRequest>
```

#### Version

Version 3.12 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400109</td><td>Bad request</td><td>The content of the request body (content type, content id, or dataQualityWarning attributes) is missing, incomplete, or contains malformed XML.</td></tr><tr><td>400</td><td>400108</td><td>Generic add data quality warning error</td><td>The data quality warning could not be added for some other reason than those specified in this table.</td></tr><tr><td>403</td><td>403004</td><td>Unauthorized operation</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>404</td><td>404029</td><td>Content not found</td><td>The content does not exist.</td></tr><tr><td>409</td><td>409004</td><td>Invalid parameter</td><td>One or more values in the request body are invalid.</td></tr></tbody></table>

## Batch Add or Update Data Quality Certifications

Create or update one or more data quality certifications for different content and asset items.

**Note:** Data quality warnings and certifications can be more generally managed through the newer **Labels** methods. Tableau recommends using them to help ensure that you can manage your assets as new features are developed.

Try the [Update Labels](#update_labels_on_assets) method instead.

A content or asset item can only have up to one data quality certification applied to it. Adding a data quality certification to an item that already has one will update the data quality certification with the latest specified values.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

POST api/api-version/sites/site-id/dataQualityCertifications

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <contentList>
	<content contentType="content" id="database-id" />
	<content contentType="content" id="table-id" />
	<content contentType="content" id="datasource-id" />
	<content contentType="content" id="virtualconnection-id" />
	<content contentType="content" id="virtualconnectiontable-id" />
  </contentList>
  <dataQualityIndicator type="type" message="message"
	active="state" elevated="severity" />
</tsRequest>
```

#### Attribute Values

Any combination of attributes inside the **<dataQualityIndicator>** element is valid, however **type** and **message** attributes are required.

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">content</span>
                                </td>
                                <td>
                                    <p>The type of content or asset the data quality warning is attached to. To specify type, use one of the following values:</p>
                                    <ul>
                                        <li><span class="api-label">database</span>
                                        </li>
                                        <li><span class="api-label">table</span>
                                        </li>
                                        <li><span class="api-label">datasource</span>
                                        </li>
                                        <li><span class="api-label">virtualconnection</span>
                                        </li>
                                        <li><span class="api-label">virtualconnectiontable</span>
                                        </li>
                                    </ul>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">database-id</span>
                                </td>
                                <td>The unique ID of the database asset.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">table-id</span>
                                </td>
                                <td>The unique ID of the table asset.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">datasource-id</span>
                                </td>
                                <td>The unique ID of the data source content.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">virtualconnection-id</span>
                                </td>
                                <td>The unique ID of the virtual connection asset.
					</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">virtualconnectiontable-id</span>
                                </td>
                                <td>The unique ID of the virtual connection table asset.
					</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">type</span>
                                </td>
                                <td>
                                    <p>Use the following value to apply a data quality certification:&nbsp;<span class="uicontrol">CERTIFIED</span>.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">message</span>
                                </td>
                                <td>A custom message to accompany the data quality certification. You can format the message with italics, bold text, links, images, and more. Use HTML character entities to match the special characters in the <a href="https://help.tableau.com/current/api/rest_api/en-us/Img/formatting_guide.png" target="_blank">formatting guide</a> that's normally visible as a tooltip in the UI.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">state</span>
                                </td>
                                <td>(Optional) Controls whether the data quality certification displays. Value can be "<span class="uicontrol">true</span>" or "<span class="uicontrol">false</span>". If the state is not specified, the data quality certification is set to "true" and is visible by default. For more information about data quality certifications, see "Set a Data Quality Certification" in the <a href="https://help.tableau.com/current/server/en-us/datasource_certified.htm">Server Help</a> or <a href="https://help.tableau.com/current/online/en-us/datasource_certified.htm">Cloud Help</a>.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">severity</span>
                                </td>
                                <td>(Optional) Enables high visibility for when the data quality certification is set to "<span class="uicontrol">true</span>". Value can be "<span class="uicontrol">true</span>" or "<span class="uicontrol">false</span>". If the severity is not specified, the data quality certification is set to "false." This setting is available only through the REST API.</td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to add or update data quality certifications:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:labels:update
```

For more information, see [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 connected apps: [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).

#### Response Code

201

#### Response Body

**Example response**

```
<tsRequest>
  <dataQualityIndicatorList>
	<dataQualityIndicator id="8f58aa47-7313-4504-8537-52d869552e18"
	    userDisplayName="Mark Nguyen" contentId="7cfd2ac8-a934-4aa8-bf24-96bff08a019c" contentType="DATABASE" message="Marketing approved" type="CERTIFIED" active="true" createdAt="2021-09-26T21:34:46Z" updatedAt="2021-09-26T21:34:46Z" elevated="true">
	  <site id="1e4b3aa0-b48a-4b8e-9bdf-74b7596b9f0a" />
	  <owner id="adcc51d7-8558-4099-9f87-dc1a1615d297" />
	</dataQualityIndicator>
	<dataQualityIndicator id="c8f0b332-a1c1-48f1-b650-86f342ab937f"
	    userDisplayName="Mark Nguyen" contentId="f6dcfd24-7c65-40f4-a3f3-c29f91b7731e" contentType="DATASOURCE" message="Marketing approved" type="CERTIFIED" active="true" createdAt="2021-09-26T21:34:46Z" updatedAt="2021-09-26T21:34:46Z" elevated="true">
	  <site id="1e4b3aa0-b48a-4b8e-9bdf-74b7596b9f0a" />
	  <owner id="adcc51d7-8558-4099-9f87-dc1a1615d297" />
	<dataQualityIndicator>
  </dataQualityIndicatorList>
</tsRequest>
```

#### Version

Version 3.13 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400108</td><td>Generic data quality certification error</td><td>The data quality certification could not be added for some reason other than those specified in this table.</td></tr><tr><td>403</td><td>403004</td><td>Unauthorized operation</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>404</td><td>404029</td><td>Content not found</td><td>The content does not exist.</td></tr><tr><td>409</td><td>409004</td><td>Invalid parameter</td><td>One or more values in the request body are invalid.</td></tr></tbody></table>

## Add or Update Monitoring Quality Warning on Content

Create or update one or more monitoring quality warnings.

You can monitor for extract refresh failures on extract data sources or flow run failures on flows. An asset can only have one instance of monitoring. Adding monitoring to an asset that already has it will update it to use the latest specified values.

**Note:** An asset can have one monitoring warning in addition to other [data quality warnings](#add_dqw).

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

**Add or update a monitoring quality warning for an asset**

POST api/_api-version_/sites/_site-id_/dataQualityTriggers/_content-type_/contentIds?filter=contentId:in:\[_content-luid_\]

**Add or update a monitoring quality warning for multiple assets**

POST api/_api-version_/sites/_site-id_/dataQualityTriggers/_content-type_/contentIds?filter=contentId:in:\[_content-luid1_,_content-luid2_,_content-luid3_,...\]

**Note:** The square brackets are required around the single LUID or comma-separated list of LUIDs.

#### 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-id</span>
                                    </td>
                                    <td>The unique ID of the site asset.</td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">content-type</span>
                                    </td>
                                    <td>
                                        <p>
                            The type of content the monitoring is being applied to. Use one of the following values:
                            </p>
                                        <ul>
                                            <li><span class="uicontrol">datasource</span>
                                            </li>
                                            <li><span class="uicontrol">flow</span>
                                            </li>
                                        </ul>
                                        <p>These values are not case sensitive.</p>
                                    </td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">content-luid</span>
                                    </td>
                                    <td>
                                        <p>The LUID of the asset. This is the same as the content ID.</p>
                                        <p>The square brackets are required around the single LUID or comma-separated list of LUIDs.</p>
                                    </td>
                                </tr>
                            </tbody>
                        </table>

#### Request Body

```
<tsRequest>
  <dataQualityTrigger type="type" active="status" message="message" severe="severity"/>
</tsRequest>
```

#### Attribute Values

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">type</span>
                                </td>
                                <td>
                                    <p>Type of monitoring quality warning. To specify the type, use one of the following values:</p>
                                    <ul>
                                        <li class="api-command-ref">EXTRACT_REFRESH</li>
                                        <li class="api-command-ref">FLOW_RUN</li>
                                    </ul>
                                    <p>These values are not case sensitive.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">status</span>
                                </td>
                                <td>
                                    <p>Monitoring status. Values can be "<span class="uicontrol">true</span>" or "<span class="uicontrol">false</span>". If set to "<span class="uicontrol">true</span>", the data source is monitored for extract refresh failures or the flow is monitored for flow run failures).</p>
                                    <p>If an extract refresh or flow run failure occurs, the specified data quality warning is attached  to the data source or flow (depending on <span class="api-parameters-table">type</span>). The data quality warning is removed when the extract refresh or flow run is successful.</p>
                                    <p>For more information about monitoring quality warnings, see the monitoring quality warning section of the "Set a Data Quality Warning" topic in the <a href="https://help.tableau.com/current/server/en-us/dm_dqw.htm#how-to-turn-on-a-monitoring-quality-warning">Server Help</a> or <a href="https://help.tableau.com/current/online/en-us/dm_dqw.htm#how-to-turn-on-a-monitoring-quality-warning">Cloud Help</a>.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">message</span>
                                </td>
                                <td>(Optional) A custom message for the data quality warning. You can format the message with italics, bold text, links, images, and more. Use HTML character entities to match the special characters in the <a href="https://help.tableau.com/current/api/rest_api/en-us/Img/formatting_guide.png" target="_blank">formatting guide</a> that's normally visible as a tooltip in the UI.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">severity</span>
                                </td>
                                <td>High visibility status of the data quality warning. Values can be "<span class="uicontrol">true</span>" or "<span class="uicontrol">false</span>". For more information, see the "Visibility" section of the "Set a Data Quality Warning" topic in the <a href="https://help.tableau.com/current/server/en-us/dm_dqw.htm#high_visibility">Server Help</a> or <a href="https://help.tableau.com/current/online/en-us/dm_dqw.htm#high_visibility">Cloud Help</a>.</td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to add a monitoring quality warning:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:labels:update
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response**

```
<tsResponse>
  <dataQualityTriggerList>
	<dataQualityTrigger id="{trigger-luid}" siteId="{site-luid}"
		userId="{user-luid}" userDisplayName="Joe Nguyen" contentId="{content-luid}"
		contentType="DATASOURCE" message=" This message is specified by the user."
		type="EXTRACT_REFRESH" active="true" createdAt="Wed Sep 22 05:49:52 UTC 2020"
		updatedAt="Wed Sep 22 05:49:52 UTC 2020" severe="false"/>
  </dataQualityTriggerList>
</tsResponse>
```

#### Version

Version 3.11 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400136</td><td>Generic quality warning trigger error</td><td>The monitoring quality warning could not be added or updated for some other reason than those specified below.</td></tr><tr><td>403</td><td>403004</td><td>Unauthorized operation</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>409</td><td>409004</td><td>Invalid parameter</td><td>One or more values in the request body are invalid.</td></tr></tbody></table>

## Add Table Permissions

Add permissions to a table asset.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

PUT api/_api-version_/sites/_site-luid_/tables/_table-luid_/permissions

#### 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 of the site asset.</td></tr><tr><td><span class="api-placeholder">table-luid</span></td><td>The LUID of the table asset.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <permissions>
    <table id="table-luid" />
    <granteeCapabilities>
      <user id="user-luid" />
      <capabilities>
        <capability name="capability-name" mode="capability-mode" />
        <!-- ... additional capabilities ... -->
      </capabilities>
    </granteeCapabilities>
    <granteeCapabilities>
      <group id="group-luid" />
      <capabilities>
        <capability name="capability-name" mode="capability-mode" />
        <!-- ... additional capabilities ... -->
      </capabilities>
    </granteeCapabilities>
    <!-- ... additional grantee capability sets ... -->
  </permissions>
</tsRequest>
```

#### Attribute Values

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">table-luid</span>
                                </td>
                                <td>The LUID for the table asset you want to add permissions to.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">user-luid</span>
                                </td>
                                <td>The LUID of the user to add permissions for.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">capability-name</span>
                                </td>
                                <td>
                                    <p>The capability to assign. If any capability has been granted or denied for a specified user or group, that capability is ignored. Valid capabilities for a database are:</p>
                                    <ul>
                                        <li><b>Read</b> (view)</li>
                                        <li><b>Write</b> (edit)</li>
                                        <li><b>ChangePermissions</b> (set permissions)</li>
                                        <li><b>ChangeHierarchy</b> (move)</li>
                                    </ul>
                                    <p>These values are case sensitive.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">capability-mode</span>
                                </td>
                                <td>
                                    <p>Use one of the following capabilities:</p>
                                    <ul>
                                        <li><b>Allow</b>
                                        </li>
                                        <li><b>Deny</b>
                                        </li>
                                    </ul>
                                    <p>These values are case sensitive.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">group-id</span>
                                </td>
                                <td>The LUID of the group to add permissions for.</td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to add table asset permissions:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to set or "ChangePermissions" to the asset metadata

#### Response Code

200

#### Response Body

**Example response:**

```
<tsResponse>
  <permissions>
	<table id="d0fe66ae-1407-4338-8520-9489d7ce959c" name="_WarehouseConfig"/>
	<granteeCapabilities>
	  <user id="6265b714-7533-465d-b6db-6d0be92bfd07"/>
	  <capabilities>
		<capability name="Read" mode="Allow"/>
	  </capabilities>
	</granteeCapabilities>
  </permissions>
</tsResponse>
```

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>400</td><td>400120</td><td>Bad request</td><td>Permissions could not be added because support for explicit permissions is available for table assets associated with published data sources only.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>403</td><td>403117</td><td>Database locked</td><td>Permissions for the table asset cannot be deleted because the database asset is locked.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site LUID in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404032</td><td>Table not found</td><td>The requested table asset could not be found.</td></tr><tr><td>409</td><td>409052</td><td>Table error</td><td>An unknown table asset error occurred.</td></tr><tr><td>409</td><td>409057</td><td>Table update error</td><td>An unknown error occurred and the table asset could not be updated.</td></tr><tr><td>409</td><td>409058</td><td>Table update forbidden</td><td>A user without "write"&nbsp;permissions to the table asset attempted an update.</td></tr></tbody></table>

## Add Tags to Column

Add one or more tags to a column.

For more information about tags, see [Tag Items](https://help.tableau.com/current/pro/desktop/en-us/tags.htm) in the Tableau User Help.

#### URI

PUT api/api-version/sites/site-id/columns/column-id/tags

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr><tr><td><span class="api-placeholder">column-id</span></td><td>The unique ID of the column asset.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <tags>
	<tag label="tag-value1" />
	<tag label="tag-value2" />
  </tags>
</tsRequest>
```

#### Attribute Values

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">tag-value1</span>
                                </td>
                                <td>
                                    <p>Keyword text you want to add to the asset.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">tag-value2</span>
                                </td>
                                <td>
                                    <p>Keyword text you want to add to the asset.</p>
                                </td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to add tags:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:column_tags:update
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response**

```
<tsResponse>
  <tags>
	<tag label="Noteworthy" />
	<tag label="PII" />
  </tags>
</tsResponse>
```

#### Version

Version 3.9 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>403</td><td>403004</td><td>Unauthorized operation</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>409</td><td>409062</td><td>Generic column tag error</td><td>The tag or tags could not be added (or deleted) for some other reason than those specified above.</td></tr><tr><td>409</td><td>409066</td><td>Column not found</td><td>The column asset does not exist.</td></tr></tbody></table>

## Add Tags to Database

Add one or more tags to a database.

For more information about tags, see [Tag Items](https://help.tableau.com/current/pro/desktop/en-us/tags.htm) in the Tableau User Help.

#### URI

PUT api/api-version/sites/site-id/databases/database-id/tags

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr><tr><td><span class="api-placeholder">database-id</span></td><td>The unique ID of the database asset.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <tags>
	<tag label="tag-value1" />
	<tag label="tag-value2" />
  </tags>
</tsRequest>
```

#### Attribute Values

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">tag-value1</span>
                                </td>
                                <td>
                                    <p>Keyword text you want to add to the asset.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">tag-value2</span>
                                </td>
                                <td>Keyword text you want to add to the asset.</td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to add tags:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:database_tags:update
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response**

```
<tsResponse>
  <tags>
	<tag label="Noteworthy" />
	<tag label="PII" />
  </tags>
</tsResponse>
```

#### Version

Version 3.9 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>403</td><td>403004</td><td>Unauthorized operation</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>404</td><td>404031</td><td>Database not found</td><td>The database asset does not exist.</td></tr><tr><td>409</td><td>409048</td><td>Generic database tag error</td><td>The tag or tags could not be added (or deleted) for some other reason than those specified above.</td></tr></tbody></table>

## Add Tags to Table

Add one or more tags to a table.

For more information about tags, see [Tag Items](https://help.tableau.com/current/pro/desktop/en-us/tags.htm) in the Tableau User Help.

#### URI

PUT api/api-version/sites/site-id/tables/table-id/tags

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr><tr><td><span class="api-placeholder">table-id</span></td><td>The unique ID of the column asset.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <tags>
	<tag label="tag-value1" />
	<tag label="tag-value2" />
  </tags>
</tsRequest>
```

#### Attribute Values

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">tag-value1</span>
                                </td>
                                <td>
                                    <p>Keyword text you want to add to the asset.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">tag-value2</span>
                                </td>
                                <td>
                                    <p>Keyword text you want to add to the asset.</p>
                                </td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to add tags:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:table_tags:update
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response**

```
<tsResponse>
  <tags>
	<tag label="Noteworthy" />
	<tag label="PII" />
  </tags>
</tsResponse>
```

#### Version

Version 3.9 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>403</td><td>403004</td><td>Unauthorized operation</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>404</td><td>404032</td><td>Table not found</td><td>The table asset does not exist.</td></tr><tr><td>409</td><td>409055</td><td>Generic table tag error</td><td>The tag or tags could not be added (or deleted) for some other reason than those specified above.</td></tr></tbody></table>

## Batch Add Tags

Add multiple tags to items that are different content and asset types.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

For more information about tags, see [Tag Items](https://help.tableau.com/current/pro/desktop/en-us/tags.htm) in the Tableau User Help.

#### URI

PUT api/api-version/sites/site-id/tags:batchCreate

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <tagBatch>
	<tags>
	   <tag label="tag-value1"></tag>
	   <tag label="tag-value2"></tag>
	</tags>
	<contents>
	   <content id="database-id"></content>
	   <content id="table-id"></content>
	   <content id="column-id"></content>
	   <content id="datasource-id"></content>
	   <content id="workbook-id"></content>
	   <content id="flow-id"></content>
	</contents>
  </tagBatch>
</tsRequest>
```

#### Attribute Values

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">tag-value1</span>
                                </td>
                                <td>
                                    <p>Keyword text you want to add to item.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">tag-value2</span>
                                </td>
                                <td>
                                    <p>Keyword text you want to add to item.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">database-id</span>
                                </td>
                                <td>The unique ID of the database asset.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">table-id</span>
                                </td>
                                <td>The unique ID of the table asset.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">column-id</span>
                                </td>
                                <td>The unique ID of the column asset.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">datasource-id</span>
                                </td>
                                <td>The unique ID of the data source content.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">workbook-id</span>
                                </td>
                                <td>The unique ID of the workbook content.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">flow-id</span>
                                </td>
                                <td>The unique ID of the flow content.
</td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to add tags:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:tags:batch_create
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response**

```
<tsRequest>
  <tagBatch>
	<tags>
	   <tag label="PII"></tag>
	   <tag label="Noteworthy"></tag>
	</tags>
	<contents>
	   <content id="21cade8c-d4eb-4fef-bd4a-bdb9d8b09b7d" contentType="Database"></content>
	   <content id="a0314be1-afd4-4a4f-ab85-d75dac661c41" contentType="Table"></content>
	   <content id="8fec4046-e054-476d-a6d0-e808b0d5448b" contentType="Column"></content>
	   <content id="c8c3a0be-3ac8-4de7-8bd6-f912900a1ccd" contentType="Datasource"></content>
	   <content id="ec2b7845-d627-430e-b99c-8543ed50b25c" contentType="Workbook"></content>
	   <content id="c4a560eb-c8a6-48c6-86f4-c9d5e518d027" contentType="Flow"></content>
	</contents>
  </tagBatch>
</tsRequest>
```

#### Version

Version 3.9 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>403</td><td>403004</td><td>Unauthorized operation</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>404</td><td>404029</td><td>Content not found</td><td>The content does not exist.</td></tr><tr><td>404</td><td>404031</td><td>Database not found</td><td>The database asset does not exist.</td></tr><tr><td>404</td><td>404032</td><td>Table not found</td><td>The table asset does not exist.</td></tr><tr><td>409</td><td>409004</td><td>Invalid parameter</td><td>One or more values in the request body are invalid.</td></tr><tr><td>409</td><td>409066</td><td>Column not found</td><td>The column asset does not exist.</td></tr></tbody></table>

## Add Tags to Virtual Connection

Adds tags to a virtual connection.

**Version:** Available in API 3.23 (Tableau Cloud June 2024 / Tableau Server 2024.2) and later. _[Version Overview](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm)_

**License:** Requires [Tableau Data Management](https://help.tableau.com/current/online/en-us/dm_overview.htm).

**Permissions:** You must have the View permission for the virtual connection and your site role must be at least Explorer.   _[Permissions Overview](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm)_

**JWT Access Scope**: tableau:virtual\_connection\_tags:update

- Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).
- For more information, see [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 connected apps: [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

PUT /api/api-version/sites/site-id/virtualconnections/virtualconnection-id/tags

#### 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-id</span></td><td>The LUID for the site.</td></tr><tr><td><span class="api-placeholder">virtualconnection-id</span></td><td>The LUID for the virtual connection.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <tags>
    <tag label="tag" />
    <!-- ...additional tag elements... -->
  </tags>
</tsRequest>
```

#### Attribute Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1"> <col></colgroup><tbody><tr><td><span class="api-placeholder">tag</span></td><td>The text of the tag.</td></tr></tbody></table>

#### cURL Request Example

`curl --location --request PUT 'http://MY-SERVER/api/3.29/sites/9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d/virtualconnections/12ab34cd-56ef-78ab-90cd-12ef34ab56cd/tags' --header 'Content-Type: application/xml' --header 'X-Tableau-Auth: HvZMqFFfQQmOM4L-AZNIQA|5fI6T54OPK1Gn1p4w0RtHv6EkojWRTwq|a946d998-2ead-4894-bb50-1054a91dcab3' --data @data.xml`

**Contents of data.xml.**

```
<tsRequest>
  <tags>
    <tag label="Office" />
    <!-- ...additional tag elements... -->
  </tags>
</tsRequest>
```

#### Response Code

200

#### Response Body

```
<tsResponse>
  <tags>
    <tag label="tag"/>
    <!-- ...additional tags... -->
  </tags>
</tsResponse>
```

#### 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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>400</td><td>400049</td><td>Error adding tags</td><td>There was a problem adding tags to the specified virtual connection.</td></tr><tr><td>403</td><td>403004</td><td>Adding tags forbidden</td><td>The user doesn't have permissions to add tags to the virtual connection.</td></tr><tr><td>404</td><td>404000</td><td>Site not found</td><td>The site ID in the URI is not for an existing site.</td></tr><tr><td>404</td><td>404006</td><td>Virtual connection not found</td><td>The virtual connection ID in URI doesn't correspond to an existing virtual connection.</td></tr><tr><td>404</td><td>405000</td><td>Invalid request method</td><td>Request type was not <span class="api-command-ref">PUT</span>.</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 Label Category

Creates a data label category.

Note that category is one property of a label value (labelValue), which is itself a property of a label on an asset. Other properties of a labelValue include name and description. These properties determine label behavior and options that users see in label dialogs. For more information on data label objects and properties, see the [Data Labels in the REST API](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_data_labels.htm) topic.

A Data Management license is not required to create, update, or delete label categories, but one is required to create, update, delete, and see labels on assets.

#### URI

POST api/api-version/sites/site-luid/labelCategories

#### 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 unique LUID of the site asset.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <labelCategory name="label-category-name"
    description="label-category-description" />
</tsRequest>
```

#### Attribute Values

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">label-category-name</span>
                                </td>
                                <td>
                                    <p>The label category name.</p>
                                    <p>Required. Must be 1-128 characters long. (In Tableau Server 2023.3 and earlier, must be 1-24 characters long.)</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">label-category-description</span>
                                </td>
                                <td>
                                    <p>The label category description.</p>
                                    <p>Required. Must be 1-500 characters in length.</p>
                                </td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

- Only a site or server administrator can create, update, or delete label categories.

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:label_categories:create
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Version

Introduced in Tableau Cloud October 2023 (API 3.21) / Server 2023.3 (API 3.21).

#### Response Body

```
<tsResponse>
  <labelCategory name="label-category-name"
    description="label-category-description"/>
</tsResponse>
```

#### 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>400189</td>
                                <td>Generic create label categories error</td>
                                <td>An unknown error occurred.</td>
                            </tr>
                            <tr>
                                <td>403</td>
                                <td>403004</td>
                                <td>Operation on resource unauthorized</td>
                                <td>You must be an administrator to create, update, or delete label values.</td>
                            </tr>
                            <tr>
                                <td>409</td>
                                <td>409004</td>
                                <td>Invalid parameter</td>
                                <td>
                                    <ul>
                                        <li>The category name must be 1-128 characters long. (In Tableau Server 2023.3 and earlier, the category name must be 1-24 characters long.)</li>
                                        <li>The category name, when stripped of spaces, dashes, and underscores, must not case insensitively match one of Tableau's built-in label categories names.</li>
                                        <li>The category description must be 1-500 characters in length.
</li>
                                    </ul>
                                </td>
                            </tr>
                        </tbody>
                    </table>

## Create or Update labelValue

Creates a label value with the specified name if it doesn't exist, or updates the existing label value if the label value name already exists.

Note: You can update an existing label value using either this method or the [Update labelValue](#ref_update_labelvalue) method. If you want to change the name on an existing label value, use the [Update labelValue](#ref_update_labelvalue) method.

Note that a label value (labelValue) is one property of a label. A label value has its own properties like name, category, and description that determine label behavior and options that users see in label dialogs. For more information on data label objects and properties, see the [Data Labels in the REST API](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_data_labels.htm) topic.

A Data Management license is not required to create, update, or delete label values, but one is required to create, update, delete, and see labels on assets.

#### URI

PUT api/api-version/sites/site-luid/labelValues

#### 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 unique LUID of the site asset.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
   <labelValue name="label-value-name"
     category="label-value-category"
     description="label-value-description" />
</tsRequest>
```

#### Attribute Values

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">label-value-name</span>
                                </td>
                                <td>
                                    <p>The label value name.</p>
                                    <p>Required. If you specify an existing label value name, this method will update the label value. If you specify a label value name that's different than existing label value names, this method will create the label value.</p>
                                    <p>Required. Must be 1-128 characters long. (In Tableau Server 2023.3 and earlier, must be 1-24 characters long.)</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">label-value-category</span>
                                </td>
                                <td>
                                    <p>The label value category.</p>
                                    <p>Required. If you're updating an existing label value, this must match the existing category for that label value.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">label-value-description</span>
                                </td>
                                <td>
                                    <p>The label value description.</p>
                                    <p>Required, but does not need to be different than the existing description. Must be 1-500 characters in length.</p>
                                </td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

- Only a site or server administrator can create, update, or delete label values.

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:label_values:create
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Version

Introduced in Tableau Cloud June 2023 (API 3.20) and Tableau Server 2023.3 (API 3.21).

#### Response Body

```
<tsResponse>
  <labelValue name="label-value-name"
    category="label-value-category"
    description="label-value-description"
    internal="true-or-false"
    elevatedDefault="true-or-false"
    builtIn="true-or-false">
    <site id="site-luid"/>
  </labelValue>
</tsResponse>
```

#### 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>4000173</td>
                                <td>Generic create label values error</td>
                                <td>An unknown error occurred.</td>
                            </tr>
                            <tr>
                                <td>403</td>
                                <td>403004</td>
                                <td>Operation on resource unauthorized</td>
                                <td>You must be a site or server administrator to create or update label values.</td>
                            </tr>
                            <tr>
                                <td>403</td>
                                <td>403157</td>
                                <td>Bad request</td>
                                <td>You may see this error if you try to create or update a label in the <span class="uicontrol">certification</span> category.</td>
                            </tr>
                            <tr>
                                <td>409</td>
                                <td>409004</td>
                                <td>Invalid parameter</td>
                                <td>
                                    <ul>
                                        <li>The label value name must be 1-128 characters long in Tableau Cloud. (In Tableau Server 2023.3 and earlier, must be 1-24 characters long.)</li>
                                        <li>The name, when stripped of spaces, dashes, and underscores, must not case insensitively match one of Tableau's built-in label value names.</li>
                                        <li>The category must match an existing category.</li>
                                        <li>You can't change the category on an existing label value.</li>
                                        <li>The description can't be empty or over 500 characters.

</li>
                                    </ul>
                                </td>
                            </tr>
                        </tbody>
                    </table>

## Delete Database Permissions

Permanently remove the permissions applied to a database asset.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

DELETE api/api-version/sites/site-luid/databases/database-luid/permissions/users/user-luid/capability-name/capability-mode

DELETE api/api-version/sites/site-luid/databases/database-luid/permissions/groups/group-luid/capability-name/capability-mode

#### 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 of the site.</td></tr><tr><td><span class="api-placeholder">database-luid</span></td><td>The LUID of the database asset.</td></tr><tr><td><span class="api-placeholder">user-luid</span></td><td>The LUID of the user to remove the permissions for.</td></tr><tr><td><span class="api-placeholder">group-luid</span></td><td>The LUID of the group to remove the permissions for.</td></tr><tr><td><span class="api-placeholder">capability-name</span></td><td>The explicit permissions capability to remove. Capabilities that can be removed are <b>Read</b>, <b>Write</b>, <b>ChangePermissions</b>, or <b>ChangeHierarchy</b>.</td></tr><tr><td><span class="api-placeholder">capability-mode</span></td><td>The permissions mode to remove. Modes that can be removed are <b>Allow</b> or <b>Deny</b>.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following authorized users have permissions to delete the permissions on the database asset:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to set or "ChangePermissions" to the asset metadata

#### Response Code

200

#### Response Body

None

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### 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>400120</td><td>Bad request</td><td>Permissions could not be deleted because support for explicit permissions is available for database assets associated with published data sources only.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>403</td><td>403117</td><td>Database locked</td><td>Permissions for the database asset cannot be deleted because the database asset is locked.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site LUID in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404031</td><td>Database not found</td><td>The requested database could not be found.</td></tr><tr><td>409</td><td>409045</td><td>Database error</td><td>An unknown database asset error occurred.</td></tr><tr><td>409</td><td>409051</td><td>Database update forbidden</td><td>A user without "write" permissions to the database asset attempted an update.</td></tr></tbody></table>

## Delete Default Database Permissions

Permanently remove the default permissions on a database asset.

Removing the default permissions from the database asset means that any new child table assets that are indexed by Catalog won't have any default permissions set.

Note: If a database is in a project, default database permissions are not evaluated to determine table permissions. Use the [Delete Default Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#delete_default_permissions) method to control default permission capabilities on tables through projects instead.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

DELETE api/_api-version_/sites/_site-luid_/databases/_database-luid_/default-permissions/tables/users/user-luid/capability-name/capability-mode

DELETE api/_api-version_/sites/_site-luid_/databases/_database-luid_/default-permissions/tables/groups/group-luid/capability-name/capability-mode

#### 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 of the site asset.</td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">database-luid</span>
                                    </td>
                                    <td>The LUID of the database asset.</td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">user-luid</span>
                                    </td>
                                    <td>The LUID of the user to remove the default permission for.</td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">group-id</span>
                                    </td>
                                    <td>The LUID of the group to remove the default permission for.</td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">capability-name</span>
                                    </td>
                                    <td>
                                        <p>The capability to remove the permissions for.</p>
                                        <p>Valid capabilities for databases are the following:</p>
                                        <ul>
                                            <li><span class="api-command-ref">Read</span> (view)</li>
                                            <li><span class="api-command-ref">Write</span> (edit)</li>
                                            <li><span class="api-command-ref">ChangePermissions</span> (set permissions)</li>
                                            <li><span class="api-command-ref">ChangeHierarchy</span> (move)</li>
                                        </ul>
                                        <p>For more information, see <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm" class="xref">Permissions</a>.</p>
                                    </td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">capability-mode</span>
                                    </td>
                                    <td><span class="api-command-ref">Allow</span> to remove the allow permission, or <span class="api-command-ref">Deny</span> to remove the deny permission.</td>
                                </tr>
                            </tbody>
                        </table>

#### Request Body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following authorized users have permissions to delete the permissions on the database asset:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Response Code

200

#### Response Body

None

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### 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>400120</td><td>Bad request</td><td>Permissions could not be deleted because support for explicit permissions is available for database assets associated with published data sources only.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>403</td><td>403117</td><td>Database locked</td><td>Default permissions cannot be deleted because the database asset is locked.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site LUID in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404031</td><td>Database not found</td><td>The requested database could not be found.</td></tr><tr><td>409</td><td>409045</td><td>Database error</td><td>An unknown database asset error occurred.</td></tr><tr><td>409</td><td>409051</td><td>Database update forbidden</td><td>A user without "write"&nbsp;permissions to the database asset attempted an update.</td></tr></tbody></table>

## Delete Data Quality Warning by ID

Delete a data quality warning from an asset using the data quality warning ID.

**Note:** Data quality warnings and certifications can be more generally managed through the newer **Labels** methods. Tableau recommends using them to help ensure that you can manage your assets as new features are developed.

Try the [Delete Label](#delete_label) method instead.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

DELETE api/_api-version_/sites/_site-id_/dataQualityWarnings/_dataqualitywarning-id_

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr><tr><td><span class="api-placeholder">dataqualitywarning-id</span></td><td>The unique ID of the data quality warning.</td></tr></tbody></table>

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to delete the data quality warning:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:labels:delete
```

For more information, see [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 connected apps: [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).

#### Response Code

204

#### Response Body

None

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>400</td><td>400105</td><td>Data quality warning delete error</td><td>An unknown error occurred and the data quality warning could not be deleted.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site ID in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404029</td><td>Content not found</td><td>The requested asset could not be found.</td></tr><tr><td>404</td><td>404030</td><td>Data quality warning not found</td><td>The data quality warning for the requested asset could not be found.</td></tr></tbody></table>

## Delete Data Quality Warning by Content

Delete the data quality warnings from an asset.

**Note:** Data quality warnings and certifications can be more generally managed through the newer **Labels** methods. Tableau recommends using them to help ensure that you can manage your assets as new features are developed.

Try the [Delete Labels](#delete_labels_on_assets) method instead.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

DELETE api/api-version/sites/site-id/dataQualityWarnings/content-type/content-luid

#### 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-id</span>
                                    </td>
                                    <td>The unique ID of the site asset.</td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">content-type</span>
                                    </td>
                                    <td>
                                        <p>The type of asset that the data quality warning is being attached to. To specify the type, use:
</p>
                                        <ul>
                                            <li><span class="uicontrol">database</span>
                                            </li>
                                            <li><span class="uicontrol">table</span>
                                            </li>
                                            <li><span class="uicontrol">column</span> <i>- Available in API 3.16 and later (Tableau Cloud October 2022, Server 2022.3)</i></li>
                                            <li><span class="uicontrol">datasource</span>
                                            </li>
                                            <li><span class="uicontrol">flow</span>
                                            </li>
                                            <li><span class="uicontrol">virtualconnection</span>
                                            </li>
                                            <li><span class="uicontrol">virtualconnectiontable</span>
                                            </li>
                                        </ul>
                                        <p>Types are not case sensitive.</p>
                                    </td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">content-luid</span>
                                    </td>
                                    <td>The LUID of the content (database, table, column, published data source, flow, virtual connection, or virtual connection table).</td>
                                </tr>
                            </tbody>
                        </table>

#### Request Body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to delete the data quality warning:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:labels:delete
```

For more information, see [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 connected apps: [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).

#### Response Code

204

#### Response Body

None

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>409</td><td>400106</td><td>Data quality warning delete error</td><td>An unknown error occurred and the data quality warning could not be deleted.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site ID in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404029</td><td>Content not found</td><td>The requested asset could not be found.</td></tr><tr><td>404</td><td>404030</td><td>Data quality warning not found</td><td>The data quality warning for the requested asset could not be found.</td></tr></tbody></table>

## Batch Delete Data Quality Warnings

Delete multiple data quality warnings from assets.

**Note:** Data quality warnings and certifications can be more generally managed through the newer **Labels** methods. Tableau recommends using them to help ensure that you can manage your assets as new features are developed.

Try the [Delete Labels](#delete_labels_on_assets) method instead.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

DELETE api/api-version/sites/site-id/dataQualityWarnings/batchDelete

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <contentList>
	<content contentType="content" id="database-id" />
	<content contentType="content" id="table-id" />
	<content contentType="content" id="column-id" />
	<content contentType="content" id="datasource-id" />
	<content contentType="content" id="flow-id" />
	<content contentType="content" id="virtualconnection-id" />
	<content contentType="content" id="virtualconnectiontable-id" />
  </contentList>
</tsRequest>
```

#### Attribute Values

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">content</span>
                                </td>
                                <td>
                                    <p>The type of content or asset the data quality warning is attached to. To specify type, use one of the following values:</p>
                                    <ul>
                                        <li><span class="api-label">database</span>
                                        </li>
                                        <li><span class="api-label">table</span>
                                        </li>
                                        <li><span class="api-label">column</span> <i>- Available in API 3.16 and later (Tableau Cloud October 2022, Server 2022.3)</i></li>
                                        <li><span class="api-label">datasource</span>
                                        </li>
                                        <li><span class="api-label">flow</span>
                                        </li>
                                        <li><span class="api-label">virtualconnection</span>
                                        </li>
                                        <li><span class="api-label">virtualconnectiontable</span>
                                        </li>
                                    </ul>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">database-id</span>
                                </td>
                                <td>The unique ID of the database asset.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">table-id</span>
                                </td>
                                <td>The unique ID of the table asset.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">column-id</span>
                                </td>
                                <td>The unique ID of the column asset.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">datasource-id</span>
                                </td>
                                <td>The unique ID of the data source content.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">flow-id</span>
                                </td>
                                <td>The unique ID of the flow content.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">virtualconnection-id</span>
                                </td>
                                <td>The unique ID of the virtual connection.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">virtualconnectiontable-id</span>
                                </td>
                                <td>The unique ID of the virtual connection table.</td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to delete data quality warnings:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:labels:delete
```

For more information, see [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 connected apps: [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).

#### Response Code

204

#### Response Body

None

#### Version

Version 3.12 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>403</td><td>403004</td><td>Unauthorized operation</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>404</td><td>404029</td><td>Content not found</td><td>The content does not exist.</td></tr><tr><td>404</td><td>404031</td><td>Database not found</td><td>The database asset does not exist.</td></tr><tr><td>404</td><td>404032</td><td>Table not found</td><td>The table asset does not exist.</td></tr><tr><td>409</td><td>409004</td><td>Invalid parameter</td><td>One or more values in the request body are invalid.</td></tr></tbody></table>

## Delete Data Quality Certification by ID

Delete a data quality certification from an asset using the data quality certification ID.

**Note:** Data quality warnings and certifications can be more generally managed through the newer **Labels** methods. Tableau recommends using them to help ensure that you can manage your assets as new features are developed.

Try the [Delete Label](#delete_label) method instead.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

DELETE api/_api-version_/sites/_site-id_/dataQualityCertifications/_certification-luid_

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr><tr><td><span class="api-placeholder">certification-luid</span></td><td>The unique ID of the data quality certification.</td></tr></tbody></table>

#### Request body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to delete a data quality certification:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:labels:delete
```

For more information, see [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 connected apps: [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).

#### Response Code

204

#### Version

Version 3.13 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400105</td><td>Generic data quality certification error</td><td>The data quality certification could not be deleted for some reason other than those specified in this table.</td></tr><tr><td>403</td><td>403004</td><td>Unauthorized operation</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>409</td><td>409004</td><td>Invalid parameter</td><td>One or more values in the request body are invalid.</td></tr></tbody></table>

## Delete Data Quality Certifications by Content

Delete multiple data quality certifications from assets.

**Note:** Data quality warnings and certifications can be more generally managed through the newer **Labels** methods. Tableau recommends using them to help ensure that you can manage your assets as new features are developed.

Try the [Delete Labels](#delete_labels_on_assets) method instead.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

DELETE api/_api-version_/sites/_site-id_/dataQualityCertifications

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr><tr><td><span class="api-placeholder">indicator-id</span></td><td>The unique ID of the data quality certification.</td></tr></tbody></table>

#### Request body

```
<tsRequest>
  <contentList>
	<content contentType="content" id="database-id" />
	<content contentType="content" id="table-id" />
	<content contentType="content" id="datasource-id" />
	<content contentType="content" id="virtualconnection-id" />
	<content contentType="content" id="virtualconnectiontable-id" />
  </contentList>
</tsRequest>
```

#### Attribute Values

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">content</span>
                                </td>
                                <td>
                                    <p>The type of content or asset the data quality warning is attached to. To specify type, use one of the following values:</p>
                                    <ul>
                                        <li><span class="api-label">database</span>
                                        </li>
                                        <li><span class="api-label">table</span>
                                        </li>
                                        <li><span class="api-label">datasource</span>
                                        </li>
                                        <li><span class="api-label">virtualconnection</span>
                                        </li>
                                        <li><span class="api-label">virtualconnectiontable</span>
                                        </li>
                                    </ul>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">database-id</span>
                                </td>
                                <td>The unique ID of the database asset.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">table-id</span>
                                </td>
                                <td>The unique ID of the table asset.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">datasource-id</span>
                                </td>
                                <td>The unique ID of the data source content.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">virtualconnection-id</span>
                                </td>
                                <td>The unique ID of the virtual connection.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">virtualconnectiontable-id</span>
                                </td>
                                <td>The unique ID of the virtual connection table.</td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to delete data quality certifications:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:labels:delete
```

For more information, see [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 connected apps: [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).

#### Response Code

204

#### Version

Version 3.13 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400106</td><td>Generic data quality certification error</td><td>The data quality certifications could not be deleted for some reason other than those specified in this table.</td></tr><tr><td>404</td><td>404029</td><td>Content not found</td><td>The content does not exist.</td></tr><tr><td>403</td><td>403004</td><td>Unauthorized operation</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>409</td><td>409004</td><td>Invalid parameter</td><td>One or more values in the request body are invalid.</td></tr></tbody></table>

## Delete Quality Warning Trigger by ID

Permanently remove a quality warning trigger using the quality warning trigger ID.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

DELETE api/_api-version_/sites/_site-id_/dataQualityTriggers/_trigger-id_

#### 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-id</span>
                                    </td>
                                    <td>The unique ID of the site asset.</td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">trigger-id</span>
                                    </td>
                                    <td>
                                        <p>The unique ID&nbsp;of the quality warning trigger.</p>
                                    </td>
                                </tr>
                            </tbody>
                        </table>

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to delete a quality warning trigger:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:labels:delete
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

None

#### Version

Version 3.11 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400138</td><td>Generic quality warning trigger error</td><td>The quality warning trigger could not be deleted for some other reason than those specified below.</td></tr><tr><td>403</td><td>403004</td><td>Unauthorized operation</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>404</td><td>404037</td><td>Quality warning not found</td><td>The requested quality warning trigger was not found.</td></tr><tr><td>409</td><td>409004</td><td>Invalid parameter</td><td>One or more values in the request body are invalid.</td></tr></tbody></table>

## Delete Quality Warning Triggers by Content

Permanently remove all quality warning triggers for one or more data sources or flows, or both.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

**Delete one quality warning trigger**

DELETE api/_api-version_/sites/_site-id_/dataQualityTriggers/_content-type_/contentIds?filter=contentId:in:\[_content-luid_\]

**Delete multiple quality warning triggers**

DELETE api/_api-version_/sites/_site-id_/dataQualityTriggers/_content-type_/contentIds?filter=contentId:in:\[_content-luid1_,_content-luid2_,_content-luid3_,...\]

#### 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-id</span>
                                    </td>
                                    <td>The unique ID of the site asset.</td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">content-type</span>
                                    </td>
                                    <td>
                                        <p>
                            The type of content the quality warning trigger has been applied to. In this case, use one of the following values:
                            </p>
                                        <ul>
                                            <li><span class="uicontrol">datasource</span>
                                            </li>
                                            <li><span class="uicontrol">flow</span>
                                            </li>
                                        </ul>
                                        <p>These values are not case sensitive.</p>
                                    </td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">content-luid</span>
                                    </td>
                                    <td>
                            The unique ID of the asset. This is the same as the content ID.
                        </td>
                                </tr>
                            </tbody>
                        </table>

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to delete quality warning triggers:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:labels:delete
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

None

#### Version

Version 3.10 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400138</td><td>Generic quality warning trigger error</td><td>The quality warning trigger could not be deleted for some other reason than those specified below.</td></tr><tr><td>403</td><td>403004</td><td>Unauthorized operation</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>404</td><td>404037</td><td>Quality warning not found</td><td>The requested quality warning trigger was not found.</td></tr><tr><td>409</td><td>409004</td><td>Invalid parameter</td><td>One or more values in the request body are invalid.</td></tr></tbody></table>

## Delete Label

Deletes a data label by its LUID.

You can't delete extract refresh or flow run monitoring warnings (the extract\_refresh\_failure and flow\_run\_failure label values) using this method because those warnings are set and cleared automatically, depending on their triggers. See also "How to set a monitoring quality warning" in the [Tableau Server](https://help.tableau.com/current/server/en-us/dm_dqw.htm#how-to-set-a-monitoring-quality-warning) and [Tableau Cloud](https://help.tableau.com/current/online/en-us/dm_dqw.htm#how-to-set-a-monitoring-quality-warning) Help and the quality warning trigger methods in [Metadata Methods](#).

For more information on data label objects and properties, see the [Data Labels in the REST API](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_data_labels.htm) topic.

All label operations except those related to the certification of data sources require Catalog to be enabled. Catalog requires a Data Management license.

#### URI

DELETE api/api-version/sites/site-luid/labels/label-luid

#### 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 unique LUID of the site asset.</td></tr><tr><td><span class="api-placeholder">label-luid</span></td><td>The unique LUID of the label asset.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

- To delete a data label other than a certification label, you must have write permission on the associated asset.
- To delete a certification label, you must be an administrator, or else you must be a project leader or product owner for the project the asset is in.
- To delete a certification label for an external asset _not_ in a project, you must have the change permissions permission on the associated asset.

#### Required scope for JWT authorization

Introduced in Tableau Cloud June 2024 and Tableau Server 2024.2 (API 3.23).

```
tableau:labels:delete
```

For more information, see [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 connected apps: [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).

#### Response Code

204

#### Version

Introduced in Tableau Cloud June 2022 (API 3.16) and Tableau Server 2022.3 (API 3.17).

#### 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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>401</td><td>400105</td><td>Generic delete label error</td><td>An unknown error occurred. Confirm that the LUID in the URI is correct.</td></tr><tr><td>403</td><td>403004</td><td>Operation on resource unauthorized</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>409</td><td>409004</td><td>Invalid parameter</td><td>The URI does not contain a properly-formatted LUID.</td></tr></tbody></table>

## Delete Labels

Deletes the data labels on one or more assets.

You can optionally limit the data labels to delete by category using a query string.

You can't delete extract refresh or flow run monitoring warnings (the extract\_refresh\_failure and flow\_run\_failure label values) using this method because those warnings are set and cleared automatically, depending on their triggers. See also "How to set a monitoring quality warning" in the [Tableau Server](https://help.tableau.com/current/server/en-us/dm_dqw.htm#how-to-set-a-monitoring-quality-warning) and [Tableau Cloud](https://help.tableau.com/current/online/en-us/dm_dqw.htm#how-to-set-a-monitoring-quality-warning) Help and the quality warning trigger methods in [Metadata Methods](#).

For more information on data label objects and properties, see the [Data Labels in the REST API](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_data_labels.htm) topic.

All label operations except those related to the certification of data sources require Catalog to be enabled. Catalog requires a Data Management license.

#### URI

DELETE api/api-version/sites/site-luid/labels

DELETE api/api-version/sites/site-luid/labels?categories=category-list

#### 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 unique LUID of the site.</td></tr><tr><td><span class="api-placeholder">category-list</span></td><td>(Optional) A comma-separated list of label value categories used to limit the label deletions to only the listed categories. See <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_data_labels.htm" class="xref">Data Labels in the REST&nbsp;API</a> for information on label values and categories.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <contentList>
    <content contentType="asset-type"
      id="asset-luid" />
    <!-- ... additional content elements ... -->
  </contentList>
</tsRequest>
```

#### Attribute Values

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">asset-type</span>
                                </td>
                                <td>
                                    <p>The type of asset.  Valid asset types are:</p>
                                    <ul>
                                        <li><span class="api-command-ref">database</span>
                                        </li>
                                        <li><span class="api-command-ref">table</span>
                                        </li>
                                        <li><span class="api-command-ref">column</span> <i>- Available in API 3.16 and later (Tableau Cloud October 2022, Server 2022.3)</i></li>
                                        <li><span class="api-command-ref">datasource</span>
                                        </li>
                                        <li><span class="api-command-ref">flow</span>
                                        </li>
                                        <li><span class="api-command-ref">virtualconnection</span>
                                        </li>
                                        <li><span class="api-command-ref">virtualconnectiontable</span>
                                        </li>
                                    </ul>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">asset-luid</span>
                                </td>
                                <td>The asset LUID.</td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

- To delete a data label other than a certification label, you must have write permission on the associated asset.
- To delete a certification label, you must be an administrator, or else you must be a project leader or product owner for the project the asset is in.
- To delete a certification label for an external asset _not_ in a project, you must have the change permissions permission on the associated asset.

#### Required scope for JWT authorization

Introduced in Tableau Cloud June 2024 and Tableau Server 2024.2 (API 3.23).

```
tableau:labels:delete
```

For more information, see [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 connected apps: [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).

#### Response Code

204

#### Version

Introduced in Tableau Cloud June 2022 (API 3.16) and Tableau Server 2022.3 (API 3.17).

#### 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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>401</td><td>400106</td><td>Generic delete labels error</td><td>An unknown error occurred.</td></tr><tr><td>403</td><td>403004</td><td>Operation on resource unauthorized</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>404</td><td>404029</td><td>Resource not found</td><td>The <span class="api-command-ref">contentType</span> and <span class="api-command-ref">contentID</span> attribute combination does not correspond to an asset on the server. This can be caused by an incorrect <span class="api-command-ref">contentType</span>, an incorrect <span class="api-command-ref">contentID</span>, or both.</td></tr><tr><td>409</td><td>409004</td><td>Invalid parameter</td><td>One or more values in the request body are invalid.</td></tr></tbody></table>

## Delete labelValue

Deletes a label value.

If you use this method on a built-in label value that was customized, this method reverts the label to its built-in defaults instead of deleting it. (Afterwards, assets with the label that you reverted will reflect the built-in default.)

Note that a label value (labelValue) is one property of a label. A label value has its own properties like name, category, and description that determine label behavior and options that users see in label dialogs. For more information on data label objects and properties, see the [Data Labels in the REST API](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_data_labels.htm) topic.

A Data Management license is not required to create, update, or delete label values, but one is required to create, update, delete, and see labels on assets.

#### URI

DELETE api/api-version/sites/site-luid/labelValues/label-value-name

#### 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 unique LUID of the site asset.</td></tr><tr><td><span class="api-placeholder">label-value-name</span></td><td>The label value name. URL encode the label value name if it has spaces or non-alphanumeric characters in it.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

Only a site or server administrator can create, update, or delete label values.

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:label_values:delete
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Version

Introduced in Tableau Cloud June 2023 (API 3.20) and Tableau Server 2023.3 (API 3.21).

#### 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>403 </td>
                                <td>403004</td>
                                <td>Operation on resource unauthorized</td>
                                <td>You must be a site or server administrator to create or update label values.</td>
                            </tr>
                            <tr>
                                <td>409</td>
                                <td>409004</td>
                                <td>Invalid parameter</td>
                                <td>
                                    <ul>
                                        <li>The label value name in the URI must exist.</li>
                                        <li>The label value name can't be one of the built-in labels, unless that label has a customized  description (in which case, this method reverts the description to the built-in default).
</li>
                                    </ul>
                                </td>
                            </tr>
                            <tr>
                                <td>401</td>
                                <td>4000173</td>
                                <td>Generic add labels to content error</td>
                                <td>An unknown error occurred.</td>
                            </tr>
                        </tbody>
                    </table>

## Delete Label Category

Deletes a label category.

Note that category is one property of a label value (labelValue), which is itself a property of a label on an asset. Other properties of a labelValue include name and description. These properties determine label behavior and options that users see in label dialogs. For more information on data label objects and properties, see the [Data Labels in the REST API](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_data_labels.htm) topic.

A Data Management license is not required to create, update, or delete label categories, but one is required to create, update, delete, and see labels on assets.

#### URI

DELETE api/api-version/sites/site-luid/labelCategories/label-category-name

#### 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 unique LUID of the site asset.</td></tr><tr><td><span class="api-placeholder">label-category-name</span></td><td>The label category name. URL encode the label category name (as it appears in the Tableau web interface) if it has spaces or non-alphanumeric characters in it.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

Only a site or server administrator can create, update, or delete label categories.

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:label_categories:delete
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Version

Introduced in Tableau Cloud October 2023 (API 3.21) / Server 2023.3 (API 3.21).

#### 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>400191</td>
                                <td>Generic delete label category error</td>
                                <td>An unknown error occurred.</td>
                            </tr>
                            <tr>
                                <td>403</td>
                                <td>403004</td>
                                <td>Operation on resource unauthorized</td>
                                <td>
                                    <p>You must be an administrator to create, update, or delete label values.</p>
                                </td>
                            </tr>
                            <tr>
                                <td>409</td>
                                <td>409004</td>
                                <td>Invalid parameter</td>
                                <td>
                                    <ul>
                                        <li>The category name in the URI must exist.</li>
                                        <li>The category name can't be one of the built-in categories.
</li>
                                    </ul>
                                </td>
                            </tr>
                        </tbody>
                    </table>

## Delete Table Permissions

Permanently remove the permissions applied to a table asset.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

DELETE api/api-version/sites/site-luid/tables/table-luid/permissions/users/user-luid/capability-name/capability-mode

DELETE api/api-version/sites/site-luid/tables/table-luid/permissions/groups/group-luid/capability-name/capability-mode

#### 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 of the site asset.</td></tr><tr><td><span class="api-placeholder">table-luid</span></td><td>The LUID of the table asset.</td></tr><tr><td><span class="api-placeholder">user-luid</span></td><td>The LUID of the user to remove the permissions for.</td></tr><tr><td><span class="api-placeholder">group-luid</span></td><td>The LUID of the group to remove the permissions for.</td></tr><tr><td><span class="api-placeholder">capability-name</span></td><td>The explicit permissions capability to remove. Capabilities that can be removed are <b>Read</b>, <b>Write</b>, <b>ChangePermissions</b>, or <b>ChangeHierarchy</b>.</td></tr><tr><td><span class="api-placeholder">capability-mode</span></td><td>The permissions mode to remove. Modes that can be removed are <b>Allow</b> or <b>Deny</b>.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to delete the permissions on a table asset:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to set or "ChangePermissions" to the asset metadata

#### Response Code

204

#### Response Body

None

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### 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>400120</td><td>Bad request</td><td>Permissions could not be deleted because support for explicit permissions is available for table assets associated with published data sources only.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>403</td><td>403117</td><td>Database locked</td><td>Permissions for the table asset cannot be deleted because the database asset is locked.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site LUID in the URI doesn't correspond to an existing site.</td></tr><tr><td>409</td><td>409051</td><td>Database update forbidden</td><td>A user without "write" permissions to the database asset attempted an update.</td></tr></tbody></table>

## Delete Tag from Column

Delete a tag from a column.

For more information about tags, see [Tag Items](https://help.tableau.com/current/pro/desktop/en-us/tags.htm) in the Tableau User Help.

#### URI

DELETE api/api-version/sites/site-id/columns/column-id/tags/tag-name

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr><tr><td><span class="api-placeholder">column-id</span></td><td>The unique ID of the column asset.</td></tr><tr><td><span class="api-placeholder">tag-name</span></td><td>The keyword text of the tag.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to delete tags:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:column_tags:delete
```

For more information, see [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 connected apps: [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).

#### Response Code

204

#### Response Body

None

#### Version

Version 3.9 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>403</td><td>403004</td><td>Unauthorized operation</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>404</td><td>404007</td><td>Tag not found</td><td>The tag does not exist.</td></tr><tr><td>409</td><td>409062</td><td>Generic database tag error</td><td>The tag or tags could not be deleted (or added) for some other reason than those specified in this table.</td></tr><tr><td>409</td><td>409066</td><td>Column not found</td><td>The column asset does not exist.</td></tr></tbody></table>

## Delete Tag from Database

Delete a tag from a database.

For more information about tags, see [Tag Items](https://help.tableau.com/current/pro/desktop/en-us/tags.htm) in the Tableau User Help.

#### URI

DELETE api/api-version/sites/site-id/databases/database-id/tags/tag-name

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr><tr><td><span class="api-placeholder">database-id</span></td><td>The unique ID of the database asset.</td></tr><tr><td><span class="api-placeholder">tag-name</span></td><td>The keyword text of the tag.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to delete tags:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:database_tags:delete
```

For more information, see [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 connected apps: [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).

#### Response Code

204

#### Response Body

None

#### Version

Version 3.9 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>403</td><td>403004</td><td>Unauthorized operation</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>404</td><td>404007</td><td>Tag not found</td><td>The tag does not exist.</td></tr><tr><td>404</td><td>404031</td><td>Database not found</td><td>The database asset does not exist.</td></tr><tr><td>409</td><td>409048</td><td>Generic database tag error</td><td>The tag or tags could not be deleted (or added) for some other reason than those specified above.</td></tr></tbody></table>

## Delete Tag from Table

Delete a tag from a table.

For more information about tags, see [Tag Items](https://help.tableau.com/current/pro/desktop/en-us/tags.htm) in the Tableau User Help.

#### URI

DELETE api/api-version/sites/site-id/tables/table-id/tags/tag-name

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr><tr><td><span class="api-placeholder">table-id</span></td><td>The unique ID of the table asset.</td></tr><tr><td><span class="api-placeholder">tag-name</span></td><td>The keyword text of the tag.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to delete tags:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:table_tags:delete
```

For more information, see [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 connected apps: [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).

#### Response Code

204

#### Response Body

None

#### Version

Version 3.9 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>403</td><td>403004</td><td>Unauthorized operation</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>404</td><td>404007</td><td>Tag not found</td><td>The tag does not exist.</td></tr><tr><td>404</td><td>404032</td><td>Table not found</td><td>The table asset does not exist.</td></tr><tr><td>409</td><td>409055</td><td>Generic database tag error</td><td>The tag or tags could not be deleted (or added) for some other reason than those specified above.</td></tr></tbody></table>

## Batch Delete Tags

Delete multiple tags from items that are different content and asset types.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

For more information about tags, see [Tag Items](https://help.tableau.com/current/pro/desktop/en-us/tags.htm) in the Tableau User Help.

#### URI

DELETE api/api-version/sites/site-id/tags:BatchDelete

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <tagBatch>
	<tags>
	   <tag label="tag-value1"></tag>
	   <tag label="tag-value2"></tag>
	</tags>
	<contents>
	   <content id="database-id"></content>
	   <content id="table-id"></content>
	   <content id="column-id"></content>
	   <content id="datasource-id"></content>
	   <content id="workbook-id"></content>
	   <content id="flow-id"></content>
	</contents>
  </tagBatch>
</tsRequest>
```

#### Attribute Values

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">tag-value1</span>
                                </td>
                                <td>
                                    <p>Keyword text you want to add to item.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">tag-value2</span>
                                </td>
                                <td>
                                    <p>Keyword text you want to add to item.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">database-id</span>
                                </td>
                                <td>The unique ID of the database asset.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">table-id</span>
                                </td>
                                <td>The unique ID of the table asset.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">column-id</span>
                                </td>
                                <td>The unique ID of the column asset.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">datasource-id</span>
                                </td>
                                <td>The unique ID of the data source content.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">workbook-id</span>
                                </td>
                                <td>The unique ID of the workbook content.
</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">flow-id</span>
                                </td>
                                <td>The unique ID of the flow content.
</td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to delete tags:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:tags:batch_delete
```

For more information, see [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 connected apps: [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).

#### Response Code

204

#### Response Body

**Example response**

```
<tsRequest>
  <tagBatch>
	<tags>
	   <tag label="PII"></tag>
	   <tag label="Noteworthy"></tag>
	</tags>
	<contents>
	   <content id="database-id"></content>
	   <content id="table-id"></content>
	   <content id="column-id"></content>
	   <content id="datasource-id"></content>
	   <content id="workbook-id"></content>
	   <content id="flow-id"></content>
	</contents>
  </tagBatch>
</tsRequest>
```

#### Version

Version 3.9 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>403</td><td>403004</td><td>Unauthorized operation</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>404</td><td>404029</td><td>Content not found</td><td>The content does not exist.</td></tr><tr><td>404</td><td>404031</td><td>Database not found</td><td>The database asset does not exist.</td></tr><tr><td>404</td><td>404032</td><td>Table not found</td><td>The table asset does not exist.</td></tr><tr><td>409</td><td>409004</td><td>Invalid parameter</td><td>One or more values in the request body are invalid.</td></tr><tr><td>409</td><td>409066</td><td>Column not found</td><td>The column asset does not exist.</td></tr></tbody></table>

## Delete Tag from Virtual Connection

Deletes a tag from a virtual connection.

**Version:** Available in API 3.23 (Tableau Cloud June 2024 / Tableau Server 2024.2) and later. _[Version Overview](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm)_

**License:** Requires [Tableau Data Management](https://help.tableau.com/current/online/en-us/dm_overview.htm).

**Permissions:** You must have the View permission for the virtual connection and your site role must be at least Explorer.   _[Permissions Overview](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm)_

**JWT Access Scope**: tableau:virtual\_connection\_tags:delete

- Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).
- For more information, see [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 connected apps: [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-id/virtualconnections/virtualconnection-id/tags/tag-name

#### 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-id</span></td><td>The LUID for the site.</td></tr><tr><td><span class="api-placeholder">virtualconnection-id</span></td><td>The LUID for the virtual connection.</td></tr><tr><td><span class="api-placeholder">tag-name</span></td><td>The text of the tag.</td></tr></tbody></table>

#### Request Body

None

#### cURL Request Example

`curl --location --request DELETE 'http://MY-SERVER/api/3.29/sites/9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d/virtualconnections/12ab34cd-56ef-78ab-90cd-12ef34ab56cd/tags/office' --header 'Content-Type: application/xml' --header 'X-Tableau-Auth: HvZMqFFfQQmOM4L-AZNIQA|5fI6T54OPK1Gn1p4w0RtHv6EkojWRTwq|a946d998-2ead-4894-bb50-1054a91dcab3'`

#### Response Code

204

#### 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>400077</td><td>Error deleting tag</td><td>There was a problem deleting the tag from the specified virtual connection.</td></tr><tr><td>403</td><td>403004</td><td>Deleting tags forbidden</td><td>The user doesn't have permissions to add delete tags from the virtual connection.</td></tr><tr><td>404</td><td>404000</td><td>Site not found</td><td>The site ID or URL namespace in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404004</td><td>Virtual connection not found</td><td>The virtual connection ID in the URI doesn't correspond to an existing virtual connection.</td></tr><tr><td>404</td><td>404007</td><td>Tag not found</td><td>The tag in the URI doesn't exist for the specified virtual connection.</td></tr><tr><td>405</td><td>405000</td><td>Invalid request method</td><td>Request type was not <span class="api-command-ref">DELETE</span>.</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 Label

Gets a data label by its LUID.

For more information on data label objects and properties, see the [Data Labels in the REST API](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_data_labels.htm) topic.

All label operations except those related to the certification of data sources require Catalog to be enabled. Catalog requires a Data Management license.

#### URI

GET api/api-version/sites/site-luid/labels/label-luid

#### 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 unique LUID of the site asset.</td></tr><tr><td><span class="api-placeholder">label-luid</span></td><td>The unique LUID of the label asset.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

To view a data label, you must have read permissions on the associated asset.

#### Required scope for JWT authorization

Introduced in Tableau Cloud June 2024 and Tableau Server 2024.2 (API 3.23).

```
tableau:labels:read
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

```
<tsResponse>
  <label id="label-luid"
      userDisplayName="user-display-name"
      contentId="asset-luid"
      contentType="asset-type"
      message="label-message"
      value="label-value-name"
      category="label-category"
      active="true-or-false"
      elevated="true-or-false"
      createdAt="datetime"
      updatedAt="datetime" >
    <site id="site-luid"/>
    <owner id="user-luid"/>
  </label>
</tsResponse>
```

#### Version

Introduced in Tableau Cloud June 2022 (API 3.16) and Tableau Server 2022.3 (API 3.17).

#### 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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>401</td><td>400103</td><td>Generic query label error</td><td>An unknown error occurred.</td></tr><tr><td>403</td><td>403004</td><td>Operation on resource unauthorized</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>404</td><td>404030</td><td>Label not found</td><td>The label LUID doesn't correspond to an existing project.</td></tr><tr><td>409</td><td>409004</td><td>Invalid parameter</td><td>One or more values in the request body are invalid.</td></tr></tbody></table>

## Get Labels

Displays information about the data labels on one or more assets.

You can optionally limit the data labels to show by category using a query string.

For more information on data label objects and properties, see the [Data Labels in the REST API](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_data_labels.htm) topic.

All label operations except those related to the certification of data sources require Catalog to be enabled. Catalog requires a Data Management license.

#### URI

POST api/api-version/sites/site-luid/labels

POST api/api-version/sites/site-luid/labels?categories=category-list

#### 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 unique LUID of the site asset.</td></tr><tr><td><span class="api-placeholder">category-list</span></td><td>(Optional) A comma-separated list of label value categories used to limit the labels shown to only the listed categories. See <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_data_labels.htm" class="xref">Data Labels in the REST&nbsp;API</a> for information on label values and categories.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <contentList>
    <content contentType="asset-type"
      id="asset-luid" />
    <!-- ... additional content elements ... -->
  </contentList>
</tsRequest>
```

#### Attribute Values

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">asset-type</span>
                                </td>
                                <td>
                                    <p>The type of asset.  Valid asset types are:</p>
                                    <ul>
                                        <li><span class="api-command-ref">database</span>
                                        </li>
                                        <li><span class="api-command-ref">table</span>
                                        </li>
                                        <li><span class="api-command-ref">column</span> <i>- Available in API 3.16 and later (Tableau Cloud October 2022, Server 2022.3)</i></li>
                                        <li><span class="api-command-ref">datasource</span>
                                        </li>
                                        <li><span class="api-command-ref">flow</span>
                                        </li>
                                        <li><span class="api-command-ref">virtualconnection</span>
                                        </li>
                                        <li><span class="api-command-ref">virtualconnectiontable</span>
                                        </li>
                                    </ul>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">asset-luid</span>
                                </td>
                                <td>The asset LUID.</td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

To view a data label, you must have read permissions on the associated asset.

#### Required scope for JWT authorization

Introduced in Tableau Cloud June 2024 and Tableau Server 2024.2 (API 3.23).

```
tableau:labels:read
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

```
<tsResponse>
  <labelList>
    <label id="label-luid"
        userDisplayName="user-display-name"
        contentId="asset-luid"
        contentType="asset-type"
        message="label-message"
        value="label-value-name"
        category="label-category"
        active="true-or-false"
        elevated="true-or-false"
        createdAt="datetime"
        updatedAt="datetime">
      <site id="site-luid"/>
      <owner id="user-luid"/>
    </label>
    <!-- ... additional label elements ... –->
  </labelList>
</tsResponse>
```

#### Version

Introduced in Tableau Cloud June 2022 (API 3.16) and Tableau Server 2022.3 (API 3.17).

#### Errors

When more than one asset appears in the request (the contentList element contains more than one content element), this method will fail if an error is encountered operating on any of them. For example, if you are getting labels for a database and a table, but you provide the wrong table LUID, the method will return an error even if the database LUID was correct.

<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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>401</td><td>400104</td><td>Generic delete label error</td><td>An unknown error occurred.</td></tr><tr><td>403</td><td>403004</td><td>Operation on resource unauthorized</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>404</td><td>404029</td><td>Resource not found</td><td>The <span class="api-command-ref">contentType</span> and <span class="api-command-ref">contentID</span> attribute combination does not correspond to an asset on the server. This can be caused by an incorrect <span class="api-command-ref">contentType</span>, an incorrect <span class="api-command-ref">contentID</span>, or both.</td></tr><tr><td>409</td><td>409004</td><td>Invalid parameter</td><td>One or more values in the request body are invalid.</td></tr></tbody></table>

## Get labelValue

Displays label value properties for a single label value.

Note that a label value (labelValue) is one property of a label. A label value has its own properties like name, category, and description that determine label behavior and options that users see in label dialogs. For more information on data label objects and properties, see the [Data Labels in the REST API](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_data_labels.htm) topic.

A Data Management license is not required to create, update, or delete label values, but one is required to create, update, delete, and see labels on assets.

#### URI

GET api/api-version/sites/site-luid/labelValues/label-value-name

#### 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 unique LUID of the site asset.</td></tr><tr><td><span class="api-placeholder">label-value-name</span></td><td>The label value name. URL encode the label value name if it has spaces or non-alphanumeric characters in it.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

Any logged in user can view the label values for their site.

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:label_values:read
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Version

Introduced in Tableau Cloud June 2023 (API 3.20) and Tableau Server 2023.3 (API 3.21).

#### Response Body

```
<tsResponse>
  <labelValue name="label-value-name"
    category="labe-value-category"
    description="label-value-description"
    internal="true-or-false"
    elevatedDefault="true-or-false"
    builtIn="true-or-false">
    <site id="site-luid"/>
  </labelValue>
</tsResponse>
```

#### 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>4000171</td><td>Generic query label value error</td><td>An unknown error occurred.</td></tr><tr><td>404</td><td>404029</td><td>No label value matches the request parameter</td><td>Check the label value name in the URI. Remember to URL-encode non-alphanumeric characters.</td></tr></tbody></table>

## Get Metadata Suggestion

Gets a suggestion from generative AI about asset metadata.

As of June 2024, the type of suggestion is limited to the description for a workbook, data source, or table. Generative AI suggests a description based on the chosen asset's metadata, such as asset name, field names, and/or column names. This method can't apply the suggested description to the asset.

More than one request results in alternative suggestions.

**Note:**

- This REST API method uses generative AI. Generative AI can produce inaccurate or harmful responses. Check the output before using. For more information, see [AI in Tableau and Trust](https://help.tableau.com/current/tableau/en-us/tableau_gai_einstein_trust.htm).
- Salesforce's generative AI is built on the Einstein Trust Layer. Your data stays safe and secure through data and privacy controls that are seamlessly integrated into the user experience. For more information, see [Einstein Trust Layer](https://help.tableau.com/current/tableau/en-us/tableau_gai_einstein_trust_layer.htm).

**Version:** Available in API 3.23 (Tableau Cloud June 2024) and later. Not available for Tableau Server. _[Version Overview](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm)_

**License:** Requires [Tableau+](https://help.tableau.com/current/online/en-us/to_tab_plus_features.htm).

**Permissions:** Overwrite permission on the asset you're requesting suggestions for.   _[Permissions Overview](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_permissions.htm)_

**JWT Access Scope:** Not available

- For more information, see [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 connected apps: [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/metadataSuggestions?suggestionType=suggestion-type

#### 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">suggestion-type</span>
                                    </td>
                                    <td>
                                        <p>The type of metadata suggestion. The only valid type of suggestion is <span class="api-placeholder">description</span>.</p>
                                        <p>Note: The URI parameter <span class="api-command-ref">suggestionType</span> is case-sensitive.</p>
                                    </td>
                                </tr>
                            </tbody>
                        </table>

#### Request Body

_(Use the icon in the top right corner to copy the text.)_

```
<tsRequest>
    <contentList>
        <content contentType="asset-type" id="asset-luid" />
    </contentList>
</tsRequest>
```

_(Use the icon in the top right corner to copy the text.)_

```
{
 "contentList": {
  "content": [
   {"contentType":"asset-type","id":"asset-luid"}
  ]
 }
}
```

#### Request Attributes

<table class="api-parameters-table">
                                <colgroup>
                                    <col class="api-parameters-table-col-1">
                                    <col>
                                </colgroup>
                                <tbody>
                                    <tr>
                                        <td><span class="api-placeholder">asset-type</span>
                                        </td>
                                        <td>
                                            <p>Valid types are:</p>
                                            <ul>
                                                <li>workbook</li>
                                                <li>datasource</li>
                                                <li>table</li>
                                            </ul>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">asset-luid</span>
                                        </td>
                                        <td>
                                            <p>The LUID of the asset.</p>
                                        </td>
                                    </tr>
                                </tbody>
                            </table>

#### cURL Request Example

_(Use the icon in the top right corner to copy the text.)_

```
curl --location 'https://MY-SERVER//api/3.23/sites/f480b345-8ab5-4e0b-98e6-9553de5748f9/metadataSuggestions?suggestionType=description' --header 'X-Tableau-Auth: 5Jgp0n2lSUaYbTB7NA6Wrw|mtqLBgKQEoup31yMme7la61kywW6LaTm|f480b345-8ab5-4e0b-98e6-9553de5748f9' --header 'Content-Type: application/xml' --data data.xml'
```

**Contents of data.xml.**

_(Use the icon in the top right corner to copy the text.)_

```
<tsRequest>
  <contentList>
    <content contentType="datasource"
      id="d6092e66-8cb5-495d-990c-823385c6c8db" />
  </contentList>
</tsRequest>
```

#### Response Code

200

#### Response Body

Multiple requests result in alternative suggestions.

```
<tsResponse>
    <suggestionList>
        <suggestion suggestionId="suggestion-luid"
            contentType="asset-type"
            contentId="asset-luid"
            suggestionType="suggestion-type"
            text="suggested-description"/>
    </suggestionList>
</tsResponse>
```

```
{
    "suggestionList": {
        "suggestion": [
            {
                "suggestionId": "suggestion-luid",
                "contentType": "asset-type",
                "contentId": "asset-luid",
                "suggestionType": "suggestion-type",
                "text": "suggested-description"
            }
        ]
    }
}
```

#### 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>400000</td><td>Bad Request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>400</td><td>400192</td><td>Missing or incomplete payload</td><td>Make sure the request body is present and complete.</td></tr><tr><td>400</td><td>400193</td><td>Generic error</td><td>An unknown error occurred.</td></tr><tr><td>403</td><td>403004</td><td>Permission denied</td><td>Check permissions for the asset. Check the asset type and asset LUID.</td></tr><tr><td>403</td><td>403157</td><td>Feature disabled</td><td>This method is only available on Tableau Cloud with Tableau+.</td></tr><tr><td>404</td><td>404055</td><td>Asset not found</td><td>Can't find selected asset. Check the asset type and asset LUID.</td></tr><tr><td>409</td><td>409004</td><td>Invalid parameter</td><td>URI parameter may be incorrect. The <span class="api-command-ref">suggestionType</span> parameter is case sensitive, and must be <span class="api-command-ref">description</span>.</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 Databases and Tables from Connection

Query databases and tables from the connection information in the data source (.tds or .tdsx) or workbook (.tws or .twbx) file's XML.

**Note:** This method can't be used to query databases and tables when the database is an embedded asset. For more information about embedded assets see one of the following: 

- For Tableau Cloud, see [Embedded asset appears in External Assets](https://help.tableau.com/current/online/en-us/dm_lineage.htm#embedded-asset-appears-in-external-assets).
- For Tableau Server, see [Embedded asset appears in External Assets](https://help.tableau.com/current/server/en-us/dm_lineage.htm#embedded-asset-appears-in-external-assets).

#### URI

POST api/_api-version_/sites/_site-id_/databaseAndTables/lookup

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <databaseAnchor isArchived="embedded"
    datasourceName="datasource_name" datasourceFormattedName="datasource_format">
	<connectionParams>
	   <base64xml>encoded_xml</base64xml>
  	</connectionParams>
  </databaseAnchor>
</tsRequest>
```

#### Attribute Values

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">embedded</span>
                                </td>
                                <td>
                                    <p>(Optional) Indicates whether the database is embedded or not. Use "<span class="api-command-ref">false</span>" if the database is not embedded and "<span class="api-command-ref">true</span>"&nbsp;if the database is embedded. For more information about embedded databases (and tables), see one of the following topics:&nbsp;</p>
                                    <ul>
                                        <li>For Tableau Cloud, see <a href="https://help.tableau.com/current/online/en-us/dm_lineage.htm#embedded-asset-appears-in-external-assets" target="_blank">Embedded asset appears in External Assets</a>.</li>
                                        <li>For Tableau Server, see <a href="https://help.tableau.com/current/server/en-us/dm_lineage.htm#embedded-asset-appears-in-external-assets" target="_blank">Embedded asset appears in External Assets</a>.</li>
                                    </ul>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">datasource-name</span>
                                </td>
                                <td>(Optional) The data source name that can be found in the XML of the data source (.tds or .tdsx) or workbook (.tws or .twbx) file.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">datasource-format</span>
                                </td>
                                <td>(Optional) The format of the data source that can be found in the XML&nbsp;of the data source (.tds or .tdsx) or workbook (.tws or .twbx) file.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">encoded_xml</span>
                                </td>
                                <td>
                                    <p>This is the encoded version of the connection element (<code>&lt;connection&gt;...&lt;/connection&gt;</code>) in the XML&nbsp;of the data source (.tds or .tdsx) or workbook (.tws or .twbx) file. </p>
                                    <ul>
                                        <li>Before you begin, make a copy of the data source or workbook file to ensure you have a backup.</li>
                                        <li>To encode the <code>connection</code> element, you can use a free online base64 encoding tool or write a simple script. <b>Note:</b>&nbsp;Make sure there are no extra spaces between the <code>connection</code> element's start and end tags. For example, after encoding the connection element, the generated encoding should look like <code>&lt;base64xml&gt;...&lt;/base64xml&gt;</code>. If the generated encoding looks like <code>&lt;base64xml&gt; ... &lt;/base64xml&gt;</code>, you might see an invalid parameter (409097) error.</li>
                                    </ul>
                                </td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to query databases and tables from the connection:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have "derived permissions" (if enabled) or have been granted explicit "Read" (view) permissions to the asset

Otherwise, authorized users who have "derived permissions" (if enabled), and Tableau Server admins or Tableau Cloud site admins.

#### Response Code

200

#### Response Body

**Example response**

```
<tsResponse>
  <databaseAnchors>
	<databaseAnchor connectionName="mysql.myco" id="71081fcd-d142-4d19-98b5-c87192d837f5">
	  <tableAnchors>
		<tableAnchor id="85e7b082-20c0-433d-9bfe-70506a93452b" name="Marketing" fullName="[Marketing]"/>
	  </tableAnchors>
	</databaseAnchor>
	<databaseAnchor connectionName="sqlserver.myco" id="1ef8c5cc-7d82-4062-aff7-2d9305cab8a1">
	  <tableAnchors>
		<tableAnchor id="8b8c639a-864e-4f29-b1d8-23057d2d59f3" name="Advertising" fullName="[dbo].[Advertising]"/>
	  </tableAnchors>
	</databaseAnchor>
  </databaseAnchors>
</tsResponse>
```

**Note:** Both `databaseAnchor` and `tableAnchor` IDs returned from this request correspond to `database` and `table` IDs that you can use to retrieve additional information about databases and tables endpoints using other REST endpoints, including [Query Database](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#query_database) and [Query Table](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#query_table).

#### Version

Version 3.13 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>409</td><td>409095</td><td>Generic asset retrieval error</td><td>The database and table information could not be queried for some reason other than those specified in this table.</td></tr><tr><td>409</td><td>409096</td><td>Unauthorized operation</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>409</td><td>409097</td><td>Invalid parameter</td><td>One or more values in the request body are invalid.</td></tr></tbody></table>

## List labelValues on Site

Lists all label values on the site.

You can optionally limit the list of returned data label values using a query string in the URI.

Note that a label value (labelValue) is one property of a label. A label value has its own properties like name, category, and description that determine label behavior and options that users see in label dialogs. For more information on data label objects and properties, see the [Data Labels in the REST API](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_data_labels.htm) topic.

A Data Management license is not required to create, update, or delete label values, but one is required to create, update, delete, and see labels on assets.

#### URI

GET api/api-version/sites/site-luid/labelValues

GET api/api-version/sites/site-luid/labelValues?categories=category-list

GET api/api-version/sites/site-luid/labelValues?isInternal=internal-flag

#### 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 unique LUID of the site asset.</td></tr><tr><td><span class="api-placeholder">category-list</span></td><td>(Optional) A comma-separated list of categories for limiting the list to only one category of labels. Valid categories are the built-in categories <span class="uicontrol">warning</span>, <span class="uicontrol">certification</span>, and <span class="uicontrol">sensitivity</span>, or custom categories that an administrator created. (Custom categories were released with Tableau Cloud October 2023 and Tableau Server 2023.3.).</td></tr><tr><td><span class="api-placeholder">internal-flag</span></td><td>(Optional) A Boolean value that specifies if you want to return label values that are internal or aren't. (The data quality warnings that arise from extract refresh monitoring and flow run monitoring are internal labels.)</td></tr></tbody></table>

#### Request Body

None

#### Permissions

Any logged in user can view the label values for their site.

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:label_values:read
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Version

Introduced in Tableau Cloud June 2023 (API 3.20) and Tableau Server 2023.3 (API 3.21).

#### Response Body

```
<tsResponse>
  <labelValueList>
    <labelValue name="label-value-name"
      category="label-value-category"
      description="label-value-description"
      internal="true-or-false"
      elevatedDefault="true-or-false"
      builtIn="true-or-false">
      <site id="site-luid"/>
    </labelValue>
    <!-- ... additional labelValue elements ... –->
  </labelValueList>
</tsResponse>				
```

#### 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>400172</td><td>Generic query label values error</td><td>An unknown error occurred.</td></tr><tr><td>409</td><td>409004</td><td>Bad Request</td><td>One or more values in the request are invalid. If filtering by categories in the URI, check spelling of category. If filtering by isInternal in the URI, confirm you've provided a Boolean value.</td></tr></tbody></table>

## List Label Categories on Site

Lists all data label categories on the site.

Note that category is one property of a label value (labelValue), which is itself a property of a label on an asset. Other properties of a labelValue include name and description. These properties determine label behavior and options that users see in label dialogs. For more information on data label objects and properties, see the [Data Labels in the REST API](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_data_labels.htm) topic.

#### URI

GET api/api-version/sites/site-luid/labelCategories

#### 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 unique LUID of the site asset.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

Any logged in user can view the label categories for their site.

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:label_categories:read
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Version

Introduced in Tableau Cloud October 2023 (API 3.21) / Server 2023.3 (API 3.21).

#### Response Body

<tsResponse>
  <labelCategoryList>
    <labelCategory name="label-category-name"
      description="label-category-description"/>
    <!-- ... additional labelCategory elements ... –->
  </labelCategoryList>
</tsResponse>

#### 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>400188</td><td>Generic get label category error</td><td>An unknown error occurred.</td></tr></tbody></table>

## Move Database

Move one or more databases to a project.

You can move the database and its tables, or move only the database. To move a table independently of its database, use the [Move Table](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#move_table) method.

Note: Starting in Tableau Cloud June 2022 and Tableau Server 2022.3, projects can contain databases and tables, and database and table permissions can be managed at the project level through inheritance. In Tableau Cloud March 2022 and Tableau Server 2022.1 and earlier, projects couldn't contain databases or tables.

The Move Database method can either:

- Move a database from one project to another project.
- Move a database not in a project to a project.

This method can't remove a database from all projects. (The only way to remove a database from all projects is to delete the project that the database is in.)

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

POST api/api-version/sites/site-luid/databases

#### 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 of the site that contains the database.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <contentLocationRequest>
    <location id="project-luid" type="location-type" />
    <contentAction action="action-type" />
    <resourceList>
      <resource id="database-luid" contentType="asset-type"/>
      <!-- ... more database resources ... -->
    </resourceList>
  </contentLocationRequest>
</tsRequest>
```

The contentAction element is optional.

- If the contentAction element is not included, moving the database will also move its tables.
- If the contentAction element is included and the action attribute is set to MoveDatabaseOnly, moving the database will not move its tables.

The resourceList element can contain a minimum of 1 and a maximum of 1000 resource elements.

#### Attribute Values

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">project-luid</span>
                                </td>
                                <td>The LUID of the destination project.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">location-type</span>
                                </td>
                                <td>
                                    <p>The destination type.  Currently, this value must be "<span class="api-command-ref">PROJECT</span>".</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">action-type</span>
                                </td>
                                <td>To move a database without moving its tables, this value must be "<span class="api-command-ref">MoveDatabaseOnly</span>".</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">database-luid</span>
                                </td>
                                <td>The LUID of the database.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">asset-type</span>
                                </td>
                                <td>The type of asset being moved.  Currently, this value must be "<span class="api-command-ref">DATABASE</span>".</td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

If you are moving a database _without_ its tables, you must have read and changeHierarchy permissions for the database, and write permission for the target project.

If you are moving both a database and its tables, you must have read and changeHierarchy permissions for both the database and its tables, and write permission for the target project.

Note: Currently, you can only set the ChangeHierarchy permission for databases and tables using the REST API. See [Add Database Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#add_database_perms) and [Add Table Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#add_table_perms) for information on adding this permission.

Setting the required database and table permissions depends on whether the database is in a project or not.

- If the database is in a project, the database and table permissions will follow the rules for permissions on content inside of projects. See [Set Permissions](https://help.tableau.com/current/server/en-us/permissions.htm#set-permissions) for information on these rules.
- If the database is not in a project, the database and table permissions will follow the rules for permissions on external assets. See [Set permissions on individual external assets](https://help.tableau.com/current/server/en-us/dm_perms_assets.htm#set-permissions-on-individual-external-assets) for information on these rules.

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:database_projects:update
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response when all elements were moved successfully:**

```
<tsResponse />
```

**Example response when not all elements were moved successfully.:**

When some database resource elements of a request with multiple database resource elements can’t be moved, the HTTP status 400 is returned, and the response contains additional information about failures. Resource elements from the request body that are not referenced in the response body were successfully moved. A response indicating partial success looks like:

```
<tsResponse>
  <error code="400000">
    <summary>Bad Request</summary>
    <detail>There was a problem completing one or more requests.</detail>
  </error>
  <warnings>
    <warning message="Database '12ab34cd-56ef-78ab-90cd-12ef34ab56cd' could not be found."
        id="12ab34cd-56ef-78ab-90cd-12ef34ab56cd"
        errorCode="404031"/>
  </warnings>
</tsResponse>
```

#### Version

Introduced Tableau Cloud June 2022 (API 3.16) and Tableau Server 2022.3 (API 3.17). For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>400</td><td>409100</td><td>Invalid location type</td><td>The <span class="api-command-ref">location</span> element's type attribute must be "<span class="api-command-ref">PROJECT</span>".</td></tr><tr><td>400</td><td>409103</td><td>Invalid content type</td><td>The <span class="api-command-ref">resource</span> element's <span class="api-command-ref">contentType</span> attribute must be "<span class="api-command-ref">DATABASE</span>".</td></tr><tr><td>403</td><td>403004</td><td>Operation on resource unauthorized</td><td>Insufficient permissions or operation not allowed. Make sure Tableau Catalog is enabled.</td></tr><tr><td>403</td><td>403030</td><td>Permissions denied</td><td>The user does not have permission to move the database.</td></tr><tr><td>403</td><td>403112</td><td>Invalid Operation</td><td>The database may be embedded, and therefore cannot be moved.</td></tr><tr><td>403</td><td>403156</td><td>External assets can not be moved</td><td>The user does not have appropriate permissions.</td></tr><tr><td>404</td><td>404005</td><td>Project not found</td><td>The project LUID doesn't correspond to an existing project.</td></tr><tr><td>404</td><td>404031</td><td>Database not found</td><td>The database LUID doesn't correspond to an existing database. In a case where multiple databases were specified in the request, other database moves could have succeeded.</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).

#### Example

`curl --location --request POST 'http://MY-SERVER/api/3.16/sites/9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d/databases' --header 'Content-Type: application/xml' --header 'X-Tableau-Auth: 12ab34cd56ef78ab90cd12ef34ab56cd' -d @move-database.xml`

**Content of move-database.xml:**

```
<tsRequest>
  <contentLocationRequest>
  <location id="1f2f3e4e-5d6d-7c8c-9b0b-1a2a3f4f5e6e" type="PROJECT" />
    <resourceList>
      <resource id="dd9eb9de-50b3-4f90-a224-e6170e044766" contentType="DATABASE"/>
    </resourceList>
  </contentLocationRequest>
</tsRequest>
```

**Example response:**

```
<tsresponse />
```

## Move Table

Moves one or more tables to a project.

Note: Starting in Tableau Cloud June 2022 and Tableau Server 2022.3, projects can contain databases and tables, and database and table permissions can be managed at the project level through inheritance. In Tableau Cloud March 2022 and Tableau Server 2022.1 and earlier, projects couldn’t contain databases or tables.

The Move Table method can either:

- Move a table from one project to another project.
- Move a table not in a project to a project.

This method can’t remove a table from all projects. (The only way to remove a table from all projects is to delete the project that the table is in.)

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

POST api/api-version/sites/site-luid/tables

#### 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 of the site that contains the table.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <contentLocationRequest>
    <location id="project-luid" type="location-type" />
      <resourceList>
        <resource id="table-luid" contentType="asset-type"/>
        <!-- ...more resources... -->
      </resourceList>
  </contentLocationRequest>
</tsRequest>
```

The resourceList element can contain a minimum of 1 and a maximum of 1000 resource elements.

#### Attribute Values

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">project-luid</span>
                                </td>
                                <td>The LUID of the destination project.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">location-type</span>
                                </td>
                                <td>
                                    <p>The destination type.  Currently, this value must be "<span class="api-command-ref">PROJECT</span>".</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">table-luid</span>
                                </td>
                                <td>The LUID of the table.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">asset-type</span>
                                </td>
                                <td>The type of asset being moved.  Currently, this value must be "<span class="api-command-ref">TABLE</span>".</td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

You must have read and changeHierarchy permissions for the table, and write permission for the target project.

If you are moving both a database and its tables, you must have read and changeHierarchy permissions for both the database and its tables, and write permission for the target project.

Note: Currently, you can only set the ChangeHierarchy permission for databases and tables using the REST API. See [Add Database Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#add_database_perms) and [Add Table Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#add_table_perms) for information on adding this permission.

Setting the required table permissions depends on whether the parent database is in a project or not.

- If the table is in a project, the table permissions will follow the rules for permissions on content inside of projects. See [Set Permissions](https://help.tableau.com/current/server/en-us/permissions.htm#set-permissions) for information on these rules.
- If the table is not in a project, the table permissions will follow the rules for permissions on external assets. See [Set permissions on individual external assets](https://help.tableau.com/current/server/en-us/dm_perms_assets.htm#set-permissions-on-individual-external-assets) for information on these rules.

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:table_projects:update
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response when all elements were moved successfully:**

```
<tsResponse />
```

**Example response when not all elements were moved successfully.:**

When some table resource elements of a request with multiple table resource elements can’t be moved, the HTTP status 400 is returned, and the response contains additional information about failures. Resource elements from the request body that are not referenced in the response body were successfully moved. A response indicating partial success looks like:

```
<tsResponse>
  <error code="400000">
    <summary>Bad Request</summary>
    <detail>There was a problem completing one or more requests.</detail>
  </error>
  <warnings>
    <warning message="Table '12ab34cd-56ef-78ab-90cd-12ef34ab56cd' could not be found."
      id="12ab34cd-56ef-78ab-90cd-12ef34ab56cd"
      errorCode="404032"/>
    </warnings>
</tsResponse>
```

#### Version

Introduced Tableau Cloud June 2022 (API 3.16) and Tableau Server 2022.3 (API 3.17). For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>400</td><td>409100</td><td>Invalid location type</td><td>The <span class="api-command-ref">location</span> element's type attribute must be "<span class="api-command-ref">PROJECT</span>".</td></tr><tr><td>400</td><td>409103</td><td>Invalid content type</td><td>The <span class="api-command-ref">resource</span> element's <span class="api-command-ref">contentType</span> attribute must be "<span class="api-command-ref">TABLE</span>".</td></tr><tr><td>403</td><td>403004</td><td>Operation on resource unauthorized</td><td>Insufficient permissions or operation not allowed. Make sure Tableau Catalog is enabled.</td></tr><tr><td>403</td><td>403030</td><td>Permissions denied</td><td>The user does not have permission to move the table.</td></tr><tr><td>403</td><td>403112</td><td>Invalid Operation</td><td>The table may belong to an embedded database, and therefore cannot be moved.</td></tr><tr><td>403</td><td>403156</td><td>External assets can not be moved</td><td>The user does not have appropriate permissions.</td></tr><tr><td>404</td><td>404005</td><td>Project not found</td><td>The project LUID doesn't correspond to an existing project.</td></tr><tr><td>404</td><td>404032</td><td>Table not found</td><td>The table LUID doesn't correspond to an existing table. In a case where multiple tables were specified in the request, other table moves could have succeeded.</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).

#### Example

`curl --location --request POST 'http://MY-SERVER/api/3.16/sites/9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d/tables' --header 'Content-Type: application/xml' --header 'X-Tableau-Auth: 12ab34cd56ef78ab90cd12ef34ab56cd' -d @move-table.xml`

**Content of move-table.xml:**

```
<tsRequest>
  <contentLocationRequest>
  <location id="1f2f3e4e-5d6d-7c8c-9b0b-1a2a3f4f5e6e" type="PROJECT" />
    <resourceList>
      <resource id="ac353e22-3e78-43a7-914f-73e9bd05ec97" contentType="TABLE"/>
    </resourceList>
  </contentLocationRequest>
</tsRequest>
```

**Example response:**

```
<tsresponse />
```

## Query Column in a Table

Get information about a column in a table asset.

#### URI

GET api/_api-version_/sites/_site-id_/tables/_table-id_/columns/_column-id_

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr><tr><td><span class="api-placeholder">table-id</span></td><td>The unique ID of the table asset.</td></tr><tr><td><span class="api-placeholder">column-id</span></td><td>The unique ID&nbsp;of the column asset.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to query a column asset in a table:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have "derived permissions" (if enabled) or have been granted explicit "Read" (view) permissions to the asset

Otherwise, authorized users who have "derived permissions" (if enabled), and Tableau Server admins or Tableau Cloud site admins.

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:columns:read
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response:**

```
<tsResponse xmlns="http://tableau.com/api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-3.5.xsd">
	<column id="0b589fc9-1523-4aae-b711-62d48672ac6a" name="StateProvinceID" remoteType="I4" parentTableId="75029ee7-935a-4f57-8717-58c2339dd219">
	  <site id="5286d663-8668-4ac2-8c8d-91af7d585f6b"/>
	</column>
</tsResponse>
```

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site ID in the URI doesn't correspond to an existing site.</td></tr><tr><td>409</td><td>409059</td><td>Unknown column error</td><td>An unknown column asset error occurred.</td></tr><tr><td>409</td><td>409060</td><td>Unknown column query error</td><td>An unknown error occurred and the column query could not complete.</td></tr><tr><td>409</td><td>409066</td><td>Column not found</td><td>The requested column asset could not be found.</td></tr></tbody></table>

## Query Columns in a Table

Get information about the columns in a table asset.

#### URI

GET api/_api-version_/sites/_site-id_/tables/_table-id_/columns

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr><tr><td><span class="api-placeholder">table-id</span></td><td>The unique ID of the table asset.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to query column assets in a table:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have "derived permissions" (if enabled) or have been granted explicit "Read" (view) permissions to the asset

Otherwise, authorized users who have "derived permissions" (if enabled), and Tableau Server admins or Tableau Cloud site admins.

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:columns:read
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response:**

```
<tsResponse xmlns="http://tableau.com/api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-3.5.xsd">
  <columns>
	<column id="38cb9944-4b81-4107-8946-5adf9e047d23" name="AddressID" remoteType="I4" parentTableId="75029ee7-935a-4f57-8717-58c2339dd219">
		<site id="5286d663-8668-4ac2-8c8d-91af7d585f6b"/>
	</column>
	<column id="c6dcdb0e-9b2a-4224-bf3b-58662fe72b09" name="AddressLine1" remoteType="WSTR" parentTableId="75029ee7-935a-4f57-8717-58c2339dd219">
		<site id="5286d663-8668-4ac2-8c8d-91af7d585f6b"/>
	</column>
  </columns>
</tsResponse>
```

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site ID in the URI doesn't correspond to an existing site.</td></tr><tr><td>409</td><td>409059</td><td>Unknown column error</td><td>An unknown column asset error occurred.</td></tr><tr><td>409</td><td>409060</td><td>Unknown column query error</td><td>An unknown error occurred and the column query could not complete.</td></tr><tr><td>409</td><td>409066</td><td>Column not found</td><td>The requested column assets could not be found.</td></tr></tbody></table>

## Query Database

Get information about a database asset.

#### URI

GET api/_api-version_/sites/_site-luid_/databases/_database-luid_

#### 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 of the site asset.</td></tr><tr><td><span class="api-placeholder">database-luid</span></td><td>The LUID of the database asset.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to query a database asset:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have "derived permissions" (if enabled) or have been granted explicit "Read" (view) permissions to the asset

Otherwise, authorized users who have "derived permissions" (if enabled), and Tableau Server admins or Tableau Cloud site admins.

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:databases:read
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response:**

```
<tsResponse>
  <database id="c495c67b-2a17-4706-991c-b3b14f881e20" name="dataengine_42020_789079537040lea.hyper" connectionType="hyper" isEmbedded="true" isCertified="true" certificationNote="Verified" type="File" filePath="dataengine_42020_789079537040lea.hyper" contentPermissions="ManagedByOwner">
    <site id="5286d663-8668-4ac2-8c8d-91af7d585f6b"/>
    <contact id="95656dcf-c669-46c0-81fb-8f278e4806b2" name="fsuzuki"/>
    <certifier id="2c5ea058-6408-46a6-9aa2-09f795a31237" name="snguyen"/>
    <location id="1f2f3e4e-5d6d-7c8c-9b0b-1a2a3f4f5e6e" type="PROJECT"/>
    <tags/>
  </database>
</tsResponse>
```

**Note:** This method returns connection information, including connection type. In some cases, the name of the connection type might not map directly to a name of a connection type that you're familiar with. In those cases, see [Mapping ConnectionType Names](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_connectiontype.htm) for more information.

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### 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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site LUID in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404031</td><td>Database not found</td><td>The requested database could not be found.</td></tr><tr><td>409</td><td>409045</td><td>Database error</td><td>An unknown database asset error occurred.</td></tr><tr><td>409</td><td>409046</td><td>Unknown database query error</td><td>An unknown error occurred and the database query could not complete.</td></tr></tbody></table>

## Query Databases

Get information about all database assets for a site.

#### URI

GET api/_api-version_/sites/_site-luid_/databases

#### 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 of the site asset.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to query database assets:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have "derived permissions" (if enabled) or have been granted explicit "Read" (view) permissions to the asset

Otherwise, authorized users who have "derived permissions" (if enabled), and Tableau Server admins or Tableau Cloud site admins.

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:databases:read
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response:**

```
<tsResponse>
  <databases>
	<pagination pageNumber="1" pageSize="100" totalAvailable="496">
	<database id="b749a80e-43eb-4805-9e6d-44c615ee10e2" name="airlines" connectionType="sqlserver" isEmbedded="false" description="This is about airlines and other stuff but mainly airlines"
		isCertified="true" certificationNote="THIS IS ALSO FROM THE REST API"
        type="DatabaseServer" hostName="mssql.test.example.com" contentPermissions="ManagedByOwner">
		<site id="5286d663-8668-4ac2-8c8d-91af7d585f6b"/>
		<contact id="95656dcf-c669-46c0-81fb-8f278e4806b2" name="jsmith"/>
        <certifier id="2c5ea058-6408-46a6-9aa2-09f795a31237" name="snguyen"/>
        <location id="1f2f3e4e-5d6d-7c8c-9b0b-1a2a3f4f5e6e" type="PROJECT"/>
        <tags/>
	</database>
	<database id="522f8295-5a07-4ba7-89be-cbbd9617928d" name="small.csv" connectionType="textscan" isEmbedded="true"
        isCertified="false"
         type="File" filePath="small.csv" contentPermissions="ManagedByOwner">
		<site id="5286d663-8668-4ac2-8c8d-91af7d585f6b"/>
		<contact id="95656dcf-c669-46c0-81fb-8f278e4806b2" name="fsuzuki"/>
        <tags/>
	</database>
	<database id="fcd0f91e-8c8d-45c4-848a-0aa3b42990c6" name="ows.json" connectionType="semistructpassivestore-direct" isEmbedded="true"
        isCertified="false"
        type="File" filePath="ows.json" contentPermissions="ManagedByOwner">
		<site id="5286d663-8668-4ac2-8c8d-91af7d585f6b"/>
        <tags/>
	</database>
	<database id="24010777-0e17-43ed-8624-577a85e8043b" name="/Users/awang/Dropbox (Tableau Software)/911_calls_short.csv" connectionType="textscan" isEmbedded="false"
        isCertified="false"
        type="File" filePath="/Users/jsmith/Dropbox (Tableau Software)/911_calls_short.csv" contentPermissions="ManagedByOwner">
		<site id="5286d663-8668-4ac2-8c8d-91af7d585f6b"/>
        <location id="1f2f3e4e-5d6d-7c8c-9b0b-1a2a3f4f5e6e" type="PROJECT"/>
        <tags/>
	</database>
	<database id="1d1879b2-789d-46c2-950f-f82a4d77e150" name="911_calls_short.csv" connectionType="textscan" isEmbedded="true"
        isCertified="false"
        type="File" filePath="911_calls_short.csv" contentPermissions="ManagedByOwner">
		<site id="5286d663-8668-4ac2-8c8d-91af7d585f6b"/>
        <tags/>
	</database>
	<database id="bc872610-aa3e-4071-8a39-2c1a847cf39c" name="Prince.xlsx" connectionType="excel-direct" isEmbedded="true"
        isCertified="false"
        type="File" filePath="Prince.xlsx" contentPermissions="ManagedByOwner">
		<site id="5286d663-8668-4ac2-8c8d-91af7d585f6b"/>
        <tags/>
	</database>
  </databases>
</tsResponse>
```

**Note:** This method returns connection information, including connection type. In some cases, the name of the connection type might not map directly to a name of a connection type that you're familiar with. In those cases, see [Mapping ConnectionType Names](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_connectiontype.htm) for more information.

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### 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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site LUID in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404031</td><td>Database not found</td><td>The requested databases could not be found.</td></tr><tr><td>409</td><td>409045</td><td>Database error</td><td>An unknown database asset error occurred.</td></tr><tr><td>409</td><td>409046</td><td>Unknown database query error</td><td>An unknown error occurred and the database query could not complete.</td></tr></tbody></table>

## List Database Permissions

Get information about the permissions on a database asset.

#### URI

GET api/_api-version_/sites/_site-luid_/databases/_database-luid_/permissions

#### 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 of the site asset.</td></tr><tr><td><span class="api-placeholder">database-luid</span></td><td>The LUID of the database asset.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following authorized users have permissions to query the permissions on the database asset:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to set or "ChangePermissions" to the asset metadata

#### Response Code

200

#### Response Body

**Example response with explicit permissions set on a database asset:**

```
<tsResponse>
  <permissions>
	<database id="e8d4aa9f-3d1a-4b49-8d6d-27f113cbd25e" name="oracle.test.example.com:1521"/>
	<granteeCapabilities>
	  <user id="6265b714-7533-465d-b6db-6d0be92bfd07"/>
	  <capabilities>
		<capability name="Read" mode="Allow"/>
	  </capabilities>
	</granteeCapabilities>
  </permissions>
</tsResponse>
```

**Example response without explicit permissions set on a database asset:**

```
<tsResponse>
  <permissions>
	<database id="0f206b0e-da69-4746-bb95-87695f522b4d" name="stage"/>
  </permissions>
</tsResponse>
```

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### 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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>400</td><td>400120</td><td>Bad request</td><td>Permissions could not be returned because support for explicit permissions is available for database assets associated with published data sources only.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>400</td><td>400120</td><td>Bad request</td><td>Support for explicit permissions is available for database assets associated with published data sources only.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site LUID in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404031</td><td>Database not found</td><td>The requested database could not be found.</td></tr><tr><td>409</td><td>409045</td><td>Database error</td><td>An unknown database asset error occurred.</td></tr></tbody></table>

## List Default Database Permissions

Get the default permissions applied to the database asset and its children tables.

Note: If a database is in a project, default database permissions are not evaluated to determine table permissions. Use [Query Default Permissions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#query_default_permissions) to see default permissions for projects instead.

#### URI

GET /api/_api-version_/sites/_site-luid_/databases/_database-luid_/default-permissions/tables

#### 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 of the site asset.</td></tr><tr><td><span class="api-placeholder">database-luid</span></td><td>The LUID of the database asset to set default permissions for.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following authorized users set default permissions for the database asset:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Response Code

200

#### Response Body

**Example response**

```
<tsResponse>
  <permissions>
	<database id="e8d4aa9f-3d1a-4b49-8d6d-27f113cbd25e" name="oracle.test.example.com:1521"/>
	<granteeCapabilities>
	  <user id="6265b714-7533-465d-b6db-6d0be92bfd07"/>
	  <capabilities>
		<capability name="Read" mode="Allow"/>
	  </capabilities>
	</granteeCapabilities>
  </permissions>
</tsResponse>
		
```

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### 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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>400</td><td>400120</td><td>Bad request</td><td>Permissions could not be returned because support for explicit permissions is available for database assets associated with published data sources only.</td></tr><tr><td>404</td><td>404000</td><td>Site not found</td><td>The site LUID in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404003</td><td>Resource not found</td><td>The database LUID in the URI doesn't correspond to a database asset on the site.</td></tr></tbody></table>

## Query Data Quality Warning by ID

Get information about a specific data quality warning.

**Note:** Data quality warnings and certifications can be more generally managed through the newer **Labels** methods. Tableau recommends using them to help ensure that you can manage your assets as new features are developed.

Try the [Get Label](#get_label) method instead.

#### URI

GET api/_api-version_/sites/_site-id_/dataQualityWarnings/_dataqualitywarning-id_

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr><tr><td><span class="api-placeholder">dataqualitywarning-id</span></td><td>The unique ID of the data quality warning.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to query the data quality warning:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have "derived permissions" (if enabled) or have been granted explicit "Read" (view) permissions to the asset

Otherwise, authorized users who have "derived permissions" (if enabled), and Tableau Server admins or Tableau Cloud site admins.

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:labels:read
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response:**

```
<tsResponse>
   <dataQualityWarning id="1c8ebdfc-270a-4414-812c-3306a1c95e07" userDisplayName="Steve Nguyen" contentId="0d7465f2-4989-417e-b88d-f787359edc63" contentType="DATABASE" message="Delayed" type="WARNING" isActive="true" createdAt="2020-10-08T00:00:35Z" updatedAt="2020-10-08T00:00:35Z" isSevere="false">
	<site id="a946d998-2ead-4894-bb50-1054a91dcab3"/>
	<owner id="cdfe8548-84c8-418e-9b33-2c0728b1234a"/>
   </dataQualityWarning>
</tsResponse>
```

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>400</td><td>400103</td><td>Unknown data quality warning query error</td><td>An unknown error occurred and the data quality warning query could not complete.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site ID in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404030</td><td>Data quality warning not found</td><td>The data quality warning for the requested asset could not be found.</td></tr></tbody></table>

## Query Data Quality Warning by Content

Get information about the data quality warning for the database, table, column, published data source, flow, virtual connection, or virtual connection table.

**Note:** Data quality warnings and certifications can be more generally managed through the newer **Labels** methods. Tableau recommends using them to help ensure that you can manage your assets as new features are developed.

Try the [Get Labels](#get_labels_on_assets) method instead.

#### URI

GET api/_api-version_/sites/_site-id_/dataQualityWarnings/_content-type_/_content-luid_

#### 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-id</span>
                                    </td>
                                    <td>The unique ID of the site asset.</td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">content-type</span>
                                    </td>
                                    <td>
                            The type of asset that the data quality warning is being attached to. To specify the  type, use one of the following values:
                            <ul><li><span class="uicontrol">database</span></li><li><span class="uicontrol">table</span></li><li><span class="uicontrol">column</span> <i>- Available in API 3.16 and later (Tableau Cloud October 2022, Server 2022.3)</i></li><li><span class="uicontrol">datasource</span></li><li><span class="uicontrol">flow</span></li><li><span class="uicontrol">virtualconnection</span></li><li><span class="uicontrol">virtualconnectiontable</span></li></ul><p>These values are not case sensitive.</p></td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">content-luid</span>
                                    </td>
                                    <td>The LUID of the content (database, table, column, published data source, flow, virtual connection, or virtual connection table).</td>
                                </tr>
                            </tbody>
                        </table>

#### Request Body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to query the data quality warning:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have "derived permissions" (if enabled) or have been granted explicit "Read" (view) permissions to the asset

Otherwise, authorized users who have "derived permissions" (if enabled), and Tableau Server admins or Tableau Cloud site admins.

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:labels:read
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response:**

```
<tsResponse>
   <dataQualityWarningList>
	<dataQualityWarning id="3b9fa2df-0915-4cda-9e29-bccb64a2eb7b" userDisplayName="Steve Nguyen" contentId="924ae707-a915-498d-b909-a86cd5135b8d" contentType="DATABASE" message="Talk to admin" type="WARNING" isActive="true" createdAt="2021-01-12T01:04:55Z" updatedAt="2021-01-12T01:04:55Z" isSevere="false">
	   <site id="3d512018-64c4-4b66-a1fa-1c83710e323c"/>
	   <owner id="2bfe6c21-17e0-449a-8e5c-382e740eca85"/>
	</dataQualityWarning>
   </dataQualityWarningList>
</tsResponse>
```

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>400</td><td>400104</td><td>Unknown data quality warning query error</td><td>An unknown error occurred and the data quality warning query could not complete.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site ID in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404029</td><td>Content not found</td><td>The requested asset could not be found.</td></tr><tr><td>404</td><td>404030</td><td>Data quality warning not found</td><td>The data quality warning for the requested asset could not be found.</td></tr></tbody></table>

## Query Data Quality Certification by ID

Get information about a data quality certification.

**Note:** Data quality warnings and certifications can be more generally managed through the newer **Labels** methods. Tableau recommends using them to help ensure that you can manage your assets as new features are developed.

Try the [Get Label](#get_label) method instead.

#### URI

GET api/_api-version_/sites/_site-id_/dataQualityCertifications/_certification-luid_

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr><tr><td><span class="api-placeholder">certification-luid</span></td><td>The unique ID of the data quality certification.</td></tr></tbody></table>

#### Request body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to query a data quality certification:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have "derived permissions" (if enabled) or have been granted explicit "Read" (view) permissions to the asset

Otherwise, authorized users who have "derived permissions" (if enabled), and Tableau Server admins or Tableau Cloud site admins.

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:labels:read
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response**

```
<tsResponse>
   <dataQualityIndicator>
	id="d5a4006c-0276-4c5a-bb98-712815c91ce7"
	userDisplayName="Mark Nguyen"
	contentId="a34884d0-1d80-4505-bf21-c6b7ce10814a" contentType="DATASOURCE"
	message="Marketing approved"
	type="CERTIFIED" active="true"
	createdAt="2021-06-08T17:22:20Z"
	updatedAt="2021-09-08T17:27:57Z" severe="false"/>
	siteID="284e2a17-65c8-47bf-b88f-ff96d69c2303"
	ownerID="f95180e7-0c64-4a58-86da-b9f4d3db2583"
   </dataQualityIndicator>
</tsResponse>
```

#### Version

Version 3.13 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400103</td><td>Generic data quality certification error</td><td>The data quality certification could not be queried for some reason other than those specified in this table.</td></tr><tr><td>403</td><td>403004</td><td>Unauthorized operation</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>404</td><td>404030</td><td>Data quality indicator not found</td><td>The requested data quality certification was not found.</td></tr><tr><td>409</td><td>409004</td><td>Invalid parameter</td><td>One or more values in the request body are invalid.</td></tr></tbody></table>

## Query Data Quality Certifications by Content

Get all data quality certifications for content or asset items.

**Note:** Data quality warnings and certifications can be more generally managed through the newer **Labels** methods. Tableau recommends using them to help ensure that you can manage your assets as new features are developed.

Try the [Get Labels](#get_labels_on_assets) method instead.

#### URI

GET api/_api-version_/sites/_site-id_/dataQualityCertifications/_content-type_/_content-luid_

#### 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-id</span>
                                    </td>
                                    <td>The unique ID of the site asset.</td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">content-type</span>
                                    </td>
                                    <td>
                                        <p>
								The type of content the data quality certification has been applied to. To specify the  type, use one of the following values:
							</p>
                                        <ul>
                                            <li><span class="uicontrol">database</span>
                                            </li>
                                            <li><span class="uicontrol">table</span>
                                            </li>
                                            <li><span class="uicontrol">datasource</span>
                                            </li>
                                            <li><span class="uicontrol">virtualconnection</span>
                                            </li>
                                            <li><span class="uicontrol">virtualconnectiontable</span>
                                            </li>
                                        </ul>
                                        <p>These values are not case sensitive.</p>
                                    </td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">content-luid</span>
                                    </td>
                                    <td>The LUID of the content (database, table, published data source, flow, virtual connection, or virtual connection table).					</td>
                                </tr>
                            </tbody>
                        </table>

#### Request body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to query data quality certifications:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have "derived permissions" (if enabled) or have been granted explicit "Read" (view) permissions to the asset

Otherwise, authorized users who have "derived permissions" (if enabled), and Tableau Server admins or Tableau Cloud site admins.

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:labels:read
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response**

```
<tsResponse>
   <dataQualityIndicator>
	id="d5a4006c-0276-4c5a-bb98-712815c91ce7"
	userDisplayName="Mark Nguyen" contentId="a34884d0-1d80-4505-bf21-c6b7ce10814a"
	contentType="DATASOURCE"
	message="Marketing approved"
	type="CERTIFIED" active="true"
	createdAt="2021-06-08T17:22:20Z"
	updatedAt="2021-09-08T17:27:57Z"
	severe="false"/>
	siteID="284e2a17-65c8-47bf-b88f-ff96d69c2303"
	ownerID="f95180e7-0c64-4a58-86da-b9f4d3db2583"
   </dataQualityIndicator>
</tsResponse>
```

#### Version

Version 3.13 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400104</td><td>Generic data quality certification error</td><td>The data quality certification could not be queried for some reason other than those specified in this table.</td></tr><tr><td>403</td><td>403004</td><td>Unauthorized operation</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>404</td><td>404029</td><td>Data quality indicator not found</td><td>The requested data quality certification was not found.</td></tr><tr><td>409</td><td>409004</td><td>Invalid parameter</td><td>One or more values in the request body are invalid.</td></tr></tbody></table>

## Query Quality Warning Trigger

Get information about a quality warning trigger.

#### URI

GET api/_api-version_/sites/_site-id_/dataQualityTriggers/_trigger-id_

#### 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-id</span>
                                    </td>
                                    <td>The unique ID of the site asset.</td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">content-type</span>
                                    </td>
                                    <td>
                                        <p>
                            The type of content the quality warning trigger has been applied to. To specify the  type, use on of the following values:
</p>
                                        <ul>
                                            <li><span class="uicontrol">datasource</span>
                                            </li>
                                            <li><span class="uicontrol">flow</span>
                                            </li>
                                        </ul>
                                        <p>These values are not case sensitive.</p>
                                    </td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">trigger-id</span>
                                    </td>
                                    <td>
                            The unique ID of the quality warning trigger.
</td>
                                </tr>
                            </tbody>
                        </table>

#### Request body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to query a quality warning trigger:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have "derived permissions" (if enabled) or have been granted explicit "Read" (view) permissions to the asset

Otherwise, authorized users who have "derived permissions" (if enabled), and Tableau Server admins or Tableau Cloud site admins.

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:labels:read
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response**

```
<tsResponse>
  <dataQualityTriggerList>
	<dataQualityTrigger id="{trigger-luid}" siteId="{site-luid}"
		userId="1c8ebdfc-270a-4414-812c-3306a1c95e07" userDisplayName="Joe Nguyen" contentId="{content-luid}"
		contentType="DATASOURCE" message=" This message is specified by the user."
		type="EXTRACT_REFRESH" active="true" createdAt="Wed Sep 22 05:49:52 UTC 2020"
		updatedAt="Wed Sep 22 05:49:52 UTC 2020" severe="false"/>
  </dataQualityTriggerList>
</tsResponse>
```

#### Version

Version 3.11 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400134</td><td>Generic quality warning trigger error</td><td>The quality warning trigger could not be queried for some reason other than those specified below.</td></tr><tr><td>403</td><td>403004</td><td>Unauthorized operation</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>404</td><td>404037</td><td>Quality warning not found</td><td>The requested quality warning trigger was not found.</td></tr><tr><td>409</td><td>409004</td><td>Invalid parameter</td><td>One or more values in the request body are invalid.</td></tr></tbody></table>

## Query All Quality Warning Triggers by Content

Get information about all quality warning triggers for a content item.

#### URI

GET api/_api-version_/sites/_site-id_/dataQualityTriggers/content-type/_content-luid_

#### 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-id</span>
                                    </td>
                                    <td>The unique ID of the site asset.</td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">content-type</span>
                                    </td>
                                    <td>
                                        <p>
                            The type of content that the quality warning trigger has been applied to. To specify the  type, use one of the following values:
</p>
                                        <ul>
                                            <li> <span class="uicontrol">datasource</span></li>
                                            <li><span class="uicontrol">flow</span>
                                            </li>
                                        </ul>
                                        <p>These values are not case sensitive.</p>
                                    </td>
                                </tr>
                                <tr>
                                    <td><span class="api-placeholder">content-luid</span>
                                    </td>
                                    <td>
                            The unique ID of the asset. This is the same as the content ID.
                        </td>
                                </tr>
                            </tbody>
                        </table>

#### Request body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to query quality warning triggers:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have "derived permissions" (if enabled) or have been granted explicit "Read" (view) permissions to the asset

Otherwise, authorized users who have "derived permissions" (if enabled), and Tableau Server admins or Tableau Cloud site admins.

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:labels:read
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response**

```
<tsResponse>
  <dataQualityTriggerList>
	<dataQualityTrigger id="{trigger-luid}" siteId="{site-luid}"
		userId="f95180e7-0c64-4a58-86da-b9f4d3db2583" userDisplayName="Mark Nguyen" contentId="a34884d0-1d80-4505-bf21-c6b7ce10814a"
		contentType="DATASOURCE" message=" This message is specified by the user."
		type="EXTRACT_REFRESH" active="true" createdAt="Wed Sep 22 05:49:52 UTC 2020"
		updatedAt="Wed Sep 22 05:49:52 UTC 2020" severe="false"/>
  </dataQualityTriggerList>
</tsResponse>
```

#### Version

Version 3.11 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400134</td><td>Generic quality warning trigger error</td><td>The quality warning triggers could not be queried for some other reason than those specified below.</td></tr><tr><td>403</td><td>403004</td><td>Unauthorized operation</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>404</td><td>404037</td><td>Quality warning not found</td><td>The requested quality warning trigger was not found.</td></tr><tr><td>409</td><td>409004</td><td>Invalid parameter</td><td>One or more values in the request body are invalid.</td></tr></tbody></table>

## Query Table

Get information about a table asset.

#### URI

GET api/_api-version_/sites/_site-id_/tables/_table-id_

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr><tr><td><span class="api-placeholder">table-id</span></td><td>The unique ID of the table asset.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to query the table asset:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have "derived permissions" (if enabled) or have been granted explicit "Read" (view) permissions to the asset

Otherwise, authorized users who have "derived permissions" (if enabled), and Tableau Server admins or Tableau Cloud site admins.

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:tables:read
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response:**

```
<tsResponse xmlns="http://tableau.com/api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-3.5.xsd">
  <table id="917b1438-7000-4a9e-a949-13b90a0237dd" name="[Orders$]" isEmbedded="true" isCertified="false">
	<site id="3dd2f0ef-4a9b-44a7-bec5-a50598f41792"/>
  </tsResponse>
```

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### 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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site ID in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404032</td><td>Table not found</td><td>The requested table could not be found.</td></tr><tr><td>409</td><td>409052</td><td>Unknown table error</td><td>An unknown table asset error occurred.</td></tr><tr><td>409</td><td>409053</td><td>Unknown table query error</td><td>An unknown error occurred and the table query could not complete.</td></tr></tbody></table>

## Query Tables

Get information about all table assets for a site.

#### URI

GET api/_api-version_/sites/_site-id_/tables

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to query table assets:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have "derived permissions" (if enabled) or have been granted explicit "Read" (view) permissions to the asset

Otherwise, authorized users who have "derived permissions" (if enabled), and Tableau Server admins or Tableau Cloud site admins.

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:tables:read
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response:**

```
<tsResponse xmlns="http://tableau.com/api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-3.5.xsd">
  <tables>
	<table id="6a9b6058-671d-44bc-ad6d-c58b225f5d4c" name="Culture" isEmbedded="false" isCertified="false">
	  <site id="3dd2f0ef-4a9b-44a7-bec5-a50598f41792"/>
 	</table>
	<table id="917b1438-7000-4a9e-a949-13b90a0237dd" name="[Orders$]" isEmbedded="true" isCertified="false">
	  <site id="3dd2f0ef-4a9b-44a7-bec5-a50598f41792"/>
	</table>
	<table id="58d94f3f-1339-4721-8674-e53dc9dfe02e" name="Batters" isEmbedded="false" isCertified="false">
	  <site id="3dd2f0ef-4a9b-44a7-bec5-a50598f41792"/>
	</table>
	<table id="5e8ca1e3-9752-430c-abae-11104084b469" name="[911_calls_short#csv]" isEmbedded="false" isCertified="false">
	  <site id="3dd2f0ef-4a9b-44a7-bec5-a50598f41792"/>
	</table>
  </tables>
</tsResponse>
```

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### 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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site ID in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404032</td><td>Table not found</td><td>The requested tables could not be found.</td></tr><tr><td>409</td><td>409052</td><td>Unknown table error</td><td>An unknown table asset error occurred.</td></tr><tr><td>409</td><td>409053</td><td>Unknown table query error</td><td>An unknown error occurred and the table query could not complete.</td></tr></tbody></table>

## List Table Permissions

Get information about the permissions on a table asset.

#### URI

GET api/_api-version_/sites/_site-id_/tables/_table-id_/permissions

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr><tr><td><span class="api-placeholder">table-id</span></td><td>The unique ID of the table asset.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following authorized users have permissions to query the permissions on the table asset:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to set or "ChangePermissions" to the asset metadata

#### Response Code

200

#### Response Body

**Example response with explicit permissions set:**

```
<tsResponse xmlns="http://tableau.com/api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-3.5.xsd">
  <permissions>
	<table id="d0fe66ae-1407-4338-8520-9489d7ce959c" name="_WarehouseConfig"/>
	<granteeCapabilities>
	  <user id="6265b714-7533-465d-b6db-6d0be92bfd07"/>
	  <capabilities>
		<capability name="Read" mode="Allow"/>
	  </capabilities>
	</granteeCapabilities>
  </permissions>
</tsResponse>
```

**Example response without explicit permissions set:**

```
<tsResponse xmlns="http://tableau.com/api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-3.5.xsd">
  <permissions>
	<parent id="95ac9b30-5b2c-48ed-af56-cab9b0d4b064" type="Database"/>
	  <table id="4ef842be-5c90-4878-a048-99a896b59996" name="BigMachines"/>
  </permissions>
</tsResponse>
```

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>400</td><td>400120</td><td>Bad request</td><td>Permissions could not be returned because support for explicit permissions is available for table assets associated with published data sources (not embedded data sources) only.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site ID in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404032</td><td>Table not found</td><td>The requested table asset could not be found.</td></tr><tr><td>409</td><td>409052</td><td>Table error</td><td>An unknown table asset error occurred.</td></tr><tr><td>409</td><td>409053</td><td>Unknown table query error</td><td>An unknown error occurred and the table query could not complete.</td></tr></tbody></table>

## Remove Column

Permanently remove the column from a table asset.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

DELETE api/_api-version_/sites/_site-id_/tables/_table-id_/columns/_column-id_

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr><tr><td><span class="api-placeholder">table-id</span></td><td>The unique ID of the table asset.</td></tr><tr><td><span class="api-placeholder">column-id</span></td><td>The unique ID&nbsp;of the column asset.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to remove the column:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:columns:delete
```

For more information, see [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 connected apps: [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).

#### Response Code

204

#### Response Body

None

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site ID in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404032</td><td>Table not found</td><td>The requested table asset could not be found.</td></tr><tr><td>409</td><td>409059</td><td>Column error</td><td>An unknown column asset error occurred.</td></tr><tr><td>409</td><td>409061</td><td>Unknown column delete error</td><td>An unknown error occurred and the column could not be deleted.</td></tr><tr><td>409</td><td>409066</td><td>Column not found</td><td>The requested column asset could not be found.</td></tr></tbody></table>

## Remove Database

Permanently remove the database asset.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

DELETE api/_api-version_/sites/_site-id_/databases/_database-id_

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr><tr><td><span class="api-placeholder">database-id</span></td><td>The unique ID of the database asset.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

Server or site administrators only.

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to remove the database asset:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:databases:delete
```

For more information, see [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 connected apps: [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).

#### Response Code

204

#### Response Body

None

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### 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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site ID in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404031</td><td>Database not found</td><td>The requested database could not be found.</td></tr><tr><td>409</td><td>409045</td><td>Database error</td><td>An unknown database asset error occurred.</td></tr><tr><td>409</td><td>409047</td><td>Database delete error</td><td>An unknown error occurred and the database asset could not be deleted.</td></tr></tbody></table>

## Remove Table

Permanently remove the table asset.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

DELETE api/_api-version_/sites/_site-id_/tables/_table-id_

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr><tr><td><span class="api-placeholder">table-id</span></td><td>The unique ID of the table asset.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to remove the table asset:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:tables:delete
```

For more information, see [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 connected apps: [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).

#### Response Code

204

#### Response Body

None

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site ID in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404032</td><td>Table not found</td><td>The requested table asset could not be found.</td></tr><tr><td>409</td><td>409052</td><td>Table error</td><td>An unknown table asset error occurred.</td></tr><tr><td>409</td><td>409054</td><td>Unknown table delete error</td><td>An unknown error occurred and the table could not be deleted.</td></tr></tbody></table>

## Update Column

Update the description of the column.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

PUT api/_api-version_/sites/_site-id_/tables/_table-id_/columns/_column-id_

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr><tr><td><span class="api-placeholder">table-id</span></td><td>The unique ID of the table asset.</td></tr><tr><td><span class="api-placeholder">column-id</span></td><td>The unique ID&nbsp;of the column asset.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <column description="new-description-value">
  </column>
</tsRequest>
```

#### Attribute Values

Any combination of attributes inside the **<column>** element is valid. Only the attributes and child elements that are included result in updates to the table. If no attributes or nested elements are included, no update is made.

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide" style="width: 264px;"> <col></colgroup><tbody><tr><td><span class="api-placeholder">new-description-value</span></td><td>(Optional) Custom text to describe the column.</td></tr></tbody></table>

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to update the column:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:columns:update
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response:**

```
<tsResponse xmlns="http://tableau.com/api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-3.5.xsd">
  <column id="0b589fc9-1523-4aae-b711-62d48672ac6a" name="StateProvinceID" description="Validated against maps" remoteType="I4" parentTableId="75029ee7-935a-4f57-8717-58c2339dd219">
	<site id="5286d663-8668-4ac2-8c8d-91af7d585f6b"/>
  </column>
</tsResponse>
```

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site ID in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404032</td><td>Table not found</td><td>The requested table asset could not be found.</td></tr><tr><td>409</td><td>409052</td><td>Column error</td><td>An unknown table asset error occurred.</td></tr><tr><td>409</td><td>409057</td><td>Column update error</td><td>An unknown error occurred and the table asset could not be updated.</td></tr><tr><td>409</td><td>409058</td><td>Column update forbidden</td><td>A user without "write"&nbsp;permissions to the table asset attempted an update.</td></tr><tr><td>409</td><td>409066</td><td>Column not found</td><td>The requested column asset could not be found.</td></tr></tbody></table>

## Update Database

Update the database description, certify a database, set database permissions, or assign a Tableau Cloud or Server user as the database contact.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

PUT api/_api-version_/sites/_site-luid_/databases/_database-luid_

#### 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 of the site asset.</td></tr><tr><td><span class="api-placeholder">database-luid</span></td><td>The LUID of the database asset.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <database isCertified="certification-status"
      certificationNote="certification-note"
      description="new-description-value"
      contentPermissions="new-content-permissions">
    <contact id="new-contact-luid" />
  </database>
</tsRequest>
```

#### Attribute Values

Any combination of attributes inside the **<database>** element is valid. Only the attributes and child elements that are included result in updates to the database asset. If no attributes or nested elements are included, no update is made.

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">certification-status</span>
                                </td>
                                <td>
                                    <p>(Optional) Certify or remove certification by using the following:</p>
                                    <ul>
                                        <li><b>True</b>
                                        </li>
                                        <li><b>False</b>
                                        </li>
                                    </ul>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">certification-note</span>
                                </td>
                                <td>(Optional) Custom text to accompany the certification status.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">new-description-value</span>
                                </td>
                                <td>(Optional) Custom text to describe the database asset.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">new-content-permissions</span>
                                </td>
                                <td>
                                    <p>(Optional) The new permissions setting for the database. You can specify one of the following:</p>
                                    <ul>
                                        <li><span class="api-command-ref">LockedToDatabase</span> to lock permissions so that users cannot overwrite the default permissions set for the database asset.</li>
                                        <li><span class="api-command-ref">ManagedByOwner</span> to allow users to manage permissions for the database asset used by the content that they own.</li>
                                    </ul>
                                    <p>The default permissions setting is <span class="api-command-ref">ManagedByOwner</span>. These values are case sensitive.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">new-contact-luid</span>
                                </td>
                                <td>(Optional) The LUID of the Tableau Server or Tableau Cloud user to associate with the database asset.</td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to update the database asset:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:databases:update
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response:**

```
<tsResponse>
  <database id="31d6ab16-3821-489b-8197-39453ce94a49" name="coffee" connectionType="sqlserver" isEmbedded="false" description="Contact Susan Nguyen (database admin) for changes." isCertified="true" certificationNote="Removed certification via REST" type="DatabaseServer" hostName="mssql.test.tsi.lan" contentPermissions="LockedToDatabase">
	<site id="5286d663-8668-4ac2-8c8d-91af7d585f6b"/>
	<contact id="2a80c15e-87c8-4b07-a5f4-e49f95e9fb0b" name="fsuzuki"/>
	<certifier id="26183d16-82f7-4fcf-b163-0e607bf292bc" name="admin"/>
  </database>
</tsResponse>
```

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### 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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site LUID in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404031</td><td>Database not found</td><td>The requested database could not be found.</td></tr><tr><td>409</td><td>409045</td><td>Database error</td><td>An unknown database asset error occurred.</td></tr><tr><td>409</td><td>409050</td><td>Database update error</td><td>An unknown error occurred and the database asset could not be updated.</td></tr><tr><td>409</td><td>409051</td><td>Database update forbidden</td><td>A user without "write"&nbsp;permissions to the database asset attempted an update.</td></tr></tbody></table>

## Update Data Quality Warning

Update the warning type, status, and message of a data quality warning.

**Note:** Data quality warnings and certifications can be more generally managed through the newer **Labels** methods. Tableau recommends using them to help ensure that you can manage your assets as new features are developed.

Try the [Update Label](#update_label) method instead.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

PUT api/_api-version_/sites/_site-id_/dataQualityWarnings/_dataqualitywarning-id_

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr><tr><td><span class="api-placeholder">dataqualitywarning-id</span></td><td>The unique ID of the data quality warning.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <dataQualityWarning type="type" isActive="status" message="message" isSevere="severity"/>
</tsRequest>
```

#### Attribute Values

Any combination of attributes inside the **<dataQualityWarning>** element is valid, but the data quality warning type is required. If the data quality warning type is not included, an error is thrown.

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">type</span>
                                </td>
                                <td>
                                    <p>Type of data quality warning to apply to the asset. To specify the type, use one of the following values:</p>
                                    <ul>
                                        <li><span class="uicontrol">DEPRECATED</span>
                                        </li>
                                        <li><span class="uicontrol">WARNING</span>
                                        </li>
                                        <li><span class="uicontrol">STALE</span>
                                        </li>
                                        <li><span class="uicontrol">MAINTENANCE</span>
                                        </li>
                                    </ul>
                                    <p class="note">Note: In Tableau Server 2023.1 and earlier, <span class="uicontrol">SENSITIVE_DATA</span> is another type of data quality warning. Starting in Tableau Cloud June 2023 and Tableau Server 2023.3, it's a sensitivity label instead.</p>
                                    <p>These values are not case sensitive.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">status</span>
                                </td>
                                <td>
                                    <p>(Optional) Controls whether the data quality warning displays. Value can be "<span class="uicontrol">true</span>" or "<span class="uicontrol">false</span>". If the state is not specified, the data quality warning is set to "true" and is visible by default.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">message</span>
                                </td>
                                <td>
                                    <p>(Optional. Was required in Tableau Server 2023.3 and earlier.)</p>
                                    <p>A custom message to accompany the data quality warning. You can format the message with italics, bold text, links, images, and more. Use HTML character entities to match the special characters in the <a href="https://help.tableau.com/current/api/rest_api/en-us/Img/formatting_guide.png" target="_blank">formatting guide</a> that's normally visible as a tooltip in the UI.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">severity</span>
                                </td>
                                <td>(Optional) Enables high visibility for the data quality warning when set to "<span class="uicontrol">true</span>". Values can be "<span class="uicontrol">true</span>" or "<span class="uicontrol">false</span>". For more information, see the "Visibility" section of the "Set a Data Quality Warning" topic in the <a href="https://help.tableau.com/current/server/en-us/dm_dqw.htm#high_visibility">Server Help</a> or <a href="https://help.tableau.com/current/online/en-us/dm_dqw.htm#high_visibility">Cloud Help</a>. </td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to update the data quality warning:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:labels:update
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response:**

```
<tsResponse>
   <dataQualityWarning id="3b9fa2df-0915-4cda-9e29-bccb64a2eb7b" userDisplayName="Steve Nguyen"
	contentId="924ae707-a915-498d-b909-a86cd5135b8d" contentType="DATABASE" message="OUT OF DATE - DO NOT USE"
	type="WARNING" isActive="true" createdAt="2021-01-12T01:04:55Z" updatedAt="2021-01-12T01:23:04Z"
	isSevere="true">
	<site id="3d512018-64c4-4b66-a1fa-1c83710e323c" />
	<owner id="2bfe6c21-17e0-449a-8e5c-123e740eca45" />
   </dataQualityWarning>
</tsResponse>
```

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>400</td><td>400109</td><td>Bad request</td><td>The request body can't be empty.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site ID in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404029</td><td>Content not found</td><td>The requested asset could not be found.</td></tr><tr><td>404</td><td>404030</td><td>Data quality warning not found</td><td>The data quality warning for the requested asset could not be found.</td></tr></tbody></table>

## Update Monitoring Quality Warning

Update a monitoring quality warning.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

PUT api/_api-version_/sites/_site-id_/dataQualityTriggers/_trigger-id_

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr><tr><td><span class="api-placeholder">trigger-id</span></td><td>The unique ID of the monitoring quality warning.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <dataQualityTrigger type="type" active="status" message="message" severe="severity"/>
</tsRequest>
```

#### Attribute Values

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">type</span>
                                </td>
                                <td>
                                    <p>Type of monitoring quality warning. To specify the type, use one of the following values:</p>
                                    <ul>
                                        <li class="api-command-ref">EXTRACT_REFRESH</li>
                                        <li class="api-command-ref">FLOW_RUN</li>
                                    </ul>
                                    <p>These values are not case sensitive.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">status</span>
                                </td>
                                <td>
                                    <p>Monitoring status. Values can be "<span class="uicontrol">true</span>" or "<span class="uicontrol">false</span>". If set to "<span class="uicontrol">true</span>", the data source is monitored for extract refresh failures or the flow is monitored for flow run failures).</p>
                                    <p>If an extract refresh or flow run failure occurs, the specified data quality warning is attached  to the data source or flow (depending on <span class="api-parameters-table">type</span>). The data quality warning is removed when the extract refresh or flow run is successful.</p>
                                    <p>For more information about monitoring quality warnings, see the monitoring quality warning section of the "Set a Data Quality Warning" topic in the <a href="https://help.tableau.com/current/server/en-us/dm_dqw.htm#how-to-turn-on-a-monitoring-quality-warning">Server Help</a> or <a href="https://help.tableau.com/current/online/en-us/dm_dqw.htm#how-to-turn-on-a-monitoring-quality-warning">Cloud Help</a>.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">message</span>
                                </td>
                                <td>(Optional) A custom message for the data quality warning. You can format the message with italics, bold text, links, images, and more. Use HTML character entities to match the special characters in the <a href="https://help.tableau.com/current/api/rest_api/en-us/Img/formatting_guide.png" target="_blank">formatting guide</a> that's normally visible as a tooltip in the UI.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">severity</span>
                                </td>
                                <td>High visibility status of the data quality warning. Values can be "<span class="uicontrol">true</span>" or "<span class="uicontrol">false</span>". For more information, see the "Visibility" section of the "Set a Data Quality Warning" topic in the <a href="https://help.tableau.com/current/server/en-us/dm_dqw.htm#high_visibility">Server Help</a> or <a href="https://help.tableau.com/current/online/en-us/dm_dqw.htm#high_visibility">Cloud Help</a>.</td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to update a monitoring quality warning:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:labels:update
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response**

```
<tsResponse>
  <dataQualityTriggerList>
	<dataQualityTrigger id="{trigger-luid}" siteId="{site-luid}"
		userId="{user-luid}" userDisplayName="Joe Nguyen" contentId="{content-luid}"
		contentType="DATASOURCE" message=" This message is specified by the user."
		type="EXTRACT_REFRESH" active="true" createdAt="Wed Sep 22 05:49:52 UTC 2020"
		updatedAt="Wed Sep 22 05:49:52 UTC 2020" severe="false"/>
  </dataQualityTriggerList>
</tsResponse>
```

#### Version

Version 3.11 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400137</td><td>Generic quality warning trigger error</td><td>The monitoring quality warning could not be updated for some other reason than those specified below.</td></tr><tr><td>403</td><td>403004</td><td>Unauthorized operation.</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>409</td><td>409004</td><td>Invalid parameter</td><td>One or more values in the request body are invalid.</td></tr></tbody></table>

## Update Label

Updates a label by its LUID.

This method can update the label value, message, active flag, and elevated flag.

You can't update the label category. If you choose a label value name that's associated with a different category, you get an error. For more information on data label objects and properties, see the [Data Labels in the REST API](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_data_labels.htm) topic.

You can't update extract refresh or flow run monitoring warnings (the extract\_refresh\_failure and flow\_run\_failure label values) using this method because those warnings are set and cleared automatically, depending on their triggers. See also "How to set a monitoring quality warning" in the [Tableau Server](https://help.tableau.com/current/server/en-us/dm_dqw.htm#how-to-set-a-monitoring-quality-warning) and [Tableau Cloud](https://help.tableau.com/current/online/en-us/dm_dqw.htm#how-to-set-a-monitoring-quality-warning) Help and the quality warning trigger methods in [Metadata Methods](#).

All label operations except those related to the certification of data sources require Catalog to be enabled. Catalog requires a Data Management license.

#### URI

PUT api/api-version/sites/site-luid/labels/label-luid

#### 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 unique LUID of the site asset.</td></tr><tr><td><span class="api-placeholder">label-luid</span></td><td>The unique LUID of the label asset.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <label
    value="label-value-name"
    message="label-message"
    active="active-flag"
    elevated="elevated-flag" />
</tsRequest>
```

#### Attribute Values

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">label-value-name</span>
                                </td>
                                <td>
                                    <p>(Optional) The label value name.</p>
                                    <p>You cannot change the category when updating a label.  Choosing a label value name that's associated with a different category causes an error. See <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_data_labels.htm" class="xref">Data Labels in the REST&nbsp;API</a> for a list of built-in label values and categories.</p>
                                    <p>Choosing a monitoring quality warning value (<span class="api-command-ref">extract_refresh_failure</span> or <span class="api-command-ref">flow_run_failure</span>) causes an error.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">label-message</span>
                                </td>
                                <td>(Optional) The message text for the label.  In the web interface, this is reflected as a certification note or a data quality warning message. You can format the message with italics, bold text, links, images, and more. Use HTML character entities to match the special characters in the <a href="https://help.tableau.com/current/api/rest_api/en-us/Img/formatting_guide.png" target="_blank">formatting guide</a> that's normally visible as a tooltip in the UI.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">active-flag</span>
                                </td>
                                <td>(Optional) Boolean. If set to <span class="api-command-ref">true</span>, the label becomes active. If set to <span class="api-command-ref">false</span>, the label becomes inactive.  If omitted, the default is <span class="api-command-ref">true</span>.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">elevated-flag</span>
                                </td>
                                <td>(Optional) Boolean.  If set to <span class="api-command-ref">true</span>, the label becomes elevated.  If set to <span class="api-command-ref">false</span>, the label becomes not elevated.  If omitted, the default is <span class="api-command-ref">false</span>.</td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

- To add or update a data label other than a certification label, you must have write permission on the associated asset.
- To add or update a certification label, you must be an administrator, or else you must be a project leader or product owner for the project the asset is in.
- To add or update a certification label for an external asset _not_ in a project, you must have the change permissions permission on the associated asset.

#### Required scope for JWT authorization

Introduced in Tableau Cloud June 2024 and Tableau Server 2024.2 (API 3.23).

```
tableau:labels:update
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

```
<tsResponse>
  <label id="label-luid"
      userDisplayName="user-display-name"
      contentId="asset-luid"
      contentType="asset-type"
      message="label-message"
      value="label-value-name"
      category="label-category"
      active="true-or-false"
      elevated="true-or-false"
      createdAt="datetime"
      updatedAt="datetime" >
    <site id="site-luid"/>
    <owner id="user-luid"/>
  </label>
</tsResponse>
```

#### Version

Introduced in Tableau Cloud June 2022 (API 3.16) and Tableau Server 2022.3 (API 3.17).

#### 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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>400</td><td>400103</td><td>Generic query label error</td><td>An unknown error occurred.</td></tr><tr><td>400</td><td>400109</td><td>Missing payload</td><td>The request body is missing a label element.</td></tr><tr><td>403</td><td>403004</td><td>Invalid parameter</td><td>Operation on resource unauthorized</td></tr><tr><td>404</td><td>404030</td><td>Label not found</td><td>The label LUID doesn't correspond to an existing project.</td></tr><tr><td>409</td><td>409004</td><td>Invalid parameter</td><td>One or more values in the request body are invalid, or you are trying to change the label value to one from a different category. This error can also occur if you try to create or change a monitoring quality warning (label values <span class="api-command-ref">extract_refresh_failure</span> and <span class="api-command-ref">flow_run_failure</span>).</td></tr></tbody></table>

## Update Labels

Creates or updates labels on one or more assets.

Each asset listed in the request body is updated to have a label with the specified value, message, active flag, and elevated flag.

If the request body specifies a label value that is already on the asset, the label on the asset is updated to match the request body. Otherwise, a label is created and attached to the asset.

**Note:** On Tableau Server 2023.3 and earlier, only one label of a category is allowed on an asset. If the request body specifies a label value with _the same category_ as a label already on the asset, the label on the asset is updated to match the request body. Otherwise, a label is created and attached to the asset.

Note that the label category is not an attribute in the request body, because you do not set it explicitly. Instead you implicitly set the category by using the label value name. For example, choosing a label value name of stale means that the label value category will be warning. Also, you can't update the label category on an existing label. If you set the label value to one that's in a different category, you get an error. For more information on data label objects and properties, see the [Data Labels in the REST API](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_data_labels.htm) topic.

You can't update extract refresh or flow run monitoring warnings (the extract\_refresh\_failure and flow\_run\_failure label values) using this method because those warnings are set and cleared automatically, depending on their triggers. See also "How to set a monitoring quality warning" in the [Tableau Server](https://help.tableau.com/current/server/en-us/dm_dqw.htm#how-to-set-a-monitoring-quality-warning) and [Tableau Cloud](https://help.tableau.com/current/online/en-us/dm_dqw.htm#how-to-set-a-monitoring-quality-warning) Help and the quality warning trigger methods in [Metadata Methods](#).

All label operations except those related to the certification of data sources require Catalog to be enabled. Catalog requires a Data Management license.

#### URI

PUT api/api-version/sites/site-luid/labels

#### 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 unique LUID of the site asset.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <contentList>
    <content contentType="asset-type" id="asset-luid" />
    <!-- ... additional content elements ... -->
  </contentList>
  <label
      value="label-value-name"
      message="label-message"
      active="active-flag"
      elevated="elevated-flag" />
</tsRequest>
```

#### Attribute Values

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">asset-type</span>
                                </td>
                                <td>
                                    <p>The type of asset.  Valid asset types are:</p>
                                    <ul>
                                        <li><span class="api-command-ref">database</span>
                                        </li>
                                        <li><span class="api-command-ref">table</span>
                                        </li>
                                        <li><span class="api-command-ref">column</span> <i>- Available in API 3.16 and later (Tableau Cloud October 2022, Server 2022.3)</i></li>
                                        <li><span class="api-command-ref">datasource</span>
                                        </li>
                                        <li><span class="api-command-ref">flow</span>
                                        </li>
                                        <li><span class="api-command-ref">virtualconnection</span>
                                        </li>
                                        <li><span class="api-command-ref">virtualconnectiontable</span>
                                        </li>
                                    </ul>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">asset-luid</span>
                                </td>
                                <td>The asset LUID.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">label-value-name</span>
                                </td>
                                <td>
                                    <p>The label value name.</p>
                                    <p>The built-in label value names are:</p>
                                    <ul>
                                        <li><span class="uicontrol">certification</span>
                                        </li>
                                        <li><span class="uicontrol">warning</span>
                                        </li>
                                        <li><span class="uicontrol">deprecated</span>
                                        </li>
                                        <li><span class="uicontrol">stale</span>
                                        </li>
                                        <li><span class="uicontrol">maintenance</span>
                                        </li>
                                        <li><span class="uicontrol">sensitive _data</span>
                                        </li>
                                    </ul>
                                    <p>You can also use custom label value names that an administrator creates.  (Custom label values were released with Tableau Cloud June 2023 and Tableau Server 2023.3.)</p>
                                    <p>If the request body specifies a label value that is already on the asset, the label on the asset is updated to match the request body. Otherwise, a label is created and attached to the asset.</p>
                                    <p><strong>Note:</strong> On Tableau Server 2023.3 and earlier, only one label of a category is allowed on an asset. If the request body specifies a label value with <i>the same category</i> as a label already on the asset, the label on the asset is updated to match the request body. Otherwise, a label is created and attached to the asset. </p>
                                    <p>See <a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_data_labels.htm" class="xref">Data Labels in the REST&nbsp;API</a> for a list of built-in label values and categories.</p>
                                    <p>Choosing a monitoring quality warning value (<span class="api-command-ref">extract_refresh_failure</span> or <span class="api-command-ref">flow_run_failure</span>) causes an error.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">label-message</span>
                                </td>
                                <td>
                                    <p>(Optional. Was required in Tableau Server 2023.3 and earlier.)</p>
                                    <p>The message text for the label.  In the web interface, this is reflected as a certification note or a data quality warning message. You can format the message with italics, bold text, links, images, and more. Use HTML character entities to match the special characters in the <a href="https://help.tableau.com/current/api/rest_api/en-us/Img/formatting_guide.png" target="_blank">formatting guide</a> that's normally visible as a tooltip in the UI.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">active-flag</span>
                                </td>
                                <td>(Optional) Boolean. If set to <span class="api-command-ref">true</span>, the label becomes active. If set to <span class="api-command-ref">false</span>, the label becomes inactive.  If omitted, the default is <span class="api-command-ref">true</span>.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">elevated-flag</span>
                                </td>
                                <td>(Optional) Boolean.  If set to <span class="api-command-ref">true</span>, the label becomes elevated.  If set to <span class="api-command-ref">false</span>, the label becomes not elevated.  If omitted, the default is <span class="api-command-ref">false</span>.</td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

- To add or update a data label other than a certification label, you must have write permission on the associated asset.
- To add or update a certification label, you must be an administrator, or else you must be a project leader or product owner for the project the asset is in.
- To add or update a certification label for an external asset _not_ in a project, you must have the change permissions permission on the associated asset.

#### Required scope for JWT authorization

Introduced in Tableau Cloud June 2024 and Tableau Server 2024.2 (API 3.23).

```
tableau:labels:update
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Version

Introduced in Tableau Cloud June 2022 (API 3.16) and Tableau Server 2022.3 (API 3.17).

#### Response Body

```
<tsResponse>
  <labelList>
    <label id="label-luid"
        userDisplayName="user-display-name"
        contentId="asset-luid"
        contentType="asset-type"
        message="label-message"
        value="label-value-name"
        category="label-category"
        active="true-or-false"
        elevated="true-or-false"
        createdAt="datetime"
        updatedAt="datetime" >
      <site id="site-luid"/>
      <owner id="user-luid"/>
    </label>
    <!-- ... additional label elements ... –->
  </labelList>
</tsResponse>
```

#### Errors

When more than one asset appears in the request (the contentList element contains more than one content element), this method will fail if an error is encountered operating on any of them. For example, if you are updating labels for a database and a table, but you provide the wrong table LUID, the method will return an error even if the database LUID was correct.

<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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>400</td><td>400108</td><td>Missing payload</td><td>The request body is missing all content and/or all label elements.</td></tr><tr><td>400</td><td>400109</td><td>Generic add labels to content error</td><td>An unknown error occurred.</td></tr><tr><td>403</td><td>403004</td><td>Operation on resource unauthorized</td><td>Insufficient permissions to perform the operation.</td></tr><tr><td>404</td><td>404029</td><td>Resource not found</td><td>The <span class="api-command-ref">contentType</span> and <span class="api-command-ref">contentID</span> attribute combination does not correspond to an asset on the server. This can be caused by an incorrect <span class="api-command-ref">contentType</span>, an incorrect <span class="api-command-ref">contentID</span>, or both.</td></tr><tr><td>409</td><td>409004</td><td>Invalid parameter</td><td>One or more values in the request body are invalid, or one of the required attributes (<b>active</b> or <b>elevated</b>) is missing. This error can also occur if you try to create or change a monitoring quality warning (<b>label values extract_refresh_failure</b> and <b>flow_run_failure</b>).</td></tr></tbody></table>

## Update labelValue

Updates a label value.

Note: You can update an existing label value using either this method or the [Create or Update labelValue](#ref_create_or_update_labelvalue) method. If you want to change the name of an existing label value, use this method.

Note that a label value (labelValue) is one property of a label. A label value has its own properties like name, category, and description that determine label behavior and options that users see in label dialogs. For more information on data label objects and properties, see the [Data Labels in the REST API](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_data_labels.htm) topic.

A Data Management license is not required to create, update, or delete label values, but one is required to create, update, delete, and see labels on assets.

#### URI

PUT api/api-version/sites/site-luid/labelValues/label-value-name

#### 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 unique LUID of the site asset.</td></tr><tr><td><span class="api-placeholder">label-value-name</span></td><td>The label value name. URL encode the label value name if it has spaces or non-alphanumeric characters in it.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <labelValue name="label-value-name"
    category="label-value-category"
    description="label-value-description" />
</tsRequest>
```

#### Attribute Values

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">label-value-name</span>
                                </td>
                                <td>
                                    <p>The label value name. If the label value name is different than the one in the URI parameter, the label value name is changed to match the one in the request body.</p>
                                    <p>Required. Must be 1-128 characters long. (Must be 1-24 characters long in Tableau Server 2023.3 and earlier.)</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">label-value-category</span>
                                </td>
                                <td>
                                    <p>The label value category.</p>
                                    <p> Required. You can't change the label value category, so this will always match the label value's existing category.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">label-value-description</span>
                                </td>
                                <td>
                                    <p>The label value description.</p>
                                    <p>Must be 1-500 characters in length.</p>
                                </td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

Only a site or server administrator can create, update, or delete label values.

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:label_values:update
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Version

Introduced in Tableau Cloud June 2023 (API 3.20) and Tableau Server 2023.3 (API 3.21).

#### Response Body

```
<tsResponse>
  <labelValue name="label-value-name"
    category="label-value-category"
    description="label-value-description"
    internal="true-or-false"
    elevatedDefault="true-or-false"
    builtIn="true-or-false">
    <site id="site-luid"/>
  </labelValue>
</tsResponse>
```

#### 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>4000173</td>
                                <td>Generic create label values error</td>
                                <td>An unknown error occurred.</td>
                            </tr>
                            <tr>
                                <td>403</td>
                                <td>403004</td>
                                <td>Operation on resource unauthorized</td>
                                <td>You must be a site or server administrator to create or update label values.</td>
                            </tr>
                            <tr>
                                <td>404</td>
                                <td>403157</td>
                                <td>Bad request</td>
                                <td>You may see this error if you try to create or update a label in the <span class="uicontrol">certification</span> category.</td>
                            </tr>
                            <tr>
                                <td>409</td>
                                <td>409004</td>
                                <td>Invalid parameter</td>
                                <td>
                                    <ul>
                                        <li>The label value name in the URI must exist.</li>
                                        <li>The updated label value name must be 1-128 characters long. (In Tableau Server 2023.3 and earlier, the updated label value name must be 1-24 characters long.)</li>
                                        <li>The updated name, when stripped of spaces, dashes, and underscores, must not case insensitively match one of Tableau's built-in label value names.</li>
                                        <li>The category must match an existing category.</li>
                                        <li>You can't change the category on an existing label value.</li>
                                        <li>The description can't be empty or over 500 characters.
</li>
                                    </ul>
                                </td>
                            </tr>
                        </tbody>
                    </table>

## Update Label Category

Updates a data label category.

Note that category is one property of a label value (labelValue), which is itself a property of a label on an asset. Other properties of a labelValue include name and description. These properties determine label behavior and options that users see in label dialogs. For more information on data label objects and properties, see the [Data Labels in the REST API](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_data_labels.htm) topic.

A Data Management license is not required to create, update, or delete label categories, but one is required to create, update, delete, and see labels on assets.

#### URI

PUT api/api-version/sites/site-luid/labelCategories/label-category-name

#### 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 unique LUID of the site asset.</td></tr><tr><td><span class="api-placeholder">label-category-name</span></td><td>The label category name. URL encode the label category name (as it appears in the Tableau web interface) if it has spaces or non-alphanumeric characters in it.</td></tr></tbody></table>

#### Request Body

<tsRequest>
  <labelCategory name="label-category-name"
    description="label-category-description" />
</tsRequest>

#### Attribute Values

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">label-category-name</span>
                                </td>
                                <td>
                                    <p>The label category name.</p>
                                    <p>Required, but not does not have to be different from the existing name. Must be 1-128 characters long. (In Tableau Server 2023.3 and earlier, must be 1-24 characters long.)</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">label-category-description</span>
                                </td>
                                <td>
                                    <p>The label category description.</p>
                                    <p>Required, but not does not have to be different from the existing description. Must be 1-500 characters in length.
</p>
                                </td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

Only a site or server administrator can create, update, or delete label categories.

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:label_categories:update
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Version

Introduced in Tableau Cloud October 2023 (API 3.21) / Server 2023.3 (API 3.21).

#### Response Body

<tsResponse>
  <labelCategory name="label-category"
    description="label-category-description"/>
</tsResponse>

#### 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>400190</td>
                                <td>Generic update label categories error</td>
                                <td>An unknown error occurred.</td>
                            </tr>
                            <tr>
                                <td>403</td>
                                <td>403004</td>
                                <td>Operation on resource unauthorized</td>
                                <td>You must be an administrator to create, update, or delete label values.</td>
                            </tr>
                            <tr>
                                <td>409</td>
                                <td>409004</td>
                                <td>Invalid parameter</td>
                                <td>
                                    <ul>
                                        <li>The label value name in the URI must exist. URL encode the label category name (as it appears in the Tableau web interface) if it has spaces or non-alphanumeric characters in it.</li>
                                        <li>The category name must be 1-128 characters long. (In Tableau Server 2023.3 and earlier, the category name must be 1-24 characters long.)</li>
                                        <li>The category name, when stripped of spaces, dashes, and underscores, must not case insensitively match one of Tableau's built-in label categories names.</li>
                                        <li>The category description must be 1-500 characters in length.
</li>
                                    </ul>
                                </td>
                            </tr>
                        </tbody>
                    </table>

## Update Table

Update the table description, certify a table, or a assign a user contact to the table asset.

This method is available if your Tableau Cloud site or Tableau Server is licensed with Data Management.

#### URI

PUT api/_api-version_/sites/_site-id_/tables/_table-id_

#### 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-id</span></td><td>The unique ID of the site asset.</td></tr><tr><td><span class="api-placeholder">table-id</span></td><td>The unique ID of the table asset.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <table isCertified="certification-status"
      certificationNote="certification-note"
      description="new-description-value">
    <contact id="new-contact-id" />
  </table>
</tsRequest>
```

#### Attribute Values

Any combination of attributes inside the **<table>** element is valid. Only the attributes and child elements that are included result in updates to the table. If no attributes or nested elements are included, no update is made.

<table class="api-parameters-table">
                        <colgroup>
                            <col class="api-parameters-table-col-1-wide" style="width: 264px;">
                            <col>
                        </colgroup>
                        <tbody>
                            <tr>
                                <td><span class="api-placeholder">certification-status</span>
                                </td>
                                <td>
                                    <p>(Optional) Use one of the following values:</p>
                                    <ul>
                                        <li><span class="uicontrol">true</span>
                                        </li>
                                        <li><span class="uicontrol">false</span>
                                        </li>
                                    </ul>
                                    <p>These values are case sensitive.</p>
                                </td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">certification-note</span>
                                </td>
                                <td>(Optional) Custom text to accompany the certification status.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">new-description-value</span>
                                </td>
                                <td>(Optional) Custom text to describe the table asset.</td>
                            </tr>
                            <tr>
                                <td><span class="api-placeholder">new-contact-id</span>
                                </td>
                                <td>(Optional) The ID&nbsp;(not name) of the certification owner.</td>
                            </tr>
                        </tbody>
                    </table>

#### Permissions

If Tableau Server or Tableau Cloud is licensed through Data Management, the following users have permissions to update the table asset:

- Tableau Server admins or Tableau Cloud site admins
- Authorized users who have been granted explicit permission to edit or "Write" to the asset metadata

#### Access Scope

Scope added in API 3.27 (Tableau Cloud December 2025 / Server 2025.3).

```
tableau:tables:update
```

For more information, see [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 connected apps: [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).

#### Response Code

200

#### Response Body

**Example response:**

```
<tsResponse xmlns="http://tableau.com/api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-3.5.xsd">
  <table id="b86632d7-b82e-4d4c-88e5-11957cdadd95" name="Zoning.shp" description="Contact Susan Nguyen (database admin) for changes." isEmbedded="true" isCertified="false">
	<site id="5286d663-8668-4ac2-8c8d-91af7d585f6b"/>
  </table>
</tsResponse>
```

#### Version

Version 3.5 and later. For more information, see [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm).

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2" style="width: 87px;"> <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>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>401</td><td>401000</td><td>Unauthorized access</td><td>No authorization credentials were provided.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized access</td><td>Invalid authorization credentials were provided.</td></tr><tr><td>404</td><td>404000</td><td>Resource not found</td><td>The site ID in the URI doesn't correspond to an existing site.</td></tr><tr><td>404</td><td>404032</td><td>Table not found</td><td>The requested table asset could not be found.</td></tr><tr><td>409</td><td>409052</td><td>Table error</td><td>An unknown table asset error occurred.</td></tr><tr><td>409</td><td>409057</td><td>Table update error</td><td>An unknown error occurred and the table asset could not be updated.</td></tr><tr><td>409</td><td>409058</td><td>Table update forbidden</td><td>A user without "write"&nbsp;permissions to the table asset attempted an update.</td></tr></tbody></table>