InTouch Hub · Blue Isle Software

Tableau

List workbooks, views, data sources and projects on a Tableau site via the Tableau REST API.

Provided free and as is, without warranty of any kind — including merchantability, fitness for a particular purpose, and the accuracy or completeness of any result. See the licence. You are responsible for checking what this produces before relying on it.

bibusinessbusiness-intelligenceintelligencereportingstatus

Tableau

List the content of a Tableau site — workbooks, views, data sources and projects — through the Tableau REST API. Pure Python standard library, no third-party dependencies.

Grounded in the official Tableau REST API reference: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api.htm

Operations

operation HTTP call Params used
list_workbooks GET /sites/{siteId}/workbooks server, siteId, query
list_views GET /sites/{siteId}/views server, siteId, query
list_datasources GET /sites/{siteId}/datasources server, siteId, query
list_projects GET /sites/{siteId}/projects server, siteId, query

Pagination params (pageSize, pageNumber) and filters go in query, e.g. {"pageSize": 100, "pageNumber": 1}.

Inputs

input required description
apiKey yes Tableau session token from sign in (sent in X-Tableau-Auth).
operation yes One of the operations above.
server yes Tableau Server/Cloud host, e.g. 10ax.online.tableau.com (no scheme).
siteId yes Site LUID returned by sign in (the id, not the site content URL).
query no Optional query params as a JSON object string, e.g. {"pageSize": 100}.

Outputs

Getting credentials

Tableau REST API calls require a session token, which you obtain by signing in with a Personal Access Token (PAT). This connector consumes the resulting session token; it does not perform the sign-in itself.

  1. In Tableau, create a Personal Access Token: My Account Settings → Personal Access Tokens → Create new token. Note the token name and secret.
  2. Sign in to get a session token by POSTing to https://{server}/api/3.29/auth/signin with a body like:

json {"credentials": {"personalAccessTokenName": "my-pat", "personalAccessTokenSecret": "xxxxxxxx", "site": {"contentUrl": "mysite"}}}

The response returns a credentials.token (the session token) and credentials.site.id (the site LUID). 3. Supply that session token as apiKey and the site LUID as siteId. Session tokens expire (typically after a period of inactivity) — sign in again to get a fresh one.

Usage examples

List workbooks on a site:

tableau server=10ax.online.tableau.com siteId=9a8b7c apiKey=<session-token> operation=list_workbooks

List projects, first page of 100:

tableau server=10ax.online.tableau.com siteId=9a8b7c apiKey=<session-token> operation=list_projects query={"pageSize":100,"pageNumber":1}

List data sources:

tableau server=10ax.online.tableau.com siteId=9a8b7c apiKey=<session-token> operation=list_datasources

Publishes

The keys a later task may reference as {{taskName.key}}. Referencing anything not listed here resolves to nothing at run time.

Input Properties

Every property this tool accepts, from its own tool.iml.

Property Type Required Default Description
apiKey string yes DEPRECATED — bind an API Key credential to the task with credentialName instead. A key pasted here is stored in the workflow definition in clear and appears in every export of it. Still honoured for workflows built before the change.
operation string yes One of: list_workbooks, list_views, list_datasources, list_projects
server string yes Tableau Server/Cloud host, e.g. 10ax.online.tableau.com or tableau.mycompany.com (no scheme).
siteId string yes Tableau site LUID (the site id returned by sign in, not the site content URL).
query string no Optional query params as a JSON object string, e.g. {"pageSize": 100, "pageNumber": 1}.