---
schema_version: "1"
id: dc043c974c958c15e4e4e00d6969f8aca781014426b08074258fe599ca6cd4a1
title: Tableau Cloud Manager REST API Reference
collection: tableau
version: next
locale: en-us
portal_url: https://docs.salesforce.com/tableau/next/en-us/api/cloud-manager/reference/index.md
canonical_url: https://help.tableau.com/v0.0/api/cloud-manager/en-us/reference/index.html
source_site: help.tableau.com
content_type: documentation
content_hash: f1b34d3998c5e3296fb42625561827062e9ceb032cbadc6783144592595e55b0
---
[![Tableau Cloud Manager (TCM) REST API Reference](https://help.tableau.com/current/api/rest_api/en-us/Resources/tableau-logo.png)](https://www.tableau.com/support/help)

- Tableau Cloud Manager REST API Overview
- Administrative Methods
    - getList regions
    - patchAccept tenant terms and conditions
    - getList tenant locations
    - getList user data for tenant sites
    - getGet user data for site
    - getGet user data for tenant
    - getGet session information
- Authentication Methods
    - postCreate personal access token
    - getList personal access tokens
    - delRevoke personal access token
    - postSign in with personal access token
    - postCreate unified access token configuration
    - getList unified access token configurations
    - delDelete unified access token configuration
    - getGet unified access token configuration
    - putUpdate unified access token configuration
    - postSign in with unified access token JWT
    - delSign out
    - postRevoke unified access token JWT
    - delDelete revoked unified access token JWT
    - getList revoked unified access token JWTs
- Capacity Methods
    - getList capacity metrics for tenant
    - postList capacity metrics for sites
    - getGet capacity metrics for site
    - getList capacities
    - patchUpdate capacities
- Platform Data Methods
    - postGet activity logs for tenant
    - getList activity logs for tenant
    - postGet activity logs for site
    - getList activity logs for site
    - postGet entity snapshots for site
    - getList entity snapshots for site
- Single Sign-on Methods
    - postCreate SAML configuration
    - delDelete SAML configuration
    - getGet SAML configuration
    - putUpdate SAML configuration
    - postList authentication configurations
    - putCreate or update OIDC configuration
    - delDelete OIDC configuration
    - getGet OIDC configuration
    - getList SAML logs
- Site Methods
    - postCreate site
    - getList tenant sites
    - getGet site
    - delSuspend site
    - patchUpdate license limit for site
    - postCreate project
    - patchReactivate suspended site
    - patchUpdate site name and content url
- Tenant Methods
    - getGet tenant
- User Methods
    - postAdd user to tenant
    - getList tenant users
    - postBatch import users with .gzip
    - postBatch delete tenant users
    - postBatch get tenant users
    - delDelete tenant user
    - getGet tenant user
    - patchUpdate user on tenant
    - getList status for user job
    - getGet user information

[API docs by Redocly](https://redocly.com/redoc/)

# Tableau Cloud Manager REST API Reference (Current)

URL: [https://cloudmanager.tableau.com](https://cloudmanager.tableau.com)

The REST API methods for Tableau Cloud Manager (TCM) allow cloud administrators to manage tenants, sites, and users. TCM REST API methods include administrative, authentication, capacity management, platform data, single sign-on, site, tenant, and user methods.

# [](#tag/Tableau-Cloud-Manager-REST-API-Overview)Tableau Cloud Manager REST API Overview

Tableau Cloud Manager (TCM) REST API methods are available for Tableau Cloud October 2024 and later.

For an overview, see **[Tableau Cloud Manager REST API Overview](https://help.tableau.com/v0.0/api/cloud-manager/en-us/index.html)**.

# [](#tag/Administrative-Methods)Administrative Methods

TCM REST API Administrative methods allow cloud administrators to manage tenants, sites, and users in the following ways:

- List the regions where tenants can be available.
- Get the count of users categorized by role for each site in a tenant.
- Get the count of users categorized by role for a specified site.
- Get the count of users categorized by role for a tenant.
- Get information about the current REST API session.

**Postman:** [Administrative Methods](https://www.postman.com/salesforce-developers/salesforce-developers/folder/cqu48vj/administrative-methods)

## [](#tag/Administrative-Methods/operation/getRegions)List regions

List the regions where a site can be created in a tenant, filtered by the provided criteria.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_regions:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### query Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="pageNumber" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">pageNumber</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">integer</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->int32<!-- -->&gt;<!-- --> </span><span> <span class="sc-gUjWJS sc-cmfnrN itHPsH iOjfOC"> <!-- -->&gt;= 0<!-- --> </span></span></div><div><span class="sc-gUjWJS itHPsH"> <!-- -->Default:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">0</span></div> <div><div html="<p>The number of the page to return values for. A value of 0 means do not page results.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The number of the page to return values for. A value of 0 means do not page results.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="pageSize" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">pageSize</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">integer</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->int32<!-- -->&gt;<!-- --> </span><span> <span class="sc-gUjWJS sc-cmfnrN itHPsH iOjfOC"> <!-- -->&gt;= 0<!-- --> </span></span></div><div><span class="sc-gUjWJS itHPsH"> <!-- -->Default:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">100</span></div> <div><div html="<p>The number of items returned per page.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The number of items returned per page.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="latitude" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">latitude</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">number</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->double<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">latitude=37.7749</span></div><div><div html="<p>The latitude of the region, a value between -90 and +90.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The latitude of the region, a value between -90 and +90.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="longitude" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">longitude</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">number</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->double<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">longitude=-122.4194</span></div><div><div html="<p>The longitude of the region, a value between -180 and +180.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The longitude of the region, a value between -180 and +180.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="visibility" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">visibility</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div><div><span class="sc-gUjWJS itHPsH"> <!-- -->Enum<!-- -->:</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"INTERNAL"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"PUBLIC"</span> </div> <div><div html="<p>If <code>INTERNAL</code>, the region is not visible to users. If <code>PUBLIC</code> the region is visible to users. Default is <code>INTERNAL</code>.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>If <code>INTERNAL</code>, the region is not visible to users. If <code>PUBLIC</code> the region is visible to users. Default is <code>INTERNAL</code>.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="countryCode" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">countryCode</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">countryCode=US</span></div><div><div html="<p>The country code in the region definition.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The country code in the region definition.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request.

**500**

Internal error.

get/api/v1/regions

https://cloudmanager.tableau.com/api/v1/regions

### Response samples

- 200
- 400
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "regions": [          - {                  - "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",         - "name": "string",         - "location": {                          - "latitude": -90,             - "longitude": -180                          },         - "visibility": "INTERNAL",         - "attributes": {                          - "property1": "string",             - "property2": "string"                          }                  }          ], - "data": [          - {                  - "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",         - "name": "string",         - "location": {                          - "latitude": -90,             - "longitude": -180                          },         - "visibility": "INTERNAL",         - "attributes": {                          - "property1": "string",             - "property2": "string"                          }                  }          ]  }`

## [](#tag/Administrative-Methods/operation/acceptTermsAndConditions)Accept tenant terms and conditions

Accepts the terms and conditions for the specified tenant.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, October 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_tenants:update`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The unique identifier for the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier for the tenant.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**204**

Success.

**400**

Invalid request.

**404**

A tenant with the tenant id does not exist.

**500**

Internal error.

patch/api/v1/tenants/{tenantId}/acceptTermsAndConditions

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/acceptTermsAndConditions

### Response samples

- 204
- 400
- 404
- 500

Content type

application/json

Copy

`"string"`

## [](#tag/Administrative-Methods/operation/getLocations)List tenant locations

Lists the Tableau pod locations or regions where a site for the specified tenant can be created.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_tenants:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The unique identifier for the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier for the tenant.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request.

**500**

Internal error.

get/api/v1/tenants/{tenantId}/locations

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/locations

### Response samples

- 200
- 400
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "podsData": {          - "pods": [                  - {                          - "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",             - "name": "string"                          }                  ]          }, - "regionsData": {          - "regions": [                  - {                          - "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",             - "name": "string",             - "tags": [                                  - "RELEASE_PREVIEW"                                  ]                          }                  ]          }  }`

## [](#tag/Administrative-Methods/operation/getAllSitesAggregates)List user data for tenant sites

For each site in the tenant, returns counts of users licensed for different roles.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_sites:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>The unique identifier of the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the tenant.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**403**

The user does not have permissions.

**404**

The specified tenant could not be found.

**500**

Internal error.

get/api/v1/tenants/{tenantId}/sites/users/role-consumption

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/sites/users/role-consumption

### Response samples

- 200
- 403
- 404
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "allSites": [          - {                  - "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1",         - "userCount": 0,         - "siteAdminCount": 0,         - "creators": 0,         - "explorers": 0,         - "viewers": 0,         - "unlicensed": 0                  }          ]  }`

## [](#tag/Administrative-Methods/operation/getSiteAggregate)Get user data for site

For the specified site, returns counts of users licensed for different roles.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_sites:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>The unique identifier of the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the tenant.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="siteId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">siteId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>The unique identifier of the site.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the site.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**403**

The user does not have permissions.

**404**

The specified tenant or site could not be found.

**500**

Internal error.

get/api/v1/tenants/{tenantId}/sites/{siteId}/users/role-consumption

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/sites/{siteId}/users/role-consumption

### Response samples

- 200
- 403
- 404
- 500

Content type

application/json

Copy

`{  - "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1", - "userCount": 0, - "siteAdminCount": 0, - "creators": 0, - "explorers": 0, - "viewers": 0, - "unlicensed": 0  }`

## [](#tag/Administrative-Methods/operation/getTenantLicenseConsumption)Get user data for tenant

For the specified tenant, returns counts of users licensed for different roles.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_tenants:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>The unique identifier of the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the tenant.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**403**

The user does not have permissions.

**404**

The specified tenant could not be not found.

**500**

Internal error.

get/api/v1/tenants/{tenantId}/users/license-consumption

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/users/license-consumption

### Response samples

- 200
- 403
- 404
- 500

Content type

application/json

Copy

`{  - "creators": 0, - "explorers": 0, - "viewers": 0, - "unlicensed": 0  }`

## [](#tag/Administrative-Methods/operation/getUserInfoForSelf)Get session information

Returns the user ID and tenant ID associated with the session.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager V2, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: Not required. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

### Responses

**200**

Success.

**401**

User could not be authenticated.

**404**

Active session not found.

**500**

Internal error.

get/api/v2/userinfo

https://cloudmanager.tableau.com/api/v2/userinfo

### Response samples

- 200
- 401
- 404
- 500

Content type

application/json

Copy

`{  - "sessionId": "123e4567-e89b-12d3-a456-426614174000", - "userId": "123e4567-e89b-12d3-a456-426614174000", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "sessionType": "USER"  }`

# [](#tag/Authentication-Methods)Authentication Methods

Tableau Cloud Manager REST API Authentication methods allow cloud administrators to sign in to Tableau Cloud Manager REST API and manage personal access tokens (PATs) or unified access tokens (UATs) in the following ways:

- Create a personal access token (PAT). Creating a PAT generates a PAT secret that you use in the request body of your sign-in request.
    - List all valid PATs.
    - Revoke a PAT.
    - Sign in to TCM REST API using a PAT and get a session access token, `x-tableau-session-token`, to use in the header of all subsequent REST API calls.
- Configure a unified access token (UAT) for JSON Web Token (JWT)-based authentication.
    - Get a UAT configuration.
    - List all UAT configurations.
    - Delete a UAT configuration.
    - Sign in to TCM REST API using a UAT and get a session access token, `x-tableau-session-token`, to use in the header of all subsequent REST API calls.
    - Revoke a UAT JWT.
    - List all revoked UAT JWTs.
    - Delete a revoked UAT JWT.

For more information, see the following:

- [TCM REST API Authentication](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/authentication.html)
- [Unified Access Tokens](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html)
- [Personal Access Tokens for Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_personal_access_tokens.htm) in the Tableau Cloud Help

**Postman:** [Authentication Methods](https://www.postman.com/salesforce-developers/salesforce-developers/folder/ocdkesg/authentication-methods)

## [](#tag/Authentication-Methods/operation/createPersonalAccessToken)Create personal access token

Generates a personal access token (PAT) to enable REST API authentication for Tableau Cloud Manager (TCM).

A PAT is required to sign in to Tableau Cloud Manager (TCM).

**Notes:**

- This PAT cannot be used to sign in to Tableau Cloud.
- When signing in to Tableau Cloud Manager REST API for the first time, you must use the TCM UI to generate a PAT. For more information, see [TCM REST API Authentication](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/authentication.html).

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: Not available. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### Request Body schema: application/json

required

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="tokenName" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tokenName</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>Name of the personal access token (PAT). PAT name must be unique.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>Name of the personal access token (PAT). PAT name must be unique.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="absoluteExpiryInDays" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">absoluteExpiryInDays</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">integer</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->int32<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>Number of days the PAT is valid for. Default value is 180 days; maximum value is 365 days. For security purposes, we recommend setting a value that is no more than 180 days.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>Number of days the PAT is valid for. Default value is 180 days; maximum value is 365 days. For security purposes, we recommend setting a value that is no more than 180 days.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request.

**401**

Personal access token not valid.

**403**

User is not authorized.

**404**

Tenant, user, or role with the specified ID could not be found.

**415**

Invalid request body.

**500**

Internal error.

post/api/v1/pat

https://cloudmanager.tableau.com/api/v1/pat

### Request samples

- Payload

Content type

application/json

Copy

`{  - "tokenName": "MyTokenName", - "absoluteExpiryInDays": 180  }`

### Response samples

- 200
- 400
- 403
- 404
- 415
- 500

Content type

application/json

Copy

`{  - "tokenUUID": "123e4567-e89b-12d3-a456-426614174000", - "tokenName": "MyTokenName", - "userId": "123e4567-e89b-12d3-a456-426614174000", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "issueInUtc": "2024-07-01T00:00:00Z", - "expirationInUtc": "2024-07-31T00:00:00Z", - "secret": "string"  }`

## [](#tag/Authentication-Methods/operation/listPersonalAccessToken)List personal access tokens

Gets a list of all valid personal access tokens (PATs) you have generated for Tableau Cloud Manager (TCM).

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_pats:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

### Responses

**200**

Success.

**401**

Personal access token not valid.

**403**

User is not authorized to list personal access tokens.

**404**

Personal access token could not be found.

**500**

Internal error.

get/api/v1/pat

https://cloudmanager.tableau.com/api/v1/pat

### Response samples

- 200
- 403
- 404
- 500

Content type

application/json

Copy

Expand all Collapse all

`[  - {          - "tokenUUID": "123e4567-e89b-12d3-a456-426614174000",     - "tokenName": "MyTokenName",     - "userId": "123e4567-e89b-12d3-a456-426614174000",     - "tenantId": "123e4567-e89b-12d3-a456-426614174000",     - "issueInUtc": "2024-07-01T00:00:00Z",     - "expirationInUtc": "2024-07-31T00:00:00Z"          }  ]`

## [](#tag/Authentication-Methods/operation/revokePersonalAccessToken)Revoke personal access token

Revokes a personal access token (PAT).

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_pats:delete`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### header Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="tokenUUID" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tokenUUID</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The token ID of the PAT.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The token ID of the PAT.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**204**

Success.

**401**

Personal access token not valid.

**403**

User not authorized.

**404**

PAT not found.

**500**

Internal error.

delete/api/v1/pat

https://cloudmanager.tableau.com/api/v1/pat

### Response samples

- 403
- 404
- 500

Content type

application/json

Copy

`{  - "message": "string", - "reason": "string", - "errorCode": "INVALID_TENANT_NAME"  }`

## [](#tag/Authentication-Methods/operation/personalAccessTokenLogin)Sign in with personal access token

Signs in to Tableau Cloud Manager (TCM) REST API using a personal access token (PAT).

You must use a PAT to sign in to theTCM REST API using this method. To generate a PAT, go to your TCM My Account Settings or call the [Create Personal Access Token](#tag/Authentication-Methods/operation/createPersonalAccessToken) method.

**Note:** When signing in to TCM REST API for the first time, you must use the TCM UI to generate a PAT. For more information, see [TCM REST API Authentication](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/authentication.html#set-up-tcm-authentication-for-users).

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: Not required. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Request Body schema: application/json

required

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="token" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">token</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>Token secret that is generated when you create a personal access token (PAT).</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>Token secret that is generated when you create a personal access token (PAT).</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request.

**401**

User is not authenticated.

**403**

User is not authorized.

**404**

PAT with the specified ID was not found.

**500**

Internal error.

post/api/v1/pat/login

https://cloudmanager.tableau.com/api/v1/pat/login

### Request samples

- Payload

Content type

application/json

Copy

`{  - "token": "bSG+6ttrRgqMLzonp5j89w==:SUOF-rjwMZZKXg-T3GcpDVFrIKAO6VIbTyZyq39bWR0"  }`

### Response samples

- 200
- 400
- 401
- 403
- 404
- 500

Content type

application/json

Copy

`{  - "sessionToken": "bSG+6ttrRgqMLzonp5j89w==:SUOF-rjwMZZKXg-T3GcpDVFrIKAO6VIbTyZyq39bWR0", - "userId": "123e4567-e89b-12d3-a456-426614174000", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "sessionExpiration": "2019-08-24T14:15:22Z"  }`

## [](#tag/Authentication-Methods/operation/createUatConfiguration)Create unified access token configuration

Creates a unified access token (UAT) configuration to enable Tableau Cloud Manager REST API authentication using a JSON Web Token (JWT).

A UAT configuration must be associated with the JWT, through its public key or JWKS URI, used to sign in to Tableau Cloud Manager (TCM) REST API using the [Sign in with JSON Web Token](#tag/Authentication-Methods/operation/jwtLogin) method.

Tableau Cloud Manager REST API authentication with a JWT enables users to perform administrative and content tasks both on the tenant and Tableau Cloud sites on the tenant.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, December 2025, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_uat_configs:create`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### Request Body schema: application/json

required

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="name" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">name</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The name of the unified access token (UAT) configuration. UAT configuration name must be unique.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The name of the unified access token (UAT) configuration. UAT configuration name must be unique.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="issuer" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">issuer</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The issuer of the JSON Web Token (JWT).</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The issuer of the JSON Web Token (JWT).</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="publicKey" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">publicKey</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The public key used to verify the JSON Web Token (JWT). Use this value or <code>jwksUri</code>, but not both.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The public key used to verify the JSON Web Token (JWT). Use this value or <code>jwksUri</code>, but not both.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="jwksUri" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">jwksUri</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The URI of the JWKS endpoint. Use this value or <code>publicKey</code>, but not both.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The URI of the JWKS endpoint. Use this value or <code>publicKey</code>, but not both.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="usernameClaim" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">usernameClaim</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The username claim that maps to the Tableau username. Default value is <code>email</code>.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The username claim that maps to the Tableau username. Default value is <code>email</code>.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="resourceIds" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">resourceIds</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY">Array of </span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">strings</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span><span> <span class="sc-gUjWJS sc-cmfnrN itHPsH iOjfOC"> <!-- -->unique<!-- --> </span></span><span class="sc-gUjWJS sc-kZOsHZ sc-jIYCZY itHPsH iSyacY bDgvzj">[ items<span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> &lt;<!-- -->uuid<!-- --> &gt;</span> ]</span></div> <div><div html="<p>The tenant ID, the tenant ID and site IDs associated with the tenant, or site IDs associated with the same tenant. You can get the <code>resourceId</code> by calling the <a href=&quot;#tag/Tenant-Methods/operation/getTenant&quot;>Get Tenant</a> or <a href=&quot;#tag/Site-Methods/operation/getSites&quot;>List Tenant Sites</a> method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The tenant ID, the tenant ID and site IDs associated with the tenant, or site IDs associated with the same tenant. You can get the <code>resourceId</code> by calling the <a href="#tag/Tenant-Methods/operation/getTenant">Get Tenant</a> or <a href="#tag/Site-Methods/operation/getSites">List Tenant Sites</a> method.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="scopes" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">scopes</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY">Array of </span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">strings</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->scope<!-- -->&gt;<!-- --> </span><span> <span class="sc-gUjWJS sc-cmfnrN itHPsH iOjfOC"> <!-- -->unique<!-- --> </span></span><span class="sc-gUjWJS sc-kZOsHZ sc-jIYCZY itHPsH iSyacY bDgvzj">[ items<span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> &lt;<!-- -->scope<!-- --> &gt;</span> ]</span></div> <div><div html="<p>The access scopes defined in the JSON Web Token (JWT) associated with the unified access token (UAT) configuration. Scopes in the UAT are optional and allow you to further restrict the operations available to the JWT.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The access scopes defined in the JSON Web Token (JWT) associated with the unified access token (UAT) configuration. Scopes in the UAT are optional and allow you to further restrict the operations available to the JWT.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="enabled" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">enabled</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">boolean</span></div> <div><div html="<p>If <code>true</code>, the unified access token (UAT) configuration is enabled. Default value is <code>true</code>.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>If <code>true</code>, the unified access token (UAT) configuration is enabled. Default value is <code>true</code>.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**201**

Success.

**400**

Invalid request.

**500**

Internal error.

post/api/v1/uat-configurations

https://cloudmanager.tableau.com/api/v1/uat-configurations

### Request samples

- Payload

Content type

application/json

Copy

Expand all Collapse all

`{  - "name": "JWT - Employees", - "issuer": "[https://myidp.okta.com/app1](https://myidp.okta.com/app1)", - "publicKey": "-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...", - "jwksUri": "[https://myidp.okta.com/oauth2/default/v1/keys](https://myidp.okta.com/oauth2/default/v1/keys)", - "usernameClaim": "string", - "resourceIds": [          - "123e4567-e89b-12d3-a456-426614174000",     - "123e4567-e89b-12d3-a456-426614174002",     - "123e4567-e89b-12d3-a456-426614174003"          ], - "scopes": [          - "tableau:tcm_sites:read",     - "tableau:tcm_sites:update",     - "tableau:sites:read",     - "tableau:sites:update"          ], - "enabled": true  }`

### Response samples

- 201
- 400
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0", - "configId": "46ff6d11-d8b2-40d8-9197-dfa33c61cd6c", - "name": "string", - "issuer": "string", - "publicKeyActive": "string", - "publicKey": "string", - "jwksUri": "string", - "usernameClaim": "string", - "resourceIds": [          - "497f6eca-6276-4993-bfeb-53cbbbba6f08"          ], - "scopes": [          - "tableau:tcm_sites:read",     - "tableau:tcm_sites:update",     - "tableau:sites:read",     - "tableau:sites:update"          ], - "enabled": true  }`

## [](#tag/Authentication-Methods/operation/getUatConfigurations)List unified access token configurations

Gets a list of all unified access token (UAT) configurations.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, December 2025, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_uat_configs:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

### Responses

**200**

Success.

**500**

Internal error.

get/api/v1/uat-configurations

https://cloudmanager.tableau.com/api/v1/uat-configurations

### Response samples

- 200
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0", - "configId": "46ff6d11-d8b2-40d8-9197-dfa33c61cd6c", - "name": "string", - "issuer": "string", - "publicKeyActive": "string", - "publicKey": "string", - "jwksUri": "string", - "usernameClaim": "string", - "resourceIds": [          - "497f6eca-6276-4993-bfeb-53cbbbba6f08"          ], - "scopes": [          - "tableau:tcm_sites:read",     - "tableau:tcm_sites:update",     - "tableau:sites:read",     - "tableau:sites:update"          ], - "enabled": true  }`

## [](#tag/Authentication-Methods/operation/deleteUatConfiguration)Delete unified access token configuration

Deletes the specified unified access token (UAT) configuration.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, December 2025, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_uat_configs:delete`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="configId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">configId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">lafb0f7e-2962-40d5-bfc9-e95141bcb68f</span></div><div><div html="<p>The unique identifier of the unified access token (UAT) configuration. You can get the <code>configId</code> by calling the <a href=&quot;#tag/Authentication-Methods/operation/getJwtConfigurations&quot;>List unified access token configurations</a> method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the unified access token (UAT) configuration. You can get the <code>configId</code> by calling the <a href="#tag/Authentication-Methods/operation/getJwtConfigurations">List unified access token configurations</a> method.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**204**

Success.

**500**

Internal error.

delete/api/v1/uat-configurations/{configId}

https://cloudmanager.tableau.com/api/v1/uat-configurations/{configId}

### Response samples

- 204
- 500

Content type

application/json

Copy

`{ }`

## [](#tag/Authentication-Methods/operation/getUatConfiguration)Get unified access token configuration

Gets the specified unified access token (UAT) configuration.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, December 2025, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_uat_configs:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="configId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">configId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">lafb0f7e-2962-40d5-bfc9-e95141bcb68f</span></div><div><div html="<p>The unique identifier of the unified access token (UAT) configuration. You can get the <code>configId</code> by calling the <a href=&quot;#tag/Authentication-Methods/operation/getJwtConfigurations&quot;>List unified access token configurations</a> method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the unified access token (UAT) configuration. You can get the <code>configId</code> by calling the <a href="#tag/Authentication-Methods/operation/getJwtConfigurations">List unified access token configurations</a> method.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**404**

Unified access token (UAT) configuration not found.

**500**

Internal error.

get/api/v1/uat-configurations/{configId}

https://cloudmanager.tableau.com/api/v1/uat-configurations/{configId}

### Response samples

- 200
- 404
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0", - "configId": "46ff6d11-d8b2-40d8-9197-dfa33c61cd6c", - "name": "string", - "issuer": "string", - "publicKeyActive": "string", - "publicKey": "string", - "jwksUri": "string", - "usernameClaim": "string", - "resourceIds": [          - "497f6eca-6276-4993-bfeb-53cbbbba6f08"          ], - "scopes": [          - "tableau:tcm_sites:read",     - "tableau:tcm_sites:update",     - "tableau:sites:read",     - "tableau:sites:update"          ], - "enabled": true  }`

## [](#tag/Authentication-Methods/operation/updateUatConfiguration)Update unified access token configuration

Updates the specified unified access token (UAT) configuration.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, December 2025, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_uat_configs:update`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="configId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">configId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">lafb0f7e-2962-40d5-bfc9-e95141bcb68f</span></div><div><div html="<p>The unique identifier of the unified access token (UAT) configuration. You can get the <code>configId</code> by calling the <a href=&quot;#tag/Authentication-Methods/operation/getJwtConfigurations&quot;>List unified access token configurations</a> method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the unified access token (UAT) configuration. You can get the <code>configId</code> by calling the <a href="#tag/Authentication-Methods/operation/getJwtConfigurations">List unified access token configurations</a> method.</p>
</div></div></div></td></tr></tbody></table>

##### Request Body schema: application/json

required

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="name" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">name</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The name of the unified access token (UAT) configuration. UAT configuration name must be unique.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The name of the unified access token (UAT) configuration. UAT configuration name must be unique.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="issuer" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">issuer</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The issuer of the JSON Web Token (JWT).</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The issuer of the JSON Web Token (JWT).</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="publicKey" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">publicKey</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The public key used to verify the JSON Web Token (JWT). Use this value or <code>jwksUri</code>, but not both.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The public key used to verify the JSON Web Token (JWT). Use this value or <code>jwksUri</code>, but not both.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="jwksUri" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">jwksUri</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The URI of the JWKS endpoint. Use this value or <code>publicKey</code>, but not both.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The URI of the JWKS endpoint. Use this value or <code>publicKey</code>, but not both.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="usernameClaim" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">usernameClaim</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The username claim that maps to the Tableau username. Default value is <code>email</code>.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The username claim that maps to the Tableau username. Default value is <code>email</code>.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="resourceIds" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">resourceIds</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY">Array of </span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">strings</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span><span> <span class="sc-gUjWJS sc-cmfnrN itHPsH iOjfOC"> <!-- -->unique<!-- --> </span></span><span class="sc-gUjWJS sc-kZOsHZ sc-jIYCZY itHPsH iSyacY bDgvzj">[ items<span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> &lt;<!-- -->uuid<!-- --> &gt;</span> ]</span></div> <div><div html="<p>The tenant ID, the tenant ID and site IDs associated with the tenant, or site IDs associated with the same tenant. You can get the <code>resourceId</code> by calling the <a href=&quot;#tag/Tenant-Methods/operation/getTenant&quot;>Get Tenant</a> or <a href=&quot;#tag/Site-Methods/operation/getSites&quot;>List Tenant Sites</a> method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The tenant ID, the tenant ID and site IDs associated with the tenant, or site IDs associated with the same tenant. You can get the <code>resourceId</code> by calling the <a href="#tag/Tenant-Methods/operation/getTenant">Get Tenant</a> or <a href="#tag/Site-Methods/operation/getSites">List Tenant Sites</a> method.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="scopes" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">scopes</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY">Array of </span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">strings</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->scope<!-- -->&gt;<!-- --> </span><span> <span class="sc-gUjWJS sc-cmfnrN itHPsH iOjfOC"> <!-- -->unique<!-- --> </span></span><span class="sc-gUjWJS sc-kZOsHZ sc-jIYCZY itHPsH iSyacY bDgvzj">[ items<span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> &lt;<!-- -->scope<!-- --> &gt;</span> ]</span></div> <div><div html="<p>The access scopes defined in the JSON Web Token (JWT) associated with the unified access token (UAT) configuration. Scopes in the UAT are optional and allow you to further restrict the operations available to the JWT.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The access scopes defined in the JSON Web Token (JWT) associated with the unified access token (UAT) configuration. Scopes in the UAT are optional and allow you to further restrict the operations available to the JWT.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="enabled" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">enabled</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">boolean</span></div> <div><div html="<p>If <code>true</code>, the unified access token (UAT) configuration is enabled. Default value is <code>true</code>.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>If <code>true</code>, the unified access token (UAT) configuration is enabled. Default value is <code>true</code>.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request.

**404**

Unified access token (UAT) configuration not found.

**500**

Internal error.

put/api/v1/uat-configurations/{configId}

https://cloudmanager.tableau.com/api/v1/uat-configurations/{configId}

### Request samples

- Payload

Content type

application/json

Copy

Expand all Collapse all

`{  - "name": "JWT - Employees", - "issuer": "[https://myidp.okta.com/app1](https://myidp.okta.com/app1)", - "publicKey": "-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...", - "jwksUri": "[https://myidp.okta.com/oauth2/default/v1/keys](https://myidp.okta.com/oauth2/default/v1/keys)", - "usernameClaim": "string", - "resourceIds": [          - "123e4567-e89b-12d3-a456-426614174000",     - "123e4567-e89b-12d3-a456-426614174002",     - "123e4567-e89b-12d3-a456-426614174003"          ], - "scopes": [          - "tableau:tcm_sites:read",     - "tableau:tcm_sites:update",     - "tableau:sites:read",     - "tableau:sites:update"          ], - "enabled": true  }`

### Response samples

- 200
- 400
- 404
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", - "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0", - "configId": "46ff6d11-d8b2-40d8-9197-dfa33c61cd6c", - "name": "string", - "issuer": "string", - "publicKeyActive": "string", - "publicKey": "string", - "jwksUri": "string", - "usernameClaim": "string", - "resourceIds": [          - "497f6eca-6276-4993-bfeb-53cbbbba6f08"          ], - "scopes": [          - "tableau:tcm_sites:read",     - "tableau:tcm_sites:update",     - "tableau:sites:read",     - "tableau:sites:update"          ], - "enabled": true  }`

## [](#tag/Authentication-Methods/operation/jwtLogin)Sign in with unified access token JWT

Signs in to Tableau Cloud Manager (TCM) REST API using a JSON Web Token (JWT).

You must have a unified access token (UAT) configuration associated with the JWT to successfully sign in to the TCM REST API using this method. To generate a UAT, you can call the [Create unified access token configuration](#tag/Authentication-Methods/operation/createJwtConfiguration) method.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, December 2025, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: Not available. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Request Body schema: application/json

required

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="token" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">token</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The JSON Web Token (JWT) associated with a unified access token (UAT) configuration. Ensure you have first configured and generated a UAT by calling the <a href=&quot;#tag/Authentication-Methods/operation/createJwtConfiguration&quot;>Create unified access token configuration</a> method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The JSON Web Token (JWT) associated with a unified access token (UAT) configuration. Ensure you have first configured and generated a UAT by calling the <a href="#tag/Authentication-Methods/operation/createJwtConfiguration">Create unified access token configuration</a> method.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request.

**401**

User not authorized.

**403**

JSON Web Token (JWT) not valid.

**404**

Unified access token (UAT) configuration not found.

**500**

Internal error.

post/api/v1/jwt/login

https://cloudmanager.tableau.com/api/v1/jwt/login

### Request samples

- Payload

Content type

application/json

Copy

`{  - "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"  }`

### Response samples

- 200
- 400
- 401
- 403
- 404
- 500

Content type

application/json

Copy

`{  - "sessionToken": "bSG+6ttrRgqMLzonp5j89w==:SUOF-rjwMZZKXg-T3GcpDVFrIKAO6VIbTyZyq39bWR0", - "userId": "123e4567-e89b-12d3-a456-426614174000", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "sessionExpiration": "2019-08-24T14:15:22Z"  }`

## [](#tag/Authentication-Methods/operation/revokeSessionId)Sign out

Signs out of Tableau Cloud Manager (TCM) REST API.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager V2, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: Not required. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

### Responses

**200**

Success.

**401**

User not authorized to revoke session and sign out.

**404**

Session not found.

**500**

Internal error.

delete/api/v2/sessions

https://cloudmanager.tableau.com/api/v2/sessions

### Response samples

- 401
- 404
- 500

Content type

application/json

Copy

`{  - "message": "string", - "reason": "string", - "errorCode": "INVALID_TENANT_NAME"  }`

## [](#tag/Authentication-Methods/operation/createUatRevocationRecords)Revoke unified access token JWT

Revokes the JSON Web token (JWT) associated with a unified access token (UAT) configuration by generating a revocation record.

The revoked JWT can't be used to sign in to Tableau Cloud Manager (TCM) REST API or Tableau REST API.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, December 2025, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_uat_revocations:create`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### Request Body schema: application/json

required

Array

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="jti" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">jti</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The JWT ID of the JSON Web Token (JWT) associated with the unified access token (UAT) configuration.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The JWT ID of the JSON Web Token (JWT) associated with the unified access token (UAT) configuration.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="exp" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">exp</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">integer</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->int64<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>The expiration timestamp of the JSON Web Token (JWT) in seconds from Epoch (Unix epoch time).</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The expiration timestamp of the JSON Web Token (JWT) in seconds from Epoch (Unix epoch time).</p>
</div></div></div></td></tr></tbody></table>

### Responses

**201**

Success.

**400**

Invalid request.

**500**

Internal error.

post/api/v1/uat-revocations

https://cloudmanager.tableau.com/api/v1/uat-revocations

### Request samples

- Payload

Content type

application/json

Copy

Expand all Collapse all

`[  - {          - "jti": "[https://myidp.okta.com:17568488555555](https://myidp.okta.com:17568488555555)",     - "exp": 1788384000          }  ]`

### Response samples

- 201
- 400
- 500

Content type

application/json

Copy

Expand all Collapse all

`[  - {          - "jti": "[https://myidp.okta.com:17568488555555](https://myidp.okta.com:17568488555555)",     - "exp": 1788384000          }  ]`

## [](#tag/Authentication-Methods/operation/deleteRevocationRecord)Delete revoked unified access token JWT

Deletes the record of a revoked unified access token (UAT) JSON Web Token (JWT).

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, December 2025, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_uat_revocations:delete`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### query Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="jti" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">jti</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The JWT ID of the JSON Web Token (JWT) associated with the unified access token (UAT) configuration. You can get the <code>jti</code> from the revoked unified access token (UAT) JSON Web Token (JWT) record by calling the <a href=&quot;#tag/Authentication-Methods/operation/getUatRevocationRecords&quot;>List revoked unified access token JWTs</a> method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The JWT ID of the JSON Web Token (JWT) associated with the unified access token (UAT) configuration. You can get the <code>jti</code> from the revoked unified access token (UAT) JSON Web Token (JWT) record by calling the <a href="#tag/Authentication-Methods/operation/getUatRevocationRecords">List revoked unified access token JWTs</a> method.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**204**

Success.

**500**

Internal error.

delete/api/v1/uat-revocations

https://cloudmanager.tableau.com/api/v1/uat-revocations

### Response samples

- 204
- 500

Content type

application/json

Copy

`{ }`

## [](#tag/Authentication-Methods/operation/getUatRevocationRecords)List revoked unified access token JWTs

Gets a list of records for all revoked unified access token (UAT) JSON Web Tokens (JWTs).

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, December 2025, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_uat_revocations:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### query Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="jti" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">jti</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The JWT ID of the JSON Web Token (JWT) associated with the unified access token (UAT) configuration. You can get the <code>jti</code> from the revoked unified access token (UAT) JSON Web Token (JWT) record by calling the <a href=&quot;#tag/Authentication-Methods/operation/getUatRevocationRecords&quot;>List revoked unified access token JWTs</a> method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The JWT ID of the JSON Web Token (JWT) associated with the unified access token (UAT) configuration. You can get the <code>jti</code> from the revoked unified access token (UAT) JSON Web Token (JWT) record by calling the <a href="#tag/Authentication-Methods/operation/getUatRevocationRecords">List revoked unified access token JWTs</a> method.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="pageToken" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">pageToken</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">pageToken=fDIwMjQtMDktMDlUMDU6MDA=</span></div><div><div html="<p>The token to provide to request the next page of records.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The token to provide to request the next page of records.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="pageSize" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">pageSize</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">integer</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->int32<!-- -->&gt;<!-- --> </span></div><div><span class="sc-gUjWJS itHPsH"> <!-- -->Default:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">100</span></div> <div><div html="<p>The maximum number of records on a page. Default is <code>100</code> records.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The maximum number of records on a page. Default is <code>100</code> records.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**500**

Internal error.

get/api/v1/uat-revocations

https://cloudmanager.tableau.com/api/v1/uat-revocations

### Response samples

- 200
- 500

Content type

application/json

Copy

`{  - "records": "97df110-f4de-492e-8849-4a6af68026b0:https://myidp.okta.com:17568488555555", - "pageToken": "fDIwMjQtMDktMDlUMDU6MDA="  }`

# [](#tag/Capacity-Methods)Capacity Methods

Capacity management is a collection of capabilities available to you from the **Capacities** page in Tableau Cloud Manager (TCM). These capabilities enable you to view and manage capacity across the sites on the tenant.

Starting in May 2026, you can manage the following capacities in TCM:

- Subscription concurrency
- Extract APIs
- Flow concurrency
- Publish APIs
- VizQL Data Service (VDS) APIs

Starting in July 2026, you can manage the following capacities in TCM if Tableau Cloud is licensed with the capacity-based model:

- Visualizations
- Pulse digests

For more information, see one of the following topics in the Tableau Cloud Help:

- [Capacity Managed in Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_capacity.htm) for capacities configurable in TCM
- [Capacity Set at the Site](https://help.tableau.com/current/online/en-us/cloud_manager_capacity_site.htm) for capacities that remain fixed at the site level and not configurable in TCM
- [Capacity-based license model](https://help.tableau.com/current/online/en-us/license_product_keys.htm#capacity) for information about capacity-based license model

**Postman:** [Capacity Methods](https://www.postman.com/salesforce-developers/salesforce-developers/folder/t1dwlo3/tableau-apis?action=share&creator=0)

## [](#tag/Capacity-Methods/operation/getPaginatedMetricsForTenant)List capacity metrics for tenant

Gets a list of capacity metrics data for all sites on the tenant.

> Version: Available in Tableau Cloud Manager v1, May 2026, and later.

> Permissions: Only cloud administrators can call this method.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_tenant_metrics:read`. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

To use this method, you must specify how much capacity metrics data you want to return. Use the `window` parameter to specify the number of days (1 or 2 days) before the `endTime`parameter to include in the request. Use the `pageSize` parameter to limit the number of sites returned per page (up to 50 sites).

**Example**

For example, the following request returns the last two days of capacity metrics data, April 1-3, 2026, across 50 sites on the tenant.

```
curl -X GET "http://mytenant.cloudmanager.tableau.com/api/v1/tenants/123e4567-e89b-12d3-a456-426614174000/metrics?endTime=2026-04-03T23:59:59.000Z&window=2&pageSize=50" -H "accept: application/json"
```

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">123e4567-e89b-12d3-a456-426614174000</span></div><div><div html="<p>The unique identifier of the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the tenant.</p>
</div></div></div></td></tr></tbody></table>

##### query Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="endTime" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">endTime</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">endTime=2026-10-18T23:56:20.145Z</span></div><div><div html="<p>The end date and time in UTC (ISO-8601).</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The end date and time in UTC (ISO-8601).</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="window" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">window</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The number of days before <code>endTime</code>. Value must be <code>1</code> or <code>2</code> days. If <code>endTime</code> is not specified, the window is calculated from the current date and time.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The number of days before <code>endTime</code>. Value must be <code>1</code> or <code>2</code> days. If <code>endTime</code> is not specified, the window is calculated from the current date and time.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="aggregationType" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">aggregationType</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div><div><span class="sc-gUjWJS itHPsH"> <!-- -->Enum<!-- -->:</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"peak"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"average"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"median"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"all"</span> </div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">aggregationType=median</span></div><div><div html="<p>The aggregation type of the capacity metric:<code>peak</code>, <code>average</code>, <code>median</code>,or <code>all</code>.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The aggregation type of the capacity metric:<code>peak</code>, <code>average</code>, <code>median</code>,or <code>all</code>.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="pageSize" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">pageSize</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">pageSize=20</span></div><div><div html="<p>The maximum number of sites returned on a page. Value must be less than or equal to (&amp;lt;=) <code>50</code> sites.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The maximum number of sites returned on a page. Value must be less than or equal to (&lt;=) <code>50</code> sites.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="pageToken" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">pageToken</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">pageToken=fDIwMjQtMDktMDlUMDU6MDA=</span></div><div><div html="<p>The token string used to request the next page of results. If not specified, the first page is returned.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The token string used to request the next page of results. If not specified, the first page is returned.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**202**

Partial success. Some sites returned capacity metrics; some sites failed to return capacity metrics.

**400**

Invalid request.

**404**

The specified tenant could not be found.

**500**

Internal error.

get/api/v1/tenants/{tenantId}/metrics

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/metrics

### Response samples

- 200
- 202
- 400
- 404
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "nextPageToken": "123e4567-e89b-12d3-a456-426614174000", - "sites": [          - {                  - "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",         - "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1",         - "startTime": "2019-08-24T14:15:22Z",         - "endTime": "2019-08-24T14:15:22Z",         - "metrics": [                          - {                                  - "metricType": "backgrounder_refresh_concurrency_limit",                 - "aggregations": {                                          - "peak": {                                                  - "property1": 0.1,                         - "property2": 0.1                                                  },                     - "median": {                                                  - "property1": 0.1,                         - "property2": 0.1                                                  },                     - "average": {                                                  - "property1": 0.1,                         - "property2": 0.1                                                  }                                          }                                  }                          ]                  }          ]  }`

## [](#tag/Capacity-Methods/operation/getScrolledMetricsForSite)List capacity metrics for sites

Gets a list of capacity metrics data for the specified sites on the tenant.

> Version: Available in Tableau Cloud Manager v1, May 2026, and later.

> Permissions: Only cloud administrators can call this method.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_site_metrics:read`. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

To use this method, you must specify how much capacity metrics data you want to return. Use the required `window` parameter to specify the number of days (1 or 2 days) before the optional `endTime` to include in the request.

**Example**

For example, the following request returns the last two days of capacity metrics data, April 1-3, 2026, for two sites on the tenant.

```
curl -X POST "https://mytenant.cloudmanager.tableau.com/api/v1/tenants/123e4567-e89b-12d3-a456-426614174000/metrics?endTime=2026-04-03T23:59:59.000Z&window=2" -H "Content-Type: application/json" -d '{"siteIds": ["1489a6a4-89a8-4d17-9180-64c34dd07b86", "2589b7b5-90b9-5e28-0291-75d45ee18c97"]}'
```

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">123e4567-e89b-12d3-a456-426614174000</span></div><div><div html="<p>The unique identifier of the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the tenant.</p>
</div></div></div></td></tr></tbody></table>

##### query Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="endTime" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">endTime</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">endTime=2026-10-18T23:56:20.145Z</span></div><div><div html="<p>The end date and time in UTC (ISO-8601).</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The end date and time in UTC (ISO-8601).</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="window" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">window</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The number of days before <code>endTime</code>. Value must be <code>1</code> or <code>2</code> days. If <code>endTime</code> is not specified, the window is calculated from the current date and time.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The number of days before <code>endTime</code>. Value must be <code>1</code> or <code>2</code> days. If <code>endTime</code> is not specified, the window is calculated from the current date and time.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="aggregationType" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">aggregationType</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">aggregationType=median</span></div><div><div html="<p>The aggregation type of the capacity metric:<code>peak</code>, <code>average</code>, <code>median</code>, or <code>all</code>.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The aggregation type of the capacity metric:<code>peak</code>, <code>average</code>, <code>median</code>, or <code>all</code>.</p>
</div></div></div></td></tr></tbody></table>

##### Request Body schema: application/json

required

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="siteIds" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">siteIds</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY">Array of </span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">strings</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span><span class="sc-gUjWJS sc-kZOsHZ sc-jIYCZY itHPsH iSyacY bDgvzj">[ items<span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> &lt;<!-- -->uuid<!-- --> &gt;</span> ]</span></div> <div><div html="<p>The unique identifiers of the sites.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifiers of the sites.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**202**

Partial success. Some sites returned capacity metrics; some sites failed to return capacity metrics.

**400**

Invalid request.

**404**

The specified tenant or site could not be found.

**500**

Internal error.

post/api/v1/tenants/{tenantId}/metrics

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/metrics

### Request samples

- Payload

Content type

application/json

Copy

Expand all Collapse all

`{  - "siteIds": [          - "123e4567-e89b-12d3-a456-426614174000",     - "123e4567-e89b-12d3-a456-426614174001"          ]  }`

### Response samples

- 200
- 202
- 400
- 404
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "nextPageToken": "123e4567-e89b-12d3-a456-426614174000", - "sites": [          - {                  - "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",         - "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1",         - "startTime": "2019-08-24T14:15:22Z",         - "endTime": "2019-08-24T14:15:22Z",         - "metrics": [                          - {                                  - "metricType": "backgrounder_refresh_concurrency_limit",                 - "aggregations": {                                          - "peak": {                                                  - "property1": 0.1,                         - "property2": 0.1                                                  },                     - "median": {                                                  - "property1": 0.1,                         - "property2": 0.1                                                  },                     - "average": {                                                  - "property1": 0.1,                         - "property2": 0.1                                                  }                                          }                                  }                          ]                  }          ]  }`

## [](#tag/Capacity-Methods/operation/getMetricsForSite)Get capacity metrics for site

Gets the capacity metrics data for the specified site.

> Version: Available in Tableau Cloud Manager v1, May 2026, and later.

> Permissions: Only cloud administrators can call this method.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_site_metrics:read`. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">123e4567-e89b-12d3-a456-426614174000</span></div><div><div html="<p>The unique identifier of the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the tenant.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="siteId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">siteId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">1489a6a4-89a8-4d17-9180-64c34dd07b86</span></div><div><div html="<p>The unique identifier of the site. To get the site ID, call the <a href=&quot;#tag/Administrative-Methods/operation/getSitesForTenant&quot;>List sites for tenant</a> method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the site. To get the site ID, call the <a href="#tag/Administrative-Methods/operation/getSitesForTenant">List sites for tenant</a> method.</p>
</div></div></div></td></tr></tbody></table>

##### query Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="endTime" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">endTime</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">endTime=2026-01-05T23:56:20.145Z</span></div><div><div html="<p>The end date and time in UTC (ISO-8601).</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The end date and time in UTC (ISO-8601).</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="window" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">window</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The number of days before <code>endTime</code>. Value must be <code>1</code> or <code>2</code> days. If <code>endTime</code> is not specified, the window is calculated from the current date and time.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The number of days before <code>endTime</code>. Value must be <code>1</code> or <code>2</code> days. If <code>endTime</code> is not specified, the window is calculated from the current date and time.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="aggregationType" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">aggregationType</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div><div><span class="sc-gUjWJS itHPsH"> <!-- -->Enum<!-- -->:</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"peak"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"average"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"median"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"all"</span> </div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">aggregationType=median</span></div><div><div html="<p>The aggregation type of the capacity metric:<code>peak</code>, <code>average</code>, <code>median</code>, or <code>all</code>.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The aggregation type of the capacity metric:<code>peak</code>, <code>average</code>, <code>median</code>, or <code>all</code>.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request.

**404**

The specified tenant or site could not be found.

**500**

Internal error.

get/api/v1/tenants/{tenantId}/sites/{siteId}/metrics

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/sites/{siteId}/metrics

### Response samples

- 200
- 400
- 404
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0", - "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1", - "startTime": "2019-08-24T14:15:22Z", - "endTime": "2019-08-24T14:15:22Z", - "metrics": [          - {                  - "metricType": "backgrounder_refresh_concurrency_limit",         - "aggregations": {                          - "peak": {                                  - "property1": 0.1,                 - "property2": 0.1                                  },             - "median": {                                  - "property1": 0.1,                 - "property2": 0.1                                  },             - "average": {                                  - "property1": 0.1,                 - "property2": 0.1                                  }                          }                  }          ]  }`

## [](#tag/Capacity-Methods/operation/getCapacities)List capacities

Gets a list of capacity information for all active sites on the tenant.

> Version: Available in Tableau Cloud Manager v1, May 2026, and later.

> Permissions: Only cloud administrators can call this method.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_capacities:read`. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">123e4567-e89b-12d3-a456-426614174000</span></div><div><div html="<p>The unique identifier of the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the tenant.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**404**

The specified tenant could not be found.

**500**

Internal error.

get/api/v1/tenants/{tenantId}/capacities

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/capacities

### Response samples

- 200
- 404
- 500

Content type

application/json

Copy

`{  - "resultCode": "Success", - "timestamp": "2026-04-01T10:30Z", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "capacities": "[{capacityName=backgrounder_subscription_concurrency_limit.tenant, cloudLimit=6000, defaultSiteLimit=150, minSiteLimit=25, maxSiteLimit=1200, unit=jobs, sites=[{siteLuid=123e4567-e89b-12d3-a456-426614174000, limit=300}, {siteLuid=55555567-e89b-12d3-a456-426614174000, limit=600}]}, {capacityName=api.rest.refresh_extracts.tenant, cloudLimit=15360, defaultSiteLimit=1024, minSiteLimit=128, maxSiteLimit=3072, unit=calls, sites=[{siteLuid=123e4567-e89b-12d3-a456-426614174000, limit=1536}, {siteLuid=55555567-e89b-12d3-a456-426614174000, limit=2048}]}]"  }`

## [](#tag/Capacity-Methods/operation/updateCapacities)Update capacities

Updates the following capacity limits:

- **Cloud limits:** Maximum capacity available to the active sites on the tenant.
- **Default site limits:** Default capacity allocated to all new and existing active sites whose capacities have not been customized.

For more information, see [Capacity Managed in Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_capacity.htm) in the Tableau Cloud Help.

**Troubleshoot errors**

When updating capacities, you might encounter the following 207 or 400 errors:

- `errorCode: "POLICY_STORE_INVALID_SITE_LIMIT"`, `message: "Site limit for <siteId> <x> is below minimum <y>"`
- `errorCode: "POLICY_STORE_SITES_LIMIT_OVERFLOW"`, `message: "Total site limits (<x>) exceeds cloud limit (<y>) for capacity: <capacity_name>"`
- `errorCode: "VALIDATION_ERROR"`, `message: "The following site IDs are suspended and cannot be updated: <siteId1>, <siteId2>, ..."`

To help resolve these errors, see [Update capacity API errors](https://help.tableau.com/current/online/en-us/cloud_manager_capacity_errors.htm#troubleshoot_api_update_capacitites) in the Tableau Cloud Help.

> Version: Available in Tableau Cloud Manager v1, May 2026, and later.

> Permissions: Only cloud administrators can call this method.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_capacities:update`. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">123e4567-e89b-12d3-a456-426614174000</span></div><div><div html="<p>The unique identifier of the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the tenant.</p>
</div></div></div></td></tr></tbody></table>

##### Request Body schema: application/json

required

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="capacities" class="sc-hABBmJ sc-fHejqy sc-jiaSqj cqoAxn hfWKVF gIkRoy"><span class="sc-ifyrAs hIHfpT"></span><button aria-label="expand capacities"><span class="property-name">capacities</span><svg class="sc-eTNRI jIsRbK" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY">Array of </span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">objects</span><span class="sc-gUjWJS sc-jgraLO itHPsH iUxudT"> (<!-- -->CapacityPolicyUpdate<!-- -->) </span><span> <span class="sc-gUjWJS sc-cmfnrN itHPsH iOjfOC"> <!-- -->[ 1 .. 2147483647 ] items<!-- --> </span></span></div> <div><div html="<p>List of capacity limits to update.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>List of capacity limits to update.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**207**

Partial success. Some capacity updates were successful; some capacity updates failed.

**400**

Invalid request.

**404**

The specified tenant could not be found.

**500**

Internal error.

patch/api/v1/tenants/{tenantId}/capacities

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/capacities

### Request samples

- Payload

Content type

application/json

Copy

Expand all Collapse all

`{  - "capacities": [          - {                  - "capacityName": "backgrounder_refresh_concurrency_limit.tenant",         - "defaultSiteLimit": 0,         - "sites": [                          - {                                  - "siteLuid": "123e4567-e89b-12d3-a456-426614174000",                 - "limit": 10                                  }                          ]                  }          ]  }`

### Response samples

- 200
- 207
- 400
- 404
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "resultCode": "Success", - "timestamp": "string", - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "summary": {          - "totalUpdated": 2          }, - "succeeded": [          - {                  - "capacityName": "backgrounder_refresh_concurrency_limit.tenant",         - "cloudLimit": 0,         - "defaultSiteLimit": 0,         - "minSiteLimit": 0,         - "maxSiteLimit": 0,         - "unit": "calls",         - "sites": [                          - {                                  - "siteLuid": "123e4567-e89b-12d3-a456-426614174000",                 - "limit": 10                                  }                          ]                  }          ], - "failed": [          - {                  - "errorCode": "NOT_FOUND",         - "errorMessage": "Invalid request parameters",         - "timestamp": "2026-04-01T10:30:00Z",         - "capacityName": "backgrounder_refresh_concurrency_limit.tenant"                  }          ]  }`

# [](#tag/Platform-Data-Methods)Platform Data Methods

Tableau Cloud Manager REST API Platform Data methods allow cloud administrators to manage event data (activity logs) for the tenant or site in the following ways:

- Get event logs for tenant.
- List event logs for tenant.
- Get event logs for site.
- List event logs for site.
- Get entity snapshots for site.
- List entity snapshots for site.

Platform data methods provide a central, unified way to retrieve event data from your Tableau Cloud deployment. For example, see who signed in to TCM to create a new site, see who made permission changes to their workbook, and take inventory of unused workbooks on your site. You can use these methods to download data to store, integrate, and analyze using your preferred tools.

For more information about the Platform data methods and an example workflow, see [Platform Data API](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/platform_data.html).

**Postman:** [Platform Data Methods](https://www.postman.com/salesforce-developers/salesforce-developers/folder/12721794-25e429a5-01a8-4028-a526-ff13d7e8ad01)

**API request limits**

To ensure optimal performance while supporting more usage data, Tableau uses API request limits for event log and entity snapshot methods. These limits are designed to exceed the needs of both typical and special use cases such as daily downloads or bulk historical event retrievals.

API requests to the platform data methods have the following limits:

- 100 calls per minute for tenant logs
- 100 calls per minute for each site's logs

The API request limits apply only to `GET` and `POST` calls to the `/activitylog` or `/snapshots` endpoints and don't include calls to sign in (`/pat/login` or `/jwt/login`) endpoints or when retrieving log files from the download URLs.

## [](#tag/Platform-Data-Methods/operation/getActivityLogForTenant)Get activity logs for tenant

Gets the download URLs for tenant event logs.

The response returns file paths and URLs in a comma-separated values (CSV) file. Without the Data Management add-on, activity data generally takes about 2 hours to become available. For more information see, [Activity Log](https://help.tableau.com/current/online/en-us/activity_log_overview.htm) in the Tableau Cloud Help.

The response for each event log URL includes the following:

- `expiresAt` which shows the length of time after the response that a returned URL will remain valid
- `eTag` that is an [MD5 hash](https://en.wikipedia.org/wiki/MD5) of the event log content that can be used for tamper proofing and other verification needs

> Version: Available in Tableau Cloud Manager v1, January 2025, and later.

> Permissions: Only cloud administrators can call this method.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_tenants_logs:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">123e4567-e89b-12d3-a456-426614174000</span></div><div><div html="<p>The unique identifier of the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the tenant.</p>
</div></div></div></td></tr></tbody></table>

##### Request Body schema: application/json

required

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="files" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">files</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY">Array of </span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">strings</span></div> <div><div html="<p>Event log or entity snapshot file paths. You can get the event log file paths for the tenant by calling the <a href=&quot;#tag/Platform-Data-Methods/operation/getActivityLogFileListForTenant&quot;>List activity logs for tenant</a> method or for the site by calling the <a href=&quot;#tag/Platform-Data-Methods/operation/getSiteActivityLogListForSite&quot;>List activity logs for site</a> method. You can get the entity snapshot file paths for the site by calling the <a href=&quot;#tag/Platform-Data-Methods/operation/getSiteEntitySnapshotListForSite&quot;>List entity snapshots for site</a> method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>Event log or entity snapshot file paths. You can get the event log file paths for the tenant by calling the <a href="#tag/Platform-Data-Methods/operation/getActivityLogFileListForTenant">List activity logs for tenant</a> method or for the site by calling the <a href="#tag/Platform-Data-Methods/operation/getSiteActivityLogListForSite">List activity logs for site</a> method. You can get the entity snapshot file paths for the site by calling the <a href="#tag/Platform-Data-Methods/operation/getSiteEntitySnapshotListForSite">List entity snapshots for site</a> method.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request.

**404**

The tenant could not be found.

**500**

Internal error.

post/api/v1/tenants/{tenantId}/activitylog

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/activitylog

### Request samples

- Payload

Content type

application/json

Copy

Expand all Collapse all

`{  - "files": [          - "string"          ]  }`

### Response samples

- 200
- 400
- 404
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "files": [          - {                  - "path": "string",         - "url": "string",         - "expiresAt": "2019-08-24T14:15:22Z",         - "etag": "string"                  }          ]  }`

## [](#tag/Platform-Data-Methods/operation/getActivityLogFileListForTenant)List activity logs for tenant

Gets a list of file paths to the tenant's event logs for the specified time period and event type.

Use the returned paths from this method in a request to the [Get activity logs for tenant](#tag/Administrative-Methods/operation/getActivityLogForTenant) method to download the event logs.

**About event log timestamps**

Event log timestamps generally represent when the record for a particular event became available, which might be later than when the event occurred. To avoid missing any relevant event logs data, consider expanding your query's time range to account for the potential differences.

> Version: Available in Tableau Cloud Manager v1, January 2025, and later.

> Permissions: Only cloud administrators can call this method.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_tenants_logs:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">123e4567-e89b-12d3-a456-426614174000</span></div><div><div html="<p>The unique identifier of the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the tenant.</p>
</div></div></div></td></tr></tbody></table>

##### query Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="startTime" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">startTime</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->date-time<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">startTime=2025-01-01T00:00:00</span></div><div><div html="<p>The start time in UTC (ISO-8601) of the returned event log records. Default is 24 hours prior to the time of the request.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The start time in UTC (ISO-8601) of the returned event log records. Default is 24 hours prior to the time of the request.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="endTime" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">endTime</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->date-time<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">endTime=2025-01-01T00:00:00</span></div><div><div html="<p>The end time in UTC (ISO-8601) of the returned event log records. Default is the time of the request. The <code>endTime</code> must not exceed 7 days from the <code>startTime</code>. The request will fail if your end time exceeds that.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The end time in UTC (ISO-8601) of the returned event log records. Default is the time of the request. The <code>endTime</code> must not exceed 7 days from the <code>startTime</code>. The request will fail if your end time exceeds that.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="eventType" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">eventType</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">eventType=update_user_site_role</span></div><div><div html="<p>The type of event to filter returned event logs by. Default value is all types. Refer to <a href=&quot;https://help.tableau.com/current/online/en-us/activity_log_tenant_schema.htm&quot;>Activity Log Tenant Event Type Reference</a> in the Tableau Cloud Help for a list of available event types to filter on.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The type of event to filter returned event logs by. Default value is all types. Refer to <a href="https://help.tableau.com/current/online/en-us/activity_log_tenant_schema.htm">Activity Log Tenant Event Type Reference</a> in the Tableau Cloud Help for a list of available event types to filter on.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="pageSize" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">pageSize</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">integer</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->int32<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">pageSize=100</span></div><div><div html="<p>The number of log file paths to return in a response. Default is 100.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The number of log file paths to return in a response. Default is 100.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="pageToken" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">pageToken</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">pageToken=fDIwMjQtMDktMDlUMDU6MDA=</span></div><div><div html="<p>The token to request the next page of file paths.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The token to request the next page of file paths.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request.

**404**

The tenant specified could not be found.

**500**

Internal error.

get/api/v1/tenants/{tenantId}/activitylog

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/activitylog

### Response samples

- 200
- 400
- 404
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "files": [          - {                  - "path": "string",         - "size": 0                  }          ], - "pageToken": "string"  }`

## [](#tag/Platform-Data-Methods/operation/getActivityLogForSite)Get activity logs for site

Gets download URLs for event log files for the site.

The response returns file paths and URLs in a comma-separated values (CSV) file. File paths include the following:

- `expiresAt` which shows the length of time after the response that the returned URL will remain valid
- `eTag` that is an [MD5 hash](https://en.wikipedia.org/wiki/MD5) of the log content that can be used for tamper proofing and other verification needs

For more information about site activity captured by event logs, see [Activity Log Site Events](https://help.tableau.com/current/online/en-us/activity_log_overview.htm#site-events) in the Tableau Cloud Help.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, October 2025, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_sites_logs:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">123e4567-e89b-12d3-a456-426614174000</span></div><div><div html="<p>The unique identifier of the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the tenant.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="siteId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">siteId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">567f1234-e89b-71e5-a456-428814174111</span></div><div><div html="<p>The unique identifier of the site.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the site.</p>
</div></div></div></td></tr></tbody></table>

##### Request Body schema: application/json

required

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="files" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">files</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY">Array of </span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">strings</span></div> <div><div html="<p>Event log or entity snapshot file paths. You can get the event log file paths for the tenant by calling the <a href=&quot;#tag/Platform-Data-Methods/operation/getActivityLogFileListForTenant&quot;>List activity logs for tenant</a> method or for the site by calling the <a href=&quot;#tag/Platform-Data-Methods/operation/getSiteActivityLogListForSite&quot;>List activity logs for site</a> method. You can get the entity snapshot file paths for the site by calling the <a href=&quot;#tag/Platform-Data-Methods/operation/getSiteEntitySnapshotListForSite&quot;>List entity snapshots for site</a> method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>Event log or entity snapshot file paths. You can get the event log file paths for the tenant by calling the <a href="#tag/Platform-Data-Methods/operation/getActivityLogFileListForTenant">List activity logs for tenant</a> method or for the site by calling the <a href="#tag/Platform-Data-Methods/operation/getSiteActivityLogListForSite">List activity logs for site</a> method. You can get the entity snapshot file paths for the site by calling the <a href="#tag/Platform-Data-Methods/operation/getSiteEntitySnapshotListForSite">List entity snapshots for site</a> method.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request.

**404**

Tenant or site not found.

**500**

Internal error.

post/api/v1/tenants/{tenantId}/sites/{siteId}/activitylog

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/sites/{siteId}/activitylog

### Request samples

- Payload

Content type

application/json

Copy

Expand all Collapse all

`{  - "files": [          - "string"          ]  }`

### Response samples

- 200
- 400
- 404
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "files": [          - {                  - "path": "string",         - "url": "string",         - "expiresAt": "2019-08-24T14:15:22Z",         - "etag": "string"                  }          ]  }`

## [](#tag/Platform-Data-Methods/operation/getSiteActivityLogListForSite)List activity logs for site

Gets a list of event log files for the site.

The response returns a list of file paths to entity snapshot files. Use the returned paths in a request with the [Get activity logs for site](#tag/Platform-Data-Methods/operation/getActivityLogForSite) method to download the event logs.

**About event log timestamps**

Event log timestamps generally show when the record for a particular event became available, which might be later than when the event occurred. To avoid missing any relevant event logs data, consider expanding your query's time range to account for the potential differences.

**Known issues**

- **Unexpected log data for us-east-1 and us-west-2 regions:** For Tableau Cloud sites in pods located in the **us-east-1** and **us-west-2** regions, log data returned from this query might be incomplete or contain data for a time period that is different from what is expected. For more information, see the [Log files returned by the Platform Data API from the Tableau Cloud Manger "List Activity Logs for Site" Method Return Unexpected Results](https://help.salesforce.com/s/issue?id=a02Ka00000ildTn) knowledge article.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, October 2025, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_sites_logs:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">123e4567-e89b-12d3-a456-426614174000</span></div><div><div html="<p>The unique identifier of the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the tenant.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="siteId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">siteId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">567f1234-e89b-71e5-a456-428814174111</span></div><div><div html="<p>The unique identifier of the site.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the site.</p>
</div></div></div></td></tr></tbody></table>

##### query Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="startTime" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">startTime</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->date-time<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">startTime=2025-01-01T00:00:00</span></div><div><div html="<p>The start time in UTC (ISO-8601) of the returned event log records. Default value is 24 hours prior to the time of the request.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The start time in UTC (ISO-8601) of the returned event log records. Default value is 24 hours prior to the time of the request.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="endTime" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">endTime</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->date-time<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">endTime=2025-01-01T00:00:00</span></div><div><div html="<p>The end time in UTC (ISO-8601) of the returned event log records. Default value is the time of the request.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The end time in UTC (ISO-8601) of the returned event log records. Default value is the time of the request.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="eventType" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">eventType</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">eventType=hist_access_view</span></div><div><div html="<p>The type of event to filter returned logs by. Default value is all types. Refer to <a href=&quot;https://help.tableau.com/current/online/en-us/activity_log_schema.htm&quot;>Activity Log Site Event Type Reference</a> in the Tableau Cloud Help for a list of available event types to filter on.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The type of event to filter returned logs by. Default value is all types. Refer to <a href="https://help.tableau.com/current/online/en-us/activity_log_schema.htm">Activity Log Site Event Type Reference</a> in the Tableau Cloud Help for a list of available event types to filter on.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="pageSize" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">pageSize</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">integer</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->int32<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">pageSize=100</span></div><div><div html="<p>The number of event log files to return in the response. Default value is 100.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The number of event log files to return in the response. Default value is 100.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="pageToken" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">pageToken</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">pageToken=fDIwMjQtMDktMDlUMDU6MDA=</span></div><div><div html="<p>The token to request the next page of event log files.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The token to request the next page of event log files.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request.

**404**

Tenant or site not found.

**500**

Internal error.

get/api/v1/tenants/{tenantId}/sites/{siteId}/activitylog

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/sites/{siteId}/activitylog

### Response samples

- 200
- 400
- 404
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "files": [          - {                  - "path": "string",         - "size": 0                  }          ], - "pageToken": "string"  }`

## [](#tag/Platform-Data-Methods/operation/getEntitySnapshotForSite)Get entity snapshots for site

Gets download URLs for entity snapshot files for the site.

The response returns files paths and URLs. Files are in Parquet format and paths are partitioned by tenant ID, site ID, date range, and entity type.

For more information about entity snapshots, see [Use Entity Snapshots](https://help.tableau.com/current/online/en-us/activity_log_entity_snapshots.htm) and [Entity Snapshots Reference](https://help.tableau.com/current/online/en-us/activity_log_entity_snapshots_reference.htm) in the Tableau Cloud Help.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, July 2026, and later.

> License: Enterprise or Tableau+ is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: Not available. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">123e4567-e89b-12d3-a456-426614174000</span></div><div><div html="<p>The unique identifier of the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the tenant.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="siteId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">siteId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">567f1234-e89b-71e5-a456-428814174111</span></div><div><div html="<p>The unique identifier of the site.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the site.</p>
</div></div></div></td></tr></tbody></table>

##### Request Body schema: application/json

required

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="files" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">files</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY">Array of </span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">strings</span></div> <div><div html="<p>Event log or entity snapshot file paths. You can get the event log file paths for the tenant by calling the <a href=&quot;#tag/Platform-Data-Methods/operation/getActivityLogFileListForTenant&quot;>List activity logs for tenant</a> method or for the site by calling the <a href=&quot;#tag/Platform-Data-Methods/operation/getSiteActivityLogListForSite&quot;>List activity logs for site</a> method. You can get the entity snapshot file paths for the site by calling the <a href=&quot;#tag/Platform-Data-Methods/operation/getSiteEntitySnapshotListForSite&quot;>List entity snapshots for site</a> method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>Event log or entity snapshot file paths. You can get the event log file paths for the tenant by calling the <a href="#tag/Platform-Data-Methods/operation/getActivityLogFileListForTenant">List activity logs for tenant</a> method or for the site by calling the <a href="#tag/Platform-Data-Methods/operation/getSiteActivityLogListForSite">List activity logs for site</a> method. You can get the entity snapshot file paths for the site by calling the <a href="#tag/Platform-Data-Methods/operation/getSiteEntitySnapshotListForSite">List entity snapshots for site</a> method.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request. Request body is missing the `files` parameter.

**404**

Tenant or site not found.

**500**

Internal error.

post/api/v1/tenants/{tenantId}/sites/{siteId}/snapshots

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/sites/{siteId}/snapshots

### Request samples

- Payload

Content type

application/json

Copy

Expand all Collapse all

`{  - "files": [          - "string"          ]  }`

### Response samples

- 200
- 400
- 404
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "files": [          - {                  - "path": "string",         - "url": "string",         - "expiresAt": "2019-08-24T14:15:22Z",         - "etag": "string"                  }          ]  }`

## [](#tag/Platform-Data-Methods/operation/getSiteEntitySnapshotListForSite)List entity snapshots for site

Gets a list of entity snapshot files for the site.

The response returns a list of file paths to entity snapshot files for the specified time period and entity type. Use the returned paths in a request with the [Get entity snapshot for site](#tag/Platform-Data-Methods/operation/getEntitySnapshotForSite) method to download the entity snapshots.

**About entity snapshots**

Entity snapshots provide site-level observability into Tableau Cloud content and components, like workbooks, data sources, published connections, users, groups and more. You can use entity snapshots to answer questions about what currently exists on your site, paired with event logs, which describe what's happening on your site.

**About entity snapshot timestamps**

Entity snapshot timestamps generally show when the record for a particular entity became available, which might be later than when the entity snapshot occurred. To avoid missing any relevant entity snapshot data, consider expanding your query's time range to account for the potential differences.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, July 2026, and later.

> License: Enterprise or Tableau+ is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: Not available. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">123e4567-e89b-12d3-a456-426614174000</span></div><div><div html="<p>The unique identifier of the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the tenant.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="siteId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">siteId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">567f1234-e89b-71e5-a456-428814174111</span></div><div><div html="<p>The unique identifier of the site.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the site.</p>
</div></div></div></td></tr></tbody></table>

##### query Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="startTime" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">startTime</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->date-time<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">startTime=2026-10-27T00:00:00</span></div><div><div html="<p>The start time in UTC (ISO-8601) of the returned entity snapshot records. Default value is 24 hours prior to the time of the request. Value must not exceed 14 days in the past. The request will fail if the <code>startTime</code> exceeds that.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The start time in UTC (ISO-8601) of the returned entity snapshot records. Default value is 24 hours prior to the time of the request. Value must not exceed 14 days in the past. The request will fail if the <code>startTime</code> exceeds that.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="endTime" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">endTime</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->date-time<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">endTime=2026-10-28T00:00:00</span></div><div><div html="<p>The end time in UTC (ISO-8601) of the returned entity snapshot records. Default value is the time of the request. The <code>endTime</code> must not exceed 7 days from <code>startTime</code>.  The request will fail if the <code>endTime</code> exceeds that.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The end time in UTC (ISO-8601) of the returned entity snapshot records. Default value is the time of the request. The <code>endTime</code> must not exceed 7 days from <code>startTime</code>.  The request will fail if the <code>endTime</code> exceeds that.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="entityType" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">entityType</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">entityType=view</span></div><div><div html="<p>The type of entity to filter snapshots by. Default value is all types. Refer to <a href=&quot;https://help.tableau.com/current/online/en-us/activity_log_entity_snapshots_reference.htm&quot;>Entity Snapshots Reference</a> in the Tableau Cloud Help for a list of available entity types to filter on.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The type of entity to filter snapshots by. Default value is all types. Refer to <a href="https://help.tableau.com/current/online/en-us/activity_log_entity_snapshots_reference.htm">Entity Snapshots Reference</a> in the Tableau Cloud Help for a list of available entity types to filter on.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="pageSize" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">pageSize</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">any</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">pageSize=100</span></div><div><div html="<p>The number of entity snapshot files to return in the response.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The number of entity snapshot files to return in the response.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="pageToken" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">pageToken</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">pageToken=fDIwMjQtMDktMDlUMDU6MDA=</span></div><div><div html="<p>The token to provide in order to request the next page of entity snapshot files.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The token to provide in order to request the next page of entity snapshot files.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request. Date range is not valid, `endTime` exceeds 7 days from `startTime`, or `startTime` exceeds 14 days in the past.

**404**

Tenant or site not found.

**500**

Internal error.

get/api/v1/tenants/{tenantId}/sites/{siteId}/snapshots

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/sites/{siteId}/snapshots

### Response samples

- 200
- 400
- 404
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "files": [          - {                  - "path": "string",         - "size": 0                  }          ], - "pageToken": "string"  }`

# [](#tag/Single-Sign-on-Methods)Single Sign-on Methods

Tableau Cloud Manager REST API Single Sign-on methods allow cloud administrators to:

- Get a list of authentication configurations for the specified tenants, sites, or users.
- Create or update a Google, OpenID Connect (OIDC), Salesforce, or Security Assertion Markup Language (SAML) authentication configuration for the specified resource ID.
- Delete a Google, OIDC, Salesforce, or SAML authentication configuration for the specified resource ID.
- Get the Google, OIDC, Salesforce, or SAML configuration for the specified resource ID.
- Get the SAML logs for the specified resource ID.

For more information, see [TCM REST API Authentication](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/authentication.html#set-up-tcm-authentication-for-users).

**Postman:** [Single Sign-on Methods](https://www.postman.com/salesforce-developers/salesforce-developers/folder/ofwwode/single-sign-on-methods)

## [](#tag/Single-Sign-on-Methods/operation/createSamlConfiguration)Create SAML configuration

Creates a new SAML configuration for Tableau Cloud Manager (TCM) authentication or Tableau Cloud site authentication using the specified resource ID.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, December 2025, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_saml_configs:create`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

### About configuring SAML authentication for TCM

To configure SAML authentication for TCM, make sure to include the attributes and assertions in your request to correctly map user account attributes from the IdP to TCM.

The following attributes are required when configuring SAML authentication for TCM:

- `entityDescriptor` or `idpMetadataUrl` is specified  
    **Note:** If both attributes are passed, the `entityDescriptor` attribute will take precedence.
- `emailMapping` is specified

**Example**

```
curl -X POST "http://mytenant.cloudmanager.tableau.com/api/v1/resources/{resourceId}/samlconfiguration" -H "accept: application/json" -D '{ "enabled": true, "idpMetadataUrl": "https://myidp.okta.com/app/123456789/sso/saml/metadata", "attributeMapping": { "emailMapping": "NameID", "firstNameMapping": "FirstName", "lastNameMapping": "LastName", "emailAddressMapping": "Email" } }'
```

### About configuring SAML authentication for Tableau Cloud sites

To configure SAML authentication for a site, make sure to include the attributes and assertions in your request to correctly map user account attributes from the IdP to the site.

The following attributes are required when configuring SAML authentication for Tableau Cloud sites:

- `enabled` is `true`
- `entityDescriptor` or `idpMetadataUrl` is specified  
    **Note:** If both attributes are passed, the `entityDescriptor` attribute will take precedence.
- `idpConfigurationName` is specified
- `emailMapping` is specified

**Example**

```
curl -X POST "http://mytenant.cloudmanager.tableau.com/api/v1/resources/{resourceId}/samlconfiguration" -H "accept: application/json" -D '{ "enabled": true, "entityDescriptor": "https://myidp.okta.com/app/123456789/sso/saml/metadata", idpConfigurationName: "SAML - Contractors", allowEmbeddedAuthentication: false, "attributeMapping": { "emailMapping": "NameID", "firstNameMapping": "FirstName", "lastNameMapping": "LastName", "emailAddressMapping": "Email" } }'
```

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="resourceId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">resourceId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">123e4567-e89b-12d3-a456-426614174000</span></div><div><div html="<p>ID of the tenant or site whose SAML configuration is being created. You can get the <code>resourceId</code> by calling the <a href=&quot;#tag/Tenant-Methods/operation/getTenant&quot;>Get Tenant</a> or <a href=&quot;#tag/Site-Methods/operation/getSites&quot;>List Tenant Sites</a> method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>ID of the tenant or site whose SAML configuration is being created. You can get the <code>resourceId</code> by calling the <a href="#tag/Tenant-Methods/operation/getTenant">Get Tenant</a> or <a href="#tag/Site-Methods/operation/getSites">List Tenant Sites</a> method.</p>
</div></div></div></td></tr></tbody></table>

##### Request Body schema: application/json

required

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="enabled" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">enabled</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">boolean</span></div> <div><div html="<p>If <code>true</code>, the authentication configuration is enabled. Default value is <code>true</code>.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>If <code>true</code>, the authentication configuration is enabled. Default value is <code>true</code>.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="entityDescriptor" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">entityDescriptor</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>IdP&amp;#39;s metadata (.xml) file. Specify this value or <code>idpMetadataUrl</code>, but not both.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>IdP's metadata (.xml) file. Specify this value or <code>idpMetadataUrl</code>, but not both.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="allowEmbeddedAuthentication" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">allowEmbeddedAuthentication</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">boolean</span></div> <div><div html="<p>(Site-specific) How users authenticate to the Tableau Cloud site when accessing embedded views. If <code>false</code>, users authenticate in a separate pop-up window. If <code>true</code>, users authenticate using an inline frame (IFrame), which is less secure. Default value is <code>false</code>.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>(Site-specific) How users authenticate to the Tableau Cloud site when accessing embedded views. If <code>false</code>, users authenticate in a separate pop-up window. If <code>true</code>, users authenticate using an inline frame (IFrame), which is less secure. Default value is <code>false</code>.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="idpConfigurationName" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">idpConfigurationName</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>(Site-specific) Name of the authentication configuration.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>(Site-specific) Name of the authentication configuration.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="idpConfigurationId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">idpConfigurationId</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>(Site-specific) ID of the authentication configuration. Do not pass this attribute if you are creating a new authentication configuration.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>(Site-specific) ID of the authentication configuration. Do not pass this attribute if you are creating a new authentication configuration.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="idpMetadataUrl" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">idpMetadataUrl</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>URL endpoint of the IdP&amp;#39;s metadata. Specify this value or <code>entityDescriptor</code>, but not both.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>URL endpoint of the IdP's metadata. Specify this value or <code>entityDescriptor</code>, but not both.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="attributeMapping" class="sc-hABBmJ sc-fHejqy sc-jiaSqj cqoAxn hfWKVF gIkRoy"><span class="sc-ifyrAs hIHfpT"></span><button aria-label="expand attributeMapping"><span class="property-name">attributeMapping</span><svg class="sc-eTNRI jIsRbK" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">object</span><span class="sc-gUjWJS sc-jgraLO itHPsH iUxudT"> (<!-- -->SiteAttributeMapping<!-- -->) </span></div> <div><div html="" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"></div></div></div></td></tr></tbody></table>

### Responses

**201**

Success.

**400**

Invalid request.

**409**

SAML configuration already exists for the specified resource ID.

**500**

Internal error.

post/api/v1/resources/{resourceId}/samlconfiguration

https://cloudmanager.tableau.com/api/v1/resources/{resourceId}/samlconfiguration

### Request samples

- Payload

Content type

application/json

Copy

Expand all Collapse all

`{  - "enabled": true, - "entityDescriptor": "string", - "allowEmbeddedAuthentication": false, - "idpConfigurationName": "SAML - Contractors", - "idpConfigurationId": "b2207590-024c-4a6e-ac4a-eca6eefabb2e", - "idpMetadataUrl": "[https://myidp.okta.com/app/123456789/sso/saml/metadata](https://myidp.okta.com/app/123456789/sso/saml/metadata)", - "attributeMapping": {          - "emailMapping": "NameID",     - "firstNameMapping": "FirstName",     - "lastNameMapping": "LastName",     - "fullNameMapping": "FullName",     - "useFullName": false,     - "emailAddressMapping": "Email"          }  }`

### Response samples

- 201
- 400
- 409
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "enabled": true, - "serviceProviderEntityId": "string", - "authenticationTypeForEmbedded": "DEFAULT", - "idpCertificates": [          - "string"          ], - "certificateUrl": "string", - "testLoginUrl": "string", - "ssoServiceURL": "string", - "acsUrl": "string", - "entityDescriptorValidationResult": {          - "validationMessages": [                  - {                          - "message": "string",             - "kind": "GENERIC"                          }                  ],     - "identityProviderEntityId": "string",     - "authenticatedBy": "string"          }  }`

## [](#tag/Single-Sign-on-Methods/operation/deleteSAMLConfiguration)Delete SAML configuration

Deletes the SAML configuration for the specified resource ID.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, December 2025, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_saml_configs:delete`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

To delete a SAML configuration on a site, specify the `idpConfigurationName` or `idpConfigurationId` query parameter.

**Examples**

```
curl -X DELETE "http://mytenant.cloudmanager.tableau.com/api/v1/resources/{resourceId}/samlconfiguration?idpConfigurationName={idpConfigurationName}"
```

```
curl -X DELETE "http://mytenant.cloudmanager.tableau.com/api/v1/resources/{resourceId}/samlconfiguration?idpConfigurationId={idpConfigurationId}"
```

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="resourceId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">resourceId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">123e4567-e89b-12d3-a456-4266141740000</span></div><div><div html="<p>The ID of the tenant or site whose SAML configuration is being deleted. You can get the <code>resourceId</code> by calling the <a href=&quot;#tag/Tenant-Methods/operation/getTenant&quot;>Get Tenant</a> or <a href=&quot;#tag/Site-Methods/operation/getSites&quot;>List Tenant Sites</a> method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The ID of the tenant or site whose SAML configuration is being deleted. You can get the <code>resourceId</code> by calling the <a href="#tag/Tenant-Methods/operation/getTenant">Get Tenant</a> or <a href="#tag/Site-Methods/operation/getSites">List Tenant Sites</a> method.</p>
</div></div></div></td></tr></tbody></table>

##### query Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="idpConfigurationName" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">idpConfigurationName</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>(Site-specific) Name of the site-level authentication configuration. You can get the <code>idpConfigurationName</code> by calling the <a href=&quot;#tag/Single-Sign-on-Methods/operation/getResourceAuthConfiguration&quot;>List authentication configurations</a> method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>(Site-specific) Name of the site-level authentication configuration. You can get the <code>idpConfigurationName</code> by calling the <a href="#tag/Single-Sign-on-Methods/operation/getResourceAuthConfiguration">List authentication configurations</a> method.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="idpConfigurationId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">idpConfigurationId</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>(Site-specific) ID of the site-level authentication configuration. You can get the <code>idpConfigurationId</code> by calling the <a href=&quot;#tag/Single-Sign-on-Methods/operation/getResourceAuthConfiguration&quot;>List authentication configurations</a> method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>(Site-specific) ID of the site-level authentication configuration. You can get the <code>idpConfigurationId</code> by calling the <a href="#tag/Single-Sign-on-Methods/operation/getResourceAuthConfiguration">List authentication configurations</a> method.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**500**

Internal error.

delete/api/v1/resources/{resourceId}/samlconfiguration

https://cloudmanager.tableau.com/api/v1/resources/{resourceId}/samlconfiguration

### Response samples

- 200
- 500

Content type

application/json

Copy

`"string"`

## [](#tag/Single-Sign-on-Methods/operation/getSAMLConfiguration)Get SAML configuration

Gets the SAML configuration for the specified resource ID.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, December 2025, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_saml_configs:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

To get a specific SAML authentication configuration on a site, specify the `idpConfigurationName` or `idpConfigurationId` query parameter.

**Examples**

```
curl -X GET "http://mytenant.cloudmanager.tableau.com/api/v1/resources/{resourceId}/samlconfiguration?idpConfigurationName={idpConfigurationName}.
```

```
curl -X GET "http://mytenant.cloudmanager.tableau.com/api/v1/resources/{resourceId}/samlconfiguration?idpConfigurationId={idpConfigurationId}.
```

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="resourceId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">resourceId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">123e4567-e89b-12d3-a456-426614174000</span></div><div><div html="<p>The ID of the tenant or site whose SAML configuration is being retrieved. You can get the <code>resourceId</code> by calling the <a href=&quot;#tag/Tenant-Methods/operation/getTenant&quot;>Get Tenant</a> or <a href=&quot;#tag/Site-Methods/operation/getSites&quot;>List Tenant Sites</a> method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The ID of the tenant or site whose SAML configuration is being retrieved. You can get the <code>resourceId</code> by calling the <a href="#tag/Tenant-Methods/operation/getTenant">Get Tenant</a> or <a href="#tag/Site-Methods/operation/getSites">List Tenant Sites</a> method.</p>
</div></div></div></td></tr></tbody></table>

##### query Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="idpConfigurationName" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">idpConfigurationName</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>(Site-specific) Name of the site-level authentication configuration. You can get the <code>idpConfigurationName</code> by calling the <a href=&quot;#tag/Single-Sign-on-Methods/operation/getResourceAuthConfiguration&quot;>List authentication configurations</a> method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>(Site-specific) Name of the site-level authentication configuration. You can get the <code>idpConfigurationName</code> by calling the <a href="#tag/Single-Sign-on-Methods/operation/getResourceAuthConfiguration">List authentication configurations</a> method.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="idpConfigurationId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">idpConfigurationId</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>(Site-specific) ID of the site-level authentication configuration. You can get the <code>idpConfigurationId</code> by calling the <a href=&quot;#tag/Single-Sign-on-Methods/operation/getResourceAuthConfiguration&quot;>List authentication configurations</a> method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>(Site-specific) ID of the site-level authentication configuration. You can get the <code>idpConfigurationId</code> by calling the <a href="#tag/Single-Sign-on-Methods/operation/getResourceAuthConfiguration">List authentication configurations</a> method.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**404**

SAML configuration could not be found.

**500**

Internal error.

get/api/v1/resources/{resourceId}/samlconfiguration

https://cloudmanager.tableau.com/api/v1/resources/{resourceId}/samlconfiguration

### Response samples

- 200
- 404
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "enabled": true, - "serviceProviderEntityId": "string", - "authenticationTypeForEmbedded": "DEFAULT", - "idpCertificates": [          - "string"          ], - "certificateUrl": "string", - "testLoginUrl": "string", - "ssoServiceURL": "string", - "acsUrl": "string", - "entityDescriptorValidationResult": {          - "validationMessages": [                  - {                          - "message": "string",             - "kind": "GENERIC"                          }                  ],     - "identityProviderEntityId": "string",     - "authenticatedBy": "string"          }  }`

## [](#tag/Single-Sign-on-Methods/operation/updateSamlConfiguration)Update SAML configuration

Updates a SAML configuration for the specified resource ID.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, December 2025, and later.

> License: Tableau Cloud Manager license required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_saml_configs:update`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="resourceId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">resourceId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">123e4567-e89b-12d3-a456-426614174000</span></div><div><div html="<p>The ID of the tenant or site whose SAML configuration is being updated. You can get the <code>resourceId</code> by calling the <a href=&quot;#tag/Tenant-Methods/operation/getTenant&quot;>Get Tenant</a> or <a href=&quot;#tag/Site-Methods/operation/getSites&quot;>List Tenant Sites</a> method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The ID of the tenant or site whose SAML configuration is being updated. You can get the <code>resourceId</code> by calling the <a href="#tag/Tenant-Methods/operation/getTenant">Get Tenant</a> or <a href="#tag/Site-Methods/operation/getSites">List Tenant Sites</a> method.</p>
</div></div></div></td></tr></tbody></table>

##### Request Body schema: application/json

required

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="enabled" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">enabled</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">boolean</span></div> <div><div html="<p>If <code>true</code>, the authentication configuration is enabled. Default value is <code>true</code>.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>If <code>true</code>, the authentication configuration is enabled. Default value is <code>true</code>.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="entityDescriptor" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">entityDescriptor</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>IdP&amp;#39;s metadata (.xml) file. Specify this value or <code>idpMetadataUrl</code>, but not both.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>IdP's metadata (.xml) file. Specify this value or <code>idpMetadataUrl</code>, but not both.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="allowEmbeddedAuthentication" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">allowEmbeddedAuthentication</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">boolean</span></div> <div><div html="<p>(Site-specific) How users authenticate to the Tableau Cloud site when accessing embedded views. If <code>false</code>, users authenticate in a separate pop-up window. If <code>true</code>, users authenticate using an inline frame (IFrame), which is less secure. Default value is <code>false</code>.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>(Site-specific) How users authenticate to the Tableau Cloud site when accessing embedded views. If <code>false</code>, users authenticate in a separate pop-up window. If <code>true</code>, users authenticate using an inline frame (IFrame), which is less secure. Default value is <code>false</code>.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="idpConfigurationName" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">idpConfigurationName</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>(Site-specific) Name of the authentication configuration.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>(Site-specific) Name of the authentication configuration.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="idpConfigurationId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">idpConfigurationId</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>(Site-specific) ID of the authentication configuration. Do not pass this attribute if you are creating a new authentication configuration.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>(Site-specific) ID of the authentication configuration. Do not pass this attribute if you are creating a new authentication configuration.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="idpMetadataUrl" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">idpMetadataUrl</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>URL endpoint of the IdP&amp;#39;s metadata. Specify this value or <code>entityDescriptor</code>, but not both.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>URL endpoint of the IdP's metadata. Specify this value or <code>entityDescriptor</code>, but not both.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="attributeMapping" class="sc-hABBmJ sc-fHejqy sc-jiaSqj cqoAxn hfWKVF gIkRoy"><span class="sc-ifyrAs hIHfpT"></span><button aria-label="expand attributeMapping"><span class="property-name">attributeMapping</span><svg class="sc-eTNRI jIsRbK" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">object</span><span class="sc-gUjWJS sc-jgraLO itHPsH iUxudT"> (<!-- -->SiteAttributeMapping<!-- -->) </span></div> <div><div html="" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"></div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request.

**404**

SAML configuration could not be found.

**500**

Internal error.

put/api/v1/resources/{resourceId}/samlconfiguration

https://cloudmanager.tableau.com/api/v1/resources/{resourceId}/samlconfiguration

### Request samples

- Payload

Content type

application/json

Copy

Expand all Collapse all

`{  - "enabled": true, - "entityDescriptor": "string", - "allowEmbeddedAuthentication": false, - "idpConfigurationName": "SAML - Contractors", - "idpConfigurationId": "b2207590-024c-4a6e-ac4a-eca6eefabb2e", - "idpMetadataUrl": "[https://myidp.okta.com/app/123456789/sso/saml/metadata](https://myidp.okta.com/app/123456789/sso/saml/metadata)", - "attributeMapping": {          - "emailMapping": "NameID",     - "firstNameMapping": "FirstName",     - "lastNameMapping": "LastName",     - "fullNameMapping": "FullName",     - "useFullName": false,     - "emailAddressMapping": "Email"          }  }`

### Response samples

- 200
- 400
- 404
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "enabled": true, - "serviceProviderEntityId": "string", - "authenticationTypeForEmbedded": "DEFAULT", - "idpCertificates": [          - "string"          ], - "certificateUrl": "string", - "testLoginUrl": "string", - "ssoServiceURL": "string", - "acsUrl": "string", - "entityDescriptorValidationResult": {          - "validationMessages": [                  - {                          - "message": "string",             - "kind": "GENERIC"                          }                  ],     - "identityProviderEntityId": "string",     - "authenticatedBy": "string"          }  }`

## [](#tag/Single-Sign-on-Methods/operation/getResourceAuthConfiguration)List authentication configurations

Gets list of authentication configurations for the specified resource IDs.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_auth_configs:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### Request Body schema: application/json

required

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="resourceIds" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">resourceIds</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY">Array of </span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">strings</span></div> <div><div html="<p>A comma separated list of IDs of a single tenant, multiple site IDs within a tenant and that tenant ID, or multiple sites within the same tenant with no tenant ID. You can get a tenant ID or site ID by calling the <a href=&quot;#tag/Tenant-Methods/operation/getTenant&quot;>Get tenant</a> or <a href=&quot;#tag/Site-Methods/operation/getSites&quot;>List tenant sites</a> method.</p>
<p><strong>Important:</strong> Providing multiple tenant IDs or site IDs that belong to different tenants can produce unexpected results.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>A comma separated list of IDs of a single tenant, multiple site IDs within a tenant and that tenant ID, or multiple sites within the same tenant with no tenant ID. You can get a tenant ID or site ID by calling the <a href="#tag/Tenant-Methods/operation/getTenant">Get tenant</a> or <a href="#tag/Site-Methods/operation/getSites">List tenant sites</a> method.</p>
<p><strong>Important:</strong> Providing multiple tenant IDs or site IDs that belong to different tenants can produce unexpected results.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="requireMultipleIDPs" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">requireMultipleIDPs</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">boolean</span></div> <div><div html="<p>(Site-specific) If true, returns the authentication configurations when the capability for multiple authentication methods is enabled.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>(Site-specific) If true, returns the authentication configurations when the capability for multiple authentication methods is enabled.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request.

**404**

The specified tenant or site could not be found.

**500**

Internal error.

post/api/v1/resources/authconfiguration

https://cloudmanager.tableau.com/api/v1/resources/authconfiguration

### Request samples

- Payload

Content type

application/json

Copy

Expand all Collapse all

`{  - "resourceIds": [          - "123e4567-e89b-12d3-a456-426614174000",     - "123e4567-e89b-12d3-a456-426614174002",     - "123e4567-e89b-12d3-a456-426614174003"          ], - "requireMultipleIDPs": true  }`

### Response samples

- 200
- 400
- 404
- 500

Content type

application/json

Copy

Expand all Collapse all

`[  - {          - "resourceId": "123e4567-e89b-12d3-a456-426614174000",     - "authenticationType": "OIDC",     - "knownProviderAlias": "Salesforce",     - "idpConfigurationName": "Initial Salesforce",     - "idpConfigurationId": "TBD",     - "enabled": true          }  ]`

## [](#tag/Single-Sign-on-Methods/operation/createOrUpdateOIDCConfiguration)Create or update OIDC configuration

Creates a new Google, OpenID Connect (OIDC), or Salesforce configuration for Tableau Cloud Manager (TCM) authentication using the specified resource ID.

If a configuration already exists, this method updates the configuration for the specified resource ID.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_oidc_configs:update`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

### About configuring Google or Salesforce authentication

To configure Google authentication, make sure to include the required `enabled` and `knownProviderAlias` attributes in your request.

```
curl -X POST "http://mytenant.cloudmanager.tableau.com/api/v1/resources/{resourceId}/oidcconfiguration" -H "accept: application/json" -D '{ "enabled": true, "knownProviderAlias: "Google" }'
```

To configure Salesforce authentication, make sure to include the required `enabled` and `knownProviderAlias`, and optionally the `salesforceDomain` attributes in your request.

```
curl -X POST "http://mytenant.cloudmanager.tableau.com/api/v1/resources/{resourceId}/oidcconfiguration" -H "accept: application/json" -D '{ "enabled": true, "knownProviderAlias: "Salesforce" }'
```

### About configuring OIDC authentication

To configure OpenID Connect (OIDC) authentication, be sure to include the attributes and claims in your request to correctly map user account attributes from the IdP to TCM.

```
curl -X POST "http://mytenant.cloudmanager.tableau.com/api/v1/resources/{resourceId}/oidcconfiguration" -H "accept: application/json" -D '{ "enabled": true, "testLoginUri": "string", "clientId": "string", "clientSecret": "string", "discoveryEndpoint": "string", "authorizationEndpoint": "string", "tokenEndpoint": "string", "userinfoEndpoint": "string", "jwksUri": "string", "endSessionEndpoint": "string", "customScope": "string", "prompt": "string", "clientAuthentication": "string", "essentialAcrValues": "string", "voluntaryAcrValues": "string", "attributeMapping": { "emailMapping": "string", "firstNameMapping": "string", "lastNameMapping": "string", "fullNameMapping": "string", "useFullName": true, "emailAddressMapping": "string" }, }'
```

The following attribute and claims are required when configuring OIDC authentication:

- `enabled` is `true`
- `clientId` is the client ID from the IdP (for example, `0oa111usf1gpUkVUt0h1`)
- `clientSecret` is the client secret from the IdP
- `authorizationEndpoint` is the authorization endpoint (`authorization_endpoint`) from the IdP (for example, `https://myidp.com/oauth2/v1/authorize`)
- `tokenEndpoint` is the token endpoint (`token_endpoint`) from the IdP (for example, `https://myidp.com/oauth2/v1/token`)
- `userinfoEndpoint` is the user information endpoint (`userinfo_endpoint`) from the IdP (for example, `https://myidp.com/oauth2/v1/userinfo`)
- `jwksUri` is the JWK set URI endpoint (`jwks_uri`) from the IdP (for example, `https://myidp.com/oauth2/v1/keys`)

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="resourceId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">resourceId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">123e4567-e89b-12d3-a456-426614174000</span></div><div><div html="<p>The ID of the tenant whose configuration is being created or updated. You can get a tenant ID by calling the <a href=&quot;#tag/Tenant-Methods/operation/getTenant&quot;>Get Tenant</a> method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The ID of the tenant whose configuration is being created or updated. You can get a tenant ID by calling the <a href="#tag/Tenant-Methods/operation/getTenant">Get Tenant</a> method.</p>
</div></div></div></td></tr></tbody></table>

##### Request Body schema: application/json

required

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="enabled" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">enabled</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">boolean</span></div> <div><div html="<p>If <code>true</code>, the authentication configuration is enabled. Default is <code>true</code>.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>If <code>true</code>, the authentication configuration is enabled. Default is <code>true</code>.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="testLoginUri" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">testLoginUri</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>URL to validate the OIDC authentication configuration.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>URL to validate the OIDC authentication configuration.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="knownProviderAlias" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">knownProviderAlias</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>Authentication type. For example, <code>Google</code> or <code>Salesforce</code>. For OpenID Connect (OIDC), do not use or is <code>null</code>.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>Authentication type. For example, <code>Google</code> or <code>Salesforce</code>. For OpenID Connect (OIDC), do not use or is <code>null</code>.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="salesforceDomain" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">salesforceDomain</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>Salesforce authentication only. URL of the Salesforce domain.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>Salesforce authentication only. URL of the Salesforce domain.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="allowEmbeddedAuthentication" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">allowEmbeddedAuthentication</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">boolean</span></div> <div><div html="<p>(Site-specific) How users authenticate to the Tableau Cloud site when accessing embedded views. If <code>false</code>, users authenticate in a separate pop-up window. If <code>true</code>, users authenticate using an inline frame (IFrame), which is less secure. Default value is <code>false</code>.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>(Site-specific) How users authenticate to the Tableau Cloud site when accessing embedded views. If <code>false</code>, users authenticate in a separate pop-up window. If <code>true</code>, users authenticate using an inline frame (IFrame), which is less secure. Default value is <code>false</code>.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="clientId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">clientId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>OpenID Connect (OIDC) authentication only. Client ID from the identity provider (IdP).</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>OpenID Connect (OIDC) authentication only. Client ID from the identity provider (IdP).</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="clientSecret" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">clientSecret</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>OpenID Connect (OIDC) authentication only. Client secret from the identity provider (IdP).</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>OpenID Connect (OIDC) authentication only. Client secret from the identity provider (IdP).</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="discoveryEndpoint" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">discoveryEndpoint</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>OpenID Connect (OIDC) authentication only. Location of the configuration discovery document for the identity provider (IdP) metadata.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>OpenID Connect (OIDC) authentication only. Location of the configuration discovery document for the identity provider (IdP) metadata.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="authorizationEndpoint" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">authorizationEndpoint</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>OpenID Connect (OIDC) authentication only. Authorization endpoint from the identity provider (IdP).</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>OpenID Connect (OIDC) authentication only. Authorization endpoint from the identity provider (IdP).</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="tokenEndpoint" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tokenEndpoint</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>OpenID Connect (OIDC) authentication only. Token endpoint from the identity provider (IdP).</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>OpenID Connect (OIDC) authentication only. Token endpoint from the identity provider (IdP).</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="userinfoEndpoint" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">userinfoEndpoint</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>OpenID Connect (OIDC) authentication only. User information endpoint from the identity provider (IdP).</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>OpenID Connect (OIDC) authentication only. User information endpoint from the identity provider (IdP).</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="jwksUri" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">jwksUri</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>OpenID Connect (OIDC) authentication only. JWK set URI from the identity provider (IdP).</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>OpenID Connect (OIDC) authentication only. JWK set URI from the identity provider (IdP).</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="endSessionEndpoint" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">endSessionEndpoint</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>(Site-specific) OpenID Connect (OIDC) authentication only. If single logout (SLO) is enabled for the site, which is done through Tableau Cloud site UI, the configuration URL or the end session endpoint from the identity provider (IdP).</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>(Site-specific) OpenID Connect (OIDC) authentication only. If single logout (SLO) is enabled for the site, which is done through Tableau Cloud site UI, the configuration URL or the end session endpoint from the identity provider (IdP).</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="customScope" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">customScope</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>OpenID Connect (OIDC) authentication only. Specifies a custom scope user-related value to query the identity provider (IdP).</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>OpenID Connect (OIDC) authentication only. Specifies a custom scope user-related value to query the identity provider (IdP).</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="prompt" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">prompt</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>OpenID Connect (OIDC) authentication only. If users are prompted for re-authentication and consent.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>OpenID Connect (OIDC) authentication only. If users are prompted for re-authentication and consent.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="clientAuthentication" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">clientAuthentication</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>OpenID Connect (OIDC) authentication only. Token endpoint authentication method. Default value is <code>client_secret_basic</code>.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>OpenID Connect (OIDC) authentication only. Token endpoint authentication method. Default value is <code>client_secret_basic</code>.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="essentialAcrValues" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">essentialAcrValues</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>OpenID Connect (OIDC) authentication only. List of essential Authentication Context Reference Class values used for authentication.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>OpenID Connect (OIDC) authentication only. List of essential Authentication Context Reference Class values used for authentication.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="voluntaryAcrValues" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">voluntaryAcrValues</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>OpenID Connect (OIDC) authentication only. List of voluntary Authentication Context Reference Class values used for authentication.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>OpenID Connect (OIDC) authentication only. List of voluntary Authentication Context Reference Class values used for authentication.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="attributeMapping" class="sc-hABBmJ sc-fHejqy sc-jiaSqj cqoAxn hfWKVF gIkRoy"><span class="sc-ifyrAs hIHfpT"></span><button aria-label="expand attributeMapping"><span class="property-name">attributeMapping</span><svg class="sc-eTNRI jIsRbK" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">object</span><span class="sc-gUjWJS sc-jgraLO itHPsH iUxudT"> (<!-- -->SiteAttributeMapping<!-- -->) </span></div> <div><div html="" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"></div></div></div></td></tr><tr class=""><td kind="field" title="idpConfigurationName" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">idpConfigurationName</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>(Site-specific) Name of the authentication configuration.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>(Site-specific) Name of the authentication configuration.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="idpConfigurationId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">idpConfigurationId</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>(Site-specific) ID of the authentication configuration.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>(Site-specific) ID of the authentication configuration.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**201**

Success.

**500**

Internal error.

put/api/v1/resources/{resourceId}/oidcconfiguration

https://cloudmanager.tableau.com/api/v1/resources/{resourceId}/oidcconfiguration

### Request samples

- Payload

Content type

application/json

Copy

Expand all Collapse all

`{  - "enabled": true, - "testLoginUri": "[https://sso.online.tableau.com/public/testLogin?alias=080bca2d-578b-49cc-b40d-3781b36b30ee&authSetting=OIDC](https://sso.online.tableau.com/public/testLogin?alias=080bca2d-578b-49cc-b40d-3781b36b30ee&authSetting=OIDC)", - "knownProviderAlias": "Salesforce", - "salesforceDomain": "login.salesforce.com", - "allowEmbeddedAuthentication": true, - "clientId": "0oa111usf1gpUkVUt0h1", - "clientSecret": "string", - "discoveryEndpoint": "string", - "authorizationEndpoint": "[https://myidp.com/oauth2/v1/authorize](https://myidp.com/oauth2/v1/authorize)", - "tokenEndpoint": "[https://myidp.com/oauth2/v1/token](https://myidp.com/oauth2/v1/token)", - "userinfoEndpoint": "[https://myidp.com/oauth2/v1/userinfo](https://myidp.com/oauth2/v1/userinfo)", - "jwksUri": "[https://myidp.com/oauth2/v1/keys](https://myidp.com/oauth2/v1/keys)", - "endSessionEndpoint": "[https://myidp.com/oauth2/v1/logout](https://myidp.com/oauth2/v1/logout)", - "customScope": "openid, email, profile", - "prompt": "login, consent", - "clientAuthentication": "client_secret_basic, client_secret_post", - "essentialAcrValues": "phr", - "voluntaryAcrValues": "string", - "attributeMapping": {          - "emailMapping": "NameID",     - "firstNameMapping": "FirstName",     - "lastNameMapping": "LastName",     - "fullNameMapping": "FullName",     - "useFullName": false,     - "emailAddressMapping": "Email"          }, - "idpConfigurationName": "Initial SAML", - "idpConfigurationId": "b2207590-024c-4a6e-ac4a-eca6eefabb2e"  }`

### Response samples

- 201
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "enabled": true, - "testLoginUri": "[https://sso.online.tableau.com/public/testLogin?alias=080bca2d-578b-49cc-b40d-3781b36b30ee&authSetting=OIDC](https://sso.online.tableau.com/public/testLogin?alias=080bca2d-578b-49cc-b40d-3781b36b30ee&authSetting=OIDC)", - "knownProviderAlias": "Salesforce", - "salesforceDomain": "login.salesforce.com", - "allowEmbeddedAuthentication": true, - "clientId": "0oa111usf1gpUkVUt0h1", - "clientSecret": "string", - "discoveryEndpoint": "string", - "authorizationEndpoint": "[https://myidp.com/oauth2/v1/authorize](https://myidp.com/oauth2/v1/authorize)", - "tokenEndpoint": "[https://myidp.com/oauth2/v1/token](https://myidp.com/oauth2/v1/token)", - "userinfoEndpoint": "[https://myidp.com/oauth2/v1/userinfo](https://myidp.com/oauth2/v1/userinfo)", - "jwksUri": "[https://myidp.com/oauth2/v1/keys](https://myidp.com/oauth2/v1/keys)", - "endSessionEndpoint": "[https://myidp.com/oauth2/v1/logout](https://myidp.com/oauth2/v1/logout)", - "customScope": "openid, email, profile", - "prompt": "login, consent", - "clientAuthentication": "client_secret_basic, client_secret_post", - "essentialAcrValues": "phr", - "voluntaryAcrValues": "string", - "attributeMapping": {          - "emailMapping": "NameID",     - "firstNameMapping": "FirstName",     - "lastNameMapping": "LastName",     - "fullNameMapping": "FullName",     - "useFullName": false,     - "emailAddressMapping": "Email"          }, - "idpConfigurationName": "Initial SAML", - "idpConfigurationId": "b2207590-024c-4a6e-ac4a-eca6eefabb2e"  }`

## [](#tag/Single-Sign-on-Methods/operation/deleteOIDCConfiguration)Delete OIDC configuration

Deletes the Google, OpenID Connect (OIDC), or Salesforce configuration for the provided resource ID. If the configuration doesn't exist, it fails silently.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_oidc_configs:delete`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="resourceId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">resourceId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">123e4567-e89b-12d3-a456-426614174000</span></div><div><div html="<p>The ID of the tenant whose configuration is being deleted. You can get a tenant ID by calling the <a href=&quot;#tag/Tenant-Methods/operation/getTenant&quot;>Get Tenant</a> method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The ID of the tenant whose configuration is being deleted. You can get a tenant ID by calling the <a href="#tag/Tenant-Methods/operation/getTenant">Get Tenant</a> method.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**500**

