---
schema_version: "1"
id: 8e853cf43c0cd9e99648f077a7b71456d586e8b10c7bca5bdb390e8b85a5dfe2
title: Site Methods
collection: tableau
version: next
locale: en-us
portal_url: https://docs.salesforce.com/tableau/next/en-us/api/rest_api/REST/rest_api_ref_site.md
canonical_url: https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_ref_site.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 5752880389c9d99095035c14b2fb9725e7dd63e45dc01c38b3d811d7471e8f9d
description: "Using the site methods of the Tableau Server REST API you can:"
---
[Skip to main content](#main-content)

# Site Methods

Using the site methods of the Tableau Server REST API you can:

- List sites on a server or get details of a specific site
- Create, update, or delete a site
- List views in a site
- List authentication configurations on a site (Tableau Cloud only)

This functionality relates to the UI elements and concepts described at: [Sites Overview](https://help.tableau.com/current/server-linux/en-us/sites_intro.htm).

## Use Postman

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

[Postman: Sites](https://www.postman.com/salesforce-developers/salesforce-developers/folder/fon10lz/sites)

## Create Site

Creates a site on Tableau Server. To make changes to an existing site, call [Update Site](#update_site). This method isn’t available for Tableau Cloud.

For more information, see [Work with Sites](https://help.tableau.com/current/server/en-us/help.htm#sites_intro.htm) and [Add or Edit Sites](https://help.tableau.com/current/server/en-us/help.htm#sites_add.htm) in the Tableau Server documentation.

**Note**: After you create a resource, the server updates its search index. If you make a query immediately to see a new resource, the query results might not be up to date.

#### URI

POST /api/api-version/sites

#### Request Body

```
<tsRequest>
  <site
    name="site-name"
    contentUrl="content-url"
    adminMode="admin-mode"
    storageQuota="limit-in-megabytes"
    disableSubscriptions="disable-subscriptions"
    editingFlowsEnabled="editing-flows-enabled-flag"
    schedulingFlowsEnabled="scheduling-flows-enabled-flag"
    allowSubscriptionAttachments="allow-subcription-attachments-flag"
    guestAccessEnabled="guest-access-enabled-flag"
    cacheWarmupEnabled="cache-warmup-enabled-flag [REMOVED IN API 3.19]"
    commentingEnabled="commenting-enabled-flag"
    revisionHistoryEnabled="enable-revision-history-flag"
    revisionLimit="num-revision-limit"
    subscribeOthersEnabled="subscribe-others-enabled-flag"
    extractEncryptionMode="extractEncryptionMode"
    requestAccessEnabled="request-access-enabled-flag"
    runNowEnabled="run-now-enabled-flag"
    userQuota="all-license-limit-total"
    tierCreatorCapacity="creator-license-limit"
    tierExplorerCapacity="explorer-license-limit"
    tierViewerCapacity="viewer-license-limit"
    dataAlertsEnabled="data-alerts-enabled-flag"
    commentingMentionsEnabled="commenting-mentions-enabled-flag"
    catalogObfuscationEnabled="catalog-obfuscation-enabled-flag"
    flowAutoSaveEnabled="flow-auto-save-enabled-flag"
    runNowEnabled="run-now-enabled-flag"
    metricsContentTypeEnabled="metrics-content-type-enabled-flag"
    notifySiteAdminsOnThrottle="notify-site-admins-on-throttle-flag"
    authoringEnabled="authoring-enabled-flag"
    customSubscriptionEmailEnabled="custom-subscription-email-enabled-flag"
    customSubscriptionEmail="custom-subscription-email"
    customSubscriptionFooterEnabled="custom-subscription-footer-enabled-flag"
    customSubscriptionFooter="custom-subscription-footer"
    askDataMode="ask-data-mode"
    namedSharingEnabled="named-sharing-enabled-flag"
    catalogingEnabled="cataloging-enabled-flag"
    derivedPermissionsEnabled="derived-permissions-enabled-flag"
    userVisibilityMode="user-visibility-mode"
    useDefaultTimeZone="default-time-zone-flag"
    timeZone="time-zone"
    autoSuspendRefreshEnabled="auto-suspend-refresh-enabled-flag"
    autoSuspendRefreshInactivityWindow="auto-suspend-refresh-inactivity-window"
    explainDataEnabled="explainDataEnabled"
    dqwSubscriptionsEnabled="dqw-subscriptions-enabled"
    groupAssertionsEnabled="group-assertions-enabled-flag"
    groupAssertionsSAMLEnabled="group-assertions-saml-enabled-flag"
    groupAssertionsOIDCEnabled="group-assertions-oidc-enabled-flag"
    groupAssertionsConnectedAppsEnabled="group-assertions-connected-apps-enabled-flag"
    groupSetsEnabled="group-sets-enabled-flag"
    recycleBinEnabled="recycle-bin-enabled-flag" />
</tsRequest>
```

#### Attribute Values

<table class="api-parameters-table">
                                <colgroup>
                                    <col class="api-parameters-table-col-1-extra-wide">
                                    <col>
                                </colgroup>
                                <tbody>
                                    <tr>
                                        <td><span class="api-placeholder">site-name</span>
                                        </td>
                                        <td>The name of the site.</td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">content-url</span>
                                        </td>
                                        <td>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 (_). 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.</td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">admin-mode</span>
                                        </td>
                                        <td>
                                            <p>(Optional) Specify <span class="api-command-ref">ContentAndUsers</span> to allow site administrators to use the server
								interface and <code>tabcmd</code> commands to add and remove users. (Specifying this option doesn’t give site administrators
								permissions to manage users using the REST API.) Specify <span class="api-command-ref">ContentOnly</span> to prevent site
								administrators from adding or removing users. (Server administrators can always add or remove users.)</p>
                                            <p class="note"><strong>Note:</strong> You can’t set <span class="api-command-ref">adminMode</span> to 									<span class="api-command-ref">ContentOnly</span> and also set <span class="api-command-ref">userQuota</span>.
								The default value is <span class="api-command-ref">ContentAndUsers</span>.</p>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">storage-quota</span>
                                        </td>
                                        <td>(Optional) The maximum amount of space for the new site, in megabytes. If you set a quota and the site exceeds it,                                     publishers will be prevented from uploading new content until the site is under the limit again.</td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">disable-subscriptions</span>
                                        </td>
                                        <td>
                                            <p>(Optional) Specify <span class="api-command-ref">true</span> to prevent users from being able to subscribe to                                     workbooks on the specified site. The default is <span class="api-command-ref">false</span>.</p>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">editing-flows-enabled-flag</span>
                                        </td>
                                        <td>
                                            <p>(Optional) Specify <span class="api-command-ref">true</span> to enable and <b>false</b> to disable editing flows for a site. For more information on flows, see <a href="https://help.tableau.com/current/prep/en-us/prep_conductor_config_server_overview.htm" target="_blank">Enable and Configure Tableau Prep Conductor</a>.</p>
                                            <p>The default is set to <b>true</b>, which means editing flows is enabled by default. For more information, see <a href="https://help.tableau.com/v0.0/prep/en-us/prep_conductor_configure_server.htm#implication-of-disabling-tableau-prep-conductor">Implication of disabling Tableau Prep Conductor</a>. 										</p>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">scheduling-flows-enabled-flag</span>
                                        </td>
                                        <td>
                                            <p>(Optional) Specify <span class="api-command-ref">true</span> to enable and <b>false</b> to disable scheduling flows for a site. For more information on flows, see <a href="https://help.tableau.com/current/prep/en-us/prep_conductor_config_server_overview.htm" target="_blank">Enable and Configure Tableau Prep Conductor</a>.</p>
                                            <p>The default is set to <b>true</b> which means scheduling flows is enabled by default. For more information, see <a href="https://help.tableau.com/v0.0/prep/en-us/prep_conductor_configure_server.htm#implication-of-disabling-tableau-prep-conductor">Implication of disabling Tableau Prep Conductor</a>. 										</p>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">flows-enabled-flag</span>
                                        </td>
                                        <td>
                                            <p>The <span class="api-command-ref">flowsEnabled</span> attribute is deprecated as of API version 3.10. 										</p>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">allow-subscription-attachments-flag</span>
                                        </td>
                                        <td>
                                            <p>(Optional) If <span class="api-command-ref">true</span>, and subscription to attachments is enabled on the server, then
									 users can create subscriptions that send an email with images of a workbook or view in a PDF attachment. The default
									value is <span class="api-command-ref">true</span>. If subscription to attachments is disabled in the server settings,
									then making this value <span class="api-command-ref">true</span> will have no effect.
									Default is <span class="api-command-ref">true</span>.</p>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">guest-access-enabled-flag</span>
                                        </td>
                                        <td>
                                            <p>(Optional) Specify <span class="api-command-ref">true</span>  to enable and <b>false</b> to disable the ability for guests, users without specific site access permission, to access the site.
								Default is <span class="api-command-ref">false</span>.</p>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">cache-warmup-enabled-flag</span>
                                        </td>
                                        <td>
                                            <p class="note">This attribute is removed in API 3.19 and later (Tableau Cloud September 2021). For current
									methods to improve Tableau performance see, <a href="https://help.tableau.com/current/server/en-us/data_acceleration.htm" target="_blank" rel="noreferrer">View Acceleration</a>.
								</p>
                                            <p>(Optional) Set this value to <span class="api-command-ref">true</span>  to enable cache warm up to improve workbook load time.  Set the value to <b>false</b> to disable cache warmup.
								Default is <span class="api-command-ref">true</span>.</p>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">commenting-enabled-flag</span>
                                        </td>
                                        <td>
                                            <p>(Optional) Specify <span class="api-command-ref">true</span> to enable and <b>false</b> to disable the ability for user comments on views in the site.
								Default is <span class="api-command-ref">true</span>.</p>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">revision-history-enabled</span>
                                        </td>
                                        <td>
								(Optional) <span class="api-command-ref">true</span> if the site maintains revisions for changes to
								workbooks and data sources; otherwise, <span class="api-command-ref">false</span>. The default is
								<span class="api-command-ref">false</span>.
 							</td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">num-revision-limit</span>
                                        </td>
                                        <td> 								(Optional) An integer between 2 and 10000 to indicate a limited number of revisions for content. 								<p>									Setting this value to -1 removes any value that was set previously, and effectively removes  							any limit to the number of revisions that are maintained.</p></td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">subscribe-others-enabled-flag</span>
                                        </td>
                                        <td>
                                            <p>									(Optional) Specify <span class="api-command-ref">true</span> to enable and <b>false</b> to disable the ability for view owners to subscribe other users to a view.
								Default is <span class="api-command-ref">true</span>.</p>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">extractEncryptionMode</span>
                                        </td>
                                        <td>
                                            <p>(Optional) Specify <b>enforced</b>, <b>enabled</b>, or <b>disabled</b>.

		     	                 Default is <span class="api-command-ref">disabled</span>.
				For more information, see <a href="https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_ref_extract_and_encryption.htm" class="xref">Extract and Encryption Methods</a>.								</p>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">requestAccessEnabled</span>
                                        </td>
                                        <td>(Optional) Specify <span class="api-command-ref">true</span> to allow users  send access request emails to content or project owners. Specify <span class="api-command-ref">false</span> if you don’t want users to be able to request access. The default is <span class="api-command-ref">false</span>.</td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">runNowEnabled</span>
                                        </td>
                                        <td>
                                            <p>(Optional) Specify <span class="api-command-ref">true</span> to allow users to run flows, extract refreshes, and schedules manually. Specify <span class="api-command-ref">false</span> if you don’t want users to be able to run flows, extract refreshes, and subscriptions manually. The default is <span class="api-command-ref">true</span>. If this attribute is set to <span class="api-command-ref">false</span>, the following methods will fail and will return an error message.</p>
                                            <p><a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_flow.htm#run_flow_now">Run Flow Now</a>
                                            </p>
                                            <p><a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_flow.htm#run_flow_task" target="_blank">Run Flow Task</a>
                                            </p>
                                            <p><a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_datasources.htm#update_data_source_now" target="_blank">Update Data Source Now</a>
                                            </p>
                                            <p><a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_jobs_tasks_and_schedules.htm#run_extract_refresh_task" target="_blank">Run Extract Refresh Task</a>
                                            </p>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="2">
                                            <p class="note"><b>Licensing attributes</b>
                                                <br>
                                                <br>For user-based license types, the maximum number of users is set by the licenses activated on that server.
									For core-based licensing, there’s no limit to the number of users; if you specify a maximum value, only licensed
									users are counted, and server administrators are excluded.
										<br><br>The REST API enables administrators to set licensing
										limits below the purchased maximum with two types of license-related attributes:
										<br> - User Quota - The total maximum number of licenses currently configured for a site.
										<br> - Tiered Capacities - If set, the configured maximum license count for each license type (role).

								  <br><br>Online administrators can get these attributes. An on-premises server administrator can both get and set them
										but if license maximums are set using one attribute kind then the value(s) of the other kind must be null. Setting
										values for both kinds of attributes will result in an error.
								  <br><br> For more information, see
							<a href="https://help.tableau.com/current/server/en-us/license_server_overview.htm" rel="noopener noreferrer" target="_blank">Licensing Overview</a>.
								</p>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <p>User quota</p>
                                            <p><span class="api-placeholder">all-license-limit-total</span>
                                            </p>
                                        </td>
                                        <td>
                                            <p>(Optional) The maximum total number of users with Creator, Explorer, or Viewer licenses currently allowed on a site.</p>
                                            <p>On-premises server administrators can set <code>userQuota</code> with the following rules: The number can't
									exceed the number of licenses activated for the site; and if tiered capacity attributes are set, then
									<code>userQuota</code> will equal the sum of the tiered capacity values, and attempting to set
									<code>userQuota</code> will cause an error.</p>
                                            <p>An administrator can revert the license limit to number of activated licenses on the site, or shift control of license
									limits to tiered capacities values, by omitting <code>userQuota</code> from a Create Site or Update Site request, or
									making its value -1. </p>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <p>Tiered capacity attributes</p>
                                            <p><span class="api-placeholder">creator-license-limit</span>
                                                <br><span class="api-placeholder">explorer-license-limit</span>
                                                <br><span class="api-placeholder">viewer-license-limit</span>
                                            </p>
                                        </td>
                                        <td>
                                            <p>(Optional) The maximum number of licenses for users with the Creator,
									Explorer, or Viewer role, respectively, allowed on a site. </p>
                                            <p>On-premises server administrators can set tiered capacity attributes with the following rules: the number can't
									exceed the number of licenses of a given type that are activated for the site; a value must be supplied for
									every tiered capacity license type every time any one or more of them is set.</p>
                                            <p>A value of -1 removes the administrator-applied limit for a license type, and reverts the limit to the number of
									activated licenses configured for the role. Setting the value of a tiered capacity to -1 will not automatically
									increase the limit if more licenses are purchased and activated for the role in the future. </p>
                                            <p>To use role-specific license limits, the <code>userQuota</code> must be set to null by omitting the attribute from
									Create Site or Update Site request, or setting its value to -1. Attempting to set values for both tiered capacities
									and <code>userQuota</code> will result in an error.</p>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <p><span class="api-placeholder">data-alerts-enabled-flag</span>
                                            </p>
                                        </td>
                                        <td>(Optional, boolean) If <code>true</code>, data alerts are enabled on the site. Default value is <code>true</code>.</td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <p><span class="api-placeholder">commenting-mentions-enabled-flag</span>
                                            </p>
                                        </td>
                                        <td>(Optional, boolean) If <code>true</code>, mentions for commenting are enabled. Default value is <code>true</code>.</td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <p><span class="api-placeholder">catalog-obfuscation-enabled-flag</span>
                                            </p>
                                        </td>
                                        <td>(Optional, boolean) If <code>true</code>, catalog obfuscation is enabled on the site. Default value is <code>true</code>.</td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <p><span class="api-placeholder">flow-auto-save-enabled-flag</span>
                                            </p>
                                        </td>
                                        <td>(Optional, boolean) If <code>true</code>, flow auto save is enabled on the site.
							Default value is <code>true</code>.</td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <p><span class="api-placeholder">run-now-enabled-flag</span>
                                            </p>
                                        </td>
                                        <td>(Optional, boolean) If <code>true</code>, run now for schedules is enabled which allows non-administrators to run schedules manually. Default value is <code>true</code>.</td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <p><span class="api-placeholder">metrics-content-type-enabled-flag</span>
                                            </p>
                                        </td>
                                        <td>(Optional, boolean) If <code>true</code>, the metrics content type is enabled on the server. Default value is <code>true</code>.</td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <p><span class="api-placeholder">notify-site-admins-on-throttle-flag</span>
                                            </p>
                                        </td>
                                        <td>(Optional, boolean) If <code>true</code>, site admins will be notified if their background jobs are being throttled. Default value is <code>false</code>.</td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <p><span class="api-placeholder">authoring-enabled-flag</span>
                                            </p>
                                        </td>
                                        <td>(Optional, boolean) If <code>true</code>, web authoring is enabled. Default value is <code>true</code>.</td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <p><span class="api-placeholder">custom-subscription-email-enabled-flag</span>
                                            </p>
                                        </td>
                                        <td>(Optional, boolean) If <code>true</code>, sending custom subscription email is enabled. If set to false after being set true, the current custom subscription email is voided. Default value is <code>false</code>.</td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <p><span class="api-placeholder">custom-subscription-email</span>
                                            </p>
                                        </td>
                                        <td>A valid custom email that will be sent if <span class="api-placeholder">customSubscriptionEmailEnabled</span> is set to true. Default value is <code>false</code>.</td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <p><span class="api-placeholder">custom-subscription-footer-enabled-flag</span>
                                            </p>
                                        </td>
                                        <td>(Optional, boolean) If <code>true</code>, a custom footer will be included on subscription and data alert emails. If set to false after being set true, the current custom subscription footer is voided. Default value is <code>false</code>.</td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <p><span class="api-placeholder">custom-subscription-footer</span>
                                            </p>
                                        </td>
                                        <td>A custom subscription footer that will be added to subscription and data alerts if <span class="api-placeholder">customSubscriptionFooterEnabled</span> is set to true. Default value is <code>false</code>.</td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <p><span class="api-placeholder">ask-data-mode</span>
                                            </p>
                                        </td>
                                        <td>The mode of the ask data feature on the site. Can be set to one of two values:
								<ul><li><code>DisabledByDefault</code> - Enables creation of Ask Data lenses for all published data sources. Data sources do not have lenses created automatically.</li><li><code>DisabledAlways</code> - Disables Ask Data lenses and related content throughout the site. Preserves information about lenses and data source indexes, which are restored if Ask Data is re-enabled.</li></ul>
							Default value is <code>DisabledByDefault</code>. For more information, see <a href="https://help.tableau.com/current/server/en-us/ask_data_enable.htm" ref="noreferrer" target="_blank">Disable or Enable Ask Data for a Site</a>.</td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <p><span class="api-placeholder">named-sharing-enabled-flag</span>
                                            </p>
                                        </td>
                                        <td>(Optional, boolean) If <code>true</code>, named sharing is enabled. Default value is <code>true</code>.</td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <p><span class="api-placeholder">cataloging-enabled-flag</span>
                                            </p>
                                        </td>
                                        <td>(Optional, boolean) If <code>true</code>, data catalog is enabled for the site. Default value is <code>true</code>.</td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <p><span class="api-placeholder">derived-permissions-enabled-flag</span>
                                            </p>
                                        </td>
                                        <td>(Optional, boolean) If <code>true</code>, derived permissions are enabled for the site. Default value is <code>false</code>.</td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <p><span class="api-placeholder">user-visibility-mode</span>
                                            </p>
                                        </td>
                                        <td>(Optional, string) When the value is <code>FULL</code> users can see the user of other site users. If the value is <code>LIMITED</code> User information on the site is not visible to other users. Default value is <span class="api-placeholder">FULL</span>. For more information, see <a href="https://help.tableau.com/current/server/en-us/user_visibility.htm" ref="noreferrer" target="_blank">User Visibility</a>.</td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">use-default-time-zone</span>
                                        </td>
                                        <td>Optional, boolean) Set this to <code>true</code>, if you want the <span class="api-placeholder">time-zone</span> attribute use the Server time Zone at run time. This attribute is set to the official IANA name.&nbsp; If this is set to <code>false</code>, the <span class="api-placeholder">time-zone</span> value must be specified.</td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">time-zone</span>
                                        </td>
                                        <td>(Optional, string) Use this attribute to specify a time zone other than the Server time zone at run time. Only canonical names in the  official IANA database are supported. You can find the list of the canonical time zone names on <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones">Wikipedia</a>.</td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">autoSuspendRefreshEnabled</span>
                                        </td>
                                        <td>(Optional) Tableau can automatically suspend extract refresh tasks for inactive workbooks to save resources. Specify&nbsp;true&nbsp;to enable or false&nbsp;to disable. Default is&nbsp;true.</td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">autoSuspendRefreshInactivityWindow</span>
                                        </td>
                                        <td>(Optional) An integer from 7 through 100 to indicate the number of days to wait before automatically suspending extract refresh tasks for inactive workbooks. The default is 30.</td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">explainDataEnabled</span>
                                        </td>
                                        <td>
                                            <p>(Optional, boolean) Set this attribute to <code>false</code> to disable Explain Data capabilities for a site. By default, this attribute is set to <code>true</code>. For more information about this site setting, see one of the following topics:</p>
                                            <ul>
                                                <li>For Tableau Cloud, see <a href="https://help.tableau.com/current/online/en-us/explain_data_enable.htm" target="_blank">Disable or Enable Explain Data for a Site</a>.</li>
                                                <li>For Tableau Server, see <a href="https://help.tableau.com/current/server/en-us/explain_data_enable.htm" target="_blank">Disable or Enable Explain Data for a Site</a>.</li>
                                            </ul>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">dqwSubscriptionsEnabled</span>
                                        </td>
                                        <td>
                                            <p>(Optional, boolean) Set this attribute to <code>false</code> to exclude data quality warnings (DQWs) from subscription emails. By default, this attribute is set to <code>true</code>. For more information about this site setting, see one of the following topics:</p>
                                            <ul>
                                                <li>For Tableau Cloud, see <a href="https://help.tableau.com/current/online/en-us/dm_dqw#subscriptions.htm" target="_blank">Disable or Enable Explain Data for a Site</a>.</li>
                                                <li>For Tableau Server, see <a href="https://help.tableau.com/current/server/en-us/dm_dqw#subscriptions.htm" target="_blank">Disable or Enable Explain Data for a Site</a>.</li>
                                            </ul>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">groupAssertionsEnabled</span>
                                        </td>
                                        <td>(Optional, boolean) Set to <code>true</code> to allow assertions into group membership using session info. Set to <code>false</code> if you do not want users to be able to be asserted in to groups. The default is <code>false</code>. If this attribute is set to false, it will disable group assertions for the entire site, including the following settings:
    <ul><li><span class="api-placeholder">groupAssertionsSAMLEnabled</span></li><li><span class="api-placeholder">groupAssertionsOIDCEnabled</span></li><li><span class="api-placeholder">groupAssertionsConnectedAppsEnabled</span></li></ul></td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">groupAssertionsSAMLEnabled</span>
                                        </td>
                                        <td>(Optional, boolean) Set to <code>true </code>to allow assertions into group membership using SAML session info. Set to <code>false </code>if you don’t want users to be able to be asserted in to groups. The default is <code>false</code>. If this attribute is set to false, it will disable group assertions for SAML sessions.</td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">groupAssertionsOIDCEnabled</span>
                                        </td>
                                        <td>
                                            <p>(Optional, boolean) Set to <code>true </code>to allow assertions into group membership using OIDC session info. Set to <code>false </code>if you don’t want users to be able to be asserted in to groups. The default is <code>false</code>. If this attribute is set to false, it will disable group assertions for OIDC sessions.</p>
                                            <p class="note"><b>Note</b>: This parameter only applies to Tableau Cloud.</p>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">groupAssertionsConnectedAppsEnabled</span>
                                        </td>
                                        <td> (Optional, boolean) Set to <code>true </code>to allow assertions into group membership using Connected App JWT tokens. Set to <code>false </code>if you don’t want users to be able to be asserted in to groups via connected apps. The default is <code>false</code>. If this attribute is set to false, it will disable group assertions for JWT connected app connections.</td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">groupSetsEnabled</span>
                                        </td>
                                        <td>(Optional, boolean) Set to <code>true </code>to allow groups sets. Set to <code>false </code>if you don’t want group sets support for the site. The default is <code>false</code>. If this attribute is set to false, it will disable group sets for the site.</td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">recycleBinEnabled</span>
                                        </td>
                                        <td>(Optional, boolean) Set to <code>true</code> to enable the Recycle Bin. Set to <code>false</code> to disable it. The default is <code>true</code>.</td>
                                    </tr>
                                </tbody>
                            </table>

#### Permissions

This method can only be called by server administrators.

#### Required scope for JWT authorization

Introduced in Tableau Server 2022.3 (API 3.17).

```
tableau:sites:create
```

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

#### Response Code

201

#### Response Body

```
<tsResponse>
  <site id="site-id"
    name="site-name"
    contentUrl="content-url"
    adminMode="admin-mode"
    disableSubscriptions="disable-subscriptions-flag"
    state="active-or-suspended"
    revisionHistoryEnabled="history-enabled-flag"
    revisionLimit="max-num-revisions"
    allowSubscriptionAttachments="allow-subcription-attachments-flag"
    subscribeOthersEnabled="enable-subscription-of-others-flag"
    guestAccessEnabled="guest-access-enabled-flag"
    cacheWarmupEnabled="cache-warmup-enabled-flag [REMOVED IN API 3.19]"
    commentingEnabled="commenting-enabled-flag"
    editingFlowsEnabled="editing-flows-enabled-flag"
    schedulingFlowsEnabled="scheduling-flows-enabled-flag"
    extractEncryptionMode="encryption-mode"
    catalogingEnabled="cataloging-enabled-flag"
    derivedPermissionsEnabled="derived-permissions-enabled-flag"
    requestAccessEnabled="request-access-enabled-flag"
    runNowEnabled="run-now-enabled-flag"
    userQuota="all-license-limit-total"
    tierCreatorCapacity="creator-license-limit"
    tierExplorerCapacity="explorer-license-limit"
    tierViewerCapacity="viewer-license-limit"
    askDataMode="ask-data-mode"
    useDefaultTimeZone="default-time-zone-flag"
    timeZone="time-zone"
    autoSuspendRefreshEnabled="auto-suspend-refresh-enabled-flag"
    autoSuspendRefreshInactivityWindow="auto-suspend-refresh-inactivity-window"
    explainDataEnabled="explain-data-enabled"
    dqwSubscriptionsEnabled="dqw-subscriptions-enabled"
    groupAssertionsEnabled="group-assertions-enabled-flag"
    groupAssertionsSAMLEnabled="group-assertions-saml-enabled-flag"
    groupAssertionsOIDCEnabled="group-assertions-oidc-enabled-flag"
    groupAssertionsConnectedAppsEnabled="group-assertions-connected-apps-enabled-flag"
    groupSetsEnabled="group-sets-enabled-flag"
    recycleBinEnabled="recycle-bin-enabled-flag" />
  </site>
</tsResponse>
```

Response Body Details:

- userQuota, storageQuota, and tiered capacity (tierCreatorCapacity, tierExplorerCapacity, tierViewerCapacity) attributes are only present in the response body if those quotas have been set for the site being queried.

#### Response Headers

Location: /api/3.29/sites/new-site-id

#### Version

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

#### Errors

<table class="api-error-table">
                                <colgroup>
                                    <col class="api-error-table-col-1">
                                    <col class="api-error-table-col-2">
                                    <col class="api-error-table-col-3">
                                    <col>
                                </colgroup>
                                <tbody>
                                    <tr>
                                        <th>HTTP status</th>
                                        <th><code>error</code> Code</th>
                                        <th>Condition</th>
                                        <th>Details</th>
                                    </tr>
                                    <tr>
                                        <td>400</td>
                                        <td>400000</td>
                                        <td>Bad request</td>
                                        <td>The content of the request body is missing, incomplete, or contains malformed XML.</td>
                                    </tr>
                                    <tr>
                                        <td>400</td>
                                        <td>400000</td>
                                        <td>Invalid storage quota</td>
                                        <td>The storage quota value wasn’t a positive number.</td>
                                    </tr>
                                    <tr>
                                        <td>400</td>
                                        <td>400000</td>
                                        <td>Invalid user quota</td>
                                        <td>The user quota value wasn’t a positive number.</td>
                                    </tr>
                                    <tr>
                                        <td>400</td>
                                        <td>400013</td>
                                        <td>Invalid administrator mode</td>
                                        <td>                                     The user provided an administrator mode that isn’t <span class="api-command-ref">ContentOnly</span> or <span class="api-command-ref">ContentAndUsers</span>.                                     <p class="note"><strong>Note:</strong>&nbsp;An empty string or all whitespace is invalid.</p></td>
                                    </tr>
                                    <tr>
                                        <td>405</td>
                                        <td>405000</td>
                                        <td>Invalid request method</td>
                                        <td>Request type was not <span class="api-command-ref">POST</span>.</td>
                                    </tr>
                                    <tr>
                                        <td>409</td>
                                        <td>409001</td>
                                        <td>Site name conflict</td>
                                        <td>The site name in the request already belongs to an existing site.</td>
                                    </tr>
                                    <tr>
                                        <td>409</td>
                                        <td>409002</td>
                                        <td>Site URL conflict</td>
                                        <td>The content URI in the request already belongs to an existing site.</td>
                                    </tr>
                                    <tr>
                                        <td>409</td>
                                        <td>409004</td>
                                        <td>User quota and tiered capacity conflict</td>
                                        <td>The request cannot set both tiered capacity attributes and <span class="api-command-ref">userQuota</span>. One or the other must be null.</td>
                                    </tr>
                                    <tr>
                                        <td>409</td>
                                        <td>409004</td>
                                        <td>License limit exceeded</td>
                                        <td>The request cannot set tiered capacity attributes or  <span class="api-command-ref">userQuota</span> values that are larger than the number of active licenses configured for the site.</td>
                                    </tr>
                                    <tr>
                                        <td>409</td>
                                        <td>409004</td>
                                        <td>Administrator mode or user quota conflict</td>
                                        <td>The request cannot set <span class="api-command-ref">adminMode</span> to <span class="api-command-ref">ContentOnly</span> and also specify a  <span class="api-command-ref">userQuota</span> value.</td>
                                    </tr>
                                </tbody>
                            </table>

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

#### Example

`curl "http://MY-SERVER/api/3.29/sites/" -X POST -H "X-Tableau-Auth:12ab34cd56ef78ab90cd12ef34ab56cd" -d @create-site.xml`

**Content of create-site.xml:**

```
<tsRequest>
	<site name="Marketing-Site"
        contentUrl="marketingsite"
        adminMode="ContentAndUsers"
        tierCreatorCapacity="2"
        tierExplorerCapacity="1"
        tierViewerCapacity="1"
        useDefaultTimeZone="false"
        timeZone="America/Los_Angeles"/>
</tsRequest>
```

**Response body:**

```
<tsResponse>
	<site id="43e01bb6-d7f9-42ef-bc9f-0422c07520e5"
        name="Marketing-Site"
        contentUrl="marketingsite"
        adminMode="ContentAndUsers"
        disableSubscriptions="true"
        state="Active"
        revisionHistoryEnabled="true"
        revisionLimit="25"
        subscribeOthersEnabled="false"
        allowSubscriptionAttachments="true"
        guestAccessEnabled="true"
        cacheWarmupEnabled="true" [REMOVED IN API 3.19]
        commentingEnabled="true"
        editingFlowsEnabled="false"
        schedulingFlowsEnabled="false"
        extractEncryptionMode="enabled"
        catalogingEnabled="true"
        derivedPermissionsEnabled="false"
        requestAccessEnabled="false"
        runNowEnabled="true"
        userQuota="4"
        tierCreatorCapacity="2"
        tierExplorerCapacity="1"
        tierViewerCapacity="1"
        useDefaultTimeZone="false"
        timeZone="America/Los_Angeles" />
</tsResponse>
```

## Delete Site

Deletes the specified site.

You can specify the site to delete by using the site ID, the site name, or the content URL. You use the key query string parameter to indicate how you are specifying the site, as shown in the URIs.

Beginning in API version 3.18, you can delete a site asynchronously, which allows you to track the site deletion progress.

This method is not available for Tableau Cloud.

**Note**: You must have previously called the [Sign In](https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_ref_authentication.htm#sign_in) method and signed in to a site in order to delete the site. When you call this method, you must include the authentication token that you got back when you signed into the site.

#### URI

**Delete site**

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

DELETE /api/api-version/sites/site-name?key=name

DELETE /api/api-version/sites/content-url?key=contentUrl

**Delete site asynchronously** (beginning in API 3.18)

DELETE /api/api-version/sites/async-delete/site-id

DELETE /api/api-version/sites/async-delete/site-name?key=name

DELETE /api/api-version/sites/async-delete/content-url?key=contentUrl

#### Parameter Values

<table class="api-parameters-table">
                                <colgroup>
                                    <col class="api-parameters-table-col-1-wide">
                                    <col>
                                </colgroup>
                                <tbody>
                                    <tr>
                                        <td><span class="api-placeholder">api-version</span>
                                        </td>
                                        <td>The version of the API to use, such as <code><span class="mc-variable Variables.REST-API-Version variable">3.29</span></code>. For more information, see <a href="https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">site-id</span>
                                        </td>
                                        <td>The ID of the site to delete.</td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">site-name</span>
                                        </td>
                                        <td>The name of the site to delete. If you specify a site name, you must also include the parameter <code>key=name</code>.</td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">content-url</span>
                                        </td>
                                        <td>
                                            <p>The permanent name of the site to sign in to. The content URL appears in the URL path of Tableau content in your browser address bar after the Tableau Server URL.</p>
                                            <p><code>mySite</code> is the content URL in the following example:</p>
                                            <p><code>http://&lt;server or cloud URL&gt;/#/site/<strong>mySite</strong>/explore</code>
                                            </p>
                                        </td>
                                    </tr>
                                </tbody>
                            </table>

#### Request Body

None

#### Permissions

This method can only be called by server administrators.

#### Access Scope

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

```
tableau:sites:delete
```

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

#### Response Code

**Delete site**

204

**Delete site asynchronously** (beginning in API 3.18)

201

#### Response Body

**Delete site**

None

**Delete site asynchronously** (beginning in API 3.18)

```
<tsResponse>
   <job id="job-id"
     mode="mode"
     type="type"
	 progress="progress"
	 createdAt="createdAt"
	 finishCode="finishCode" />
</tsResponse>
```

The `<job>` element returns the following attributes:

- job-id is a unique identifier for the job. You can use the value of this attribute to check the status of the delete job by passing it to the [Query Job](https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_ref_jobs_tasks_and_schedules.htm#query_job) method.
- mode has the value of `Asynchronous`.
- type has the value of `SiteDelete`.
- progress is set to `0` when the asynchronous delete job is created, and then changes to `100` when the job is complete. This value indicates percentage of job progress.
- createdAt provides a complete date and time that indicates when asynchronous delete was initiated.
- finishCode is set to `1` when the asynchronous delete job is created, and then changes to `0` when the job is complete.

#### Version

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

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>403</td><td>403002</td><td>Deletion not allowed.</td><td>An attempt was made to delete the default Tableau Server site.</td></tr><tr><td>404</td><td>404000</td><td>Site not found</td><td>The specified site doesn't correspond to an existing site.</td></tr><tr><td>405</td><td>405000</td><td>Invalid request method</td><td>Request type was not <span class="api-command-ref">DELETE</span>.</td></tr></tbody></table>

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

#### cURL Request Example

**Delete site**

`curl "http://MY-SERVER/api/3.29/sites/9a8b7c6d5-e4f3-a2b1-c0d9-e8f7a6b5c4d" -X DELETE -H "X-Tableau-Auth:12ab34cd56ef78ab90cd12ef34ab56cd"`

`curl "http://MY-SERVER/api/3.29/sites/marketing-site?key=contentUrl" -X DELETE -H "X-Tableau-Auth:12ab34cd56ef78ab90cd12ef34ab56cd"`

The response contains no body (data) for a successful delete operation. The HTTP response code is 204 if the delete operation succeeded.

**Delete site asynchronously** (beginning in API 3.18)

`curl "http://MY-SERVER/api/3.29/sites/async-delete/9a8b7c6d5-e4f3-a2b1-c0d9-e8f7a6b5c4d" -X DELETE -H "X-Tableau-Auth:12ab34cd56ef78ab90cd12ef34ab56cd"`

`curl "http://MY-SERVER/api/3.29/sites/async-delete/marketing-site?key=contentUrl" -X DELETE -H "X-Tableau-Auth:12ab34cd56ef78ab90cd12ef34ab56cd"`

`curl "http://MY-SERVER/api/3.29/sites/async-delete/marketing-site-name?key=name" -X DELETE -H "X-Tableau-Auth:12ab34cd56ef78ab90cd12ef34ab56cd"`

The responses above will return the job ID for a successful delete operation. You can use the value to check the status of the delete job by passing it to the [Query Job](https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_ref_jobs_tasks_and_schedules.htm#query_job) method.

## Get Data Acceleration Report for a Site

Returns a report about data acceleration for the site. It lets you compare page load times for before and after data acceleration is enabled.

This method is not available for Tableau Cloud.

**Important changes for Tableau View Acceleration and Data Acceleration**

Tableau's View Acceleration feature and Data Acceleration APIs are retired. These features were retired in Tableau Cloud in June 2026 and in Tableau Server version 2026.2.

#### URI

GET /api/api-version/sites/site-id/dataAccelerationReport

#### Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use, such as <code><span class="mc-variable Variables.REST-API-Version variable">3.29</span></code>. For more information, see <a href="https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-id</span></td><td>The ID of the site that contains the task.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

This method can only be called by server administrators and site administrators.

#### Access Scope

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

```
tableau:data_acceleration_reports:read
```

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

#### Response Code

200

#### Response Body

```
<tsResponse>
  <dataAccelerationReport>
    <comparisonRecord site="Default" sheetURI="sheetURI" unacceleratedSessionCount="unacceleratedSessionCount" averageUnAcceleratedPLT="averageUnAcceleratedPLT" acceleratedSessionCount="acceleratedSessionCount" averageAcceleratedPLT="averageAcceleratedPLT" />
</tsResponse>
					
```

#### Attribute Values

<table class="api-parameters-table"><colgroup><col style="width:27%;"> <col></colgroup><tbody><tr><td><span class="api-placeholder">sheetURI</span></td><td>The URI of the sheet in the workbook.</td></tr><tr><td><span class="api-placeholder">unacceleratedSessionCount</span></td><td>The number of sessions that were created to load the workbook sheet before it was accelerated. For example, if you loaded it 7 times in a row, the session is reused so the count will still be 1. Generally, the more data you compare, the better the comparison is. Note: If sheets were loaded but never accelerated, they are not shown.</td></tr><tr><td><span class="api-placeholder">averageUnAcceleratedPLT</span></td><td>The average page load time for the sheet before it was accelerated.</td></tr><tr><td><span class="api-placeholder">acceleratedSessionCount</span></td><td>The number of sessions that were created to load the workbook sheet after it was accelerated.</td></tr><tr><td><span class="api-placeholder">averageAcceleratedPLT</span></td><td>The average page load time for the sheet after it was accelerated.</td></tr></tbody></table>

#### Version

In Tableau Server 2020.2 (API 3.8) through 2021.4 (API 3.15) data acceleration is supported.

**Important changes for Tableau View Acceleration and Data Acceleration**

Tableau's View Acceleration feature and Data Acceleration APIs are retired. These features were retired in Tableau Cloud in June 2026 and in Tableau Server version 2026.2.

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

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><td>404</td><td>404000</td><td>Site not found</td><td>The site ID in the URI doesn't correspond to an existing site.</td></tr><tr><td>405</td><td>40500</td><td>Invalid requests method</td><td>Request type was not <b>GET</b></td></tr></tbody></table>

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

#### Example

`curl "http://MY-SERVER/api/3.29/sites/9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d/dataAccelerationReport" -X GET -H "X-Tableau-Auth:12ab34cd56ef78ab90cd12ef34ab56cd"`

**Example response:**

```

<tsResponse version-and-namespace-settings>
  <dataAccelerationReport>
    <comparisonRecord site="Default" sheetURI="Live/Sheet1" unacceleratedSessionCount="0" averageUnAcceleratedPLT="0.0" acceleratedSessionCount="1" averageAcceleratedPLT="0.166" />
  ...
  </dataAccelerationReport>
</tsResponse>
```

## Get Embedding Settings for a Site

Returns the current embedding settings for a specific site.

Embedding settings can be used to restrict embedding Tableau views to only certain domains. This setting impacts all embedding scenarios including, Tableau Javascript API v2, Embedding API v3, and the embed code from the share dialog. For more information, see the [Tableau Site Settings for Embedding](https://help.tableau.com/current/api/embedding_api/en-us/docs/embedding_api_site.html) topic in the Tableau Embedding v3 Help.

Beginning in version 2023.2 (June 2023) for Tableau Cloud and in version 2023.3 for Tableau Server, this setting might impact embedding scenarios that use Tableau connected apps. For more information, see the “[Control where content can be embedded](https://help.tableau.com/current/online/en-us/connected_apps_eas.htm#allowlist)” section in the connected apps topic in the Tableau Cloud Help.

#### URI

GET /api/api-version/sites/site-id/settings/embedding

#### Path Parameter Values

 

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-extra-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use, such as <code><span class="mc-variable Variables.REST-API-Version variable">3.29</span></code>. For more information, see <a href="https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-id</span></td><td>The ID of the site that contains the views.</td></tr><tr></tr></tbody></table>

#### Request Body

None

#### Access Scope

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

```
tableau:embedding_site_settings:read
```

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

#### Response Code

200

#### Permissions

Any Tableau Cloud or Tableau Server user can call this method.

#### Response Body

```
<tsResponse>
  <siteid="view-id"
        <settings unrestrictedEmbeddingname="true-or-false"
  </site>
</tsResponse>
```

##### Example Response

```
<tsResponse>
      <settings unrestrictedEmbedding="false"/>
    </site>
</tsResponse>
```

#### Example

`curl "http://MY-SERVER/api/3.29/sites/9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d/settings/embedding" -X GET -H "X-Tableau-Auth:1a1b1c1d-2e2f-2a2b-3c3d-3e3f4a4b4c4d"`

#### Version

API version 3.16 and later.

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>404</td><td>404000</td><td>Site not found</td><td>The site ID in the URI doesn't correspond to an existing site.</td></tr><tr><td>405</td><td>405000</td><td>Invalid request method</td><td>Request type was not <span class="api-command-ref">GET</span>.</td></tr></tbody></table>

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

## Get Recently Viewed for Site

Gets the details of the views and workbooks on a site that have been most recently created, updated, or accessed by the signed in user. The 24 most recently viewed items are returned, though it may take some minutes after being viewed for an item to appear in the results.

#### URI

GET /api/api-version/sites/site-id/content/recent

#### Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use, such as <code><span class="mc-variable Variables.REST-API-Version variable">3.29</span></code>. For more information, see <a href="https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-id</span></td><td>The ID of the site that contains the views and workbooks.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

Users who are not server administrators or site administrators, the method returns only the views and workbooks that the user owns or has **Read** permissions for (either explicitly or implicitly).

#### Required scope for JWT authorization

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

```
tableau:content:read
```

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

#### Response Code

200

#### Response Body

```
<tsResponse >
<recents>
  <recent>
	<view
	  id="view-id"
	  name="view-name"
	  contentUrl="view-content-url"
	  createdAt="created-at-time"
	  updatedAt="updated-at-time"
	  viewUrlName="view-url-name">
		<workbook id=""workbook-of-view" "/>
		<owner id="owner-id" />
		<project id="project-id" />
		<tags/>
	</view>
  </recent>
  <recent>
    <workbook
 	  id="workbook-id"
	  name="workbook-name"
	  description="workbook-description"
	  contentUrl="workbook-content-url"
	  webpageUrl="workbook-webpage-url"
	  showTabs="show-tags-flag"
	  size="size-in-mb"
	  createdAt="created-at-time"
	  updatedAt="updated-at-time"
	  encryptExtracts="encrypt-extracts-flag"
	  defaultViewId="default-view-id" >
        <project id="project-id"/>
        <owner id="ownwer-id"
		name="project-name" />
        <tags/>
	</workbook>
  </recent>
  <!--  more recently viewed views and workbooks  -->
</tsResponse>
```

The value of view-url-name is the name of the view in its URL. For example, if a view named `View 1` shows the URL `https://MY_SERVER/#/site/MY_SITE/views/VIEW_1` in your browser address bar, then the the view-url-name would be `VIEW_1`. Modifying the name (display name) of a view will not impact the view-url-name (path element of the view's URL).

#### Version

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

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><td>404</td><td>404000</td><td>Site not found</td><td>The site ID in the URI doesn't correspond to an existing site.</td></tr><tr><td>405</td><td>405000</td><td>Invalid request method</td><td>Request type was not <span class="api-command-ref">GET</span>.</td></tr></tbody></table>

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

#### Example

`curl -X GET "https://qa-windows/api/3.5/sites/cd24a433-b66c-46cd-a4af-6cde73db9ee1/content/recent" -H "X-Tableau-Auth: pI8NzKb-S5-Jqiatds8jrQ|GKUYlgHjuHSPSVfS38plFpH31UkHGtNl"`

**Example response:**

```
<tsResponse >
  <recents>
    <recent>
      <view
	    id="8a922e79-3041-4916-942e-1a18162ef8a9"
	    name="MySQL PostgresSQL"
	    contentUrl="my_site1"
	    createdAt="2019-01-28T20:33:35Z"
	    updatedAt="2019-01-28T20:44:05Z"
		viewUrlName="MySQL_PostgresSQL">
		  <workbook id="1eb0d238-c9d2-49ec-a0ce-762ddc6f9827"/>
		  <owner id="2dbbee8a-202c-4a74-82d6-8e3544f55ceb"/>
		  <project id="50b87b02-74b6-11e8-a4b0-df15be81c0c4"/>
		  <tags/>
      </view>
    </recent>
    <recent>
	  <workbook
	    id="5589cf2b-8601-43f9-9151-0f6c2db760cc"
	    name="Connections-AmazonAurora (1)"
	    description=""
	    contentUrl="my_site2"
	    webpageUrl="https://my_server/#/workbooks/222"
	    showTabs="false"
	    size="7"
	    createdAt="2019-02-13T20:52:37Z"
	    updatedAt="2019-02-13T20:52:38Z"
	    encryptExtracts="false"
	    defaultViewId="d4bed763-1cb1-4924-b455-6a6c298d860d">
	      <project id="add6c395-11b8-4d57-a66b-733220a33aa0" name="project2"/>
	      <owner id="3f90c20d-069f-46dd-b5a0-6e7092140790" name="my_name"/>
	      <tags/>
	  </workbook>
    </recent>
    <!--  more recently viewed views and workbooks  --%gt;
  </recent>
</tsResponse>
```

## Get User Personal Space

Gets the details of the Personal Space for the currently authenticated user.

Personal Space must be enabled for the site in order to be returned by this method. For more information see, [Create and Edit Private Content in Personal Space](https://help.tableau.com/current/pro/desktop/en-us/personal_space.htm)

**Version**: Available in API 3.13 and later.

**License**: No additional license required.

**Permissions**: Only the user that owns a Personal Space can get its details.

**Access scope**:`tableau:projects:read`

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

#### URI

GET /api/api-version/sites/site-id/personalSpace

#### Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use, such as <code><span class="mc-variable Variables.REST-API-Version variable">3.29</span></code>. For more information, see <a href="https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-id</span></td><td>The ID of the site that contains the user.</td></tr></tbody></table>

#### Request Body

none

#### cURL Example

`curl "http://MY-SERVER/api/3.29/sites/7bfb590b-cfa7-4576-8bea-e9cc035/personalSpace -X GET -H "X-Tableau-Auth:12ab34cd56ef78ab90cd12ef34ab56cd"`

#### Response Code

200

#### Response Body

```
<tsResponse>
  <personalSpace
    luid="b76c9984-c7a8-4ae4-826d-e08372ad7d61",
    ownerLuid="39e76bc4-737f-40c0-bca7-e635fe0e9fd9",
    readOnly="false" />
</tsResponse>
```

```
{
  "personalSpace": {
  "luid": "b76c9984-c7a8-4ae4-826d-e08372ad7d61",
  "ownerLuid": "39e76bc4-737f-40c0-bca7-e635fe0e9fd9",
  "readOnly": false
  }
}
```

`readOnly` is `true` only if Personal Space is disabled in site settings or the user's role for the site does not allow writing to a Personal Space.

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><td>404</td><td>404000</td><td>Site not found</td><td>The site ID in the URI doesn't correspond to an existing site.</td></tr><tr><td>405</td><td>405000</td><td>Invalid request method</td><td>Request type was not <span class="api-command-ref">GET</span>.</td></tr></tbody></table>

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

## List Authentication Configurations for Site

List all authentications configurations on the site.

For more information, see [Authentication](https://help.tableau.com/current/online/en-us/security_auth.htm#multiple_idp) in the Tableau Cloud Help.

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

**License:** No additional license required.

**Permissions:** Tableau Cloud site admins only.

**JWT Access Scope:** Not available.

#### URI

GET /api/api-version/sites/site-luid/site-auth-configurations

#### URI Parameter Values

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

#### Request Body

None

#### cURL Request Example

`curl "https://us-west-2a.online.tableau.com/api/3.29/sites/9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d/site-auth-configurations" -X GET -H "X-Tableau-Auth:12ab34cd56ef78ab90cd12ef34ab56cd"`

#### Response Code

200

#### Response Body

Copy

```
<tsResponse>  <siteAuthConfigurations>    <siteAuthConfiguration>      authSetting="OIDC"      enabled="true"      idpConfigurationId="00000000-0000-0000-0000-000000000000"      idpConfigurationName="Initial Salesforce"      knownProviderAlias="Salesforce"    </siteAuthConfiguration>    <siteAuthConfiguration>      authSetting="SAML"      enabled="true"      idpConfigurationId="11111111-1111-1111-1111-111111111111"      idpConfigurationName="Initial SAML"    </siteAuthConfiguration>  </siteAuthConfigurations></tsResponse>
```

Copy

```
{"siteAuthConfigurations": [     {       "authSetting":"OIDC",       "enabled":"true",        "idPConfigurationId":"00000000-0000-0000-0000-000000000000",       "idPConfigurationName":"Initial Salesforce",       "knownProviderAlias":"Salesforce"    },    {       "authSetting":"SAML",       "enabled":"true",        "idPConfigurationId":"11111111-1111-1111-1111-111111111111",       "idPConfigurationName":"Initial SAML"    }  ]}
```

**Notes:**

- Use the idpConfigurationId to specify the authentication method for a user in [Add User to Site](https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_ref_users_and_groups.htm#add_user_to_site) and [Update User](https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_ref_users_and_groups.htm#update_user) methods.
- The knownProviderAlias is returned when the authentication type is either Google or Salesforce.

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>400</td><td>400000</td><td>Bad Request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>401</td><td>401002</td><td>Unauthorized Access</td><td>The authentication token provided in the request header was invalid or has expired.</td></tr></tbody></table>

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

## Query Site

Returns information about the specified site, with the option to return information about the storage space and user count for the site.

**Note**: After you create a resource, the server updates its search index. If you make a query immediately to see a new resource, the query results might not be up to date.

You can specify the site to delete by using the site ID, the site name, or the content URL. You use the key query string parameter to indicate how you are specifying the site, as shown in the URIs.

**Note**: You can only get site information for the site that you have signed in to.

#### URI

GET /api/api-version/sites/site-id

GET /api/api-version/sites/site-name?key=name

GET /api/api-version/sites/content-url?key=contentUrl

GET /api/api-version/sites/site-id?includeUsage=include-usage-flag

#### Parameter Values

<table class="api-parameters-table">
                                <colgroup>
                                    <col class="api-parameters-table-col-1-wide">
                                    <col>
                                </colgroup>
                                <tbody>
                                    <tr>
                                        <td><span class="api-placeholder">api-version</span>
                                        </td>
                                        <td>The version of the API to use, such as <code><span class="mc-variable Variables.REST-API-Version variable">3.29</span></code>. For more information, see <a href="https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">site-id</span>
                                        </td>
                                        <td>The ID of the site to get information for.</td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">site-name</span>
                                        </td>
                                        <td>The name of the site to get information for. If you specify a site name, you must also include the parameter <code>key=name</code>.</td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">content-url</span>
                                        </td>
                                        <td>The URL of the site to get information for. If you specify a content URL, you must also include the parameter <code>key=contentUrl</code>.</td>
                                    </tr>
                                    <tr>
                                        <td><span class="api-placeholder">include-usage-flag</span>
                                        </td>
                                        <td>The boolean flag to include site usage metrics in the response body. If <span class="api-command-ref">true</span>, then the site element  								of the response will contain a <code>usage</code> node with the attributes <code>numUsers</code> (number of users) and  								<code>storage</code> (storage in megabytes).  								 							<p>To set the flag to include usage in the response, append <code>includeUsage=true</code> as a querystring element any valid query site URI.</p></td>
                                    </tr>
                                </tbody>
                            </table>

#### Request Body

None

#### Permissions

This method can only be called by server administrators and site administrators.

#### Access Scope

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

```
tableau:sites:read
```

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

#### Response Code

200

#### Response Body

```
<tsResponse>
  <site id="site-id"
    name="site-name"
    contentUrl="content-url"
    adminMode="admin-mode"
    disableSubscriptions="new-disable-subscriptions"
    state="active-or-suspended"
    revisionHistoryEnabled="revision-history-enabled-flag"
    revisionLimit="revision-limit"
    subscribeOthersEnabled="subscribe-others-enabled-flag"
    allowSubscriptionAttachments="allow-subcription-attachments-flag"
    userQuota="num-users"
    guestAccessEnabled="guest-access-enabled-flag"
    cacheWarmupEnabled="cache-warmup-enabled-flag [REMOVED IN API 3.19]"
    commentingEnabled="commenting-enabled-flag"
    storageQuota="limit-in-megabytes"
    editingFlowsEnabled="editing-flows-enabled-flag"
    schedulingFlowsEnabled="scheduling-flows-enabled-flag"
    extractEncryptionMode="encryption-mode"
    catalogingEnabled="cataloging-enabled-flag"
    derivedPermissionsEnabled="derived-permissions-enabled-flag"
    requestAccessEnabled="request-access-enabled-flag"
    runNowEnabled="run-now-enabled-flag"
    usage numUsers="number-of-users"
    storage="storage-in-megabytes"
    userQuota="all-license-limit-total"
    tierCreatorCapacity="creator-license-limit"
    tierExplorerCapacity="explorer-license-limit"
    tierViewerCapacity="viewer-license-limit"
    isDataAlertsEnabled="data-alerts-enabled-flag"
    askDataMode="ask-data-mode"
    useDefaultTimeZone="default-time-zone-flag"
    timeZone="time-zone"
    autoSuspendRefreshEnabled="auto-suspend-refresh-enabled-flag"
    autoSuspendRefreshInactivityWindow="auto-suspend-refresh-inactivity-window"
    explainDataEnabled="explain-data-enabled"
    dqwSubscriptionsEnabled="dqw-subscriptions-enabled"
    attributeCaptureEnabled="attribute-capture-enabled"/>
  </site>
</tsResponse>
```

Response Body Details:

- userQuota, storageQuota, and tiered capacity (tierCreatorCapacity, tierExplorerCapacity, tierViewerCapacity) attributes are only present in the response body if those quotas have been set for the site being queried.
- **attributeCaptureEnabled** attribute is present in the response body for Tableau Cloud starting from API version 3.19 (March 2023) and Tableau Server starting from API version 3.25 (Tableau Server 2025.1).

#### Version

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

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>404</td><td>404000</td><td>Site not found</td><td>The specified site doesn't correspond to an existing site.</td></tr><tr><td>405</td><td>405000</td><td>Invalid request method</td><td>Request type was not <span class="api-command-ref">GET</span>.</td></tr></tbody></table>

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

#### Example

**Command:**

```
curl "http://MY-SERVER/api/3.29/sites/1234abcd-12ab-12ab-12ab-1234abcd1234?includeUsage=true" -X GET \
-H "X-Tableau-Auth:ABCD1234abcdABCD|ABCD1234abcdABCDABCD1234abcd-1"
```

**Example response:**

```
<tsResponse>
  <site id="1234abcd-12ab-12ab-12ab-1234abcd1234"
    name="new_site_name"
    contentUrl="new_site_url"
    adminMode="ContentAndUsers"
    storageQuota="100"
    disableSubscriptions="true"
    state="Active"
    revisionHistoryEnabled="true"
    revisionLimit="25"
    subscribeOthersEnabled="false"
    allowSubscriptionAttachments="true"
    guestAccessEnabled="false"
    cacheWarmupEnabled="true"
    commentingEnabled="true"
    editingFlowsEnabled="false"
    schedulingFlowsEnabled="false"
    extractEncryptionMode="enabled"
    catalogingEnabled="true"
    derivedPermissionsEnabled="false"
    requestAccessEnabled ="false"
    runNowEnabled="true"
    usage numUsers="0" storage="0"
    userQuota="4"
    tierCreatorCapacity="2"
    tierExplorerCapacity="1"
    tierViewerCapacity="1"
    isDataAlertsEnabled="true"
    askDataMode="DisabledByDefault"
    useDefaultTimeZone="false"
    timeZone="America/Los_Angeles"
    explainDataEnabled="true"
    dqwSubscriptionsEnabled="false"
    attributeCaptureEnabled="false" />
  </site>
</tsResponse>
```

**Command:**

```
curl "http://MY-SERVER/api/3.29/sites/Default?key=name" -X GET \
-H "X-Tableau-Auth:ABCD1234abcdABCD|ABCD1234abcdABCDABCD1234abcd-1"
```

**Example response:**

```
<tsResponse>
  <site id="1234abcd-12ab-12ab-12ab-1234abcd1234"
    name="new_site_name"
    contentUrl=""
    adminMode="ContentAndUsers"
    storageQuota="100"
    disableSubscriptions="true"
    state="Active"
    revisionHistoryEnabled="true"
    revisionLimit="25"
    subscribeOthersEnabled="false"
    allowSubscriptionAttachments="true"
    guestAccessEnabled="false"
    cacheWarmupEnabled="true"
    commentingEnabled="true"
    editingFlowsEnabled="false"
    schedulingFlowsEnabled="false"
    extractEncryptionMode="enabled"
    catalogingEnabled="true"
    derivedPermissionsEnabled="false"
    requestAccessEnabled ="false"
    runNowEnabled="true"/>
    userQuota="4"
    tierCreatorCapacity="2"
    tierExplorerCapacity="1"
    tierViewerCapacity="1"
    askDataMode="DisabledByDefault"
    useDefaultTimeZone="false"
    timeZone="America/Los_Angeles" />
  </site>
</tsResponse>
```

## Query Sites

Returns a list of the sites on the server that the caller of this method has access to. This method is not available for Tableau Cloud.

**Note**: After you create a resource, the server updates its search index. If you make a query immediately to see a new resource, the query results might not be up to date.

#### URI

GET /api/api-version/sites

GET /api/api-version/sites?pageSize=page-size&pageNumber=page-number

#### Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use, such as <code><span class="mc-variable Variables.REST-API-Version variable">3.29</span></code>. For more information, see <a href="https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">page-size</span></td><td>(Optional) The number of items to return in one response. The minimum is 1. The maximum is 1000. The default is 100. For more information, see <a href="https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_concepts_paging.htm">Paginating Results</a>.</td></tr><tr><td><span class="api-placeholder">page-number</span></td><td>(Optional) The offset for paging. The default is 1. For more information, see <a href="https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_concepts_paging.htm">Paginating Results</a>.</td></tr></tbody></table>

#### Request Body

None

#### Permissions

This method can be called by all users. The method only returns the sites that the user has access to.

#### Required scope for JWT authorization

Introduced in Tableau Server 2022.3 (API 3.17).

```
tableau:sites:read
```

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

#### Response Code

200

#### Response Body

```
<tsResponse>
  <pagination pageNumber="pageNumber"
	pageSize="page-size"
	totalAvailable="total-available" />
  <sites>
	<site id="site-id"
      name="site-name"
      contentUrl="content-url"
      adminMode="admin-mode"
      disableSubscriptions="disable-subscriptions-flag"
      userQuota="num-users"
      storageQuota="limit-in-megabytes"
      state="active-or-suspended"
      statusReason="reason-for-state"
      revisionHistoryEnabled="revision-history-flag"
      revisionLimit="num-revisions"
      subscribeOthersEnabled="subscribe-others-flag"
      allowSubscriptionAttachments="allow-subcription-attachments-flag"
      guestAccessEnabled="guest-access-enabled-flag"
      cacheWarmupEnabled="cache-warmup-enabled-flag [REMOVED IN API 3.19]"
      commentingEnabled="enable-commenting-flag"
      editingFlowsEnabled="editing-flows-enabled-flag"
      schedulingFlowsEnabled="scheduling-flows-enabled-flag"
      extractEncryptionMode="extract-encryption-mode"
      catalogingEnabled="enable-cataloging-flag"
      derivedPermissionsEnabled="derived-permissions-enabled-flag"
      requestAccessEnabled ="request-access-enabled-flag"
      runNowEnabled="run-now-enabled-flag"
      isDataAlertsEnabled="data-alerts-enabled-flag"
      askDataMode="ask-data-mode"
      useDefaultTimeZone="default-time-zone-flag"
      timeZone="time-zone"
      explainDataEnabled="explain-data-enabled"
      dqwSubscriptionsEnabled="dqw-subscriptions-enabled" />
	<!--   ... additional sites ... -->
  </sites>
</tsResponse>
```

The response for users without administrative permissions contains only the site id, name, and content-url attributes.

#### Version

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

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>400</td><td>400006</td><td>Invalid page number</td><td>The page number parameter is not an integer, is less than one, or is greater than the final page number for the sites at the requested page size.</td></tr><tr><td>400</td><td>400007</td><td>Invalid page size</td><td>The page size parameter is not an integer, or is less than one.</td></tr><tr><td>403</td><td>403014</td><td>Page size limit exceeded</td><td>The specified page size is larger than the maximum page size.</td></tr><tr><td>405</td><td>405000</td><td>Invalid request method</td><td>Request type was not <span class="api-command-ref">GET</span>.</td></tr></tbody></table>

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

#### Example

```
curl "http://MY-SERVER/api/3.29/sites?pageSize=1&pageNumber=1" -X GET -H "X-Tableau-Auth:12ab34cd56ef78ab90cd12ef34ab56cd"
```

**Example response:**

```
<tsResponse>
  <pagination pageNumber="1"
    pageSize="1"
    totalAvailable="2"/>
  <sites>
    <site id="abcd1234-ab12-ab12-ab12-abcd1234abcd"
    name="Default"
    contentUrl=""
    adminMode="ContentAndUsers"
    disableSubscriptions="true"
    state="Active"
    revisionHistoryEnabled="true"
    revisionLimit="25"
    subscribeOthersEnabled="false"
    allowSubscriptionAttachments="true"
    guestAccessEnabled="true"
    cacheWarmupEnabled="true" [REMOVED IN API 3.19]
    commentingEnabled="true"
    editingFlowsEnabled="false"
    schedulingFlowsEnabled="false"
    extractEncryptionMode="enabled"
    catalogingEnabled="true"
    derivedPermissionsEnabled="false"
    requestAccessEnabled ="false"
    runNowEnabled="true"
    isDataAlertsEnabled="true"
    askDataMode="DisabledByDefault"
    useDefaultTimeZone="false"
    timeZone="America/Los_Angeles"
    explainDataEnabled="true"
    dqwSubscriptionsEnabled="false" />
  </sites>
</tsResponse>
```

## Query Views for Site

Returns all the views for the specified site, optionally including usage statistics.

**Note**: After you create a resource, the server updates its search index. If you make a query immediately to see a new resource, the query results might not be up to date.

**Version**: Available in API 2.2 and later.

**License**: No additional license required.

**Permissions**: For users who are not server administrators or site administrators, the method returns only the views that the user owns or has Read permissions for (either explicitly or implicitly).

**Access Scope**: `tableau:content:read`

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

#### URI

GET /api/api-version/sites/site-id/views

GET /api/api-version/sites/site-id/views?includeUsageStatistics=get-usage-information

GET /api/api-version/sites/site-id/views?pageSize=page-size&pageNumber=page-number

GET /api/api-version/sites/site-id/views?includeUsageStatistics=get-usage-information&pageSize=page-size&pageNumber=page-number

GET /api/api-version/sites/site-id/views?filter=filter-expression

GET /api/api-version/sites/site-id/views?sort=sort-expression

GET /api/api-version/sites/site-id/views?fields=field-expression

#### Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1-extra-wide"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use, such as <code>2.2</code>. For more information, see <a href="https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-id</span></td><td>The ID of the site that contains the views.</td></tr><tr><td><span class="api-placeholder">get-usage-information</span></td><td>(Optional) <span class="api-command-ref">true</span> to return usage statistics. The default is <span class="api-command-ref">false</span>.</td></tr><tr><td><span class="api-placeholder">page-size</span></td><td>(Optional) The number of items to return in one response. The minimum is 1. The maximum is 1000. The default is 100. For more information, see <a href="https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_concepts_paging.htm">Paginating Results</a>.</td></tr><tr><td><span class="api-placeholder">page-number</span></td><td>(Optional) The offset for paging. The default is 1. For more information, see <a href="https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_concepts_paging.htm">Paginating Results</a>.</td></tr><tr><td><span class="api-placeholder">filter-expression</span></td><td>(Optional) Fields and operators that you can use to filter results. For more information, see <a href="https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_concepts_filtering_and_sorting.htm#filter_expressions" class="xref">Filter expressions</a>.</td></tr><tr><td><span class="api-placeholder">sort-expression</span></td><td>(Optional) Field and direction to sort results. For more information, see <a href="https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_concepts_filtering_and_sorting.htm#sort_expressions" class="xref">Sorting</a>.</td></tr><tr><td><span class="api-placeholder">field-expression</span></td><td>(Optional) An expression that lets you specify the set of available fields to return. You can qualify the return values based upon predefined keywords such as <code>_all_</code> or <code>_default_</code>, and you can specify individual fields for the workbooks or other supported resources. You can include multiple field expressions in a request. For more information, see <a href="https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_concepts_fields.htm">Using Fields in the REST API</a>.</td></tr></tbody></table>

**Note**: The filter and sort parameters can be combined with each other and with paging parameters and fields parameters using an ampersand (**`&`**).

#### Request Body

None

#### cURL Request

`curl "http://MY-SERVER/api/3.29/sites/9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d/views" -X GET -H "X-Tableau-Auth:1a1b1c1d-2e2f-2a2b-3c3d-3e3f4a4b4c4d"`

#### Response Code

200

#### Response Body

```
<tsResponse>
  <pagination pageNumber="1" pageSize="100" totalAvailable="2" />
  <views>
    <view id="1f1e1d1c-2b2a-2f2e-3d3c-3b3a4f4e4d4c" name="Economic Indicators"
         contentUrl="Finance/sheets/EconomicIndicators">
      <workbook id="1a1b1c1d-2e2f-2a2b-3c3d-3e3f4a4b4c4d" />
      <owner id="9f9e9d9c-8b8a-8f8e-7d7c-7b7a6f6d6e6d" />
    </view>
    <view id="9a8a7b6b-5c4c-3d2d-1e0e-9a8a7b6b5b4b" name="Investing in the Dow"
          contentUrl="Finance/sheets/InvestingintheDow">
      <workbook id="59a8a7b6-be3a-4d2d-1e9e-08a7b6b5b4ba" />
      <owner id="9f8e7d6c5-b4a3-f2e1-d0c9-b8a7f6e5d4c" />
    </view>
  </views>
</tsResponse>
```

```
{
  "pagination": {
    "pageNumber": "1",
    "pageSize": "100",
    "totalAvailable": "2"
  },
  "views": [
    {
      "id": "1f1e1d1c-2b2a-2f2e-3d3c-3b3a4f4e4d4c",
      "name": "Economic Indicators",
      "contentUrl": "Finance/sheets/EconomicIndicators",
      "workbook": {
        "id": "1a1b1c1d-2e2f-2a2b-3c3d-3e3f4a4b4c4d"
      },
      "owner": {
        "id": "9f9e9d9c-8b8a-8f8e-7d7c-7b7a6f6d6e6d"
      }
    },
    {
      "id": "9a8a7b6b-5c4c-3d2d-1e0e-9a8a7b6b5b4b",
      "name": "Investing in the Dow",
      "contentUrl": "Finance/sheets/InvestingintheDow",
      "workbook": {
        "id": "59a8a7b6-be3a-4d2d-1e9e-08a7b6b5b4ba"
      },
      "owner": {
        "id": "9f8e7d6c5-b4a3-f2e1-d0c9-b8a7f6e5d4c"
      }
    }
  ]
}
```

The <usage> element is included in the response only if the method has `includeUsageStatistics=true` in the URI.

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>400</td><td>400006</td><td>Invalid page number</td><td>The page number parameter is not an integer, is less than one, or is greater than the final page number for data sources at the requested page size.</td></tr><tr><td>400</td><td>400007</td><td>Invalid page size</td><td>The page size parameter is not an integer, or is less than one.</td></tr><tr><td>400</td><td>400008</td><td>Invalid parameter value</td><td>The <span class="api-command-ref">includeUsageStatistics</span> was provided with a value other than <span class="api-command-ref">true</span> or <span class="api-command-ref">false</span>.</td></tr><tr><td>403</td><td>403004</td><td>Read forbidden</td><td>A non-administrator user attempted to query workbook views, but the caller doesn't have <span class="api-command-ref">Read</span> permission.</td></tr><tr><td>403</td><td>403014</td><td>Page size limit exceeded</td><td>The specified page size is larger than the maximum page size.</td></tr><tr><td>404</td><td>404000</td><td>Site not found</td><td>The site ID in the URI doesn't correspond to an existing site.</td></tr><tr><td>405</td><td>405000</td><td>Invalid request method</td><td>Request type was not <span class="api-command-ref">GET</span>.</td></tr></tbody></table>

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

## Update Embedding Settings for Site

Updates the embedding settings for a site. Embedding settings can be used to restrict embedding Tableau views to only certain domains.

This setting impacts all embedding scenarios including Tableau Javascript API v2, Embedding API v3, and the embed code from the share dialog. For more information, see [Tableau Site Settings for Embedding](https://help.tableau.com/current/api/embedding_api/en-us/docs/embedding_api_site.html) in the Tableau Embedding API v3 Help.

Beginning in version 2023.2 (June 2023) for Tableau Cloud and in version 2023.3 for Tableau Server, this setting might impact embedding scenarios that use Tableau connected apps. For more information, see the "Control where content can be embedded" section in the connected apps topics in the [Tableau Cloud Help](https://help.tableau.com/current/online/en-us/connected_apps_eas.htm#allowlist) or [Tableau Server Help](https://help.tableau.com/current/server/en-us/connected_apps_eas.htm#allowlist).

#### URI

PUT /api/api-version/sites/site-id/settings/embedding

#### Path Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use, such as <code><span class="mc-variable Variables.REST-API-Version variable">3.29</span></code>. For more information, see <a href="https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-id</span></td><td>The ID of the site to update.</td></tr></tbody></table>

#### Request Body

```
<tsRequest>
  <site>
    <settings unrestrictedEmbedding="true/false"
     allowList="domain-list"/>
  </site>
</tsRequest>
```

**Example request:**

```
<tsRequest>
   <site>
     <settings unrestrictedEmbedding="false"
      allowList="mydomain.com"/>
    </site>
</tsRequest>
```

#### Request Attribute Values

<table class="api-parameters-table">
                                    <colgroup>
                                        <col style="width:27%;">
                                        <col>
                                    </colgroup>
                                    <tbody>
                                        <tr>
                                            <td><span class="api-placeholder">unrestricted-embedding</span>
                                            </td>
                                            <td>
                                                <p>(Optional) Specifies whether or not embedding is restricted. </p>
                                                <p>When the setting is set to true, Tableau views on this site can be embedded in any domain.</p>
                                                <p>When set to false, embedding is blocked for all domains, but you can allow embedding in certain domains using the <code>allowList</code> attribute.</p>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">allow-list</span>
                                            </td>
                                            <td>
                                                <p>(Optional) Specifies the domains where Tableau views on this site can be embedded. Use this setting with <code>unrestrictedEmbedding</code> setting to restrict embedding functionality to only certain domains. </p>
                                                <p><b>Important:</b> We recommend using the domain allowlist as a security best practice to ensure Tableau content is only embedded in locations that you allow.</p>
                                                <p>You can use wildcards in domain names and you can also list multiple domain names separated by spaces.
</p>
                                            </td>
                                        </tr>
                                    </tbody>
                                </table>

#### Permissions

Any Tableau Cloud or Tableau Server user can call this method.

#### Access Scope

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

```
tableau:embedding_site_settings:update
```

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

#### Response Code

200

#### Response Body

```
<tsResponse>
  <site id="site-id"
	settings unrestrictedEmbedding="true-or-false"
	allowList="domain-allow-list/>
  </site>
</tsResponse>
```

**Example response:**

```
<tsResponse>
      <settings unrestrictedEmbedding="false"
	allowList="mydomain.com" />
    </site>
</tsResponse>
```

#### Version

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

#### Errors

<table class="api-error-table">
                            <colgroup>
                                <col class="api-error-table-col-1">
                                <col class="api-error-table-col-2">
                                <col class="api-error-table-col-3">
                                <col>
                            </colgroup>
                            <tbody>
                                <tr>
                                    <th>HTTP status</th>
                                    <th><code>error</code> Code</th>
                                    <th>Condition</th>
                                    <th>Details</th>
                                </tr>
                                <tr>
                                    <td>400</td>
                                    <td>400000</td>
                                    <td>Bad Request</td>
                                    <td>The content of the request body is missing or incomplete, or contains malformed XML.</td>
                                </tr>
                                <tr>
                                    <td>403</td>
                                    <td>403500</td>
                                    <td>The user  does not have permission</td>
                                    <td>
                                        <p>Tableau Cloud: Only site administrators can run this method.</p>
                                    </td>
                                </tr>
                            </tbody>
                        </table>

#### Example

`curl "http://MY-SERVER/api/3.29/sites/9a8b7c6d5-e4f3-a2b1-c0d9-e8f7a6b5c4d/settings/embedding" -X PUT -H "X-Tableau-Auth:12ab34cd56ef78ab90cd12ef34ab56cd" -d @update-sembedding-settings.xml`

**Content of update-embedding-settings.xml:**

```
<tsRequest>
   <site>
     <settings unrestrictedEmbedding="false"
      allowList="mydomain.com"/>
    </site>
</tsRequest>
```

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

## Update Site

Modifies settings for the specified site, including the content URL, administration mode, user quota, state (active or suspended), storage quota, whether flows are enabled, whether subscriptions are enabled, and whether revisions are enabled.

**Note:** You must be signed in to a site to update it.

#### URI

PUT /api/api-version/sites/site-id

#### Parameter Values

<table class="api-parameters-table"><colgroup><col class="api-parameters-table-col-1"> <col></colgroup><tbody><tr><td><span class="api-placeholder">api-version</span></td><td>The version of the API to use, such as <code><span class="mc-variable Variables.REST-API-Version variable">3.29</span></code>. For more information, see <a href="https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_concepts_versions.htm" class="xref">REST API and Resource Versions</a>.</td></tr><tr><td><span class="api-placeholder">site-id</span></td><td>The ID of the site to update.</td></tr></tbody></table>

#### Request Body

**Updating individual settings**

```
<tsRequest>
  <site name="new-site-name"
    contentUrl="new-content-url"
    adminMode="new-admin-mode"
    storageQuota="limit-in-megabytes"
    disableSubscriptions="new-disable-subscriptions"
    state="new-state"
    revisionHistoryEnabled="revision-history-enabled"
    revisionLimit="revision-limit"
    allowSubscriptionAttachments="allow-subcription-attachments-flag"
    subscribeOthersEnabled="subscribe-others-enabled-flag"
    guestAccessEnabled="guest-access-enabled-flag"
    cacheWarmupEnabled="cache-warmup-enabled-flag [REMOVED IN API 3.19]"
    commentingEnabled="commenting-enabled-flag"
    editingFlowsEnabled="editing-flows-enabled-flag"
    schedulingFlowsEnabled="scheduling-flows-enabled-flag"
    extractEncryptionMode="extractEncryptionMode"
    dataAccelerationMode="dataAccelerationMode"
    requestAccessEnabled="request-access-enabled-flag"
    runNowEnabled="run-now-enabled-flag"
    userQuota="all-license-limit-total"
    tierCreatorCapacity="creator-license-limit"
    tierExplorerCapacity="explorer-license-limit"
    tierViewerCapacity="viewer-license-limit"
    dataAlertsEnabled="data-alerts-enabled-flag"
    commentingMentionsEnabled="commenting-mentions-enabled-flag"
    catalogObfuscationEnabled="catalog-obfuscation-enabled-flag"
    flowAutoSaveEnabled="flow-auto-save-enabled-flag"
    runNowEnabled="run-now-enabled-flag"
    metricsContentTypeEnabled="metrics-content-type-enabled-flag"
    notifySiteAdminsOnThrottle="notify-site-admins-on-throttle-flag"
    authoringEnabled="authoring-enabled-flag"
    customSubscriptionEmailEnabled="custom-subscription-email-enabled-flag"
    customSubscriptionEmail="custom-subscription-email"
    customSubscriptionFooterEnabled="custom-subscription-footer-enabled-flag"
    customSubscriptionFooter="custom-subscription-footer"
    askDataMode="ask-data-mode"
    namedSharingEnabled="named-sharing-enabled-flag"
    catalogingEnabled="cataloging-enabled-flag"
    derivedPermissionsEnabled="derived-permissions-enabled-flag"
    userVisibilityMode="user-visibility-mode"
    useDefaultTimeZone="default-time-zone-flag"
    timeZone="time-zone"
    autoSuspendRefreshEnabled="auto-suspend-refresh-enabled-flag"
    autoSuspendRefreshInactivityWindow="auto-suspend-refresh-inactivity-window"
    explainDataEnabled="explaindataenabled"
    dqwSubscriptionsEnabled="dqwsubscriptionsenabled"
    attributeCaptureEnabled="attribute-capture-enabled"
    groupAssertionsEnabled="group-assertions-enabled-flag"
    groupAssertionsSAMLEnabled="group-assertions-saml-enabled-flag"
    groupAssertionsOIDCEnabled="group-assertions-oidc-enabled-flag"
    groupAssertionsConnectedAppsEnabled="group-assertions-connected-apps-enabled-flag"
    groupSetsEnabled="group-sets-enabled-flag"
    recycleBinEnabled="recycle-bin-enabled-flag" />
</tsRequest>
```

**Updating the site logo**

To set a new site logo, you pass a multi-part payload to the site. In addition to setting the `X-Tableau-Auth` header to the sign-in token, you must set the `Content-Type` header to `multipart/mixed` and include a boundary string. For example, the header might look like the following example:

`Content-Type: multipart/mixed; boundary=az1by2cx34dw`

The request body starts with the string you specify as the boundary. This is followed by two headers. You set `Content-Disposition` header to `form-data`, and then a `name` value set to `site_logo` and a `filename` value. You must also include a `Content-Type` header set to `application/octet-stream`. After the headers, you include a blank line then the binary data (not encoded). The binary data is followed by a line that includes the boundary string and the two required termination hyphens (`--`).

The following example shows the request body using the boundary string that was specified in the example header earlier.

\--az1by2cx34dw Content-Disposition: form-data; name="site\_logo"; filename="new-site-logo.png" Content-Type: application/octet-stream  <binary data here> --az1by2cx34dw--

**Restoring the default site logo**

To restore the default site logo, you pass a multi-part payload to the site, as you do to set the logo. However, instead of passing binary data for the image, you pass an empty image. And instead of setting the `Content-Type` header in the body to `application/octet-stream`, you set the content type to `text/plain`.

The following example shows the request body using the boundary string that was specified in the example header earlier.

\--az1by2cx34dw Content-Disposition: form-data; name="site\_logo"; filename="empty.txt" Content-Type: text/plain   --az1by2cx34dw--

#### Attribute Values

<table class="api-parameters-table">
                                    <colgroup>
                                        <col style="width:27%;">
                                        <col>
                                    </colgroup>
                                    <tbody>
                                        <tr>
                                            <td><span class="api-placeholder">new-site-name</span>
                                            </td>
                                            <td>(Optional) The new name of the site.</td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">new-content-url</span>
                                            </td>
                                            <td>(Optional) The new site URL. This value can contain only characters that are valid in a URL. These characters include letters (A-Z, a-z), digits (0-9), hyphens ("-"), and underscores ("_") If you provide invalid characters, those characters are stripped from the URL and the site is created anyway. For example, if you try to set the site URL as <code>test.site</code>, it's converted to <code>testsite</code> and returned in the response. The response's site URL namespace is the authoritative source of truth for the new site URL.</td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">new-admin-mode</span>
                                            </td>
                                            <td>(Optional) Specify <span class="api-command-ref">ContentAndUsers</span> to allow site administrators to use the server interface and <code>tabcmd</code> commands to add and remove users. (Specifying this option doesn't give site administrators permissions to manage users using the REST API.)  Specify <span class="api-command-ref">ContentOnly</span> to prevent site administrators from adding or removing users. (Server administrators can always add or remove users.)
									<p class="note"><strong>Note:</strong> You cannot set <span class="api-command-ref">adminMode</span> to <span class="api-command-ref">ContentOnly</span> and also set a  <span class="api-command-ref">userQuota</span> value.
									The default value is <span class="api-command-ref">ContentAndUsers</span>.</p></td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">new-state</span>
                                            </td>
                                            <td>(Optional) <span class="api-command-ref">Active</span> to set the site to active mode, or <span class="api-command-ref">Suspended</span> to suspend the site. Default is <span class="api-command-ref">Active</span>.</td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">new-storage-quota</span>
                                            </td>
                                            <td>(Optional) The new maximum amount of space for the new site, in megabytes. If you set a quota and the site exceeds it, publishers will be prevented from uploading new content until the site is under the limit again.</td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">new-disable-subscriptions</span>
                                            </td>
                                            <td>(Optional) <span class="api-command-ref">true</span> to prevent users from being able to subscribe to workbooks on the specified site.  Default is <span class="api-command-ref">false</span>.</td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">revision-history-enabled</span>
                                            </td>
                                            <td>(Optional) <span class="api-command-ref">true</span> if the site maintains revisions for changes to workbooks and data sources; otherwise, <span class="api-command-ref">false</span>. The default is <span class="api-command-ref">false</span>.</td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">revision-limit</span>
                                            </td>
                                            <td>(Optional) An integer between 2 and 10000 to indicate a limited number of revisions for content. <p>Setting this value to -1 removes any value that was set previously, and effectively removes any limit to the number of revisions that are maintained.</p></td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">allow-subscription-attachments-flag</span>
                                            </td>
                                            <td>
                                                <p>(Optional) If <span class="api-command-ref">true</span>, and subscription to attachments is enabled on the server, then users can create subscriptions that send an email with images of a workbook or view in a PDF attachment. The default value is <span class="api-command-ref">true</span>. If subscription to attachments is disabled in the server settings, then making this value <span class="api-command-ref">true</span> will have no effect.
				Default is <span class="api-command-ref">true</span>.</p>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">subscribe-others-enabled-flag</span>
                                            </td>
                                            <td>
                                                <p>(Optional) Specify <span class="api-command-ref">true</span> to enable and <b>false</b> to disable the ability for view owners to subscribe other users to a view.
									Default is <span class="api-command-ref">true</span>.</p>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">editing-flows-enabled-flag</span>
                                            </td>
                                            <td>
                                                <p>(Optional) Specify <span class="api-command-ref">true</span> to enable and <b>false</b> to disable editing flows for a site. For more information on flows, see <a href="https://help.tableau.com/current/prep/en-us/prep_conductor_config_server_overview.htm" target="_blank">Enable and Configure Tableau Prep Conductor</a>.</p>
                                                <p>The default is set to <b>true</b>, which means editing flows is enabled by default. For more information, see <a href="https://help.tableau.com/v0.0/prep/en-us/prep_conductor_configure_server.htm#implication-of-disabling-tableau-prep-conductor">Implication of disabling Tableau Prep Conductor</a>.</p>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">scheduling-flows-enabled-flag</span>
                                            </td>
                                            <td>
                                                <p>(Optional) Specify <span class="api-command-ref">true</span> to enable and <b>false</b> to disable scheduling flows for a site. For more information on flows, see <a href="https://help.tableau.com/current/prep/en-us/prep_conductor_config_server_overview.htm" target="_blank">Enable and Configure Tableau Prep Conductor</a>.</p>
                                                <p>The default is set to <b>true</b>, which means scheduling flows is enabled by default. For more information, see
									<a href="https://help.tableau.com/v0.0/prep/en-us/prep_conductor_configure_server.htm#implication-of-disabling-tableau-prep-conductor">Implication of disabling Tableau Prep Conductor</a>.</p>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">flows-enabled-flag</span>
                                            </td>
                                            <td>
                                                <p>The <span class="api-command-ref">flowsEnabled</span> attribute is deprecated as of API 3.10.</p>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">guest-access-enabled-flag</span>
                                            </td>
                                            <td>
                                                <p>(Optional) Specify <span class="api-command-ref">true</span>  to enable and <b>false</b> to disable the ability for guests, users without specific site access permission, to access the site.
									Default is <span class="api-command-ref">false</span>.</p>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">cache-warmup-enabled-flag</span>
                                            </td>
                                            <td>
                                                <p class="note">This attribute was removed in API 3.19 and later. For current
										methods to improve Tableau performance see, <a href="https://help.tableau.com/current/server/en-us/data_acceleration.htm" target="_blank" rel="noreferrer">View Acceleration</a>.
											</p>
                                                <p>
										(Optional) Set this value to <span class="api-command-ref">true</span>  to enable cache warm up to
										improve workbook load times.  Set the value to <b>false</b> to disable cache warmup.
									Default is <span class="api-command-ref">true</span>.</p>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">commenting-enabled-flag</span>
                                            </td>
                                            <td>
                                                <p>(Optional) Specify <span class="api-command-ref">true</span> to enable and <b>false</b> to disable the ability for user comments on views in the site.
									Default is <span class="api-command-ref">true</span>.</p>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">extractEncryptionMode</span>
                                            </td>
                                            <td>
                                                <p>(Optional) Specify <b>enforced</b>, <b>enabled</b>, or <b>disabled</b>.
				Default is <span class="api-command-ref">disabled</span>. For more information, see <a href="https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_ref_extract_and_encryption.htm" class="xref">Extract and Encryption Methods</a>.</p>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">dataAccelerationMode</span>
                                            </td>
                                            <td>
                                                <p>(Optional) Specify <b>enable_selective</b> or <b>disabled</b>. The default is <b>enable_selective, which</b> lets you update particular workbooks to turn on data acceleration using the <b>accelerationEnabled</b> attribute. For more information, see <a href="https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_concepts_data_acceleration.htm" class="xref">Data Acceleration (Retired)</a>. <i>Tableau's View Acceleration feature and Data Acceleration-related APIs were retired in Tableau Cloud in June 2026 and in Tableau Server version 2026.2.</i></p>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">requestAccessEnabled</span>
                                            </td>
                                            <td>(Optional) Specify <span class="api-command-ref">true</span> to allow users send access request emails to content or project owners. Specify <span class="api-command-ref">false</span> if you don't want users to be able to request access. The default is <span class="api-command-ref">false</span>.</td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">runNowEnabled</span>
                                            </td>
                                            <td>
                                                <p>(Optional) Specify <span class="api-command-ref">true</span> to allow users to run flows, extract refreshes, and schedules manually. Specify <span class="api-command-ref">false</span> if you don't want users to be able to run flows, extract refreshes, and subscriptions manually. The default is <span class="api-command-ref">true</span>. If this attribute is set to <span class="api-command-ref">false</span>, the following methods will fail and will return an error message.</p>
                                                <p><a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_flow.htm#run_flow_now">Run Flow Now</a>
                                                </p>
                                                <p><a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_flow.htm#run_flow_task" target="_blank">Run Flow Task</a>
                                                </p>
                                                <p><a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_datasources.htm#update_data_source_now" target="_blank">Update Data Source Now</a>
                                                </p>
                                                <p><a href="https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_jobs_tasks_and_schedules.htm#run_extract_refresh_task" target="_blank">Run Extract Refresh Task</a>
                                                </p>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td colspan="2">
                                                <p class="note"><b>Licensing attributes</b>
                                                    <br>
                                                    <br>For user-based license types, the maximum number of users is set by the licenses activated on that server.
										For core-based licensing, there's no limit to the number of users; if you specify a maximum value, only licensed
										users are counted, and server administrators are excluded.
										<br><br>The REST API enables administrators to set licensing
										limits below the purchased maximum with two types of license-related attributes:
										<br> - User Quota - The total maximum number of licenses currently configured for a site.
										<br> - Tiered Capacities - If set, the configured maximum license count for each license type (role).

										<br><br>. An on-premises server administrator can both get and set them
										but if license maximums are set using one attribute kind then the value(s) of the other kind must be null. Setting
										values for both kinds of attributes will result in an error.
										<br><br> For more information, see
										<a href="https://help.tableau.com/current/server/en-us/license_server_overview.htm" rel="noopener" target="_blank">Licensing Overview</a>.
									</p>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td>
                                                <p>User quota</p>
                                                <p><span class="api-placeholder">all-license-limit-total</span>
                                                </p>
                                            </td>
                                            <td>
                                                <p>(Optional) The maximum total number of users with Creator, Explorer, or Viewer licenses currently allowed on a site.</p>
                                                <p>On-premises server administrators can set <code>userQuota</code> with the following rules: The number can't
									exceed the number of licenses activated for the site; and if tiered capacity attributes are set, then
									<code>userQuota</code> will equal the sum of the tiered capacity values, and attempting to set
								<code>userQuota</code> will cause an error.</p>
                                                <p>An administrator can revert the license limit to number of activated licenses on the site, or shift control of license
									limits to tiered capacities values, by omitting <code>userQuota</code> from a Create Site or Update Site request, or
								making its value -1. </p>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td>
                                                <p>Tiered capacity attributes</p>
                                                <p><span class="api-placeholder">creator-license-limit</span>
                                                    <br><span class="api-placeholder">explorer-license-limit</span>
                                                    <br><span class="api-placeholder">viewer-license-limit</span>
                                                </p>
                                            </td>
                                            <td>
                                                <p>(Optional) The maximum number of licenses for users with the Creator,
									Explorer, or Viewer role, respectively, allowed on a site. </p>
                                                <p>On-premises server administrators can set tiered capacity attributes with the following rules: the number can't
									exceed the number of licenses of a given type that are activated for the site; a value must be supplied for
									every tiered capacity license type every time any one or more of them is set.</p>
                                                <p>A value of -1 removes the administrator-applied limit for a license type, and reverts the limit to the number of
									activated licenses configured for the role. Setting the value of a tiered capacity to -1 will not automatically
									increase the limit if more licenses are purchased and activated for the role in the future. </p>
                                                <p>To use role-specific license limits, the <code>userQuota</code> must be set to null by omitting the attribute from
									Create Site or Update Site request, or setting its value to -1. Attempting to set values for both tiered capacities
									and <code>userQuota</code> will result in an error.</p>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td>
                                                <p><span class="api-placeholder">data-alerts-enabled-flag</span>
                                                </p>
                                            </td>
                                            <td>(Optional, boolean) If <code>true</code>, data alerts are enabled on the site. Default value is <code>true</code>.</td>
                                        </tr>
                                        <tr>
                                            <td>
                                                <p><span class="api-placeholder">commenting-mentions-enabled-flag</span>
                                                </p>
                                            </td>
                                            <td>(Optional, boolean) If <code>true</code>, mentions for commenting are enabled. Default value is <code>true</code>.</td>
                                        </tr>
                                        <tr>
                                            <td>
                                                <p><span class="api-placeholder">catalog-obfuscation-enabled-flag</span>
                                                </p>
                                            </td>
                                            <td>(Optional, boolean) If <code>true</code>, catalog obfuscation is enabled on the site. Default value is <code>true</code>.</td>
                                        </tr>
                                        <tr>
                                            <td>
                                                <p><span class="api-placeholder">flow-auto-save-enabled-flag</span>
                                                </p>
                                            </td>
                                            <td>(Optional, boolean) If <code>true</code>, flow auto save is enabled on the site. Default value is <code>true</code>.</td>
                                        </tr>
                                        <tr>
                                            <td>
                                                <p><span class="api-placeholder">run-now-enabled-flag</span>
                                                </p>
                                            </td>
                                            <td>(Optional, boolean) If <code>true</code>, run now for schedules is enabled which allows non-administrators to run schedules manually. Default value is <code>true</code>.</td>
                                        </tr>
                                        <tr>
                                            <td>
                                                <p><span class="api-placeholder">metrics-content-type-enabled-flag</span>
                                                </p>
                                            </td>
                                            <td>(Optional, boolean) If <code>true</code>, the metrics content type is enabled on the server. Default value is <code>false</code>.</td>
                                        </tr>
                                        <tr>
                                            <td>
                                                <p><span class="api-placeholder">notify-site-admins-on-throttle-flag</span>
                                                </p>
                                            </td>
                                            <td>(Optional, boolean) If <code>true</code>, site admins will be notified if their background jobs are being throttled. Default value is <code>false</code>.</td>
                                        </tr>
                                        <tr>
                                            <td>
                                                <p><span class="api-placeholder">authoring-enabled-flag</span>
                                                </p>
                                            </td>
                                            <td>(Optional, boolean) If <code>true</code>, web authoring is enabled. Default value is <code>false</code>.</td>
                                        </tr>
                                        <tr>
                                            <td>
                                                <p><span class="api-placeholder">custom-subscription-email-enabled-flag</span>
                                                </p>
                                            </td>
                                            <td>(Optional, boolean) If <code>true</code>, sending custom subscription email is enabled. If set to false after being set true, the current custom subscription email is voided. Default value is <code>false</code>.</td>
                                        </tr>
                                        <tr>
                                            <td>
                                                <p><span class="api-placeholder">custom-subscription-email</span>
                                                </p>
                                            </td>
                                            <td>A valid custom email that will be sent if <span class="api-placeholder">customSubscriptionEmailEnabled</span> is set to true. Default value is <code>false</code>.</td>
                                        </tr>
                                        <tr>
                                            <td>
                                                <p><span class="api-placeholder">custom-subscription-footer-enabled-flag</span>
                                                </p>
                                            </td>
                                            <td>(Optional, boolean) If <code>true</code>, a custom footer will be included on subscription and data alert emails. If set to false after being set true, the current custom subscription footer is voided. Default value is <code>false</code>.</td>
                                        </tr>
                                        <tr>
                                            <td>
                                                <p><span class="api-placeholder">custom-subscription-footer</span>
                                                </p>
                                            </td>
                                            <td>A custom subscription footer that will be added to subscription and data alerts if <span class="api-placeholder">customSubscriptionFooterEnabled</span> is set to true. Default value is <code>false</code>.</td>
                                        </tr>
                                        <tr>
                                            <td>
                                                <p><span class="api-placeholder">ask-data-mode</span>
                                                </p>
                                            </td>
                                            <td>The mode of the ask data feature on the site. Can be set to one of two values:
									<ul><li><code>DisabledByDefault</code> - Enables creation of Ask Data lenses for all published data sources. Data sources do not have lenses created automatically.</li><li><code>DisabledAlways</code> - Disables Ask Data lenses and related content throughout the site. Preserves information about lenses and data source indexes, which are restored if Ask Data is re-enabled.</li></ul>
								Default value is <code>DisabledByDefault</code>. For more information, see <a href="https://help.tableau.com/current/server/en-us/ask_data_enable.htm" ref="noreferrer" target="_blank">Disable or Enable Ask Data for a Site</a>.</td>
                                        </tr>
                                        <tr>
                                            <td>
                                                <p><span class="api-placeholder">named-sharing-enabled-flag</span>
                                                </p>
                                            </td>
                                            <td>(Optional, boolean) If <code>true</code>, named sharing is enabled. Default value is <code>true</code>.</td>
                                        </tr>
                                        <tr>
                                            <td>
                                                <p><span class="api-placeholder">cataloging-enabled-flag</span>
                                                </p>
                                            </td>
                                            <td>(Optional, boolean) If <code>true</code>, data catalog is enabled for the site. Default value is <code>true</code>.</td>
                                        </tr>
                                        <tr>
                                            <td>
                                                <p><span class="api-placeholder">derived-permissions-enabled-flag</span>
                                                </p>
                                            </td>
                                            <td>(Optional, boolean) If <code>true</code>, derived permissions are enabled for the site. Default value is <code>false</code>.</td>
                                        </tr>
                                        <tr>
                                            <td>
                                                <p><span class="api-placeholder">user-visibility-mode</span>
                                                </p>
                                            </td>
                                            <td>(Optional, string) When the value is <code>FULL</code> users can see the user of other site users. If the value is <code>LIMITED</code> User information on the site is not visible to other users.  Default value is <span class="api-placeholder">FULL</span>. For more information, see <a href="https://help.tableau.com/current/server/en-us/user_visibility.htm" ref="noreferrer" target="_blank">User Visibility</a>.</td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">use-default-time-zone</span>
                                            </td>
                                            <td>(Optional, boolean) Set this to <code>true</code>, if you want the <span class="api-placeholder">time-zone</span> attribute use the Server time Zone at run time. This attribute is set to official IANA name.&nbsp; If this is set to <code>false</code>, the <span class="api-placeholder">time-zone</span> value must be specified.</td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">time-zone</span>
                                            </td>
                                            <td>(Optional, string) Use this attribute to specify a time zone other than the Server time zone at run time. Only canonical names in the  official IANA database are supported. You can find the list of the canonical time zone names on <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones">Wikipedia</a>.</td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">autoSuspendRefreshEnabled</span>
                                            </td>
                                            <td>(Optional) Tableau can automatically suspend extract refresh tasks for inactive workbooks to save resources. Specify&nbsp;true&nbsp;to enable or false&nbsp;to disable. Default is&nbsp;true.</td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">autoSuspendRefreshInactivityWindow</span>
                                            </td>
                                            <td>(Optional) An integer between 7 and 100 to indicate the number of days to wait before automatically suspending extract refresh tasks for inactive workbooks. The default is 30.</td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">explainDataEnabled</span>
                                            </td>
                                            <td>
                                                <p>(Optional, boolean) Set this attribute to <code>false</code> to disable Explain Data capabilities for a site. By default, this attribute is set to <code>true</code>. For more information about this site setting, see <a href="https://help.tableau.com/current/server/en-us/explain_data_enable.htm" target="_blank">Disable or Enable Explain Data for a Site</a> in the Tableau Server Help.</p>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">dqwSubscriptionsEnabled</span>
                                            </td>
                                            <td>
                                                <p>(Optional, boolean) Set this attribute to <code>false</code> to exclude data quality warnings (DQWs) from subscription emails. By default, this attribute is set to <code>true</code>. For more information about this site setting, see <a href="https://help.tableau.com/current/server/en-us/dm_dqw#subscriptions.htm" target="_blank">Disable or Enable Explain Data for a Site</a> in the Tableau Server Help.</p>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td><a name="user_attributes"></a><span class="api-placeholder">attribute-capture-enabled</span>
                                            </td>
                                            <td>
                                                <p>(Optional, boolean) Set this attribute to <code>true</code> to enable user attribute functions used in embedded content to accept the passing of user attributes from a JSON&nbsp;Web Token (JWT) via Tableau connected apps. The user attributes are passed to Tableau at runtime to control and customize the data that can show for an authorized user. By default, this attribute is set to <code>false</code>. For more information, see <a href="https://help.tableau.com/current/api/embedding_api/en-us/docs/embedding_api_user_attributes.html" target="_blank">Tableau Embedding API v3</a> Help. This attribute is available  starting from API&nbsp;version 3.25.</p>
                                                <p>Starting in October 2025 (API&nbsp;version 3.27), you can also use this attribute to pass user information about your identity provider to Tableau Cloud. During single sign-on (SSO), user attribute functions in Tableau content can accept attributes from OIDC&nbsp;claims or SAML assertions.  For more information, see <a href="https://help.tableau.com/current/online/en-us/openid_auth_server_config.htm#user_attributes" target="_blank">OIDC</a> or <a href="https://help.tableau.com/current/online/en-us/saml_config_site.htm#user_attributes" target="_blank">SAML</a> topics in the Tableau Cloud Help.</p>
                                                <p> </p>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">groupAssertionsEnabled</span>
                                            </td>
                                            <td>(Optional) Set to <code>true</code> to allow assertions into group membership using session info. Set to <code>false</code> if you don't want users to be able to be asserted in to groups. The default is <code>false</code>. If this attribute is set to false, it will disable group assertions for the entire site, including the following settings:
    <ul><li><span class="api-placeholder">groupAssertionsSAMLEnabled</span></li><li><span class="api-placeholder">groupAssertionsOIDCEnabled</span></li><li><span class="api-placeholder">groupAssertionsConnectedAppsEnabled</span></li></ul></td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">groupAssertionsSAMLEnabled</span>
                                            </td>
                                            <td>(Optional, boolean) Set to <code>true </code>to allow assertions into group membership using SAML session info. Set to <code>false </code>if you don't want users to be able to be asserted in to groups. The default is <code>false</code>. If this attribute is set to false, it will disable group assertions for SAML sessions.</td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">groupAssertionsOIDCEnabled</span>
                                            </td>
                                            <td>
(Optional, boolean) Set to <code>true </code>to allow assertions into group membership using OIDC session info. Set to <code>false </code>if you don't want users to be able to be asserted in to groups. The default is <code>false</code>. If this attribute is set to false, it will disable group assertions for OIDC sessions.</td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">groupAssertionsConnectedAppsEnabled</span>
                                            </td>
                                            <td> (Optional, boolean) Set to <code>true </code>to allow assertions into group membership using Connected App JWT tokens. Set to <code>false </code>if you don't want users to be able to be asserted into groups via connected apps. The default is <code>false</code>. If this attribute is set to false, it will disable group assertions for JWT connected app connections.</td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">groupSetsEnabled</span>
                                            </td>
                                            <td>(Optional, boolean) Set to <code>true</code> to allow groups sets. Set to <code>false</code> if you don't want group sets support for the site. The default is <code>false</code>. If this attribute is set to false, it will disable group sets for the site.</td>
                                        </tr>
                                        <tr>
                                            <td><span class="api-placeholder">recycleBinEnabled</span>
                                            </td>
                                            <td>(Optional, boolean) Set to <code>true</code> to enable the Recycle Bin. Set to <code>false</code> to disable it. The default is <code>true</code>.</td>
                                        </tr>
                                    </tbody>
                                </table>

Any combination of the attributes inside the <site> element is valid. Only the attributes that are included are updated for the site. If no attributes are present, no update occurs. To update only the logo, include an empty <site> element (`<site />`) and the logo in the multipart message.

Starting in API version 2.3, you can call Update Site to upload a custom logo image for the site. (For information about custom logos, see [Custom the Name or Logo](https://help.tableau.com/current/server/en-us/help.htm#customize_namelogo.htm) in the Tableau Server Help.)

To upload a logo image, you include the image in a multipart message; this is similar to how you publish a workbook or data source. You must include the following headers in the request:

- `MIME-Version: 1.0`
- `Content-Type: multipart/mixed; boundary=boundary-string`
- `X-Tableau-auth: authentication-token`

The following example shows the request body for an Update Site request that updates the site with a new logo. For this example, the boundary string has been set in the header to `6691a87289ac461bab2c945741f136e6`. The `<site>` element can be empty if you're calling Update Site only to update the logo image.

```
--6691a87289ac461bab2c945741f136e6 Content-Disposition: name="request_payload" Content-Type: text/xml  <tsRequest>   <site site attributes >   </site> </tsRequest> --6691a87289ac461bab2c945741f136e6 Content-Disposition: name="site_logo"; filename="MySiteLogo.png" Content-Type: application/octet-stream logo stream here --6691a87289ac461bab2c945741f136e6--
```

To clear a custom logo image and revert to using the default logo for the site, call Update Site with a multipart message, but leave the portion of the request body blank where you would normally include the logo stream.

For more information about creating multipart messages, see [Publishing Resources](https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_concepts_publish.htm).

#### Permissions

Tableau Server: This method can only be called by server administrators.

#### Required scope for JWT authorization

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

```
tableau:sites:update
```

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

#### Response Code

200

#### Response Body

```
<tsResponse>
  <site id="site-id"
    name="site-name"
    contentUrl="content-url"
    adminMode="admin-mode"
    storageQuota="limit-in-megabytes"
    disableSubscriptions="true-or-false"
    state="active-or-suspended"
    revisionHistoryEnabled="true-or-false"
    revisionLimit="revision-limit"
    allowSubscriptionAttachments="allow-subcription-attachments-flag"
    cacheWarmupEnabled="cache-warmup-enabled-flag [REMOVED IN API 3.19]"
    commentingEnabled="commenting-enabled-flag"
    editingFlowsEnabled="editing-flows-enabled-flag"
    schedulingFlowsEnabled="scheduling-flows-enabled-flag"
    catalogingEnabled="cataloging-enabled-flag"
    derivedPermissionsEnabled="derived-permissions-enabled-flag"
    requestAccessEnabled="request-access-enabled-flag"
    runNowEnabled="run-now-enabled-flag"
    userQuota="all-license-limit-total"
    tierCreatorCapacity="creator-license-limit"
    tierExplorerCapacity="explorer-license-limit"
    tierViewerCapacity="viewer-license-limit"
    askDataMode="ask-data-mode"
    useDefaultTimeZone="default-time-zone-flag"
    timeZone="time-zone"
    autoSuspendRefreshEnabled="auto-suspend-refresh-enabled-flag"
    autoSuspendRefreshInactivityWindow="auto-suspend-refresh-inactivity-window"
    explainDataEnabled="explain-data-enabled"
    dqwSubscriptionsEnabled="dqw-subscriptions-enabled"
    attributeCaptureEnabled="attribute-capture-enabled"
    groupAssertionsEnabled="group-assertions-enabled-flag"
    groupAssertionsSAMLEnabled="group-assertions-saml-enabled-flag"
    groupAssertionsOIDCEnabled="group-assertions-oidc-enabled-flag"
    groupAssertionsConnectedAppsEnabled="group-assertions-connected-apps-enabled-flag"
    groupSetsEnabled="group-sets-enabled-flag"
    recycleBinEnabled="recycle-bin-enabled-flag" />
  </site>
</tsResponse>
```

Response Body Details:

- userQuota, storageQuota, and tiered capacity (tierCreatorCapacity, tierExplorerCapacity, tierViewerCapacity) attributes are only present in the response body if those quotas have been set for the site being queried.

#### Version

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

#### Errors

<table class="api-error-table"><colgroup><col class="api-error-table-col-1"> <col class="api-error-table-col-2"> <col class="api-error-table-col-3"> <col></colgroup><tbody><tr><th>HTTP status</th><th><code>error</code> Code</th><th>Condition</th><th>Details</th></tr><tr><td>400</td><td>400008</td><td>Invalid revision history limit</td><td>The value for the revision history limit isn't an integer.</td></tr><tr><td>400</td><td>400000</td><td>Bad request</td><td>The content of the request body is missing or incomplete, or contains malformed XML.</td></tr><tr><td>400</td><td>400004</td><td>Invalid administrator mode</td><td>An administrator mode parameter was provided in the request with an invalid value. The valid values are <span class="api-command-ref">ContentOnly</span> and <span class="api-command-ref">ContentAndUsers</span>.</td></tr><tr><td>400</td><td>400004</td><td>Invalid state</td><td>A state parameter was provided in the request with an invalid value</td></tr><tr><td>404</td><td>404000</td><td>Site not found</td><td>The site ID in the URI doesn't correspond to an existing site.</td></tr><tr><td>405</td><td>405000</td><td>Invalid request method</td><td>Request type wasn't <span class="api-command-ref">PUT</span>.</td></tr><tr><td>409</td><td>409001</td><td>Site name conflict</td><td>The new site name in the request already belongs to an existing site.</td></tr><tr><td>409</td><td>409002</td><td>Site URL conflict</td><td>The new content URL in the request already belongs to an existing site.</td></tr><tr><td>409</td><td>409004</td><td>User quota and tiered capacity conflict</td><td>The request can't set both tiered capacity attributes and <span class="api-command-ref">userQuota</span>. One or the other must be null.</td></tr><tr><td>409</td><td>409004</td><td>License limit exceeded</td><td>The request can't set tiered capacity attributes or <span class="api-command-ref">userQuota</span> values that are larger than the number of active licenses configured for the site.</td></tr><tr><td>409</td><td>409004</td><td>Administrator mode or user quota conflict</td><td>The request can't set <span class="api-command-ref">adminMode</span> to <span class="api-command-ref">ContentOnly</span> and also specify a <span class="api-command-ref">userQuota</span> value.</td></tr></tbody></table>

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

#### Example

`curl "http://MY-SERVER/api/3.29/sites/9a8b7c6d5-e4f3-a2b1-c0d9-e8f7a6b5c4d" -X PUT -H "X-Tableau-Auth:12ab34cd56ef78ab90cd12ef34ab56cd" -d @update-site.xml`

**Content of update-site.xml:**

```
<tsRequest>
  <site
    adminMode="ContentOnly"
    storageQuota="1000"
    tierCreatorCapacity="2"
    tierExplorerCapacity="1"
    tierViewerCapacity="1"
    useDefaultTimeZone="false"
    timeZone="America/Los_Angeles" />
</tsRequest>
```

**Example response:**

```
<tsResponse<
  <site id="9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d"
    name="Default"
    contentUrl="svc_licensingtest"
    adminMode="ContentAndUsers"
    disableSubscriptions="false"
    state="Active"
    revisionHistoryEnabled="true"
    revisionLimit="25"
    subscribeOthersEnabled="true"
    allowSubscriptionAttachments="true"
    guestAccessEnabled="false"
    cacheWarmupEnabled="true" [REMOVED IN API 3.19]
    commentingEnabled="true"
    editingFlowsEnabled="false"
    schedulingFlowsEnabled="false"
    extractEncryptionMode="disabled"
    catalogingEnabled="true"
    derivedPermissionsEnabled="true"
    askDataMode="DisabledByDefault"
    useDefaultTimeZone="false"
    timeZone="America/Los_Angeles"
    explainDataEnabled="true"
    dqwSubscriptionsEnabled="false"
</tsResponse>
```