Tableau Data Sources API

Publish, query, update, delete, and download data sources. Data sources define the connection to data and can be shared across multiple workbooks.

OpenAPI Specification

tableau-data-sources-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: 3.24.0
  title: Tableau REST Authentication Data Sources 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'
security:
- TableauAuth: []
tags:
- 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.
paths:
  /sites/{site-id}/datasources:
    get:
      operationId: queryDataSources
      summary: Tableau Query Data Sources
      description: Returns a list of published data sources on the specified site, with optional pagination, filtering, and sorting.
      tags:
      - Data Sources
      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 data sources.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataSourceListResponse'
              examples:
                Querydatasources200Example:
                  summary: Default queryDataSources 200 response
                  x-microcks-default: true
                  value:
                    pagination:
                      pageNumber: 10
                      pageSize: 10
                      totalAvailable: 10
                    datasources:
                      datasource:
                      - {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /sites/{site-id}/datasources/{datasource-id}:
    get:
      operationId: queryDataSource
      summary: Tableau Query Data Source
      description: Returns information about the specified data source.
      tags:
      - Data Sources
      parameters:
      - $ref: '#/components/parameters/SiteId'
      - $ref: '#/components/parameters/DataSourceId'
      responses:
        '200':
          description: Data source details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataSourceResponse'
              examples:
                Querydatasource200Example:
                  summary: Default queryDataSource 200 response
                  x-microcks-default: true
                  value:
                    datasource:
                      id: abc123
                      name: Example Title
                      description: A sample description.
                      contentUrl: https://www.example.com
                      type: example_value
                      createdAt: '2026-01-15T10:30:00Z'
                      updatedAt: '2026-01-15T10:30:00Z'
                      isCertified: true
                      certificationNote: example_value
                      useRemoteQueryAgent: true
                      hasExtracts: true
                      encryptExtracts: example_value
                      project:
                        id: abc123
                        name: Example Title
                      owner:
                        id: abc123
                        name: Example Title
                      tags:
                        tag: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: updateDataSource
      summary: Tableau Update Data Source
      description: Updates the owner, project, or certification status of the specified data source.
      tags:
      - Data Sources
      parameters:
      - $ref: '#/components/parameters/SiteId'
      - $ref: '#/components/parameters/DataSourceId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateDataSourceRequest'
            examples:
              UpdatedatasourceRequestExample:
                summary: Default updateDataSource request
                x-microcks-default: true
                value:
                  datasource:
                    name: Example Title
                    project:
                      id: abc123
                    owner:
                      id: abc123
                    isCertified: true
                    certificationNote: example_value
                    encryptExtracts: example_value
      responses:
        '200':
          description: Data source was updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataSourceResponse'
              examples:
                Updatedatasource200Example:
                  summary: Default updateDataSource 200 response
                  x-microcks-default: true
                  value:
                    datasource:
                      id: abc123
                      name: Example Title
                      description: A sample description.
                      contentUrl: https://www.example.com
                      type: example_value
                      createdAt: '2026-01-15T10:30:00Z'
                      updatedAt: '2026-01-15T10:30:00Z'
                      isCertified: true
                      certificationNote: example_value
                      useRemoteQueryAgent: true
                      hasExtracts: true
                      encryptExtracts: example_value
                      project:
                        id: abc123
                        name: Example Title
                      owner:
                        id: abc123
                        name: Example Title
                      tags:
                        tag: {}
        '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: deleteDataSource
      summary: Tableau Delete Data Source
      description: Deletes the specified data source from a site.
      tags:
      - Data Sources
      parameters:
      - $ref: '#/components/parameters/SiteId'
      - $ref: '#/components/parameters/DataSourceId'
      responses:
        '204':
          description: Data source 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}/datasources/{datasource-id}/content:
    get:
      operationId: downloadDataSource
      summary: Tableau Download Data Source
      description: Downloads the specified data source in .tdsx format.
      tags:
      - Data Sources
      parameters:
      - $ref: '#/components/parameters/SiteId'
      - $ref: '#/components/parameters/DataSourceId'
      - name: includeExtract
        in: query
        schema:
          type: boolean
          default: true
        description: If true and the data source contains an extract, the download includes the extract.
        example: true
      responses:
        '200':
          description: The data source file.
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
              examples:
                Downloaddatasource200Example:
                  summary: Default downloadDataSource 200 response
                  x-microcks-default: true
                  value: example_value
        '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}/datasources/{datasource-id}/connections:
    get:
      operationId: queryDataSourceConnections
      summary: Tableau Query Data Source Connections
      description: Returns a list of data connections for the specified data source.
      tags:
      - Data Sources
      parameters:
      - $ref: '#/components/parameters/SiteId'
      - $ref: '#/components/parameters/DataSourceId'
      responses:
        '200':
          description: A list of data connections for the data source.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectionListResponse'
              examples:
                Querydatasourceconnections200Example:
                  summary: Default queryDataSourceConnections 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}/datasources/{datasource-id}/revisions:
    get:
      operationId: getDataSourceRevisions
      summary: Tableau Get Data Source Revisions
      description: Returns a list of revision information for each revision of the specified data source.
      tags:
      - Data Sources
      parameters:
      - $ref: '#/components/parameters/SiteId'
      - $ref: '#/components/parameters/DataSourceId'
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageNumber'
      responses:
        '200':
          description: A list of data source revisions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RevisionListResponse'
              examples:
                Getdatasourcerevisions200Example:
                  summary: Default getDataSourceRevisions 200 response
                  x-microcks-default: true
                  value:
                    pagination:
                      pageNumber: 10
                      pageSize: 10
                      totalAvailable: 10
                    revisions:
                      revision:
                      - {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /sites/{site-id}/datasources/{datasource-id}/tags:
    get:
      operationId: queryDataSourceTags
      summary: Tableau Query Data Source Tags
      description: Returns a list of tags associated with the specified data source.
      tags:
      - Data Sources
      parameters:
      - $ref: '#/components/parameters/SiteId'
      - $ref: '#/components/parameters/DataSourceId'
      responses:
        '200':
          description: A list of tags on the data source.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TagListResponse'
              examples:
                Querydatasourcetags200Example:
                  summary: Default queryDataSourceTags 200 response
                  x-microcks-default: true
                  value:
                    tags:
                      tag:
                      - {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: addTagsToDataSource
      summary: Tableau Add Tags to Data Source
      description: Adds one or more tags to the specified data source.
      tags:
      - Data Sources
      parameters:
      - $ref: '#/components/parameters/SiteId'
      - $ref: '#/components/parameters/DataSourceId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TagListRequest'
            examples:
              AddtagstodatasourceRequestExample:
                summary: Default addTagsToDataSource request
                x-microcks-default: true
                value:
                  tags:
                    tag:
                    - {}
      responses:
        '200':
          description: Tags were added successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TagListResponse'
              examples:
                Addtagstodatasource200Example:
                  summary: Default addTagsToDataSource 200 response
                  x-microcks-default: true
                  value:
                    tags:
                      tag:
                      - {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /sites/{site-id}/datasources/{datasource-id}/permissions:
    get:
      operationId: queryDataSourcePermissions
      summary: Tableau Query Data Source Permissions
      description: Returns a list of permissions for the specified data source.
      tags:
      - Data Sources
      parameters:
      - $ref: '#/components/parameters/SiteId'
      - $ref: '#/components/parameters/DataSourceId'
      responses:
        '200':
          description: A list of permissions on the data source.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermissionListResponse'
              examples:
                Querydatasourcepermissions200Example:
                  summary: Default queryDataSourcePermissions 200 response
                  x-microcks-default: true
                  value:
                    permissions:
                      granteeCapabilities:
                      - {}
                    parent:
                      project:
                        id: abc123
                        name: Example Title
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: addDataSourcePermissions
      summary: Tableau Add Data Source Permissions
      description: Adds permissions to the specified data source for a user or group.
      tags:
      - Data Sources
      parameters:
      - $ref: '#/components/parameters/SiteId'
      - $ref: '#/components/parameters/DataSourceId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddPermissionsRequest'
            examples:
              AdddatasourcepermissionsRequestExample:
                summary: Default addDataSourcePermissions request
                x-microcks-default: true
                value:
                  permissions:
                    granteeCapabilities:
                    - {}
      responses:
        '200':
          description: Permissions were added successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermissionListResponse'
              examples:
                Adddatasourcepermissions200Example:
                  summary: Default addDataSourcePermissions 200 response
                  x-microcks-default: true
                  value:
                    permissions:
                      granteeCapabilities:
                      - {}
                    parent:
                      project:
                        id: abc123
                        name: Example Title
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    DataSourceListResponse:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
        datasources:
          type: object
          properties:
            datasource:
              type: array
              items:
                $ref: '#/components/schemas/DataSource'
          example: example_value
    AddPermissionsRequest:
      type: object
      properties:
        permissions:
          $ref: '#/components/schemas/Permission'
    PermissionListResponse:
      type: object
      properties:
        permissions:
          $ref: '#/components/schemas/Permission'
        parent:
          type: object
          properties:
            project:
              type: object
              properties:
                id:
                  type: string
                name:
                  type: string
          example: example_value
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            summary:
              type: string
              description: A short summary of the error.
            detail:
              type: string
              description: A detailed description of the error.
            code:
              type: string
              description: A numeric error code.
          example: example_value
    Tag:
      type: object
      properties:
        label:
          type: string
          description: The text of the tag.
          example: Example Title
    Pagination:
      type: object
      properties:
        pageNumber:
          type: integer
          description: The current page number.
          example: 10
        pageSize:
          type: integer
          description: The number of items per page.
          example: 10
        totalAvailable:
          type: integer
          description: The total number of items available.
          example: 10
    ConnectionListResponse:
      type: object
      properties:
        connections:
          type: object
          properties:
            connection:
              type: array
              items:
                $ref: '#/components/schemas/Connection'
          example: example_value
    RevisionListResponse:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
        revisions:
          type: object
          properties:
            revision:
              type: array
              items:
                $ref: '#/components/schemas/Revision'
          example: example_value
    Revision:
      type: object
      properties:
        revisionNumber:
          type: integer
          description: The revision number.
          example: 10
        publishedAt:
          type: string
          format: date-time
          description: The date and time the revision was published.
          example: '2026-01-15T10:30:00Z'
        deleted:
          type: boolean
          description: Whether this revision has been deleted.
          example: true
        current:
          type: boolean
          description: Whether this is the current revision.
          example: true
        sizeInBytes:
          type: integer
          description: The size of the revision in bytes.
          example: 10
        publisher:
          type: object
          properties:
            id:
              type: string
              description: The ID of the user who published this revision.
            name:
              type: string
              description: The name of the user who published this revision.
          example: example_value
    Permission:
      type: object
      properties:
        granteeCapabilities:
          type: array
          items:
            type: object
            properties:
              user:
                type: object
                properties:
                  id:
                    type: string
              group:
                type: object
                properties:
                  id:
                    type: string
              capabilities:
                type: object
                properties:
                  capability:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          description: The name of the capability (e.g., Read, Write, ChangePermissions, Delete, Filter, ViewComments, AddComment, ExportData, ExportImage, ShareView, ViewUnderlyingData, WebAuthoring, RunExplainData).
                        mode:
                          type: string
                          enum:
                          - Allow
                          - Deny
                          description: Whether the capability is allowed or denied.
          example: []
    DataSource:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for the data source.
          example: abc123
        name:
          type: string
          description: The name of the data source.
          example: Example Title
        description:
          type: string
          description: A description of the data source.
          example: A sample description.
        contentUrl:
          type: string
          description: The URL name of the data source.
          example: https://www.example.com
        type:
          type: string
          description: The type of data source (e.g., sqlserver, postgres, excel, hyper, etc.).
          example: example_value
        createdAt:
          type: string
          format: date-time
          description: The date and time the data source was created.
          example: '2026-01-15T10:30:00Z'
        updatedAt:
          type: string
          format: date-time
          description: The date and time the data source was last updated.
          example: '2026-01-15T10:30:00Z'
        isCertified:
          type: boolean
          description: Whether the data source is certified.
          example: true
        certificationNote:
          type: string
          description: The certification note for the data source.
          example: example_value
        useRemoteQueryAgent:
          type: boolean
          description: Whether the data source uses a remote query agent.
          example: true
        hasExtracts:
          type: boolean
          description: Whether the data source has extracts.
          example: true
        encryptExtracts:
          type: string
          description: Whether the data source extracts are encrypted.
          example: example_value
        project:
          type: object
          properties:
            id:
              type: string
              description: The ID of the containing project.
            name:
              type: string
              description: The name of the containing project.
          example: example_value
        owner:
          type: object
          properties:
            id:
              type: string
              description: The ID of the data source owner.
            name:
              type: string
              description: The name of the data source owner.
          example: example_value
        tags:
          type: object
          properties:
            tag:
              type: array
              items:
                $ref: '#/components/schemas/Tag'
          example: example_value
    TagListResponse:
      type: object
      properties:
        tags:
          type: object
          properties:
            tag:
              type: array
              items:
                $ref: '#/components/schemas/Tag'
          example: example_value
    TagListRequest:
      type: object
      properties:
        tags:
          type: object
          properties:
            tag:
              type: array
              items:
                $ref: '#/components/schemas/Tag'
          example: example_value
    UpdateDataSourceRequest:
      type: object
      properties:
        datasource:
          type: object
          properties:
            name:
              type: string
            project:
              type: object
              properties:
                id:
                  type: string
            owner:
              type: object
              properties:
                id:
                  type: string
            isCertified:
              type: boolean
            certificationNote:
              type: string
            encryptExtracts:
              type: string
          example: example_value
    DataSourceResponse:
      type: object
      properties:
        datasource:
          $ref: '#/components/schemas/DataSource'
    Connection:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for the connection.
          example: abc123
        type:
          type: string
          description: The type of connection (e.g., sqlserver, postgres).
          example: example_value
        serverAddress:
          type: string
          description: The address of the server for the connection.
          example: example_value
        serverPort:
          type: string
          description: The port used for the connection.
          example: example_value
        userName:
          type: string
          description: The user name for the connection.
          example: example_value
        datasource:
          type: object
          properties:
            id:
              type: string
              description: The ID of the associated data source.
            name:
              type: string
              description: The name of the associated data source.
          example: example_value
  parameters:
    PageSize:
      name: pageSize
      in: query
      schema:
        type: integer
        minimum: 1
        maximum: 1000
        default: 100
      description: The number of items to return in one response. The minimum is 1 and the maximum is 1000.
    Filter:
      name: filter
      in: query
      schema:
        type: string
      description: An expression that lets you specify a subset of items to return. Use the format filter=field:operator:value. Operators include eq, gt, gte, lt, lte, has, and in.
    Fields:
      name: fields
      in: query
      schema:
        type: string
      description: An expression that lets you specify which fields are included in the response. Use the format fields=field1,field2. Use _default_ to return the default set of fields, or _all_ to return all fields.
    PageNumber:
      name: pageNumber
      in: query
      schema:
        type: integer
        minimum: 1
        default: 1
      description: The page number of the set of items to return. The default is 1.
    DataSourceId:
      name: datasource-id
      in: path
      required: true
      schema:
        type: string
      description: The ID of the data source.
    Sort:
      name: sort
      in: query
      schema:
        type: string
      description: An expression that lets you specify the order in which items are returned. Use the format sort=field:direction where direction is asc or desc.
    SiteId:
      name: site-id
      in: path
      required: true
      schema:
        type: string
      description: The ID of the site. You can get the site ID from the response to the Sign In method.
  responses:
    NotFound:
      description: The specified resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Forbidden:
      description: The caller does not have permission to perform the requested action.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: The authentication credentials were missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: The request was malformed or contained invalid parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    TableauAuth:
      type: apiKey
      in: header
      name: X-Tableau-Auth
      description: The authentication token obtained from the Sign In method. Include this token in the X-Tableau-Auth header of all subsequent requests.
externalDocs:
  description: Tableau REST API Reference
  url: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm