Recycle Bin Methods
The Recycle Bin methods of the Tableau REST API allow you to manage Recycle Bin content on your site. Using these methods you can:
- List Recycle Bin content: Retrieve a list workbooks, data sources, flows, or projects in the Recycle Bin. Supports paging, filtering, and sorting.
- Get Recycle Bin content: Retrieve details for a specific content item in the Recycle Bin.
- Restore Recycle Bin content: Restore a single content item from the Recycle Bin to a specified project.
- Delete Recycle Bin content: Permanently delete a single Recycle Bin content item or empty the entire Recycle Bin for a site.
These methods are available starting in API version 3.29. For more information about the recycle bin, see Manage the Recycle Bin(Link opens in a new window).
Delete All Recycle Bin Contents
Permanently deletes all content in a site's Recycle Bin .
Version: Available in API 3.29 (Tableau Cloud June 2026 / Server 2026.2).
License: No additional license required.
Permissions: Server administrators, site administrators, or other users.
Access Scope: tableau:recyclebin_content:delete
For more information, see Versions(Link opens in a new window), Permissions(Link opens in a new window), Access scopes for UATs(Link opens in a new window) (Cloud), and access scopes for Cloud(Link opens in a new window), Server-Windows,(Link opens in a new window) or Server-Linux(Link opens in a new window).
Administrators delete all content in the site's Recycle Bin. Other users only delete content they own.
For information about how content properties change when it's deleted or restored. See Recycle Bin(Link opens in a new window).
URI
DELETE /api/api-version/sites/site-id/recyclebin
DELETE /api/api-version/sites/site-id/recyclebin?asJob=asJob-value
Parameter Values
| api-version | The version of the API to use, such as 3.29. For more information, see REST API and Resource Versions. |
| site-id | The ID of the site that contains the Recycle Bin. |
| as-job-value | (Optional) If true, runs as an asynchronous job. Returns job information instead of executing synchronously. Default is false. Check the status of the job by calling Query Job. |
Request Body
None
Response Code
204 with synchronous execution (when query parameter asJob is false)
202 with asynchronous execution (when query parameter asJob is true and an EmptyRecycleBin job is created)
Response Body
No response body with synchronous execution(when query parameter asJob is false)
Returns a job object with asynchronous execution (when query parameter asJob is true and an EmptyRecycleBin job is created):
Datetime fields are returned in UTC format (YYYY-MM-DDTHH:MM:SSZ).
<tsResponse>
<job id="12ab34cd-56ef-78ab-90cd-12ef34ab56cd"
mode="Asynchronous"
type="EmptyRecycleBin"
progress="0"
createdAt="2026-05-22T02:38:57Z"
finishCode="1"/>
</tsResponse>
{
"job":{
"id":"12ab34cd-56ef-78ab-90cd-12ef34ab56cd",
"mode":"Asynchronous",
"type":"EmptyRecycleBin",
"progress":"0",
"createdAt":"2026-05-22T02:37:30Z",
"finishCode":"1"
}
}
Errors
| HTTP status | error Code |
Condition | Details |
|---|---|---|---|
| 400 | 400000 | Bad request | Check the request body and query string parameters. |
| 401 | 401000 | No auth credentials | Check the authorization header. |
| 401 | 401002 | Unauthorized | Session expired or invalid. |
| 403 | 403004 | Operation on resource unauthorized | Check user permission. |
| 403 | 403157 | Feature disabled | Recycle Bin disabled. |
| 404 | 404000 | Site not found | The site ID in the URI doesn't correspond to an existing site. |
| 405 | 405000 | Method not allowed | Request type unrecognized for this method. |
| 406 | 406000 | Unacceptable media type | Bad Accept: header. |
| 409 | 409004 | Invalid parameter | Parameter type-mismatched, unknown content type, or malformed LUID. |
| 429 | 429000 | Too many requests | Request throttled. |
| 500 | 500000 | Internal server error | Unknown error. |
| 503 | 500001 | Internal service error | Internal service error. |
For more information, see Handling Errors.
Delete Recycle Bin Content Item
Permanently deletes the specified Recycle Bin content item.
Version: Available in API 3.29 (Tableau Cloud June 2026 / Server 2026.2).
License: No additional license required.
Permissions: Server administrators, site administrators, or other users.
Access Scope: tableau:recyclebin_content:delete
For more information, see Versions(Link opens in a new window), Permissions(Link opens in a new window), Access scopes for UATs(Link opens in a new window) (Cloud), and access scopes for Cloud(Link opens in a new window), Server-Windows,(Link opens in a new window) or Server-Linux(Link opens in a new window).
Administrators can delete any content in the site's Recycle Bin. Other users can only delete content they own.
For information about how content properties change when it's deleted or restored. See Recycle Bin(Link opens in a new window).
URI
DELETE /api/api-version/sites/site-id/recyclebin/content-type/content-id
Parameter Values
| api-version | The version of the API to use, such as 3.29. For more information, see REST API and Resource Versions. |
| site-id | The ID of the site that contains the Recycle Bin. |
| content-type | Content type in plural form: workbooks, datasources, flows, or projects. |
| content-id | The LUID of the Recycle Bin content item to delete. |
Request Body
None
Response Code
204
Response Body
None
Version
Version 3.29 and later. For more information, see REST API and Resource Versions.
Errors
| HTTP status | error Code |
Condition | Details |
|---|---|---|---|
| 400 | 400000 | Bad request | Check the request body and query string parameters. |
| 401 | 401000 | No auth credentials | Check the authorization header. |
| 401 | 401002 | Invalid auth credentials | Session expired or invalid. |
| 403 | 403004 | Operation on resource unauthorized | Check user permission. |
| 403 | 403157 | Feature disabled | Recycle Bin disabled. |
| 404 | 404000 | Site not found | The site ID in the URI doesn't correspond to an existing site. |
| 404 | 404003 | Unknown resource | Requested content item not found. |
| 405 | 405000 | Method not allowed | Request type unrecognized for this method. |
| 406 | 406000 | Unacceptable media type | Bad Accept: header. |
| 409 | 409004 | Invalid parameter | Parameter type-mismatched, unknown content type, or malformed LUID. |
| 429 | 429000 | Too many requests | Request throttled. |
| 500 | 500000 | Internal server error | Unknown error. |
| 503 | 500001 | Internal service error | Internal service error. |
For more information, see Handling Errors.
Get Recycle Bin Content Item
Returns information about the specified Recycle Bin content item.
Version: Available in API 3.29 (Tableau Cloud June 2026 / Server 2026.2).
License: No additional license required.
Permissions: Server administrators, site administrators, or other users.
Access Scope: tableau:recyclebin_content:read
For more information, see Versions(Link opens in a new window), Permissions(Link opens in a new window), Access scopes for UATs(Link opens in a new window) (Cloud), and access scopes for Cloud(Link opens in a new window), Server-Windows,(Link opens in a new window) or Server-Linux(Link opens in a new window).
Administrators can see any content in the site's Recycle Bin. Other users can only see the content they own.
URI
GET /api/api-version/sites/site-id/recyclebin/content-type/content-id
Parameter Values
| api-version | The version of the API to use, such as 3.29. For more information, see REST API and Resource Versions. |
| site-id | The ID of the site that contains the Recycle Bin. |
| content-type | Content type in plural form: workbooks, datasources, flows, or projects. |
| content-id | The LUID of the recycle bin content item. |
Request Body
None
Response Code
200
Response Body
<tsResponse>
<contentItems>
<contentItem id="12ab34cd-56ef-78ab-90cd-12ef34ab56cd"
name="Rocket Trajectories"
contentType="workbook"
createdAt="2026-05-22T02:50:20Z"
updatedAt="2026-05-22T02:51:04Z"
originalPath="Physics"
isReadOnly="false">
<owner id="9f9e9d9c-8b8a-8f8e-7d7c-7b7a6f6d6e6d" />
<deleter id="1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d" />
</contentItem>
</contentItems>
</tsResponse>
{
"contentItems": {
"contentItem": [
{
"owner": {
"id": "9f9e9d9c-8b8a-8f8e-7d7c-7b7a6f6d6e6d"
},
"deleter": {
"id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
},
"id": "12ab34cd-56ef-78ab-90cd-12ef34ab56cd",
"name": "Rocket Trajectories",
"contentType": "workbook",
"createdAt": "2026-05-22T02:50:20Z",
"updatedAt": "2026-05-22T02:51:04Z",
"originalPath": "Physics",
"isReadOnly": false
}
]
}
}
Datetime fields are returned in UTC format (YYYY-MM-DDTHH:MM:SSZ).
Version
Version 3.29 and later. For more information, see REST API and Resource Versions.
Errors
| HTTP status | error Code |
Condition | Details |
|---|---|---|---|
| 400 | 400000 | Bad request | Check the request body and query string parameters. |
| 401 | 401000 | No auth credentials | Check the authorization header. |
| 401 | 401002 | Invalid auth credentials | Session expired or invalid. |
| 403 | 403004 | Operation on resource unauthorized | Check user permission. |
| 403 | 403157 | Feature disabled | Recycle Bin disabled. |
| 404 | 404000 | Site not found | The site ID in the URI doesn't correspond to an existing site. |
| 404 | 404003 | Unknown resource | Requested content item not found. |
| 405 | 405000 | Method not allowed | Request type unrecognized for this method. |
| 406 | 406000 | Unacceptable media type | Bad Accept: header. |
| 409 | 409004 | Invalid parameter | Parameter type-mismatched, unknown content type, or malformed LUID. |
| 429 | 429000 | Too many requests | Request throttled. |
| 500 | 500000 | Internal server error | Unknown error. |
| 503 | 500001 | Internal service error | Internal service error. |
For more information, see Handling Errors.
List Recycle Bin Content by Type
Gets a list of Recycle Bin content of the specified type.
Version: Available in API 3.29 (Tableau Cloud June 2026 / Server 2026.2).
License: No additional license required.
Permissions: Server administrators, site administrators, or other users.
Access Scope: tableau:recyclebin_content:read
For more information, see Versions(Link opens in a new window), Permissions(Link opens in a new window), Access scopes for UATs(Link opens in a new window) (Cloud), and access scopes for Cloud(Link opens in a new window), Server-Windows,(Link opens in a new window) or Server-Linux(Link opens in a new window).
Administrators can see all content in the site's Recycle Bin. Other users can only see the content they own.
This method supports filtering, sorting, and pagination.
URI
GET /api/api-version/sites/site-id/recyclebin/content-type
GET /api/api-version/sites/site-id/recyclebin/content-type?filter=filter-expression
GET /api/api-version/sites/site-id/recyclebin/content-type?sort=sort-expression
GET /api/api-version/sites/site-id/recyclebin/content-type?pageSize=page-size&pageNumber=page-number
Parameter Values
| api-version | The version of the API to use, such as 3.29. For more information, see REST API and Resource Versions. |
| site-id | The ID of the site that contains the Recycle Bin. |
| content-type | Content type in plural form: workbooks, datasources, flows, or projects. |
| filter-expression | (Optional) An expression that lets you specify a subset of recycle bin content to return. You can filter on predefined fields such as name, ownerId, deleterId, createdAt, updatedAt, and path. You can include multiple filter expressions. For more information, see Filtering and Sorting. |
| sort-expression | (Optional) An expression that lets you specify the order in which recycle bin content information is returned. If you do not specify a sort expression, the sort order of the information that's returned is undefined. For more information, see Filtering and Sorting. |
| page-size | (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 Paginating Results. |
| page-number | (Optional) The offset for paging. The default is 1. For more information, see Paginating Results. |
Request Body
None
Response Code
200
Response Body
<tsResponse>
<pagination pageNumber="1"
pageSize="100"
totalAvailable="1"/>
<contentItems>
<contentItem id="12ab34cd-56ef-78ab-90cd-12ef34ab56cd"
name="Sales workbook"
contentType="workbook"
createdAt="2026-05-22T02:50:20Z"
updatedAt="2026-05-22T02:51:04Z"
originalPath="Business"
isReadOnly="false">
<owner id="9f9e9d9c-8b8a-8f8e-7d7c-7b7a6f6d6e6d"/>
<deleter id="1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"/>
</contentItem>
</contentItems>
</tsResponse>
{
"pagination": {
"pageNumber": "1",
"pageSize": "100",
"totalAvailable": "1"
},
"contentItems": {
"contentItem": [
{
"owner": {
"id": "9f9e9d9c-8b8a-8f8e-7d7c-7b7a6f6d6e6d"
},
"deleter": {
"id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
},
"id": "12ab34cd-56ef-78ab-90cd-12ef34ab56cd",
"name": "Sales workbook",
"contentType": "workbook",
"createdAt": "2026-05-22T02:50:20Z",
"updatedAt": "2026-05-22T02:51:04Z",
"originalPath": "Business",
"isReadOnly": false
}
]
}
}
Datetime fields are returned in UTC format (YYYY-MM-DDTHH:MM:SSZ).
Version
Version 3.29 and later. For more information, see REST API and Resource Versions.
Errors
| HTTP status | error Code |
Condition | Details |
|---|---|---|---|
| 400 | 400000 | Bad request | Check the request body and query string parameters. |
| 401 | 401000 | No auth credentials | Check the authorization header. |
| 401 | 401002 | Invalid auth credentials | Session expired or invalid. |
| 403 | 403004 | Operation on resource unauthorized | Check user permission. |
| 403 | 403157 | Feature disabled | Recycle Bin disabled. |
| 404 | 404000 | Site not found | The site ID in the URI doesn't correspond to an existing site. |
| 405 | 405000 | Method not allowed | Request type unrecognized for this method. |
| 406 | 406000 | Unacceptable media type | Bad Accept: header. |
| 409 | 409004 | Invalid parameter | Parameter type-mismatched, unknown content type, or malformed LUID. |
| 429 | 429000 | Too many requests | Request throttled. |
| 500 | 500000 | Internal server error | Unknown error. |
| 503 | 500001 | Internal service error | Internal service error. |
For more information, see Handling Errors.
Restore Recycle Bin Content Item
Restores the specified content item from the Recycle Bin to a project.
Version: Available in API 3.29 (Tableau Cloud June 2026 / Server 2026.2).
License: No additional license required.
Permissions: Server administrators, site administrators, or other users. The calling user also needs Publish permission for the project they're restoring content to.
Access Scope: tableau:recyclebin_content:update
For more information, see Versions(Link opens in a new window), Permissions(Link opens in a new window), Access scopes for UATs(Link opens in a new window) (Cloud), and access scopes for Cloud(Link opens in a new window), Server-Windows,(Link opens in a new window) or Server-Linux(Link opens in a new window).
Administrators can restore any content from the site's Recycle Bin. Other users can only restore content they own, and need Publish permission for the project they're restoring to.
For information about how content properties change when it's deleted or restored. See Recycle Bin(Link opens in a new window).
URI
POST /api/api-version/sites/site-id/recyclebin/content-type/content-id/restore?projectId=project-id
Parameter Values
| api-version | The version of the API to use, such as 3.29. For more information, see REST API and Resource Versions. |
| site-id | The LUID of the site that contains the Recycle Bin. |
| content-type | Content type in plural form: workbooks, datasources, flows, or projects. |
| content-id | The LUID of the recycle bin content item to restore. |
| project-id | The LUID of the project to restore the content to. |
Request Body
None
Response Code
204
Response Body
None
Version
Version 3.29 and later. For more information, see REST API and Resource Versions.
Errors
| HTTP status | error Code |
Condition | Details |
|---|---|---|---|
| 400 | 400000 | Bad request | Check the request body and query string parameters. |
| 401 | 401000 | No auth credentials | Check the authorization header. |
| 401 | 401002 | Invalid auth credentials | Session expired or invalid. |
| 403 | 403004 | Operation on resource unauthorized | Check user permission. |
| 403 | 403008 | Insufficient site storage remaining | Restore would exceed site storage quota. |
| 403 | 403157 | Feature disabled | Recycle Bin disabled. |
| 404 | 404000 | Site not found | The site ID in the URI doesn't correspond to an existing site. |
| 404 | 404003 | Unknown resource | Requested content item not found. |
| 405 | 405000 | Method not allowed | Request type unrecognized for this method. |
| 406 | 406000 | Unacceptable media type | Bad Accept: header. |
| 409 | 409004 | Invalid parameter | Parameter type-mismatched, unknown content type, or malformed LUID. |
| 429 | 429000 | Too many requests | Request throttled. |
| 500 | 500000 | Internal server error | Unknown error. |
| 503 | 500001 | Internal service error | Internal service error. |
For more information, see Handling Errors.