Internal error.

delete/api/v1/resources/{resourceId}/oidcconfiguration

https://cloudmanager.tableau.com/api/v1/resources/{resourceId}/oidcconfiguration

### Response samples

- 200
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "enabled": true, - "testLoginUri": "[https://sso.online.tableau.com/public/testLogin?alias=080bca2d-578b-49cc-b40d-3781b36b30ee&authSetting=OIDC](https://sso.online.tableau.com/public/testLogin?alias=080bca2d-578b-49cc-b40d-3781b36b30ee&authSetting=OIDC)", - "knownProviderAlias": "Salesforce", - "salesforceDomain": "login.salesforce.com", - "allowEmbeddedAuthentication": true, - "clientId": "0oa111usf1gpUkVUt0h1", - "clientSecret": "string", - "discoveryEndpoint": "string", - "authorizationEndpoint": "[https://myidp.com/oauth2/v1/authorize](https://myidp.com/oauth2/v1/authorize)", - "tokenEndpoint": "[https://myidp.com/oauth2/v1/token](https://myidp.com/oauth2/v1/token)", - "userinfoEndpoint": "[https://myidp.com/oauth2/v1/userinfo](https://myidp.com/oauth2/v1/userinfo)", - "jwksUri": "[https://myidp.com/oauth2/v1/keys](https://myidp.com/oauth2/v1/keys)", - "endSessionEndpoint": "[https://myidp.com/oauth2/v1/logout](https://myidp.com/oauth2/v1/logout)", - "customScope": "openid, email, profile", - "prompt": "login, consent", - "clientAuthentication": "client_secret_basic, client_secret_post", - "essentialAcrValues": "phr", - "voluntaryAcrValues": "string", - "attributeMapping": {          - "emailMapping": "NameID",     - "firstNameMapping": "FirstName",     - "lastNameMapping": "LastName",     - "fullNameMapping": "FullName",     - "useFullName": false,     - "emailAddressMapping": "Email"          }, - "idpConfigurationName": "Initial SAML", - "idpConfigurationId": "b2207590-024c-4a6e-ac4a-eca6eefabb2e"  }`

## [](#tag/Single-Sign-on-Methods/operation/getOIDCConfiguration)Get OIDC configuration

Gets the Google, OpenID Connect (OIDC), or Salesforce configuration for the specified resource ID.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_oidc_configs:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="resourceId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">resourceId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">123e4567-e89b-12d3-a456-426614174000</span></div><div><div html="<p>The ID of the tenant whose configuration is being retrieved. You can get a tenant ID by calling the <a href=&quot;#tag/Tenant-Methods/operation/getTenant&quot;>Get Tenant</a> method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The ID of the tenant whose configuration is being retrieved. You can get a tenant ID by calling the <a href="#tag/Tenant-Methods/operation/getTenant">Get Tenant</a> method.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**404**

A configuration for the provided tenant or site could not be found.

**500**

Internal error.

get/api/v1/resources/{resourceId}/oidcconfiguration

https://cloudmanager.tableau.com/api/v1/resources/{resourceId}/oidcconfiguration

### Response samples

- 200
- 404
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "enabled": true, - "testLoginUri": "[https://sso.online.tableau.com/public/testLogin?alias=080bca2d-578b-49cc-b40d-3781b36b30ee&authSetting=OIDC](https://sso.online.tableau.com/public/testLogin?alias=080bca2d-578b-49cc-b40d-3781b36b30ee&authSetting=OIDC)", - "knownProviderAlias": "Salesforce", - "salesforceDomain": "login.salesforce.com", - "allowEmbeddedAuthentication": true, - "clientId": "0oa111usf1gpUkVUt0h1", - "clientSecret": "string", - "discoveryEndpoint": "string", - "authorizationEndpoint": "[https://myidp.com/oauth2/v1/authorize](https://myidp.com/oauth2/v1/authorize)", - "tokenEndpoint": "[https://myidp.com/oauth2/v1/token](https://myidp.com/oauth2/v1/token)", - "userinfoEndpoint": "[https://myidp.com/oauth2/v1/userinfo](https://myidp.com/oauth2/v1/userinfo)", - "jwksUri": "[https://myidp.com/oauth2/v1/keys](https://myidp.com/oauth2/v1/keys)", - "endSessionEndpoint": "[https://myidp.com/oauth2/v1/logout](https://myidp.com/oauth2/v1/logout)", - "customScope": "openid, email, profile", - "prompt": "login, consent", - "clientAuthentication": "client_secret_basic, client_secret_post", - "essentialAcrValues": "phr", - "voluntaryAcrValues": "string", - "attributeMapping": {          - "emailMapping": "NameID",     - "firstNameMapping": "FirstName",     - "lastNameMapping": "LastName",     - "fullNameMapping": "FullName",     - "useFullName": false,     - "emailAddressMapping": "Email"          }, - "idpConfigurationName": "Initial SAML", - "idpConfigurationId": "b2207590-024c-4a6e-ac4a-eca6eefabb2e"  }`

