Tableau REST API

Manage and interact with Tableau Server and Tableau Cloud resources programmatically including workbooks, data sources, users, and permissions.

OpenAPI Specification

tableau-desktop-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Tableau REST API
  version: '3.22'
  description: >-
    The Tableau REST API enables programmatic management of Tableau Server
    and Tableau Cloud resources, including authentication, sites, users,
    projects, workbooks, and data sources. This minimal specification
    captures a representative subset of endpoints documented in the
    Tableau REST API Reference.
  contact:
    name: Tableau Developer Program
    url: https://www.tableau.com/developer
servers:
  - url: https://{tableau-server}/api/3.22
    description: Tableau Server / Tableau Cloud REST API
    variables:
      tableau-server:
        default: 10ay.online.tableau.com
        description: Hostname of the Tableau Server or Tableau Cloud pod.
security:
  - tableauAuth: []
tags:
  - name: Authentication
    description: Sign in and sign out operations.
  - name: Sites
    description: Manage Tableau sites.
  - name: Users
    description: Manage users on a site.
  - name: Projects
    description: Manage projects on a site.
  - name: Workbooks
    description: Manage and download workbooks.
  - name: Data Sources
    description: Manage and refresh published data sources.
  - name: Server
    description: Server information.
paths:
  /auth/signin:
    post:
      operationId: signIn
      summary: Sign In
      description: Signs the specified user in to Tableau Server or Tableau Cloud and returns an authentication token.
      tags:
        - Authentication
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/Request'
      responses:
        '200':
          description: Successful sign in.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Response'
  /auth/signout:
    post:
      operationId: signOut
      summary: Sign Out
      description: Signs the user out of Tableau Server or Tableau Cloud.
      tags:
        - Authentication
      responses:
        '204':
          description: Successfully signed out.
  /sites:
    get:
      operationId: querySites
      summary: Query Sites
      description: Returns a list of sites on the server.
      tags:
        - Sites
      responses:
        '200':
          description: A list of sites.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Response'
    post:
      operationId: createSite
      summary: Create Site
      description: Creates a site.
      tags:
        - Sites
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/Request'
      responses:
        '201':
          description: Site created.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Response'
  /sites/{siteId}:
    parameters:
      - $ref: '#/components/parameters/SiteId'
    get:
      operationId: querySite
      summary: Query Site
      description: Returns information about the specified site.
      tags:
        - Sites
      responses:
        '200':
          description: Site information.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Response'
    put:
      operationId: updateSite
      summary: Update Site
      description: Updates the specified site.
      tags:
        - Sites
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/Request'
      responses:
        '200':
          description: Site updated.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Response'
    delete:
      operationId: deleteSite
      summary: Delete Site
      description: Deletes the specified site.
      tags:
        - Sites
      responses:
        '204':
          description: Site deleted.
  /sites/{siteId}/users:
    parameters:
      - $ref: '#/components/parameters/SiteId'
    get:
      operationId: getUsersOnSite
      summary: Get Users on Site
      description: Returns the users associated with the specified site.
      tags:
        - Users
      responses:
        '200':
          description: A list of users.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Response'
    post:
      operationId: addUserToSite
      summary: Add User to Site
      description: Adds a user to the specified site.
      tags:
        - Users
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/Request'
      responses:
        '201':
          description: User added.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Response'
  /sites/{siteId}/users/{userId}:
    parameters:
      - $ref: '#/components/parameters/SiteId'
      - $ref: '#/components/parameters/UserId'
    put:
      operationId: updateUser
      summary: Update User
      description: Updates the specified user.
      tags:
        - Users
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/Request'
      responses:
        '200':
          description: User updated.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Response'
    delete:
      operationId: removeUserFromSite
      summary: Remove User from Site
      description: Removes the specified user from the site.
      tags:
        - Users
      responses:
        '204':
          description: User removed.
  /sites/{siteId}/projects:
    parameters:
      - $ref: '#/components/parameters/SiteId'
    get:
      operationId: queryProjects
      summary: Query Projects
      description: Returns a list of projects on the specified site.
      tags:
        - Projects
      responses:
        '200':
          description: A list of projects.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Response'
    post:
      operationId: createProject
      summary: Create Project
      description: Creates a project on the specified site.
      tags:
        - Projects
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/Request'
      responses:
        '201':
          description: Project created.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Response'
  /sites/{siteId}/projects/{projectId}:
    parameters:
      - $ref: '#/components/parameters/SiteId'
      - $ref: '#/components/parameters/ProjectId'
    put:
      operationId: updateProject
      summary: Update Project
      description: Updates the specified project.
      tags:
        - Projects
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/Request'
      responses:
        '200':
          description: Project updated.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Response'
    delete:
      operationId: deleteProject
      summary: Delete Project
      description: Deletes the specified project.
      tags:
        - Projects
      responses:
        '204':
          description: Project deleted.
  /sites/{siteId}/workbooks:
    parameters:
      - $ref: '#/components/parameters/SiteId'
    get:
      operationId: queryWorkbooksForSite
      summary: Query Workbooks for Site
      description: Returns the workbooks on a site.
      tags:
        - Workbooks
      responses:
        '200':
          description: A list of workbooks.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Response'
    post:
      operationId: publishWorkbook
      summary: Publish Workbook
      description: Publishes a workbook to the specified site.
      tags:
        - Workbooks
      requestBody:
        required: true
        content:
          multipart/mixed:
            schema:
              $ref: '#/components/schemas/Request'
      responses:
        '201':
          description: Workbook published.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Response'
  /sites/{siteId}/workbooks/{workbookId}:
    parameters:
      - $ref: '#/components/parameters/SiteId'
      - $ref: '#/components/parameters/WorkbookId'
    get:
      operationId: queryWorkbook
      summary: Query Workbook
      description: Returns information about the specified workbook.
      tags:
        - Workbooks
      responses:
        '200':
          description: Workbook details.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Response'
    put:
      operationId: updateWorkbook
      summary: Update Workbook
      description: Updates the specified workbook.
      tags:
        - Workbooks
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/Request'
      responses:
        '200':
          description: Workbook updated.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Response'
    delete:
      operationId: deleteWorkbook
      summary: Delete Workbook
      description: Deletes the specified workbook.
      tags:
        - Workbooks
      responses:
        '204':
          description: Workbook deleted.
  /sites/{siteId}/workbooks/{workbookId}/content:
    parameters:
      - $ref: '#/components/parameters/SiteId'
      - $ref: '#/components/parameters/WorkbookId'
    get:
      operationId: downloadWorkbook
      summary: Download Workbook
      description: Downloads the specified workbook as a .twb or .twbx file.
      tags:
        - Workbooks
      responses:
        '200':
          description: Workbook file.
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
  /sites/{siteId}/datasources:
    parameters:
      - $ref: '#/components/parameters/SiteId'
    get:
      operationId: queryDataSources
      summary: Query Data Sources
      description: Returns a list of published data sources on the specified site.
      tags:
        - Data Sources
      responses:
        '200':
          description: A list of data sources.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Response'
  /sites/{siteId}/datasources/{datasourceId}:
    parameters:
      - $ref: '#/components/parameters/SiteId'
      - $ref: '#/components/parameters/DatasourceId'
    get:
      operationId: queryDataSource
      summary: Query Data Source
      description: Returns information about the specified data source.
      tags:
        - Data Sources
      responses:
        '200':
          description: Data source details.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Response'
  /sites/{siteId}/datasources/{datasourceId}/refresh:
    parameters:
      - $ref: '#/components/parameters/SiteId'
      - $ref: '#/components/parameters/DatasourceId'
    post:
      operationId: refreshDataSource
      summary: Refresh Data Source
      description: Triggers an extract refresh for the specified data source.
      tags:
        - Data Sources
      responses:
        '202':
          description: Refresh scheduled.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Response'
  /serverinfo:
    get:
      operationId: serverInfo
      summary: Server Info
      description: Returns build and version information for the Tableau Server.
      tags:
        - Server
      security: []
      responses:
        '200':
          description: Server information.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Response'
components:
  securitySchemes:
    tableauAuth:
      type: apiKey
      in: header
      name: X-Tableau-Auth
      description: Authentication token returned by the Sign In endpoint.
  parameters:
    SiteId:
      name: siteId
      in: path
      required: true
      description: The LUID of the site.
      schema:
        type: string
    UserId:
      name: userId
      in: path
      required: true
      description: The LUID of the user.
      schema:
        type: string
    ProjectId:
      name: projectId
      in: path
      required: true
      description: The LUID of the project.
      schema:
        type: string
    WorkbookId:
      name: workbookId
      in: path
      required: true
      description: The LUID of the workbook.
      schema:
        type: string
    DatasourceId:
      name: datasourceId
      in: path
      required: true
      description: The LUID of the data source.
      schema:
        type: string
  schemas:
    Request:
      type: object
      description: Generic Tableau REST API request envelope (tsRequest).
      additionalProperties: true
    Response:
      type: object
      description: Generic Tableau REST API response envelope (tsResponse).
      additionalProperties: true
x-generated-from: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm
x-generated-by: claude-crawl-2026-05-08