openapi: 3.1.0
info:
version: 3.24.0
title: Tableau REST API
description: >-
The Tableau REST API allows you to manage and change Tableau Server
and Tableau Cloud resources programmatically using HTTP. You can use
the REST API to manage sites, projects, workbooks, views, data sources,
users, groups, permissions, schedules, subscriptions, and more.
license:
name: Proprietary
url: https://www.tableau.com/legal
termsOfService: https://www.tableau.com/legal
contact:
name: Tableau Developer Support
url: https://www.tableau.com/support
servers:
- url: https://{server}/api/{api-version}
description: Tableau Server or Tableau Cloud
variables:
server:
default: 10ax.online.tableau.com
description: >-
The hostname of your Tableau Server or Tableau Cloud site.
For Tableau Cloud, use the pod URL (e.g., 10ax.online.tableau.com).
For Tableau Server, use your server hostname.
api-version:
default: '3.24'
description: >-
The version of the REST API to use. The API version corresponds
to the version of Tableau Server or Tableau Cloud.
enum:
- '3.24'
- '3.23'
- '3.22'
- '3.21'
- '3.20'
- '3.19'
externalDocs:
description: Tableau REST API Reference
url: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm
tags:
- name: Authentication
description: >-
Sign in and sign out of Tableau Server or Tableau Cloud. You must
sign in to obtain an authentication token before calling other methods.
- name: Data Sources
description: >-
Publish, query, update, delete, and download data sources. Data
sources define the connection to data and can be shared across
multiple workbooks.
- name: Favorites
description: >-
Add and remove content items from a user's list of favorites,
including workbooks, views, data sources, projects, and flows.
- name: Groups
description: >-
Create, update, delete, and query groups. Groups are collections
of users that simplify permission management.
- name: Jobs
description: >-
Query and cancel background jobs on a site, including extract
refreshes, subscriptions, and flow runs.
- name: Permissions
description: >-
Query and set permissions on content items including workbooks,
data sources, projects, views, and flows.
- name: Projects
description: >-
Create, update, delete, and query projects. Projects are containers
for organizing workbooks, data sources, and other content on a site.
- name: Schedules
description: >-
Create, update, delete, and query schedules for extract refreshes
and subscriptions on Tableau Server.
- name: Sites
description: >-
Manage sites on Tableau Server. A site is a collection of users,
groups, projects, workbooks, data sources, and other resources.
- name: Subscriptions
description: >-
Create, update, delete, and query subscriptions. Subscriptions
deliver snapshots of views to users on a schedule.
- name: Users
description: >-
Add, update, remove, and query users on a site. Users are
individuals who can sign in to Tableau Server or Tableau Cloud.
- name: Views
description: >-
Query views and download view images or data. Views are the
individual sheets, dashboards, or stories within a workbook.
- name: Workbooks
description: >-
Publish, query, update, delete, and download workbooks. Workbooks
contain one or more views (sheets, dashboards, or stories) and can
connect to one or more data sources.
security:
- TableauAuth: []
paths:
# ── Authentication ──────────────────────────────────────────
/auth/signin:
post:
operationId: signIn
summary: Tableau Sign in
description: >-
Signs you in as a user on the specified site on Tableau Server or
Tableau Cloud. This call returns an authentication token that you
use in subsequent calls to the server. Typically, a credentials
token is valid for 240 minutes.
tags:
- Authentication
security: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SignInRequest'
examples:
SigninRequestExample:
summary: Default signIn request
x-microcks-default: true
value:
credentials:
name: Example Title
password: example_value
personalAccessTokenName: example_value
personalAccessTokenSecret: example_value
site:
contentUrl: https://www.example.com
responses:
'200':
description: Successfully signed in.
content:
application/json:
schema:
$ref: '#/components/schemas/SignInResponse'
examples:
Signin200Example:
summary: Default signIn 200 response
x-microcks-default: true
value:
credentials:
token: example_value
site:
id: abc123
contentUrl: https://www.example.com
user:
id: abc123
'401':
$ref: '#/components/responses/Unauthorized'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/auth/signout:
post:
operationId: signOut
summary: Tableau Sign Out
description: >-
Signs you out of the current session. This invalidates the
authentication token.
tags:
- Authentication
responses:
'204':
description: Successfully signed out.
'401':
$ref: '#/components/responses/Unauthorized'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/auth/switchSite:
post:
operationId: switchSite
summary: Tableau Switch Site
description: >-
Switches you to the specified site without having to provide a
user name and password again. The new site must be on the same
server.
tags:
- Authentication
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
site:
type: object
properties:
contentUrl:
type: string
description: The URL namespace of the site to switch to.
examples:
SwitchsiteRequestExample:
summary: Default switchSite request
x-microcks-default: true
value:
site:
contentUrl: https://www.example.com
responses:
'200':
description: Successfully switched to the specified site.
content:
application/json:
schema:
$ref: '#/components/schemas/SignInResponse'
# ── Sites ───────────────────────────────────────────────────
examples:
Switchsite200Example:
summary: Default switchSite 200 response
x-microcks-default: true
value:
credentials:
token: example_value
site:
id: abc123
contentUrl: https://www.example.com
user:
id: abc123
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/sites:
get:
operationId: querySites
summary: Tableau Query Sites
description: >-
Returns a list of the sites on the server that the caller has
access to. This method is available to Tableau Server administrators.
tags:
- Sites
parameters:
- $ref: '#/components/parameters/PageSize'
- $ref: '#/components/parameters/PageNumber'
responses:
'200':
description: A paginated list of sites.
content:
application/json:
schema:
$ref: '#/components/schemas/SiteListResponse'
examples:
Querysites200Example:
summary: Default querySites 200 response
x-microcks-default: true
value:
pagination:
pageNumber: 10
pageSize: 10
totalAvailable: 10
sites:
site:
- {}
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
operationId: createSite
summary: Tableau Create Site
description: >-
Creates a site on Tableau Server. To create a site, you must be
a server administrator. Not available for Tableau Cloud.
tags:
- Sites
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateSiteRequest'
examples:
CreatesiteRequestExample:
summary: Default createSite request
x-microcks-default: true
value:
site:
name: Example Title
contentUrl: https://www.example.com
adminMode: ContentAndUsers
userQuota: 10
storageQuota: 10
disableSubscriptions: true
responses:
'201':
description: Site was created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/SiteResponse'
examples:
Createsite201Example:
summary: Default createSite 201 response
x-microcks-default: true
value:
site:
id: abc123
name: Example Title
contentUrl: https://www.example.com
adminMode: ContentAndUsers
state: Active
storageQuota: 10
userQuota: 10
numCreators: 10
numExplorers: 10
numViewers: 10
disableSubscriptions: true
revision: example_value
usage:
numUsers: 10
storage: 10
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'409':
$ref: '#/components/responses/Conflict'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/sites/{site-id}:
get:
operationId: querySite
summary: Tableau Query Site
description: >-
Returns information about the specified site, with the option to
return information about the storage space and the number of users.
tags:
- Sites
parameters:
- $ref: '#/components/parameters/SiteId'
- name: includeUsageStatistics
in: query
schema:
type: boolean
default: false
description: If true, returns usage statistics for the site.
example: true
responses:
'200':
description: Site details.
content:
application/json:
schema:
$ref: '#/components/schemas/SiteResponse'
examples:
Querysite200Example:
summary: Default querySite 200 response
x-microcks-default: true
value:
site:
id: abc123
name: Example Title
contentUrl: https://www.example.com
adminMode: ContentAndUsers
state: Active
storageQuota: 10
userQuota: 10
numCreators: 10
numExplorers: 10
numViewers: 10
disableSubscriptions: true
revision: example_value
usage:
numUsers: 10
storage: 10
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
put:
operationId: updateSite
summary: Tableau Update Site
description: >-
Updates the settings for the specified site, including the name,
URL namespace, storage quota, and other settings.
tags:
- Sites
parameters:
- $ref: '#/components/parameters/SiteId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateSiteRequest'
examples:
UpdatesiteRequestExample:
summary: Default updateSite request
x-microcks-default: true
value:
site:
name: Example Title
contentUrl: https://www.example.com
adminMode: ContentAndUsers
state: Active
storageQuota: 10
userQuota: 10
disableSubscriptions: true
revision: example_value
responses:
'200':
description: Site was updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/SiteResponse'
examples:
Updatesite200Example:
summary: Default updateSite 200 response
x-microcks-default: true
value:
site:
id: abc123
name: Example Title
contentUrl: https://www.example.com
adminMode: ContentAndUsers
state: Active
storageQuota: 10
userQuota: 10
numCreators: 10
numExplorers: 10
numViewers: 10
disableSubscriptions: true
revision: example_value
usage:
numUsers: 10
storage: 10
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
delete:
operationId: deleteSite
summary: Tableau Delete Site
description: >-
Deletes the specified site. Deleting a site also deletes all
content on the site including workbooks, data sources, users, etc.
tags:
- Sites
parameters:
- $ref: '#/components/parameters/SiteId'
responses:
'204':
description: Site was deleted successfully.
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
# ── Projects ────────────────────────────────────────────────
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/sites/{site-id}/projects:
get:
operationId: queryProjects
summary: Tableau Query Projects
description: >-
Returns a list of projects on the specified site, with optional
pagination. You can filter and sort the list of projects.
tags:
- Projects
parameters:
- $ref: '#/components/parameters/SiteId'
- $ref: '#/components/parameters/PageSize'
- $ref: '#/components/parameters/PageNumber'
- $ref: '#/components/parameters/Filter'
- $ref: '#/components/parameters/Sort'
responses:
'200':
description: A paginated list of projects.
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectListResponse'
examples:
Queryprojects200Example:
summary: Default queryProjects 200 response
x-microcks-default: true
value:
pagination:
pageNumber: 10
pageSize: 10
totalAvailable: 10
projects:
project:
- {}
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
operationId: createProject
summary: Tableau Create Project
description: >-
Creates a project on the specified site. You can also create
project hierarchies by setting a parent project.
tags:
- Projects
parameters:
- $ref: '#/components/parameters/SiteId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateProjectRequest'
examples:
CreateprojectRequestExample:
summary: Default createProject request
x-microcks-default: true
value:
project:
name: Example Title
description: A sample description.
parentProjectId: '500123'
contentPermissions: LockedToProject
responses:
'201':
description: Project was created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectResponse'
examples:
Createproject201Example:
summary: Default createProject 201 response
x-microcks-default: true
value:
project:
id: abc123
name: Example Title
description: A sample description.
parentProjectId: '500123'
contentPermissions: LockedToProject
createdAt: '2026-01-15T10:30:00Z'
updatedAt: '2026-01-15T10:30:00Z'
owner:
id: abc123
topLevelProject: true
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'409':
$ref: '#/components/responses/Conflict'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/sites/{site-id}/projects/{project-id}:
put:
operationId: updateProject
summary: Tableau Update Project
description: >-
Updates the name, description, or project hierarchy of the specified project.
tags:
- Projects
parameters:
- $ref: '#/components/parameters/SiteId'
- $ref: '#/components/parameters/ProjectId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateProjectRequest'
examples:
UpdateprojectRequestExample:
summary: Default updateProject request
x-microcks-default: true
value:
project:
name: Example Title
description: A sample description.
parentProjectId: '500123'
contentPermissions: LockedToProject
responses:
'200':
description: Project was updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectResponse'
examples:
Updateproject200Example:
summary: Default updateProject 200 response
x-microcks-default: true
value:
project:
id: abc123
name: Example Title
description: A sample description.
parentProjectId: '500123'
contentPermissions: LockedToProject
createdAt: '2026-01-15T10:30:00Z'
updatedAt: '2026-01-15T10:30:00Z'
owner:
id: abc123
topLevelProject: true
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
delete:
operationId: deleteProject
summary: Tableau Delete Project
description: >-
Deletes the specified project on a site. When you delete a
project, all Tableau assets inside the project are also deleted.
tags:
- Projects
parameters:
- $ref: '#/components/parameters/SiteId'
- $ref: '#/components/parameters/ProjectId'
responses:
'204':
description: Project was deleted successfully.
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
# ── Workbooks ───────────────────────────────────────────────
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/sites/{site-id}/workbooks:
get:
operationId: queryWorkbooksForSite
summary: Tableau Query Workbooks for Site
description: >-
Returns the workbooks on a site. If the user is not an
administrator, the method returns just the workbooks that the
user has permissions to view.
tags:
- Workbooks
parameters:
- $ref: '#/components/parameters/SiteId'
- $ref: '#/components/parameters/PageSize'
- $ref: '#/components/parameters/PageNumber'
- $ref: '#/components/parameters/Filter'
- $ref: '#/components/parameters/Sort'
- $ref: '#/components/parameters/Fields'
responses:
'200':
description: A paginated list of workbooks.
content:
application/json:
schema:
$ref: '#/components/schemas/WorkbookListResponse'
examples:
Queryworkbooksforsite200Example:
summary: Default queryWorkbooksForSite 200 response
x-microcks-default: true
value:
pagination:
pageNumber: 10
pageSize: 10
totalAvailable: 10
workbooks:
workbook:
- {}
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/sites/{site-id}/workbooks/{workbook-id}:
get:
operationId: queryWorkbook
summary: Tableau Query Workbook
description: >-
Returns information about the specified workbook, including
information about views and tags.
tags:
- Workbooks
parameters:
- $ref: '#/components/parameters/SiteId'
- $ref: '#/components/parameters/WorkbookId'
responses:
'200':
description: Workbook details.
content:
application/json:
schema:
$ref: '#/components/schemas/WorkbookResponse'
examples:
Queryworkbook200Example:
summary: Default queryWorkbook 200 response
x-microcks-default: true
value:
workbook:
id: abc123
name: Example Title
description: A sample description.
contentUrl: https://www.example.com
webpageUrl: https://www.example.com
showTabs: true
size: 10
createdAt: '2026-01-15T10:30:00Z'
updatedAt: '2026-01-15T10:30:00Z'
encryptExtracts: example_value
defaultViewId: '500123'
project:
id: abc123
name: Example Title
owner:
id: abc123
name: Example Title
tags:
tag: {}
views:
view: {}
usage:
totalViewCount: 10
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
put:
operationId: updateWorkbook
summary: Tableau Update Workbook
description: >-
Modifies an existing workbook, allowing you to change the owner,
project, or other properties.
tags:
- Workbooks
parameters:
- $ref: '#/components/parameters/SiteId'
- $ref: '#/components/parameters/WorkbookId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateWorkbookRequest'
examples:
UpdateworkbookRequestExample:
summary: Default updateWorkbook request
x-microcks-default: true
value:
workbook:
name: Example Title
showTabs: true
project:
id: abc123
owner:
id: abc123
encryptExtracts: example_value
responses:
'200':
description: Workbook was updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/WorkbookResponse'
examples:
Updateworkbook200Example:
summary: Default updateWorkbook 200 response
x-microcks-default: true
value:
workbook:
id: abc123
name: Example Title
description: A sample description.
contentUrl: https://www.example.com
webpageUrl: https://www.example.com
showTabs: true
size: 10
createdAt: '2026-01-15T10:30:00Z'
updatedAt: '2026-01-15T10:30:00Z'
encryptExtracts: example_value
defaultViewId: '500123'
project:
id: abc123
name: Example Title
owner:
id: abc123
name: Example Title
tags:
tag: {}
views:
view: {}
usage:
totalViewCount: 10
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
delete:
operationId: deleteWorkbook
summary: Tableau Delete Workbook
description: >-
Deletes a workbook. When a workbook is deleted, all of its assets
are also deleted, including associated views.
tags:
- Workbooks
parameters:
- $ref: '#/components/parameters/SiteId'
- $ref: '#/components/parameters/WorkbookId'
responses:
'204':
description: Workbook was deleted successfully.
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/sites/{site-id}/workbooks/{workbook-id}/connections:
get:
operationId: queryWorkbookConnections
summary: Tableau Query Workbook Connections
description: >-
Returns a list of data connections for the specified workbook.
tags:
- Workbooks
parameters:
- $ref: '#/components/parameters/SiteId'
- $ref: '#/components/parameters/WorkbookId'
responses:
'200':
description: A list of data connections for the workbook.
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectionListResponse'
examples:
Queryworkbookconnections200Example:
summary: Default queryWorkbookConnections 200 response
x-microcks-default: true
value:
connections:
connection:
- {}
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/sites/{site-id}/workbooks/{workbook-id}/content:
get:
operationId: downloadWorkbook
summary: Tableau Download Workbook
description: >-
Downloads a workbook in .twb or .twbx format. If the workbook
contains extracts, the download is in .twbx format.
tags:
- Workbooks
parameters:
- $ref: '#/components/parameters/SiteId'
- $ref: '#/components/parameters/WorkbookId'
- name: extractValue
in: query
schema:
type: boolean
default: true
description: >-
If true, and the workbook contains extracts, the download
includes the extracts.
example: true
responses:
'200':
description: The workbook file.
content:
application/octet-stream:
schema:
type: string
format: binary
examples:
Downloadworkbook200Example:
summary: Default downloadWorkbook 200 response
x-microcks-default: true
value: example_value
'401':
$ref: '#/components/responses/Unauthorized
# --- truncated at 32 KB (156 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tableau/refs/heads/main/openapi/tableau-rest-api-openapi.yml