## [](#tag/Single-Sign-on-Methods/operation/getAdminLogs)List SAML logs

Gets a list of SAML log entries for the specified resource ID.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, December 2025, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_saml_configs:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="resourceId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">resourceId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>The ID of the tenant or site whose SAML logs are being retrieved. You can get the <code>resourceId</code> by calling the <a href=&quot;#tag/Tenant-Methods/operation/getTenant&quot;>Get Tenant</a> or <a href=&quot;#tag/Site-Methods/operation/getSites&quot;>List Tenant Sites</a> method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The ID of the tenant or site whose SAML logs are being retrieved. You can get the <code>resourceId</code> by calling the <a href="#tag/Tenant-Methods/operation/getTenant">Get Tenant</a> or <a href="#tag/Site-Methods/operation/getSites">List Tenant Sites</a> method.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**500**

Internal error.

get/api/v1/resources/{resourceId}/samlconfiguration/adminlogs

https://cloudmanager.tableau.com/api/v1/resources/{resourceId}/samlconfiguration/adminlogs

### Response samples

- 200
- 500

Content type

application/json

Copy

Expand all Collapse all

`[  - {          - "message": "string",     - "timestamp": 0,     - "logLevel": "string",     - "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1"          }  ]`

# [](#tag/Site-Methods)Site Methods

Tableau Cloud Manager REST API Site methods allow cloud administrators to manage sites in the following ways:

- Create a site in a tenant.
- List sites in a tenant.
- Get site details.
- Suspend a site in a tenant.
- Update license limit for a site in a tenant.
- Create a project in a tenant.
- Reactivate a suspended site in a tenant.

**Postman:** [Site Methods](https://www.postman.com/salesforce-developers/salesforce-developers/folder/ujql7pj/site-methods)

## [](#tag/Site-Methods/operation/createSite)Create site

Creates a new site under the given tenant. The site name must be unique within the tenant.

Note: To describe the site location, specify one of either a `regionUUID` or a `podUUID`.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_sites:create`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The unique identifier of the tenant where the site is created.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the tenant where the site is created.</p>
</div></div></div></td></tr></tbody></table>

##### Request Body schema: application/json

required

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="name" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">name</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The name of the site.</p>
<p> The site name must be between 1 and 80 characters long. The site name only contain Unicode letters and numbers, white spaces, and the characters <code>!</code>, <code>@</code>, <code>$</code>, <code>%</code>, <code>*</code>, <code>.</code>, <code>?</code>, <code>-</code>, <code>_</code>, <code>,</code>, <code>’</code>, <code>(</code>, <code>)</code>, <code>&amp;amp;</code>, <code>/</code>, <code>:</code>, <code>#</code>. The site  name must not start or end with a space. The site name must not contain the following reserved  words: &amp;#39;default&amp;#39;, &amp;#39;system&amp;#39;, &amp;#39;admin&amp;#39;, &amp;#39;administrator&amp;#39;, &amp;#39;all&amp;#39;, &amp;#39;guest&amp;#39;, &amp;#39;public&amp;#39;, &amp;#39;internal&amp;#39;,  private&amp;#39;, &amp;#39;protected&amp;#39;, &amp;#39;root&amp;#39;, &amp;#39;service&amp;#39;, &amp;#39;services&amp;#39;, &amp;#39;tableau&amp;#39;, &amp;#39;user&amp;#39;, &amp;#39;users&amp;#39;, &amp;#39;web&amp;#39;, &amp;#39;www&amp;#39;.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The name of the site.</p>
<p> The site name must be between 1 and 80 characters long. The site name only contain Unicode letters and numbers, white spaces, and the characters <code>!</code>, <code>@</code>, <code>$</code>, <code>%</code>, <code>*</code>, <code>.</code>, <code>?</code>, <code>-</code>, <code>_</code>, <code>,</code>, <code>’</code>, <code>(</code>, <code>)</code>, <code>&amp;</code>, <code>/</code>, <code>:</code>, <code>#</code>. The site  name must not start or end with a space. The site name must not contain the following reserved  words: 'default', 'system', 'admin', 'administrator', 'all', 'guest', 'public', 'internal',  private', 'protected', 'root', 'service', 'services', 'tableau', 'user', 'users', 'web', 'www'.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="contentUrl" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">contentUrl</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The subdomain name of the site&amp;#39;s URL.</p>
<p>This value is globally unique and can contain only characters that are upper or lower case alphabetic characters, numbers, hyphens (-), or underscores (_). If you provide unsupported special characters, Tableau creates the site content URL by omitting those characters from the string. For example, if you provide the site URL as &amp;quot;test.site&amp;quot;, Tableau converts it to &amp;quot;testsite&amp;quot; and returns this new URL in the response.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The subdomain name of the site's URL.</p>
<p>This value is globally unique and can contain only characters that are upper or lower case alphabetic characters, numbers, hyphens (-), or underscores (_). If you provide unsupported special characters, Tableau creates the site content URL by omitting those characters from the string. For example, if you provide the site URL as "test.site", Tableau converts it to "testsite" and returns this new URL in the response.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="regionUUID" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">regionUUID</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><div html="<p><em>(Required if no <code>podUUID</code> is specified.)</em></p>
<p>The Unique ID of Tableau region where the site should be created.</p>
<p>Provide this or the podUUID. Use the <a href=&quot;#tag/Administrative-Methods/operation/getLocations&quot;>List Locations</a> or <a href=&quot;#tag/Administrative-Methods/operation/getRegions&quot;>List regions</a> method to get the region IDs.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p><em>(Required if no <code>podUUID</code> is specified.)</em></p>
<p>The Unique ID of Tableau region where the site should be created.</p>
<p>Provide this or the podUUID. Use the <a href="#tag/Administrative-Methods/operation/getLocations">List Locations</a> or <a href="#tag/Administrative-Methods/operation/getRegions">List regions</a> method to get the region IDs.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="podUUID" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">podUUID</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><div html="<p><em>(Required if no <code>regionUUID</code> is specified.)</em></p>
<p>The Unique ID of Tableau pod where the site should be created.</p>
<p> Provide this or the regionUUID. Use the <a href=&quot;#tag/Administrative-Methods/operation/getLocations&quot;>List Locations</a> method to get the pod IDs.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p><em>(Required if no <code>regionUUID</code> is specified.)</em></p>
<p>The Unique ID of Tableau pod where the site should be created.</p>
<p> Provide this or the regionUUID. Use the <a href="#tag/Administrative-Methods/operation/getLocations">List Locations</a> method to get the pod IDs.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**201**

Success.

**400**

Invalid request.

**409**

The specified site already exists.

**500**

Internal error.

post/api/v1/tenants/{tenantId}/sites

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/sites

### Request samples

- Payload

Content type

application/json

Copy

`{  - "name": "string", - "contentUrl": "string", - "regionUUID": "8cc23c52-0d6e-468d-9156-952d9b566d86", - "podUUID": "e2e568b4-35a7-4aa5-8686-107bbf9f050c"  }`

### Response samples

- 201
- 400
- 409
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0", - "siteUUID": "c9e56a0f-ad64-4cef-a0e8-cd7f1d44ab67", - "name": "string", - "contentUrl": "string", - "instance": {          - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",     - "baseUrl": "string",     - "serverInstanceId": "string",     - "regionUUID": "8cc23c52-0d6e-468d-9156-952d9b566d86",     - "cloudProvider": {                  - "name": "string",         - "region": "string"                  }          }, - "creatorCapacity": 0, - "explorerCapacity": 0, - "viewerCapacity": 0, - "creatorCapacityIsDefaultCloudLimit": true, - "explorerCapacityIsDefaultCloudLimit": true, - "viewerCapacityIsDefaultCloudLimit": true, - "location": "string", - "migrationStatus": "NotStarted", - "storageQuota": 100000000, - "storageUsed": 100000000, - "status": "Unknown", - "createDateTime": "2019-08-24T14:15:22Z", - "lastUpdateDateTime": "2019-08-24T14:15:22Z", - "suspendedDateTime": "2019-08-24T14:15:22Z", - "fromPodSiteAttributes": {          - "userQuotaPolicy": {                  - "creatorCapacity": 0,         - "explorerCapacity": 0,         - "viewerCapacity": 0                  }          }  }`

## [](#tag/Site-Methods/operation/getSites)List tenant sites

Gets details for all sites under a tenant.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_sites:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The unique identifier for the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier for the tenant.</p>
</div></div></div></td></tr></tbody></table>

##### query Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="location" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">location</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The unique identifier for the Tableau region of the site.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier for the Tableau region of the site.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="maxResults" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">maxResults</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">integer</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->int32<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>The maximum number of sites to include in the response. Default is no maximum.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The maximum number of sites to include in the response. Default is no maximum.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="pageToken" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">pageToken</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The next page of results to return, typically the <code>pageToken</code> field of the response body from your previous call to the List sites method.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The next page of results to return, typically the <code>pageToken</code> field of the response body from your previous call to the List sites method.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request.

**500**

Internal error.

get/api/v1/tenants/{tenantId}/sites

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/sites

### Response samples

- 200
- 400

Content type

application/json

Copy

Expand all Collapse all

`{  - "sites": [          - {                  - "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",         - "siteUUID": "c9e56a0f-ad64-4cef-a0e8-cd7f1d44ab67",         - "name": "string",         - "contentUrl": "string",         - "instance": {                          - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",             - "baseUrl": "string",             - "serverInstanceId": "string",             - "regionUUID": "8cc23c52-0d6e-468d-9156-952d9b566d86",             - "cloudProvider": {                                  - "name": "string",                 - "region": "string"                                  }                          },         - "creatorCapacity": 0,         - "explorerCapacity": 0,         - "viewerCapacity": 0,         - "creatorCapacityIsDefaultCloudLimit": true,         - "explorerCapacityIsDefaultCloudLimit": true,         - "viewerCapacityIsDefaultCloudLimit": true,         - "location": "string",         - "migrationStatus": "NotStarted",         - "storageQuota": 100000000,         - "storageUsed": 100000000,         - "status": "Unknown",         - "createDateTime": "2019-08-24T14:15:22Z",         - "lastUpdateDateTime": "2019-08-24T14:15:22Z",         - "suspendedDateTime": "2019-08-24T14:15:22Z",         - "disasterRecoveryStatus": "Enabled"                  }          ], - "pageToken": "string"  }`

## [](#tag/Site-Methods/operation/getSite)Get site

Returns site details for the specified site.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_sites:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The unique identifier for the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier for the tenant.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="siteId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">siteId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The LUID for the site.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The LUID for the site.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request.

**404**

The specified site could not be found.

**500**

Internal error.

get/api/v1/tenants/{tenantId}/sites/{siteId}

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/sites/{siteId}

### Response samples

- 200
- 400
- 404

Content type

application/json

Copy

Expand all Collapse all

`{  - "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0", - "siteUUID": "c9e56a0f-ad64-4cef-a0e8-cd7f1d44ab67", - "name": "string", - "contentUrl": "string", - "instance": {          - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",     - "baseUrl": "string",     - "serverInstanceId": "string",     - "regionUUID": "8cc23c52-0d6e-468d-9156-952d9b566d86",     - "cloudProvider": {                  - "name": "string",         - "region": "string"                  }          }, - "creatorCapacity": 0, - "explorerCapacity": 0, - "viewerCapacity": 0, - "creatorCapacityIsDefaultCloudLimit": true, - "explorerCapacityIsDefaultCloudLimit": true, - "viewerCapacityIsDefaultCloudLimit": true, - "location": "string", - "migrationStatus": "NotStarted", - "storageQuota": 100000000, - "storageUsed": 100000000, - "status": "Unknown", - "createDateTime": "2019-08-24T14:15:22Z", - "lastUpdateDateTime": "2019-08-24T14:15:22Z", - "suspendedDateTime": "2019-08-24T14:15:22Z", - "disasterRecoveryStatus": "Enabled"  }`

## [](#tag/Site-Methods/operation/deleteOrSuspendSite)Suspend site

Suspends a site. Suspended sites are not accessible to users. Suspended sites can be reactivated.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_sites:delete`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The unique identifier for the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier for the tenant.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="siteId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">siteId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The LUID for the site.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The LUID for the site.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**204**

Success.

**400**

Invalid request.

**404**

The specified site could not be found.

**500**

Internal error.

delete/api/v1/tenants/{tenantId}/sites/{siteId}

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/sites/{siteId}

### Response samples

- 204
- 400
- 404

Content type

application/json

Copy

`"string"`

## [](#tag/Site-Methods/operation/updateLicenseQuotaForSite)Update license limit for site

Updates license/role limit for a site.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_sites:update`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The unique identifier for the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier for the tenant.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="siteId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">siteId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The LUID for the site.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The LUID for the site.</p>
</div></div></div></td></tr></tbody></table>

##### Request Body schema: application/json

required

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="creatorCapacity" class="sc-hABBmJ sc-fHejqy sc-jiaSqj cqoAxn hfWKVF gIkRoy"><span class="sc-ifyrAs hIHfpT"></span><button aria-label="expand creatorCapacity"><span class="property-name">creatorCapacity</span><svg class="sc-eTNRI jIsRbK" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">object</span><span class="sc-gUjWJS sc-jgraLO itHPsH iUxudT"> (<!-- -->UserQuota<!-- -->) </span></div> <div><div html="<p>The limit of number of users with licenses for the viewer role for the site.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The limit of number of users with licenses for the viewer role for the site.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="explorerCapacity" class="sc-hABBmJ sc-fHejqy sc-jiaSqj cqoAxn hfWKVF gIkRoy"><span class="sc-ifyrAs hIHfpT"></span><button aria-label="expand explorerCapacity"><span class="property-name">explorerCapacity</span><svg class="sc-eTNRI jIsRbK" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">object</span><span class="sc-gUjWJS sc-jgraLO itHPsH iUxudT"> (<!-- -->UserQuota<!-- -->) </span></div> <div><div html="<p>The limit of number of users with licenses for the viewer role for the site.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The limit of number of users with licenses for the viewer role for the site.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="viewerCapacity" class="sc-hABBmJ sc-fHejqy sc-jiaSqj cqoAxn hfWKVF gIkRoy"><span class="sc-ifyrAs hIHfpT"></span><button aria-label="expand viewerCapacity"><span class="property-name">viewerCapacity</span><svg class="sc-eTNRI jIsRbK" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">object</span><span class="sc-gUjWJS sc-jgraLO itHPsH iUxudT"> (<!-- -->UserQuota<!-- -->) </span></div> <div><div html="<p>The limit of number of users with licenses for the viewer role for the site.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The limit of number of users with licenses for the viewer role for the site.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request.

**404**

The specified site could not be found.

**500**

Internal error.

patch/api/v1/tenants/{tenantId}/sites/{siteId}

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/sites/{siteId}

### Request samples

- Payload

Content type

application/json

Copy

Expand all Collapse all

`{  - "creatorCapacity": {          - "isDefaultCloudLimit": true,     - "capacity": 0          }, - "explorerCapacity": {          - "isDefaultCloudLimit": true,     - "capacity": 0          }, - "viewerCapacity": {          - "isDefaultCloudLimit": true,     - "capacity": 0          }  }`

### Response samples

- 200
- 400
- 404

Content type

application/json

Copy

Expand all Collapse all

`{  - "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0", - "siteUUID": "c9e56a0f-ad64-4cef-a0e8-cd7f1d44ab67", - "name": "string", - "contentUrl": "string", - "instance": {          - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",     - "baseUrl": "string",     - "serverInstanceId": "string",     - "regionUUID": "8cc23c52-0d6e-468d-9156-952d9b566d86",     - "cloudProvider": {                  - "name": "string",         - "region": "string"                  }          }, - "creatorCapacity": 0, - "explorerCapacity": 0, - "viewerCapacity": 0, - "creatorCapacityIsDefaultCloudLimit": true, - "explorerCapacityIsDefaultCloudLimit": true, - "viewerCapacityIsDefaultCloudLimit": true, - "location": "string", - "migrationStatus": "NotStarted", - "storageQuota": 100000000, - "storageUsed": 100000000, - "status": "Unknown", - "createDateTime": "2019-08-24T14:15:22Z", - "lastUpdateDateTime": "2019-08-24T14:15:22Z", - "suspendedDateTime": "2019-08-24T14:15:22Z"  }`

## [](#tag/Site-Methods/operation/createProjectOnSite)Create project

Creates a new project on a site in a tenant. A project is a container for workbooks, data sources, and other Tableau content that all inherit the permissions set for the Project.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_sites:create`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The unique identifier for the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier for the tenant.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="siteId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">siteId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The LUID for the site.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The LUID for the site.</p>
</div></div></div></td></tr></tbody></table>

##### Request Body schema: application/json

required

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="ownerId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">ownerId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The LUID of the user that owns the project.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The LUID of the user that owns the project.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**201**

Success.

**400**

Invalid request.

**404**

The owner of the tenant or site was not found.

**409**

The specified project already exists.

**500**

Internal error.

post/api/v1/tenants/{tenantId}/sites/{siteId}/project

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/sites/{siteId}/project

### Request samples

- Payload

Content type

application/json

Copy

`{  - "ownerId": "string"  }`

### Response samples

- 201
- 400
- 404
- 409
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "project": {          - "name": "string",     - "id": "string",     - "description": "string",     - "parentProjectId": "string",     - "contentPermissions": "string",     - "owner": {                  - "id": "string"                  }          }  }`

## [](#tag/Site-Methods/operation/reactivateSuspendedSite)Reactivate suspended site

Reactivates a suspended site. Reactivated sites are accessible to users

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_sites:update`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The unique identifier for the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier for the tenant.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="siteId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">siteId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The LUID for the site.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The LUID for the site.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request.

**404**

The specified site could not be found.

**409**

Conflicts with the site state

**500**

Internal error.

patch/api/v1/tenants/{tenantId}/sites/{siteId}/reactivate

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/sites/{siteId}/reactivate

### Response samples

- 200
- 400
- 404
- 409

Content type

application/json

Copy

Expand all Collapse all

`{  - "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0", - "siteUUID": "c9e56a0f-ad64-4cef-a0e8-cd7f1d44ab67", - "name": "string", - "contentUrl": "string", - "instance": {          - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",     - "baseUrl": "string",     - "serverInstanceId": "string",     - "regionUUID": "8cc23c52-0d6e-468d-9156-952d9b566d86",     - "cloudProvider": {                  - "name": "string",         - "region": "string"                  }          }, - "creatorCapacity": 0, - "explorerCapacity": 0, - "viewerCapacity": 0, - "creatorCapacityIsDefaultCloudLimit": true, - "explorerCapacityIsDefaultCloudLimit": true, - "viewerCapacityIsDefaultCloudLimit": true, - "location": "string", - "migrationStatus": "NotStarted", - "storageQuota": 100000000, - "storageUsed": 100000000, - "status": "Unknown", - "createDateTime": "2019-08-24T14:15:22Z", - "lastUpdateDateTime": "2019-08-24T14:15:22Z", - "suspendedDateTime": "2019-08-24T14:15:22Z"  }`

## [](#tag/Site-Methods/operation/renameSite)Update site name and content url

Updates site name and/or content url for a given site in a tenant.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_sites:update`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>The unique identifier for the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier for the tenant.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="siteId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">siteId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>The LUID for the site.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The LUID for the site.</p>
</div></div></div></td></tr></tbody></table>

##### Request Body schema: application/json

required

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="name" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">name</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The name of the site.</p>
<p> The site name must be between 1 and 80 characters long. The site name only contain Unicode letters and numbers, white spaces, and the characters <code>!</code>, <code>@</code>, <code>$</code>, <code>%</code>, <code>*</code>, <code>.</code>, <code>?</code>, <code>-</code>, <code>_</code>, <code>,</code>, <code>’</code>, <code>(</code>, <code>)</code>, <code>&amp;amp;</code>, <code>/</code>, <code>:</code>, <code>#</code>. The site  name must not start or end with a space. The site name must not contain the following reserved  words: &amp;#39;default&amp;#39;, &amp;#39;system&amp;#39;, &amp;#39;admin&amp;#39;, &amp;#39;administrator&amp;#39;, &amp;#39;all&amp;#39;, &amp;#39;guest&amp;#39;, &amp;#39;public&amp;#39;, &amp;#39;internal&amp;#39;,  private&amp;#39;, &amp;#39;protected&amp;#39;, &amp;#39;root&amp;#39;, &amp;#39;service&amp;#39;, &amp;#39;services&amp;#39;, &amp;#39;tableau&amp;#39;, &amp;#39;user&amp;#39;, &amp;#39;users&amp;#39;, &amp;#39;web&amp;#39;, &amp;#39;www&amp;#39;.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The name of the site.</p>
<p> The site name must be between 1 and 80 characters long. The site name only contain Unicode letters and numbers, white spaces, and the characters <code>!</code>, <code>@</code>, <code>$</code>, <code>%</code>, <code>*</code>, <code>.</code>, <code>?</code>, <code>-</code>, <code>_</code>, <code>,</code>, <code>’</code>, <code>(</code>, <code>)</code>, <code>&amp;</code>, <code>/</code>, <code>:</code>, <code>#</code>. The site  name must not start or end with a space. The site name must not contain the following reserved  words: 'default', 'system', 'admin', 'administrator', 'all', 'guest', 'public', 'internal',  private', 'protected', 'root', 'service', 'services', 'tableau', 'user', 'users', 'web', 'www'.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="contentUrl" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">contentUrl</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The subdomain name of the site&amp;#39;s URL. This value can contain only characters that are upper or lower case alphabetic characters, numbers, hyphens (-), or underscores (_).</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The subdomain name of the site's URL. This value can contain only characters that are upper or lower case alphabetic characters, numbers, hyphens (-), or underscores (_).</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request.

**404**

Tenant or site not found.

**500**

Internal error.

patch/api/v1/tenants/{tenantId}/sites/{siteId}/rename

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/sites/{siteId}/rename

### Request samples

- Payload

Content type

application/json

Copy

`{  - "name": "string", - "contentUrl": "string"  }`

### Response samples

- 200
- 400
- 404
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0", - "siteUUID": "c9e56a0f-ad64-4cef-a0e8-cd7f1d44ab67", - "name": "string", - "contentUrl": "string", - "instance": {          - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",     - "baseUrl": "string",     - "serverInstanceId": "string",     - "regionUUID": "8cc23c52-0d6e-468d-9156-952d9b566d86",     - "cloudProvider": {                  - "name": "string",         - "region": "string"                  }          }, - "creatorCapacity": 0, - "explorerCapacity": 0, - "viewerCapacity": 0, - "creatorCapacityIsDefaultCloudLimit": true, - "explorerCapacityIsDefaultCloudLimit": true, - "viewerCapacityIsDefaultCloudLimit": true, - "location": "string", - "migrationStatus": "NotStarted", - "storageQuota": 100000000, - "storageUsed": 100000000, - "status": "Unknown", - "createDateTime": "2019-08-24T14:15:22Z", - "lastUpdateDateTime": "2019-08-24T14:15:22Z", - "suspendedDateTime": "2019-08-24T14:15:22Z"  }`

# [](#tag/Tenant-Methods)Tenant Methods

Tableau Cloud Manager REST API Tenant methods allow cloud administrators to manage tenants in the following ways:

- Get the details of a specified tenant.

**Postman:** [Tenant Methods](https://www.postman.com/salesforce-developers/salesforce-developers/folder/jfea4oj/tenant-methods)

## [](#tag/Tenant-Methods/operation/getTenant)Get tenant

Returns the tenant record for the specified tenant ID.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_tenants:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">123e4567-e89b-12d3-a456-426614174000</span></div><div><div html="<p>The unique identifier of the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the tenant.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**404**

A tenant with the specified identifier could not be found.

**500**

Internal error.

get/api/v1/tenants/{tenantId}

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}

### Response samples

- 200
- 404
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "tenantId": "123e4567-e89b-12d3-a456-426614174000", - "tenantName": "Abc", - "encodeUri": "string", - "status": "Unknown", - "createDateTime": "2019-08-24T14:15:22Z", - "lastUpdateDateTime": "2019-08-24T14:15:22Z", - "lastDestinationMergedDateTime": "2019-08-24T14:15:22Z", - "termsAndConditions": {          - "acceptedTandC": true,     - "acceptedBy": "c9d21af9-656c-4e21-b4ec-9f2224daf95d",     - "acceptedAt": "2019-08-24T14:15:22Z"          }  }`

# [](#tag/User-Methods)User Methods

Tableau Cloud Manager REST API User methods allow cloud administrators to manage users in the following ways:

- Get the details of a specified user.
- Add a user to a tenant.
- List all users in a tenant, or get the details of a specified batch.
- Import a batch of users specified in a .gzip file.
- Delete a user or a specified batch of users from a tenant.
- Update the role and language preference for a user in a tenant.
- Get the sites and tenants that a user is a member of.

**Postman:** [User Methods](https://www.postman.com/salesforce-developers/salesforce-developers/folder/ij1viux/user-methods)

## [](#tag/User-Methods/operation/createUserWithMultiRole)Add user to tenant

Creates a new user in the tenant.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_users:create`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>The unique identifier of the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the tenant.</p>
</div></div></div></td></tr></tbody></table>

##### Request Body schema: application/json

required

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="userName" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">userName</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The unique username of the user.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique username of the user.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="email" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">email</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The email address of the user.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The email address of the user.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="language" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">language</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div><div><span class="sc-gUjWJS itHPsH"> <!-- -->Enum<!-- -->:</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"DE_DE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"EN_GB"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"EN_US"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ES_ES"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"FR_CA"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"FR_FR"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"IT_IT"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"JA_JP"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"KO_KR"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"NL_NL"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"PT_BR"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"SV_SE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"TH_TH"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ZH_CN"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ZH_TW"</span> </div> <div><div html="<p>The language of the user. If adding a TCM user (cloud administrator), the language set using this attribute determines the language that Tableau Cloud Manager (TCM) displays in for the user and tenant-level invitation email notifications. If adding a Tableau Cloud user, the language set using this attribute determines the language that Tableau Cloud displays for the user and site invitation email notifications. This setting takes precedence over the default site-wide invitation <a href=&quot;https://help.tableau.com/current/online/en-us/sites_add.htm#email_language&quot;>email language</a> that the site admin can set.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The language of the user. If adding a TCM user (cloud administrator), the language set using this attribute determines the language that Tableau Cloud Manager (TCM) displays in for the user and tenant-level invitation email notifications. If adding a Tableau Cloud user, the language set using this attribute determines the language that Tableau Cloud displays for the user and site invitation email notifications. This setting takes precedence over the default site-wide invitation <a href="https://help.tableau.com/current/online/en-us/sites_add.htm#email_language">email language</a> that the site admin can set.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="locale" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">locale</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div><div><span class="sc-gUjWJS itHPsH"> <!-- -->Enum<!-- -->:</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_AE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_BH"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_DZ"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_EG"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_IQ"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_JO"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_KW"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_LB"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_LY"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_MA"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_OM"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_QA"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_SA"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_SD"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_SY"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_TN"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_YE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"be_BY"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"bg_BG"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ca_ES"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"cs_CZ"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"da_DK"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"de_AT"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"de_CH"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"de_DE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"de_LU"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"el_CY"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"el_GR"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"en_AU"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"en_CA"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"en_GB"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"en_IE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"en_IN"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"en_MT"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"en_NZ"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"en_PH"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"en_SG"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"en_US"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"en_ZA"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_AR"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_BO"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_CL"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_CO"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_CR"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_DO"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_EC"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_ES"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_GT"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_HN"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_MX"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_NI"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_PA"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_PE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_PR"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_PY"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_SV"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_US"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_UY"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_VE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"et_EE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"fi_FI"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"fr_BE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"fr_CA"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"fr_CH"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"fr_FR"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"fr_LU"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"hi_IN"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"hr_HR"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"hu_HU"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"in_ID"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"is_IS"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"it_CH"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"it_IT"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"iw_IL"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ja_JP"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ko_KR"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"lt_LT"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"lv_LV"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"mk_MK"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ms_MY"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"mt_MT"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"nl_BE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"nl_NL"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"no_NO"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"pl_PL"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"pt_BR"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"pt_PT"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ro_RO"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ru_RU"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"sk_SK"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"sl_SI"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"sq_AL"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"sr_BA"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"sr_ME"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"sr_RS"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"sv_SE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"th_TH"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"tr_TR"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"uk_UA"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"vi_VN"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"zh_CN"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"zh_HK"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"zh_SG"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"zh_TW"</span> </div> <div><div html="<p>The locale of the user.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The locale of the user.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="linkRoles" class="sc-hABBmJ sc-fHejqy sc-jiaSqj cqoAxn hfWKVF gIkRoy"><span class="sc-ifyrAs hIHfpT"></span><button aria-label="expand linkRoles"><span class="property-name">linkRoles</span><svg class="sc-eTNRI jIsRbK" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY">Array of </span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">objects</span><span class="sc-gUjWJS sc-jgraLO itHPsH iUxudT"> (<!-- -->UserLinkRoleDTO<!-- -->) </span></div> <div><div html="<p>The tenant roles for the user.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The tenant roles for the user.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="siteRoles" class="sc-hABBmJ sc-fHejqy sc-jiaSqj cqoAxn hfWKVF gIkRoy"><span class="sc-ifyrAs hIHfpT"></span><button aria-label="expand siteRoles"><span class="property-name">siteRoles</span><svg class="sc-eTNRI jIsRbK" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY">Array of </span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">objects</span><span class="sc-gUjWJS sc-jgraLO itHPsH iUxudT"> (<!-- -->UserSiteRoleDTO<!-- -->) </span></div> <div><div html="<p>The site roles of the user.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The site roles of the user.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**202**

Success.

**400**

Invalid request.

**401**

The user could not be authenticated.

**403**

The user does not have permissions.

**405**

The requested method is not supported.

**409**

The user already exists in the tenant.

**500**

Internal error.

post/api/v1/tenants/{tenantId}/users

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/users

### Request samples

- Payload

Content type

application/json

Copy

Expand all Collapse all

`{  - "userName": "string", - "email": "string", - "language": "DE_DE", - "locale": "ar_AE", - "linkRoles": [          - {                  - "linkId": "009f739c-6620-43b0-978e-b245e723c57a",         - "linkRole": "LINK_ADMIN",         - "notifyUser": true,         - "idp": "OpenID, TableauIDWithMFA"                  }          ], - "siteRoles": [          - {                  - "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1",         - "siteRole": "SiteAdministratorExplorer",         - "idp": "OpenID",         - "notifyUser": true                  }          ]  }`

### Response samples

- 202
- 400
- 401
- 403
- 405
- 409
- 500

Content type

application/json

Copy

`{  - "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39", - "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b", - "transactionId": "string", - "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"  }`

## [](#tag/User-Methods/operation/getUsers)List tenant users

Gets a list of tenant users and their details.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_users:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

Responses can be filtered by `email`, `userId`, `tcmRoleName`, `maxSiteRole`, `userName` and paginated using `pageToken`, and `maxResults`. Multiple filters can be applied with ampersand-separated expressions, for example:

```
 {{tcmBaseUrl}}/api/v1/tenants/:tenantId/users?maxSiteRole=SiteAdministratorCreator&excludeRoles=true
 
```

If `excludeRoles=true` is set, the curtailed responses will be faster.

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>The unique identifier of the tenant used to filter the response.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the tenant used to filter the response.</p>
</div></div></div></td></tr></tbody></table>

##### query Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="email" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">email</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">email=xyz@tableau.com</span></div><div><div html="<p>The email address of a user used to filter the response.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The email address of a user used to filter the response.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="userId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">userId</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">userId=83e34e72-5c71-4858-93b5-945a144e6e70</span></div><div><div html="<p>The unique identifier of a user used to filter responses.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of a user used to filter responses.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="tcmRoleName" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tcmRoleName</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div><div><span class="sc-gUjWJS itHPsH"> <!-- -->Enum<!-- -->:</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"TCM_ADMIN"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"NULL"</span> </div> <div><div html="<p>The tenant role used to filter the response.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The tenant role used to filter the response.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="maxSiteRole" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">maxSiteRole</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div><div><span class="sc-gUjWJS itHPsH"> <!-- -->Enum<!-- -->:</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"SiteAdministratorExplorer"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"SupportUser"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ExplorerCanPublish"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"Explorer"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"Unlicensed"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"Viewer"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"Creator"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"SiteAdministratorCreator"</span> </div> <div><div html="<p>The site role with the highest permissions used to filter the response.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The site role with the highest permissions used to filter the response.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="userName" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">userName</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The name of a user used to filter the response.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The name of a user used to filter the response.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="pageToken" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">pageToken</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span> <span class="sc-gUjWJS sc-cmfnrN itHPsH iOjfOC"> <!-- -->[ 0 .. 1000 ] characters<!-- --> </span></span></div> <div><div html="<p>The token used to get the next page of results.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The token used to get the next page of results.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="maxResults" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">maxResults</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">integer</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->int32<!-- -->&gt;<!-- --> </span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">maxResults=100</span></div><div><div html="<p>The maximum number of results per page. Default maximum is 100.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The maximum number of results per page. Default maximum is 100.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="excludeRoles" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">excludeRoles</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">boolean</span></div> <div><div html="<p>If true, site and tenant role information is not returned, only return user details. Default is false.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>If true, site and tenant role information is not returned, only return user details. Default is false.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request.

**401**

The user could not be authenticated.

**403**

The user does not have permissions.

**500**

Internal error.

get/api/v1/tenants/{tenantId}/users

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/users

### Response samples

- 200
- 400
- 401
- 403
- 500

Content type

application/json

Copy

`{  - "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39", - "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b", - "transactionId": "string", - "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"  }`

## [](#tag/User-Methods/operation/bulkUserImport)Batch import users with .gzip

Import users in bulk using a `.gzip` (compressed CSV) file.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_users_bulk_operation:create`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

If no siteId is provided, users are imported as tenant users.

An example of a multipart form data request is as follows:

```

curl -X POST "http://mytenant.cloudmanager.tableau.com/api/v1/tenants/{tenantId}/users/bulk-import" -H "accept: application/json" -H "Content-Type: multipart/form-data" -F "file=@/path/to/file.csv.gz" -F "siteId="d9103a00-d7e5-433f-a0c3-debb7d4f7741" -F "idp="TableauIDWithMFA"
```

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>The unique identifier of the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the tenant.</p>
</div></div></div></td></tr></tbody></table>

##### query Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="siteId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">siteId</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>The unique identifier of the site.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the site.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="idp" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">idp</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div><div><span class="sc-gUjWJS itHPsH"> <!-- -->Enum<!-- -->:</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"OpenID"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"SAML"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"TableauIDWithMFA"</span> </div> <div><div html="<p>The authentication type configured for the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The authentication type configured for the tenant.</p>
</div></div></div></td></tr></tbody></table>

##### Request Body schema: multipart/form-data

required

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="file" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">file</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->binary<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>A <code>.gzip</code> (compressed CSV) file containing data of users to be imported. A correctly formatted file has no header row. </p>
<p><strong>Note:</strong> When importing, make sure your CSV file is in UTF-8 format without a byte order mark (BOM). </p>
<p>The expected columns, in the required order, are:</p>
<ol>
<li><p>URI (for the tenant or site)</p>
</li>
<li><p>Username</p>
</li>
<li><p>Password</p>
</li>
<li><p>Display Name</p>
</li>
<li><p>License Level (<code>Explorer</code>, <code>Creator</code>, <code>Viewer</code>, or <code>Unlicensed</code>)</p>
</li>
<li><p>Administrator Level (<code>Cloud</code>, <code>Site</code>, or <code>None</code>) </p>
</li>
<li><p>Can Publish (<code>TRUE</code> or <code>FALSE</code>)</p>
</li>
<li><p>Authentication (<code>OpenID</code>, <code>SAML</code>, <code>TableauIDWithMFA</code>, or <code>DEFAULT</code>. <strong>Note:</strong> <code>DEFAULT</code> is only allowed at the site-level if your site supports it.)</p>
</li>
</ol>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>A <code>.gzip</code> (compressed CSV) file containing data of users to be imported. A correctly formatted file has no header row. </p>
<p><strong>Note:</strong> When importing, make sure your CSV file is in UTF-8 format without a byte order mark (BOM). </p>
<p>The expected columns, in the required order, are:</p>
<ol>
<li><p>URI (for the tenant or site)</p>
</li>
<li><p>Username</p>
</li>
<li><p>Password</p>
</li>
<li><p>Display Name</p>
</li>
<li><p>License Level (<code>Explorer</code>, <code>Creator</code>, <code>Viewer</code>, or <code>Unlicensed</code>)</p>
</li>
<li><p>Administrator Level (<code>Cloud</code>, <code>Site</code>, or <code>None</code>) </p>
</li>
<li><p>Can Publish (<code>TRUE</code> or <code>FALSE</code>)</p>
</li>
<li><p>Authentication (<code>OpenID</code>, <code>SAML</code>, <code>TableauIDWithMFA</code>, or <code>DEFAULT</code>. <strong>Note:</strong> <code>DEFAULT</code> is only allowed at the site-level if your site supports it.)</p>
</li>
</ol>
</div></div></div></td></tr></tbody></table>

### Responses

**202**

Success.

**400**

Invalid request.

**403**

User does not have permissions.

**404**

Site or tenant specified could not be found.

**405**

Method not allowed.

**409**

Bulk operation already in progress.

**500**

Internal error.

post/api/v1/tenants/{tenantId}/users/bulk-import

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/users/bulk-import

### Response samples

- 202
- 400
- 403
- 404
- 405
- 409
- 500

Content type

application/json

Copy

`{  - "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39"  }`

## [](#tag/User-Methods/operation/deleteUsers)Batch delete tenant users

Starts a job to delete the specified batch of users from the specified tenant.

To see progress and results, use the returned `jobId` in a request to the [List status for job](#tag/User-Methods/operation/getBulkOperationDetails) method.

_Note:_ If the user owns content in a tenant site, the user will become unlicensed but will not be removed from the tenant or from any sites where they own content. To remove the user from a tenant and shift ownership of their content to another user, you can take the following steps:

1. Make a request to the TCM [List tenant sites](#tag/Site-Methods/operation/getSites) method, which returns the LUIDs of all sites on a tenant.
2. [Sign in](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_authentication.htm#sign_in) to the Tableau REST API then, for each of the site LUIDs returned for the tenant, use [Remove User from site](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_users_and_groups.htm#remove_user_from_site) with the `mapAssetsTo` query parameter set to use the LUID of the new owner for each site.
3. Use this tenant method (Delete tenant users) to remove the user from the tenant.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_users:delete`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

This method returns an identifier for an asynchronous job. To see progress and results, use [List status for job](#tag/User-Methods/operation/getBulkOperationDetails).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>The unique identifier of the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the tenant.</p>
</div></div></div></td></tr></tbody></table>

##### Request Body schema: application/json

required

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="userIds" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">userIds</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY">Array of </span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">strings</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span><span> <span class="sc-gUjWJS sc-cmfnrN itHPsH iOjfOC"> <!-- -->unique<!-- --> </span></span><span class="sc-gUjWJS sc-kZOsHZ sc-jIYCZY itHPsH iSyacY bDgvzj">[ items<span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> &lt;<!-- -->uuid<!-- --> &gt;</span> ]</span></div> <div><div html="<p>A comma separated list of user LUIDs to delete.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>A comma separated list of user LUIDs to delete.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**202**

Success.

**400**

Invalid request.

**403**

The user does not have permissions.

**404**

The tenant specified could not be found.

**405**

The method requested is not supported.

**500**

Internal error.

post/api/v1/tenants/{tenantId}/users/delete

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/users/delete

### Request samples

- Payload

Content type

application/json

Copy

Expand all Collapse all

`{  - "userIds": [          - "497f6eca-6276-4993-bfeb-53cbbbba6f08"          ]  }`

### Response samples

- 202
- 400
- 403
- 404
- 405

Content type

application/json

Copy

`{  - "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39"  }`

## [](#tag/User-Methods/operation/getUsersByUserIds)Batch get tenant users

Lists the details of a batch of users specified in a comma separated list of user IDs.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_users:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>The unique identifier of the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the tenant.</p>
</div></div></div></td></tr></tbody></table>

##### Request Body schema: application/json

required

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="userIds" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">userIds</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY">Array of </span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">strings</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span><span> <span class="sc-gUjWJS sc-cmfnrN itHPsH iOjfOC"> <!-- -->unique<!-- --> </span></span><span class="sc-gUjWJS sc-kZOsHZ sc-jIYCZY itHPsH iSyacY bDgvzj">[ items<span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> &lt;<!-- -->uuid<!-- --> &gt;</span> ]</span></div> <div><div html="<p>Comma separated list of user LUIDs to get details about.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>Comma separated list of user LUIDs to get details about.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request.

**401**

User could not be authenticated.

**403**

User does not have permissions

**500**

Internal error.

post/api/v1/tenants/{tenantId}/users/fetch-by-ids

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/users/fetch-by-ids

### Request samples

- Payload

Content type

application/json

Copy

Expand all Collapse all

`{  - "userIds": [          - "497f6eca-6276-4993-bfeb-53cbbbba6f08"          ]  }`

### Response samples

- 200
- 400
- 401
- 403
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "users": [          - {                  - "linkRoles": [                          - {                                  - "linkId": "009f739c-6620-43b0-978e-b245e723c57a",                 - "linkRole": "LINK_ADMIN",                 - "linkRoleStatus": "INVITED",                 - "idpType": "string"                                  }                          ],         - "siteRoles": [                          - {                                  - "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1",                 - "siteRole": "SiteAdministratorExplorer",                 - "idpType": "OpenID"                                  }                          ],         - "email": "string",         - "userName": "string",         - "displayName": "string",         - "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",         - "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",         - "userStatus": "ACTIVE",         - "maxSiteRole": "SiteAdministratorExplorer",         - "tcmRoleName": "string",         - "numberOfSiteRoles": 0,         - "lastLoginTime": "2019-08-24T14:15:22Z",         - "language": "DE_DE",         - "locale": "ar_AE"                  }          ]  }`

## [](#tag/User-Methods/operation/deleteUser)Delete tenant user

Starts a job to delete the specified user from the specified tenant.

To see progress and results, use the returned `jobId` in a request to the [Get batch user job status](#tag/User-Methods/operation/getBulkOperationDetails) method. Without an additional license, log files take 2 hours to become available. For more information see, [Activity Log](https://help.tableau.com/current/online/en-us/activity_log_overview.htm).

_Note:_ If the user owns content in a tenant site, the user will become unlicensed but will not be removed from the tenant or from any sites where they own content. To remove the user from a tenant and shift ownership of their content to another user, you can take the following steps:

1. Make a request to the TCM [List tenant sites](#tag/Site-Methods/operation/getSites) method, which returns the LUIDs of all sites on a tenant.
2. [Sign in](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_authentication.htm#sign_in) to the Tableau REST API then, for each of the site LUIDs returned for the tenant, use [Remove User from site](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_users_and_groups.htm#remove_user_from_site) with the `mapAssetsTo` query parameter set to use the LUID of the new owner for each site.
3. Use this tenant method (Delete tenant users) to remove the user from the tenant.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_users:delete`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>The unique identifier of the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the tenant.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="userId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">userId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>The unique identifier of the user.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the user.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**202**

Success.

**400**

Invalid request.

**403**

The user does not have permissions.

**404**

The tenant or user specified could not be found.

**405**

The method requested is not supported.

**500**

Internal error.

delete/api/v1/tenants/{tenantId}/users/{userId}

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/users/{userId}

### Response samples

- 202
- 400
- 403
- 404
- 405

Content type

application/json

Copy

`{  - "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39"  }`

## [](#tag/User-Methods/operation/getUser)Get tenant user

Gets the details of a tenant user.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_users:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>The unique identifier of the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the tenant.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="userId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">userId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>The unique identifier of the user.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the user.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request.

**401**

The user could not be authenticated.

**403**

The user does not have permissions.

**404**

The specified user could not be found.

**500**

Internal error.

get/api/v1/tenants/{tenantId}/users/{userId}

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/users/{userId}

### Response samples

- 200
- 400
- 401
- 403
- 404
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "user": {          - "linkRoles": [                  - {                          - "linkId": "009f739c-6620-43b0-978e-b245e723c57a",             - "linkRole": "LINK_ADMIN",             - "linkRoleStatus": "INVITED",             - "idpType": "string"                          }                  ],     - "siteRoles": [                  - {                          - "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1",             - "siteRole": "SiteAdministratorExplorer",             - "idpType": "OpenID"                          }                  ],     - "email": "string",     - "userName": "string",     - "displayName": "string",     - "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",     - "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",     - "userStatus": "ACTIVE",     - "maxSiteRole": "SiteAdministratorExplorer",     - "tcmRoleName": "string",     - "numberOfSiteRoles": 0,     - "lastLoginTime": "2019-08-24T14:15:22Z",     - "language": "DE_DE",     - "locale": "ar_AE"          }  }`

## [](#tag/User-Methods/operation/modifyUserWithMultiRole)Update user on tenant

Updates the tenant role, site role, language, and locale for the specified user on the tenant.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_users:update`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="tenantId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">tenantId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>The unique identifier of the tenant.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the tenant.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="userId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">userId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>The unique identifier of the user.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the user.</p>
</div></div></div></td></tr></tbody></table>

##### Request Body schema: application/json

required

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="language" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">language</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div><div><span class="sc-gUjWJS itHPsH"> <!-- -->Enum<!-- -->:</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"DE_DE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"EN_GB"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"EN_US"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ES_ES"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"FR_CA"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"FR_FR"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"IT_IT"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"JA_JP"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"KO_KR"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"NL_NL"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"PT_BR"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"SV_SE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"TH_TH"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ZH_CN"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ZH_TW"</span> </div> <div><div html="<p>The language to apply to the user.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The language to apply to the user.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="locale" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">locale</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div><div><span class="sc-gUjWJS itHPsH"> <!-- -->Enum<!-- -->:</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_AE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_BH"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_DZ"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_EG"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_IQ"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_JO"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_KW"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_LB"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_LY"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_MA"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_OM"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_QA"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_SA"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_SD"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_SY"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_TN"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ar_YE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"be_BY"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"bg_BG"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ca_ES"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"cs_CZ"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"da_DK"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"de_AT"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"de_CH"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"de_DE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"de_LU"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"el_CY"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"el_GR"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"en_AU"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"en_CA"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"en_GB"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"en_IE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"en_IN"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"en_MT"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"en_NZ"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"en_PH"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"en_SG"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"en_US"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"en_ZA"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_AR"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_BO"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_CL"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_CO"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_CR"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_DO"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_EC"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_ES"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_GT"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_HN"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_MX"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_NI"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_PA"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_PE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_PR"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_PY"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_SV"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_US"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_UY"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"es_VE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"et_EE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"fi_FI"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"fr_BE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"fr_CA"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"fr_CH"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"fr_FR"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"fr_LU"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"hi_IN"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"hr_HR"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"hu_HU"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"in_ID"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"is_IS"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"it_CH"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"it_IT"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"iw_IL"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ja_JP"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ko_KR"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"lt_LT"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"lv_LV"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"mk_MK"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ms_MY"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"mt_MT"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"nl_BE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"nl_NL"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"no_NO"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"pl_PL"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"pt_BR"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"pt_PT"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ro_RO"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"ru_RU"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"sk_SK"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"sl_SI"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"sq_AL"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"sr_BA"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"sr_ME"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"sr_RS"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"sv_SE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"th_TH"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"tr_TR"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"uk_UA"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"vi_VN"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"zh_CN"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"zh_HK"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"zh_SG"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"zh_TW"</span> </div> <div><div html="<p>The new locale to apply to the user.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The new locale to apply to the user.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="email" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">email</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>Email address of the user to be updated.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>Email address of the user to be updated.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="linkRoles" class="sc-hABBmJ sc-fHejqy sc-jiaSqj cqoAxn hfWKVF gIkRoy"><span class="sc-ifyrAs hIHfpT"></span><button aria-label="expand linkRoles"><span class="property-name">linkRoles</span><svg class="sc-eTNRI jIsRbK" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY">Array of </span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">objects</span><span class="sc-gUjWJS sc-jgraLO itHPsH iUxudT"> (<!-- -->PatchUserLinkRoleDTO<!-- -->) </span></div> <div><div html="<p>The tenant roles of the user.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The tenant roles of the user.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="siteRoles" class="sc-hABBmJ sc-fHejqy sc-jiaSqj cqoAxn hfWKVF gIkRoy"><span class="sc-ifyrAs hIHfpT"></span><button aria-label="expand siteRoles"><span class="property-name">siteRoles</span><svg class="sc-eTNRI jIsRbK" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY">Array of </span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">objects</span><span class="sc-gUjWJS sc-jgraLO itHPsH iUxudT"> (<!-- -->PatchUserSiteRoleDTO<!-- -->) </span></div> <div><div html="<p>Site role of the user</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>Site role of the user</p>
</div></div></div></td></tr></tbody></table>

### Responses

**202**

Success.

**400**

Invalid request.

**403**

The user does not have permissions.

**404**

The tenant or user specified could not be found.

**405**

The method requested is not supported.

**500**

Internal error.

patch/api/v1/tenants/{tenantId}/users/{userId}

https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/users/{userId}

### Request samples

- Payload

Content type

application/json

Copy

Expand all Collapse all

`{  - "language": "DE_DE", - "locale": "ar_AE", - "email": "string", - "linkRoles": [          - {                  - "linkId": "009f739c-6620-43b0-978e-b245e723c57a",         - "linkRole": "LINK_ADMIN",         - "notifyUser": true,         - "idp": "OpenID, TableauIDWithMFA",         - "linkOp": "ADD_LINK_ROLE"                  }          ], - "siteRoles": [          - {                  - "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1",         - "siteRole": "SiteAdministratorExplorer",         - "idp": "OpenID",         - "notifyUser": true,         - "siteOp": "ADD_SITE_ROLE"                  }          ]  }`

### Response samples

- 202
- 400
- 403
- 404
- 405

Content type

application/json

Copy

`{  - "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39"  }`

## [](#tag/User-Methods/operation/getBulkOperationDetails)List status for user job

Get the status of a batch user job.

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_users_bulk_operation:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="jobId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">jobId</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>The unique identifier of the job whose details are to be retrieved.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the job whose details are to be retrieved.</p>
</div></div></div></td></tr></tbody></table>

##### query Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="showDetailed" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">showDetailed</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">boolean</span></div> <div><span class="sc-gUjWJS itHPsH"> <!-- -->Example:<!-- --> </span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">showDetailed=true</span></div><div><div html="<p>If true, show the detailed status of each user operation in paginated format. Default is false.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>If true, show the detailed status of each user operation in paginated format. Default is false.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="pageToken" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">pageToken</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span> <span class="sc-gUjWJS sc-cmfnrN itHPsH iOjfOC"> <!-- -->[ 0 .. 1000 ] characters<!-- --> </span></span></div> <div><div html="<p>The pageToken used for getting next set of records. Only valid if <code>showDetailed = true</code>.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The pageToken used for getting next set of records. Only valid if <code>showDetailed = true</code>.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request.

**403**

User does not have permissions.

**404**

The job specified could not be found.

**405**

Method not allowed.

**500**

Internal error.

get/api/v1/users/jobs/{jobId}

https://cloudmanager.tableau.com/api/v1/users/jobs/{jobId}

### Response samples

- 200
- 400
- 403
- 404
- 405
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39", - "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0", - "operation": "BULK_USER_IMPORT", - "ownerId": "4d206909-730f-409a-88f6-dcfaa8fc28cc", - "ownerRole": "UNAUTHENTICATED", - "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1", - "triggerSource": "string", - "bulkOpAttributes": {          - "property1": "string",     - "property2": "string"          }, - "status": "NEW", - "expectedOpsCount": 0, - "successfulOpsCount": 0, - "failedOpsCount": 0, - "skippedLinesCount": 0, - "submitTime": "2019-08-24T14:15:22Z", - "lastUpdateTime": "2019-08-24T14:15:22Z", - "createdTime": "2019-08-24T14:15:22Z", - "statusChangeHistory": [          - {                  - "jobStatus": "NEW",         - "time": "2019-08-24T14:15:22Z"                  }          ], - "items": [          - {                  - "lineNumber": "string",         - "userName": "string",         - "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",         - "siteId": "string",         - "opType": "CREATE_USER_SITE_ROLE",         - "status": "NEW",         - "opCode": "USER_CREATED_WITH_ASSIGNED_ROLE",         - "serverSiteUserId": "string",         - "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",         - "linkRole": "LINK_ADMIN",         - "siteRole": "SiteAdministratorExplorer",         - "idp": "OpenID"                  }          ], - "nextPageToken": "string"  }`

## [](#tag/User-Methods/operation/getUserResourcesByUsername)Get user information

Gets information about the user

> Permissions: Only cloud administrators can call this method.

> Version: Available in Tableau Cloud Manager v1, June 2024, and later.

> License: No additional Tableau license is required. For more information, see [About Tableau Cloud Manager](https://help.tableau.com/current/online/en-us/cloud_manager_intro.htm).

> Access scope: `tableau:tcm_users_resources:read`. Added in December 2025. For more information, see [Access scopes for UATs](https://help.tableau.com/v0.0/api/cloud-manager/en-us/docs/unified_access_tokens.html#scopes).

##### Authorizations:

_x-tableau-session-token_

##### path Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class="last"><td kind="field" title="userName" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">userName</span><div class="sc-gUjWJS sc-eKzvBH itHPsH ciWJhv">required</div></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The username of the user to get resource details for.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The username of the user to get resource details for.</p>
</div></div></div></td></tr></tbody></table>

##### query Parameters

<table class="sc-hIPBNq kHkWhD"><tbody><tr class=""><td kind="field" title="resourceId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">resourceId</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP"> <!-- -->&lt;<!-- -->uuid<!-- -->&gt;<!-- --> </span></div> <div><div html="<p>The unique identifier of a site or tenant optionally used to filter results.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of a site or tenant optionally used to filter results.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="resourceType" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">resourceType</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div><div><span class="sc-gUjWJS itHPsH"> <!-- -->Enum<!-- -->:</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"SITE"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"TENANT"</span> </div> <div><div html="<p>The type of resource optionally used to filter results.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The type of resource optionally used to filter results.</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="authType" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">authType</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div><div><span class="sc-gUjWJS itHPsH"> <!-- -->Enum<!-- -->:</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"OpenID"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"SAML"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"TableauIDWithMFA"</span> <span class="sc-gUjWJS sc-ldgOGP itHPsH cRxwgg">"DEFAULT"</span> </div> <div><div html="<p>The type of user authentication optionally used to filter results.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The type of user authentication optionally used to filter results.</p>
</div></div></div></td></tr><tr class="last"><td kind="field" title="authUserId" class="sc-hABBmJ sc-fHejqy cqoAxn hfWKVF"><span class="sc-ifyrAs hIHfpT"></span><span class="property-name">authUserId</span></td><td class="sc-blmEgr berbbf"><div><div><span class="sc-gUjWJS sc-kZOsHZ itHPsH iSyacY"></span><span class="sc-gUjWJS sc-iLXxbI itHPsH gfdSsP">string</span></div> <div><div html="<p>The unique identifier of the user optionally used to filter results.</p>
" class="sc-iKOmoZ sc-cCzLxZ WVNwY jaVotg"><p>The unique identifier of the user optionally used to filter results.</p>
</div></div></div></td></tr></tbody></table>

### Responses

**200**

Success.

**400**

Invalid request.

**401**

The user can not be authenticated.

**403**

The user does not have permissions.

**404**

The specified user can not be found

**500**

Internal error.

get/api/v1/users/{userName}

https://cloudmanager.tableau.com/api/v1/users/{userName}

### Response samples

- 200
- 400
- 401
- 403
- 404
- 500

Content type

application/json

Copy

Expand all Collapse all

`{  - "resources": [          - {                  - "name": "string",         - "state": "string",         - "migrationStatus": "NotStarted",         - "uri": "string",         - "email": "string",         - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",         - "resourceType": "SITE",         - "instanceDomain": "string",         - "parent": {                          - "name": "string",             - "uri": "string",             - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"                          }                  }          ], - "userName": "string"  }`