Tableau Cloud Manager REST API Reference (Current)
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.
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.
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
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.
Access scope:
tableau:tcm_regions:read. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
query Parameters
| pageNumber | integer <int32> >= 0 Default: 0 The number of the page to return values for. A value of 0 means do not page results. |
| pageSize | integer <int32> >= 0 Default: 100 The number of items returned per page. |
| latitude | number <double> Example: latitude=37.7749 The latitude of the region, a value between -90 and +90. |
| longitude | number <double> Example: longitude=-122.4194 The longitude of the region, a value between -180 and +180. |
| visibility | string Enum: "INTERNAL" "PUBLIC" If |
| countryCode | string Example: countryCode=US The country code in the region definition. |
Responses
Response samples
- 200
- 400
- 500
{- "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"
}
}
]
}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.
Access scope:
tableau:tcm_tenants:update. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string The unique identifier for the tenant. |
Responses
Response samples
- 204
- 400
- 404
- 500
"string"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.
Access scope:
tableau:tcm_tenants:read. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string The unique identifier for the tenant. |
Responses
Response samples
- 200
- 400
- 500
{- "podsData": {
- "pods": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string"
}
]
}, - "regionsData": {
- "regions": [
- {
- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "name": "string",
- "tags": [
- "RELEASE_PREVIEW"
]
}
]
}
}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.
Access scope:
tableau:tcm_sites:read. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string <uuid> The unique identifier of the tenant. |
Responses
Response samples
- 200
- 403
- 404
- 500
{- "allSites": [
- {
- "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1",
- "userCount": 0,
- "siteAdminCount": 0,
- "creators": 0,
- "explorers": 0,
- "viewers": 0,
- "unlicensed": 0
}
]
}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.
Access scope:
tableau:tcm_sites:read. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string <uuid> The unique identifier of the tenant. |
| siteId required | string <uuid> The unique identifier of the site. |
Responses
Response samples
- 200
- 403
- 404
- 500
{- "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1",
- "userCount": 0,
- "siteAdminCount": 0,
- "creators": 0,
- "explorers": 0,
- "viewers": 0,
- "unlicensed": 0
}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.
Access scope:
tableau:tcm_tenants:read. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string <uuid> The unique identifier of the tenant. |
Responses
Response samples
- 200
- 403
- 404
- 500
{- "creators": 0,
- "explorers": 0,
- "viewers": 0,
- "unlicensed": 0
}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.
Access scope: Not required. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
Responses
Response samples
- 200
- 401
- 404
- 500
{- "sessionId": "123e4567-e89b-12d3-a456-426614174000",
- "userId": "123e4567-e89b-12d3-a456-426614174000",
- "tenantId": "123e4567-e89b-12d3-a456-426614174000",
- "sessionType": "USER"
}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
- Unified Access Tokens
- Personal Access Tokens for Tableau Cloud Manager in the Tableau Cloud Help
Postman: Authentication Methods
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.
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.
Access scope: Not available. For more information, see Access scopes for UATs.
Authorizations:
Request Body schema: application/jsonrequired
| tokenName required | string Name of the personal access token (PAT). PAT name must be unique. |
| absoluteExpiryInDays | integer <int32> 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. |
Responses
Request samples
- Payload
{- "tokenName": "MyTokenName",
- "absoluteExpiryInDays": 180
}Response samples
- 200
- 400
- 403
- 404
- 415
- 500
{- "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"
}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.
Access scope:
tableau:tcm_pats:read. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
Responses
Response samples
- 200
- 403
- 404
- 500
[- {
- "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"
}
]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.
Access scope:
tableau:tcm_pats:delete. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
header Parameters
| tokenUUID required | string The token ID of the PAT. |
Responses
Response samples
- 403
- 404
- 500
{- "message": "string",
- "reason": "string",
- "errorCode": "INVALID_TENANT_NAME"
}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 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.
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.
Access scope: Not required. Added in December 2025. For more information, see Access scopes for UATs.
Request Body schema: application/jsonrequired
| token required | string Token secret that is generated when you create a personal access token (PAT). |
Responses
Request samples
- Payload
{- "token": "bSG+6ttrRgqMLzonp5j89w==:SUOF-rjwMZZKXg-T3GcpDVFrIKAO6VIbTyZyq39bWR0"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "sessionToken": "bSG+6ttrRgqMLzonp5j89w==:SUOF-rjwMZZKXg-T3GcpDVFrIKAO6VIbTyZyq39bWR0",
- "userId": "123e4567-e89b-12d3-a456-426614174000",
- "tenantId": "123e4567-e89b-12d3-a456-426614174000",
- "sessionExpiration": "2019-08-24T14:15:22Z"
}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 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.
Access scope:
tableau:tcm_uat_configs:create. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
Request Body schema: application/jsonrequired
| name required | string The name of the unified access token (UAT) configuration. UAT configuration name must be unique. |
| issuer required | string The issuer of the JSON Web Token (JWT). |
| publicKey | string The public key used to verify the JSON Web Token (JWT). Use this value or |
| jwksUri | string The URI of the JWKS endpoint. Use this value or |
| usernameClaim | string The username claim that maps to the Tableau username. Default value is |
| resourceIds required | Array of strings <uuid> unique [ items <uuid > ] 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 |
| scopes | Array of strings <scope> unique [ items <scope > ] 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. |
| enabled | boolean If |
Responses
Request samples
- Payload
{- "name": "JWT - Employees",
- "publicKey": "-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...",
- "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
{- "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
}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.
Access scope:
tableau:tcm_uat_configs:read. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
Responses
Response samples
- 200
- 500
{- "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
}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.
Access scope:
tableau:tcm_uat_configs:delete. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| configId required | string <uuid> Example: lafb0f7e-2962-40d5-bfc9-e95141bcb68f The unique identifier of the unified access token (UAT) configuration. You can get the |
Responses
Response samples
- 204
- 500
{ }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.
Access scope:
tableau:tcm_uat_configs:read. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| configId required | string <uuid> Example: lafb0f7e-2962-40d5-bfc9-e95141bcb68f The unique identifier of the unified access token (UAT) configuration. You can get the |
Responses
Response samples
- 200
- 404
- 500
{- "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
}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.
Access scope:
tableau:tcm_uat_configs:update. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| configId required | string <uuid> Example: lafb0f7e-2962-40d5-bfc9-e95141bcb68f The unique identifier of the unified access token (UAT) configuration. You can get the |
Request Body schema: application/jsonrequired
| name required | string The name of the unified access token (UAT) configuration. UAT configuration name must be unique. |
| issuer required | string The issuer of the JSON Web Token (JWT). |
| publicKey | string The public key used to verify the JSON Web Token (JWT). Use this value or |
| jwksUri | string The URI of the JWKS endpoint. Use this value or |
| usernameClaim | string The username claim that maps to the Tableau username. Default value is |
| resourceIds required | Array of strings <uuid> unique [ items <uuid > ] 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 |
| scopes | Array of strings <scope> unique [ items <scope > ] 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. |
| enabled | boolean If |
Responses
Request samples
- Payload
{- "name": "JWT - Employees",
- "publicKey": "-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...",
- "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
{- "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
}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 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.
Access scope: Not available. For more information, see Access scopes for UATs.
Request Body schema: application/jsonrequired
| token required | string 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 Create unified access token configuration method. |
Responses
Request samples
- Payload
{- "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "sessionToken": "bSG+6ttrRgqMLzonp5j89w==:SUOF-rjwMZZKXg-T3GcpDVFrIKAO6VIbTyZyq39bWR0",
- "userId": "123e4567-e89b-12d3-a456-426614174000",
- "tenantId": "123e4567-e89b-12d3-a456-426614174000",
- "sessionExpiration": "2019-08-24T14:15:22Z"
}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.
Access scope: Not required. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
Responses
Response samples
- 401
- 404
- 500
{- "message": "string",
- "reason": "string",
- "errorCode": "INVALID_TENANT_NAME"
}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.
Access scope:
tableau:tcm_uat_revocations:create. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
Request Body schema: application/jsonrequired
| jti required | string The JWT ID of the JSON Web Token (JWT) associated with the unified access token (UAT) configuration. |
| exp required | integer <int64> The expiration timestamp of the JSON Web Token (JWT) in seconds from Epoch (Unix epoch time). |
Responses
Request samples
- Payload
[
]Response samples
- 201
- 400
- 500
[
]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.
Access scope:
tableau:tcm_uat_revocations:delete. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
query Parameters
| jti | string The JWT ID of the JSON Web Token (JWT) associated with the unified access token (UAT) configuration. You can get the |
Responses
Response samples
- 204
- 500
{ }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.
Access scope:
tableau:tcm_uat_revocations:read. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
query Parameters
| jti | string The JWT ID of the JSON Web Token (JWT) associated with the unified access token (UAT) configuration. You can get the |
| pageToken | string Example: pageToken=fDIwMjQtMDktMDlUMDU6MDA= The token to provide to request the next page of records. |
| pageSize | integer <int32> Default: 100 The maximum number of records on a page. Default is |
Responses
Response samples
- 200
- 500
{- "records": "97df110-f4de-492e-8849-4a6af68026b0:https://myidp.okta.com:17568488555555",
- "pageToken": "fDIwMjQtMDktMDlUMDU6MDA="
}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 for capacities configurable in TCM
- Capacity Set at the Site for capacities that remain fixed at the site level and not configurable in TCM
- Capacity-based license model for information about capacity-based license model
Postman: Capacity Methods
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.
Access scope:
tableau:tcm_tenant_metrics:read. For more information, see Access scopes for UATs.
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 endTimeparameter 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:
path Parameters
| tenantId required | string Example: 123e4567-e89b-12d3-a456-426614174000 The unique identifier of the tenant. |
query Parameters
| endTime | string Example: endTime=2026-10-18T23:56:20.145Z The end date and time in UTC (ISO-8601). |
| window | string The number of days before |
| aggregationType | string Enum: "peak" "average" "median" "all" Example: aggregationType=median The aggregation type of the capacity metric: |
| pageSize | string Example: pageSize=20 The maximum number of sites returned on a page. Value must be less than or equal to (<=) |
| pageToken | string Example: pageToken=fDIwMjQtMDktMDlUMDU6MDA= The token string used to request the next page of results. If not specified, the first page is returned. |
Responses
Response samples
- 200
- 202
- 400
- 404
- 500
{- "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
}
}
}
]
}
]
}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.
Access scope:
tableau:tcm_site_metrics:read. For more information, see Access scopes for UATs.
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:
path Parameters
| tenantId required | string Example: 123e4567-e89b-12d3-a456-426614174000 The unique identifier of the tenant. |
query Parameters
| endTime | string Example: endTime=2026-10-18T23:56:20.145Z The end date and time in UTC (ISO-8601). |
| window | string The number of days before |
| aggregationType | string Example: aggregationType=median The aggregation type of the capacity metric: |
Request Body schema: application/jsonrequired
| siteIds | Array of strings <uuid> [ items <uuid > ] The unique identifiers of the sites. |
Responses
Request samples
- Payload
{- "siteIds": [
- "123e4567-e89b-12d3-a456-426614174000",
- "123e4567-e89b-12d3-a456-426614174001"
]
}Response samples
- 200
- 202
- 400
- 404
- 500
{- "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
}
}
}
]
}
]
}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.
Access scope:
tableau:tcm_site_metrics:read. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string Example: 123e4567-e89b-12d3-a456-426614174000 The unique identifier of the tenant. |
| siteId required | string Example: 1489a6a4-89a8-4d17-9180-64c34dd07b86 The unique identifier of the site. To get the site ID, call the List sites for tenant method. |
query Parameters
| endTime | string Example: endTime=2026-01-05T23:56:20.145Z The end date and time in UTC (ISO-8601). |
| window | string The number of days before |
| aggregationType | string Enum: "peak" "average" "median" "all" Example: aggregationType=median The aggregation type of the capacity metric: |
Responses
Response samples
- 200
- 400
- 404
- 500
{- "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
}
}
}
]
}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.
Access scope:
tableau:tcm_capacities:read. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string <uuid> Example: 123e4567-e89b-12d3-a456-426614174000 The unique identifier of the tenant. |
Responses
Response samples
- 200
- 404
- 500
{- "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}]}]"
}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 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 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.
Access scope:
tableau:tcm_capacities:update. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string <uuid> Example: 123e4567-e89b-12d3-a456-426614174000 The unique identifier of the tenant. |
Request Body schema: application/jsonrequired
required | Array of objects (CapacityPolicyUpdate) [ 1 .. 2147483647 ] items List of capacity limits to update. |
Responses
Request samples
- Payload
{- "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
{- "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"
}
]
}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.
Postman: Platform Data Methods
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.
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 in the Tableau Cloud Help.
The response for each event log URL includes the following:
expiresAtwhich shows the length of time after the response that a returned URL will remain valideTagthat is an MD5 hash 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.
Access scope:
tableau:tcm_tenants_logs:read. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string Example: 123e4567-e89b-12d3-a456-426614174000 The unique identifier of the tenant. |
Request Body schema: application/jsonrequired
| files required | Array of strings Event log or entity snapshot file paths. You can get the event log file paths for the tenant by calling the List activity logs for tenant method or for the site by calling the List activity logs for site method. You can get the entity snapshot file paths for the site by calling the List entity snapshots for site method. |
Responses
Request samples
- Payload
{- "files": [
- "string"
]
}Response samples
- 200
- 400
- 404
- 500
{- "files": [
- {
- "path": "string",
- "url": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "etag": "string"
}
]
}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 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.
Access scope:
tableau:tcm_tenants_logs:read. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string Example: 123e4567-e89b-12d3-a456-426614174000 The unique identifier of the tenant. |
query Parameters
| startTime | string <date-time> Example: startTime=2025-01-01T00:00:00 The start time in UTC (ISO-8601) of the returned event log records. Default is 24 hours prior to the time of the request. |
| endTime | string <date-time> Example: endTime=2025-01-01T00:00:00 The end time in UTC (ISO-8601) of the returned event log records. Default is the time of the request. The |
| eventType | string Example: eventType=update_user_site_role The type of event to filter returned event logs by. Default value is all types. Refer to Activity Log Tenant Event Type Reference in the Tableau Cloud Help for a list of available event types to filter on. |
| pageSize | integer <int32> Example: pageSize=100 The number of log file paths to return in a response. Default is 100. |
| pageToken | string Example: pageToken=fDIwMjQtMDktMDlUMDU6MDA= The token to request the next page of file paths. |
Responses
Response samples
- 200
- 400
- 404
- 500
{- "files": [
- {
- "path": "string",
- "size": 0
}
], - "pageToken": "string"
}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:
expiresAtwhich shows the length of time after the response that the returned URL will remain valideTagthat is an MD5 hash 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 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.
Access scope:
tableau:tcm_sites_logs:read. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string Example: 123e4567-e89b-12d3-a456-426614174000 The unique identifier of the tenant. |
| siteId required | string Example: 567f1234-e89b-71e5-a456-428814174111 The unique identifier of the site. |
Request Body schema: application/jsonrequired
| files required | Array of strings Event log or entity snapshot file paths. You can get the event log file paths for the tenant by calling the List activity logs for tenant method or for the site by calling the List activity logs for site method. You can get the entity snapshot file paths for the site by calling the List entity snapshots for site method. |
Responses
Request samples
- Payload
{- "files": [
- "string"
]
}Response samples
- 200
- 400
- 404
- 500
{- "files": [
- {
- "path": "string",
- "url": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "etag": "string"
}
]
}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 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 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.
Access scope:
tableau:tcm_sites_logs:read. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string Example: 123e4567-e89b-12d3-a456-426614174000 The unique identifier of the tenant. |
| siteId required | string Example: 567f1234-e89b-71e5-a456-428814174111 The unique identifier of the site. |
query Parameters
| startTime | string <date-time> Example: startTime=2025-01-01T00:00:00 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. |
| endTime | string <date-time> Example: endTime=2025-01-01T00:00:00 The end time in UTC (ISO-8601) of the returned event log records. Default value is the time of the request. |
| eventType | string Example: eventType=hist_access_view The type of event to filter returned logs by. Default value is all types. Refer to Activity Log Site Event Type Reference in the Tableau Cloud Help for a list of available event types to filter on. |
| pageSize | integer <int32> Example: pageSize=100 The number of event log files to return in the response. Default value is 100. |
| pageToken | string Example: pageToken=fDIwMjQtMDktMDlUMDU6MDA= The token to request the next page of event log files. |
Responses
Response samples
- 200
- 400
- 404
- 500
{- "files": [
- {
- "path": "string",
- "size": 0
}
], - "pageToken": "string"
}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 and Entity Snapshots Reference 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.
Access scope: Not available. For more information, see Access scopes for UATs.
path Parameters
| tenantId required | string <uuid> Example: 123e4567-e89b-12d3-a456-426614174000 The unique identifier of the tenant. |
| siteId required | string <uuid> Example: 567f1234-e89b-71e5-a456-428814174111 The unique identifier of the site. |
Request Body schema: application/jsonrequired
| files required | Array of strings Event log or entity snapshot file paths. You can get the event log file paths for the tenant by calling the List activity logs for tenant method or for the site by calling the List activity logs for site method. You can get the entity snapshot file paths for the site by calling the List entity snapshots for site method. |
Responses
Request samples
- Payload
{- "files": [
- "string"
]
}Response samples
- 200
- 400
- 404
- 500
{- "files": [
- {
- "path": "string",
- "url": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "etag": "string"
}
]
}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 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.
Access scope: Not available. For more information, see Access scopes for UATs.
path Parameters
| tenantId required | string <uuid> Example: 123e4567-e89b-12d3-a456-426614174000 The unique identifier of the tenant. |
| siteId required | string <uuid> Example: 567f1234-e89b-71e5-a456-428814174111 The unique identifier of the site. |
query Parameters
| startTime | string <date-time> Example: startTime=2026-10-27T00:00:00 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 |
| endTime | string <date-time> Example: endTime=2026-10-28T00:00:00 The end time in UTC (ISO-8601) of the returned entity snapshot records. Default value is the time of the request. The |
| entityType | string Example: entityType=view The type of entity to filter snapshots by. Default value is all types. Refer to Entity Snapshots Reference in the Tableau Cloud Help for a list of available entity types to filter on. |
| pageSize | any Example: pageSize=100 The number of entity snapshot files to return in the response. |
| pageToken | string Example: pageToken=fDIwMjQtMDktMDlUMDU6MDA= The token to provide in order to request the next page of entity snapshot files. |
Responses
Response samples
- 200
- 400
- 404
- 500
{- "files": [
- {
- "path": "string",
- "size": 0
}
], - "pageToken": "string"
}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.
Postman: Single Sign-on Methods
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.
Access scope:
tableau:tcm_saml_configs:create. Added in December 2025. For more information, see Access scopes for UATs.
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:
entityDescriptororidpMetadataUrlis specified
Note: If both attributes are passed, theentityDescriptorattribute will take precedence.emailMappingis 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:
enabledistrueentityDescriptororidpMetadataUrlis specified
Note: If both attributes are passed, theentityDescriptorattribute will take precedence.idpConfigurationNameis specifiedemailMappingis 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:
path Parameters
| resourceId required | string <uuid> Example: 123e4567-e89b-12d3-a456-426614174000 ID of the tenant or site whose SAML configuration is being created. You can get the |
Request Body schema: application/jsonrequired
| enabled | boolean If |
| entityDescriptor | string IdP's metadata (.xml) file. Specify this value or |
| allowEmbeddedAuthentication | boolean (Site-specific) How users authenticate to the Tableau Cloud site when accessing embedded views. If |
| idpConfigurationName | string (Site-specific) Name of the authentication configuration. |
| idpConfigurationId | string (Site-specific) ID of the authentication configuration. Do not pass this attribute if you are creating a new authentication configuration. |
| idpMetadataUrl | string URL endpoint of the IdP's metadata. Specify this value or |
object (SiteAttributeMapping) |
Responses
Request samples
- Payload
{- "enabled": true,
- "entityDescriptor": "string",
- "allowEmbeddedAuthentication": false,
- "idpConfigurationName": "SAML - Contractors",
- "idpConfigurationId": "b2207590-024c-4a6e-ac4a-eca6eefabb2e",
- "attributeMapping": {
- "emailMapping": "NameID",
- "firstNameMapping": "FirstName",
- "lastNameMapping": "LastName",
- "fullNameMapping": "FullName",
- "useFullName": false,
- "emailAddressMapping": "Email"
}
}Response samples
- 201
- 400
- 409
- 500
{- "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"
}
}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.
Access scope:
tableau:tcm_saml_configs:delete. Added in December 2025. For more information, see Access scopes for UATs.
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:
path Parameters
| resourceId required | string <uuid> Example: 123e4567-e89b-12d3-a456-4266141740000 The ID of the tenant or site whose SAML configuration is being deleted. You can get the |
query Parameters
| idpConfigurationName | string (Site-specific) Name of the site-level authentication configuration. You can get the |
| idpConfigurationId | string (Site-specific) ID of the site-level authentication configuration. You can get the |
Responses
Response samples
- 200
- 500
"string"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.
Access scope:
tableau:tcm_saml_configs:read. Added in December 2025. For more information, see Access scopes for UATs.
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:
path Parameters
| resourceId required | string <uuid> Example: 123e4567-e89b-12d3-a456-426614174000 The ID of the tenant or site whose SAML configuration is being retrieved. You can get the |
query Parameters
| idpConfigurationName | string (Site-specific) Name of the site-level authentication configuration. You can get the |
| idpConfigurationId | string (Site-specific) ID of the site-level authentication configuration. You can get the |
Responses
Response samples
- 200
- 404
- 500
{- "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"
}
}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.
Access scope:
tableau:tcm_saml_configs:update. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| resourceId required | string <uuid> Example: 123e4567-e89b-12d3-a456-426614174000 The ID of the tenant or site whose SAML configuration is being updated. You can get the |
Request Body schema: application/jsonrequired
| enabled | boolean If |
| entityDescriptor | string IdP's metadata (.xml) file. Specify this value or |
| allowEmbeddedAuthentication | boolean (Site-specific) How users authenticate to the Tableau Cloud site when accessing embedded views. If |
| idpConfigurationName | string (Site-specific) Name of the authentication configuration. |
| idpConfigurationId | string (Site-specific) ID of the authentication configuration. Do not pass this attribute if you are creating a new authentication configuration. |
| idpMetadataUrl | string URL endpoint of the IdP's metadata. Specify this value or |
object (SiteAttributeMapping) |
Responses
Request samples
- Payload
{- "enabled": true,
- "entityDescriptor": "string",
- "allowEmbeddedAuthentication": false,
- "idpConfigurationName": "SAML - Contractors",
- "idpConfigurationId": "b2207590-024c-4a6e-ac4a-eca6eefabb2e",
- "attributeMapping": {
- "emailMapping": "NameID",
- "firstNameMapping": "FirstName",
- "lastNameMapping": "LastName",
- "fullNameMapping": "FullName",
- "useFullName": false,
- "emailAddressMapping": "Email"
}
}Response samples
- 200
- 400
- 404
- 500
{- "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"
}
}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.
Access scope:
tableau:tcm_auth_configs:read. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
Request Body schema: application/jsonrequired
| resourceIds required | Array of strings 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 Get tenant or List tenant sites method. Important: Providing multiple tenant IDs or site IDs that belong to different tenants can produce unexpected results. |
| requireMultipleIDPs | boolean (Site-specific) If true, returns the authentication configurations when the capability for multiple authentication methods is enabled. |
Responses
Request samples
- Payload
{- "resourceIds": [
- "123e4567-e89b-12d3-a456-426614174000",
- "123e4567-e89b-12d3-a456-426614174002",
- "123e4567-e89b-12d3-a456-426614174003"
], - "requireMultipleIDPs": true
}Response samples
- 200
- 400
- 404
- 500
[- {
- "resourceId": "123e4567-e89b-12d3-a456-426614174000",
- "authenticationType": "OIDC",
- "knownProviderAlias": "Salesforce",
- "idpConfigurationName": "Initial Salesforce",
- "idpConfigurationId": "TBD",
- "enabled": true
}
]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.
Access scope:
tableau:tcm_oidc_configs:update. Added in December 2025. For more information, see Access scopes for UATs.
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:
enabledistrueclientIdis the client ID from the IdP (for example,0oa111usf1gpUkVUt0h1)clientSecretis the client secret from the IdPauthorizationEndpointis the authorization endpoint (authorization_endpoint) from the IdP (for example,https://myidp.com/oauth2/v1/authorize)tokenEndpointis the token endpoint (token_endpoint) from the IdP (for example,https://myidp.com/oauth2/v1/token)userinfoEndpointis the user information endpoint (userinfo_endpoint) from the IdP (for example,https://myidp.com/oauth2/v1/userinfo)jwksUriis the JWK set URI endpoint (jwks_uri) from the IdP (for example,https://myidp.com/oauth2/v1/keys)
Authorizations:
path Parameters
| resourceId required | string Example: 123e4567-e89b-12d3-a456-426614174000 The ID of the tenant whose configuration is being created or updated. You can get a tenant ID by calling the Get Tenant method. |
Request Body schema: application/jsonrequired
| enabled required | boolean If |
| testLoginUri | string URL to validate the OIDC authentication configuration. |
| knownProviderAlias required | string Authentication type. For example, |
| salesforceDomain | string Salesforce authentication only. URL of the Salesforce domain. |
| allowEmbeddedAuthentication | boolean (Site-specific) How users authenticate to the Tableau Cloud site when accessing embedded views. If |
| clientId required | string OpenID Connect (OIDC) authentication only. Client ID from the identity provider (IdP). |
| clientSecret required | string OpenID Connect (OIDC) authentication only. Client secret from the identity provider (IdP). |
| discoveryEndpoint | string OpenID Connect (OIDC) authentication only. Location of the configuration discovery document for the identity provider (IdP) metadata. |
| authorizationEndpoint required | string OpenID Connect (OIDC) authentication only. Authorization endpoint from the identity provider (IdP). |
| tokenEndpoint required | string OpenID Connect (OIDC) authentication only. Token endpoint from the identity provider (IdP). |
| userinfoEndpoint required | string OpenID Connect (OIDC) authentication only. User information endpoint from the identity provider (IdP). |
| jwksUri required | string OpenID Connect (OIDC) authentication only. JWK set URI from the identity provider (IdP). |
| endSessionEndpoint | string (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). |
| customScope | string OpenID Connect (OIDC) authentication only. Specifies a custom scope user-related value to query the identity provider (IdP). |
| prompt | string OpenID Connect (OIDC) authentication only. If users are prompted for re-authentication and consent. |
| clientAuthentication | string OpenID Connect (OIDC) authentication only. Token endpoint authentication method. Default value is |
| essentialAcrValues | string OpenID Connect (OIDC) authentication only. List of essential Authentication Context Reference Class values used for authentication. |
| voluntaryAcrValues | string OpenID Connect (OIDC) authentication only. List of voluntary Authentication Context Reference Class values used for authentication. |
object (SiteAttributeMapping) | |
| idpConfigurationName | string (Site-specific) Name of the authentication configuration. |
| idpConfigurationId | string (Site-specific) ID of the authentication configuration. |
Responses
Request samples
- Payload
{- "enabled": true,
- "knownProviderAlias": "Salesforce",
- "salesforceDomain": "login.salesforce.com",
- "allowEmbeddedAuthentication": true,
- "clientId": "0oa111usf1gpUkVUt0h1",
- "clientSecret": "string",
- "discoveryEndpoint": "string",
- "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
{- "enabled": true,
- "knownProviderAlias": "Salesforce",
- "salesforceDomain": "login.salesforce.com",
- "allowEmbeddedAuthentication": true,
- "clientId": "0oa111usf1gpUkVUt0h1",
- "clientSecret": "string",
- "discoveryEndpoint": "string",
- "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"
}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.
Access scope:
tableau:tcm_oidc_configs:delete. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| resourceId required | string Example: 123e4567-e89b-12d3-a456-426614174000 The ID of the tenant whose configuration is being deleted. You can get a tenant ID by calling the Get Tenant method. |
Responses
Response samples
- 200
- 500
{- "enabled": true,
- "knownProviderAlias": "Salesforce",
- "salesforceDomain": "login.salesforce.com",
- "allowEmbeddedAuthentication": true,
- "clientId": "0oa111usf1gpUkVUt0h1",
- "clientSecret": "string",
- "discoveryEndpoint": "string",
- "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"
}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.
Access scope:
tableau:tcm_oidc_configs:read. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| resourceId required | string Example: 123e4567-e89b-12d3-a456-426614174000 The ID of the tenant whose configuration is being retrieved. You can get a tenant ID by calling the Get Tenant method. |
Responses
Response samples
- 200
- 404
- 500
{- "enabled": true,
- "knownProviderAlias": "Salesforce",
- "salesforceDomain": "login.salesforce.com",
- "allowEmbeddedAuthentication": true,
- "clientId": "0oa111usf1gpUkVUt0h1",
- "clientSecret": "string",
- "discoveryEndpoint": "string",
- "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"
}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.
Access scope:
tableau:tcm_saml_configs:read. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| resourceId required | string <uuid> The ID of the tenant or site whose SAML logs are being retrieved. You can get the |
Responses
Response samples
- 200
- 500
[- {
- "message": "string",
- "timestamp": 0,
- "logLevel": "string",
- "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1"
}
]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
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.
Access scope:
tableau:tcm_sites:create. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string The unique identifier of the tenant where the site is created. |
Request Body schema: application/jsonrequired
| name required | string The name of the site. 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 |
| contentUrl required | string The subdomain name of the site's URL. 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. |
| regionUUID | string <uuid> (Required if no The Unique ID of Tableau region where the site should be created. Provide this or the podUUID. Use the List Locations or List regions method to get the region IDs. |
| podUUID | string <uuid> (Required if no The Unique ID of Tableau pod where the site should be created. Provide this or the regionUUID. Use the List Locations method to get the pod IDs. |
Responses
Request samples
- Payload
{- "name": "string",
- "contentUrl": "string",
- "regionUUID": "8cc23c52-0d6e-468d-9156-952d9b566d86",
- "podUUID": "e2e568b4-35a7-4aa5-8686-107bbf9f050c"
}Response samples
- 201
- 400
- 409
- 500
{- "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
}
}
}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.
Access scope:
tableau:tcm_sites:read. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string The unique identifier for the tenant. |
query Parameters
| location | string The unique identifier for the Tableau region of the site. |
| maxResults | integer <int32> The maximum number of sites to include in the response. Default is no maximum. |
| pageToken | string The next page of results to return, typically the |
Responses
Response samples
- 200
- 400
{- "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"
}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.
Access scope:
tableau:tcm_sites:read. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string The unique identifier for the tenant. |
| siteId required | string The LUID for the site. |
Responses
Response samples
- 200
- 400
- 404
{- "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"
}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.
Access scope:
tableau:tcm_sites:delete. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string The unique identifier for the tenant. |
| siteId required | string The LUID for the site. |
Responses
Response samples
- 204
- 400
- 404
"string"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.
Access scope:
tableau:tcm_sites:update. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string The unique identifier for the tenant. |
| siteId required | string The LUID for the site. |
Request Body schema: application/jsonrequired
object (UserQuota) The limit of number of users with licenses for the viewer role for the site. | |
object (UserQuota) The limit of number of users with licenses for the viewer role for the site. | |
object (UserQuota) The limit of number of users with licenses for the viewer role for the site. |
Responses
Request samples
- Payload
{- "creatorCapacity": {
- "isDefaultCloudLimit": true,
- "capacity": 0
}, - "explorerCapacity": {
- "isDefaultCloudLimit": true,
- "capacity": 0
}, - "viewerCapacity": {
- "isDefaultCloudLimit": true,
- "capacity": 0
}
}Response samples
- 200
- 400
- 404
{- "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"
}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.
Access scope:
tableau:tcm_sites:create. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string The unique identifier for the tenant. |
| siteId required | string The LUID for the site. |
Request Body schema: application/jsonrequired
| ownerId required | string The LUID of the user that owns the project. |
Responses
Request samples
- Payload
{- "ownerId": "string"
}Response samples
- 201
- 400
- 404
- 409
- 500
{- "project": {
- "name": "string",
- "id": "string",
- "description": "string",
- "parentProjectId": "string",
- "contentPermissions": "string",
- "owner": {
- "id": "string"
}
}
}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.
Access scope:
tableau:tcm_sites:update. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string The unique identifier for the tenant. |
| siteId required | string The LUID for the site. |
Responses
Response samples
- 200
- 400
- 404
- 409
{- "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"
}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.
Access scope:
tableau:tcm_sites:update. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string <uuid> The unique identifier for the tenant. |
| siteId required | string <uuid> The LUID for the site. |
Request Body schema: application/jsonrequired
| name | string The name of the site. 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 |
| contentUrl | string 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 (_). |
Responses
Request samples
- Payload
{- "name": "string",
- "contentUrl": "string"
}Response samples
- 200
- 400
- 404
- 500
{- "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"
}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
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.
Access scope:
tableau:tcm_tenants:read. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string Example: 123e4567-e89b-12d3-a456-426614174000 The unique identifier of the tenant. |
Responses
Response samples
- 200
- 404
- 500
{- "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"
}
}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
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.
Access scope:
tableau:tcm_users:create. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string <uuid> The unique identifier of the tenant. |
Request Body schema: application/jsonrequired
| userName required | string The unique username of the user. |
string The email address of the user. | |
| language | string Enum: "DE_DE" "EN_GB" "EN_US" "ES_ES" "FR_CA" "FR_FR" "IT_IT" "JA_JP" "KO_KR" "NL_NL" "PT_BR" "SV_SE" "TH_TH" "ZH_CN" "ZH_TW" 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 email language that the site admin can set. |
| locale | string Enum: "ar_AE" "ar_BH" "ar_DZ" "ar_EG" "ar_IQ" "ar_JO" "ar_KW" "ar_LB" "ar_LY" "ar_MA" "ar_OM" "ar_QA" "ar_SA" "ar_SD" "ar_SY" "ar_TN" "ar_YE" "be_BY" "bg_BG" "ca_ES" "cs_CZ" "da_DK" "de_AT" "de_CH" "de_DE" "de_LU" "el_CY" "el_GR" "en_AU" "en_CA" "en_GB" "en_IE" "en_IN" "en_MT" "en_NZ" "en_PH" "en_SG" "en_US" "en_ZA" "es_AR" "es_BO" "es_CL" "es_CO" "es_CR" "es_DO" "es_EC" "es_ES" "es_GT" "es_HN" "es_MX" "es_NI" "es_PA" "es_PE" "es_PR" "es_PY" "es_SV" "es_US" "es_UY" "es_VE" "et_EE" "fi_FI" "fr_BE" "fr_CA" "fr_CH" "fr_FR" "fr_LU" "hi_IN" "hr_HR" "hu_HU" "in_ID" "is_IS" "it_CH" "it_IT" "iw_IL" "ja_JP" "ko_KR" "lt_LT" "lv_LV" "mk_MK" "ms_MY" "mt_MT" "nl_BE" "nl_NL" "no_NO" "pl_PL" "pt_BR" "pt_PT" "ro_RO" "ru_RU" "sk_SK" "sl_SI" "sq_AL" "sr_BA" "sr_ME" "sr_RS" "sv_SE" "th_TH" "tr_TR" "uk_UA" "vi_VN" "zh_CN" "zh_HK" "zh_SG" "zh_TW" The locale of the user. |
Array of objects (UserLinkRoleDTO) The tenant roles for the user. | |
Array of objects (UserSiteRoleDTO) The site roles of the user. |
Responses
Request samples
- Payload
{- "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
{- "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "transactionId": "string",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}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.
Access scope:
tableau:tcm_users:read. Added in December 2025. For more information, see Access scopes for UATs.
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:
path Parameters
| tenantId required | string <uuid> The unique identifier of the tenant used to filter the response. |
query Parameters
string Example: email=xyz@tableau.com The email address of a user used to filter the response. | |
| userId | string <uuid> Example: userId=83e34e72-5c71-4858-93b5-945a144e6e70 The unique identifier of a user used to filter responses. |
| tcmRoleName | string Enum: "TCM_ADMIN" "NULL" The tenant role used to filter the response. |
| maxSiteRole | string Enum: "SiteAdministratorExplorer" "SupportUser" "ExplorerCanPublish" "Explorer" "Unlicensed" "Viewer" "Creator" "SiteAdministratorCreator" The site role with the highest permissions used to filter the response. |
| userName | string The name of a user used to filter the response. |
| pageToken | string [ 0 .. 1000 ] characters The token used to get the next page of results. |
| maxResults | integer <int32> Example: maxResults=100 The maximum number of results per page. Default maximum is 100. |
| excludeRoles | boolean If true, site and tenant role information is not returned, only return user details. Default is false. |
Responses
Response samples
- 200
- 400
- 401
- 403
- 500
{- "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "transactionId": "string",
- "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0"
}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.
Access scope:
tableau:tcm_users_bulk_operation:create. Added in December 2025. For more information, see Access scopes for UATs.
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:
path Parameters
| tenantId required | string <uuid> The unique identifier of the tenant. |
query Parameters
| siteId | string <uuid> The unique identifier of the site. |
| idp | string Enum: "OpenID" "SAML" "TableauIDWithMFA" The authentication type configured for the tenant. |
Request Body schema: multipart/form-datarequired
| file required | string <binary> A Note: When importing, make sure your CSV file is in UTF-8 format without a byte order mark (BOM). The expected columns, in the required order, are:
|
Responses
Response samples
- 202
- 400
- 403
- 404
- 405
- 409
- 500
{- "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39"
}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 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:
- Make a request to the TCM List tenant sites method, which returns the LUIDs of all sites on a tenant.
- Sign in to the Tableau REST API then, for each of the site LUIDs returned for the tenant, use Remove User from site with the
mapAssetsToquery parameter set to use the LUID of the new owner for each site. - 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.
Access scope:
tableau:tcm_users:delete. Added in December 2025. For more information, see Access scopes for UATs.
This method returns an identifier for an asynchronous job. To see progress and results, use List status for job.
Authorizations:
path Parameters
| tenantId required | string <uuid> The unique identifier of the tenant. |
Request Body schema: application/jsonrequired
| userIds required | Array of strings <uuid> unique [ items <uuid > ] A comma separated list of user LUIDs to delete. |
Responses
Request samples
- Payload
{- "userIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}Response samples
- 202
- 400
- 403
- 404
- 405
{- "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39"
}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.
Access scope:
tableau:tcm_users:read. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string <uuid> The unique identifier of the tenant. |
Request Body schema: application/jsonrequired
| userIds required | Array of strings <uuid> unique [ items <uuid > ] Comma separated list of user LUIDs to get details about. |
Responses
Request samples
- Payload
{- "userIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}Response samples
- 200
- 400
- 401
- 403
- 500
{- "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"
}
]
}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 method. Without an additional license, log files take 2 hours to become available. For more information see, Activity Log.
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:
- Make a request to the TCM List tenant sites method, which returns the LUIDs of all sites on a tenant.
- Sign in to the Tableau REST API then, for each of the site LUIDs returned for the tenant, use Remove User from site with the
mapAssetsToquery parameter set to use the LUID of the new owner for each site. - 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.
Access scope:
tableau:tcm_users:delete. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string <uuid> The unique identifier of the tenant. |
| userId required | string <uuid> The unique identifier of the user. |
Responses
Response samples
- 202
- 400
- 403
- 404
- 405
{- "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39"
}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.
Access scope:
tableau:tcm_users:read. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string <uuid> The unique identifier of the tenant. |
| userId required | string <uuid> The unique identifier of the user. |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "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"
}
}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.
Access scope:
tableau:tcm_users:update. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| tenantId required | string <uuid> The unique identifier of the tenant. |
| userId required | string <uuid> The unique identifier of the user. |
Request Body schema: application/jsonrequired
| language | string Enum: "DE_DE" "EN_GB" "EN_US" "ES_ES" "FR_CA" "FR_FR" "IT_IT" "JA_JP" "KO_KR" "NL_NL" "PT_BR" "SV_SE" "TH_TH" "ZH_CN" "ZH_TW" The language to apply to the user. |
| locale | string Enum: "ar_AE" "ar_BH" "ar_DZ" "ar_EG" "ar_IQ" "ar_JO" "ar_KW" "ar_LB" "ar_LY" "ar_MA" "ar_OM" "ar_QA" "ar_SA" "ar_SD" "ar_SY" "ar_TN" "ar_YE" "be_BY" "bg_BG" "ca_ES" "cs_CZ" "da_DK" "de_AT" "de_CH" "de_DE" "de_LU" "el_CY" "el_GR" "en_AU" "en_CA" "en_GB" "en_IE" "en_IN" "en_MT" "en_NZ" "en_PH" "en_SG" "en_US" "en_ZA" "es_AR" "es_BO" "es_CL" "es_CO" "es_CR" "es_DO" "es_EC" "es_ES" "es_GT" "es_HN" "es_MX" "es_NI" "es_PA" "es_PE" "es_PR" "es_PY" "es_SV" "es_US" "es_UY" "es_VE" "et_EE" "fi_FI" "fr_BE" "fr_CA" "fr_CH" "fr_FR" "fr_LU" "hi_IN" "hr_HR" "hu_HU" "in_ID" "is_IS" "it_CH" "it_IT" "iw_IL" "ja_JP" "ko_KR" "lt_LT" "lv_LV" "mk_MK" "ms_MY" "mt_MT" "nl_BE" "nl_NL" "no_NO" "pl_PL" "pt_BR" "pt_PT" "ro_RO" "ru_RU" "sk_SK" "sl_SI" "sq_AL" "sr_BA" "sr_ME" "sr_RS" "sv_SE" "th_TH" "tr_TR" "uk_UA" "vi_VN" "zh_CN" "zh_HK" "zh_SG" "zh_TW" The new locale to apply to the user. |
string Email address of the user to be updated. | |
Array of objects (PatchUserLinkRoleDTO) The tenant roles of the user. | |
Array of objects (PatchUserSiteRoleDTO) Site role of the user |
Responses
Request samples
- Payload
{- "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
{- "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39"
}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.
Access scope:
tableau:tcm_users_bulk_operation:read. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| jobId required | string <uuid> The unique identifier of the job whose details are to be retrieved. |
query Parameters
| showDetailed | boolean Example: showDetailed=true If true, show the detailed status of each user operation in paginated format. Default is false. |
| pageToken | string [ 0 .. 1000 ] characters The pageToken used for getting next set of records. Only valid if |
Responses
Response samples
- 200
- 400
- 403
- 404
- 405
- 500
{- "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"
}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.
Access scope:
tableau:tcm_users_resources:read. Added in December 2025. For more information, see Access scopes for UATs.
Authorizations:
path Parameters
| userName required | string The username of the user to get resource details for. |
query Parameters
| resourceId | string <uuid> The unique identifier of a site or tenant optionally used to filter results. |
| resourceType | string Enum: "SITE" "TENANT" The type of resource optionally used to filter results. |
| authType | string Enum: "OpenID" "SAML" "TableauIDWithMFA" "DEFAULT" The type of user authentication optionally used to filter results. |
| authUserId | string The unique identifier of the user optionally used to filter results. |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "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"
}