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