What can you do with it?
Manage and interact with Tableau Server/Online, including retrieving workbooks, datasources, views, and users, as well as publishing content, managing permissions, and querying data from visualizations.
How to use it?
Basic Command Structure
/your-tableau-connection [action] [required-parameters] [optional-parameters]
Parameters
Required:
action
- The operation to perform (get-users, get-workbooks, get-workbook, get-datasources, get-projects, get-views, publish-workbook, publish-datasource, update-workbook, download-workbook, download-datasource, get-permissions, create-project, query-view-data)
Optional:
workbook-id
- Tableau workbook ID
datasource-id
- Tableau datasource ID
project-id
- Tableau project ID
view-id
- Tableau view ID
Get Users
Retrieve users on the site
Parameters:
- No additional parameters required
Example:
/your-tableau-connection
action: get-users
Response:
{
"users": {
"user": [
{
"id": "user-789",
"name": "john.doe",
"fullName": "John Doe",
"email": "john@example.com",
"siteRole": "Creator",
"locale": "en_US",
"language": "en"
}
]
}
}
Get Workbooks
Retrieve a list of workbooks on the site
Parameters:
- No additional parameters required
Example:
/your-tableau-connection
action: get-workbooks
Response:
{
"workbooks": {
"workbook": [
{
"id": "workbook-123",
"name": "Sales Dashboard",
"description": "Monthly sales performance dashboard",
"contentUrl": "SalesDashboard",
"showTabs": true,
"size": 2048576,
"createdAt": "2025-01-15T12:34:56Z",
"updatedAt": "2025-01-15T14:20:00Z",
"project": {
"id": "project-456",
"name": "Sales Analytics"
},
"owner": {
"id": "user-789",
"name": "John Doe"
}
}
]
}
}
Get Workbook by ID
Retrieve a specific workbook by its ID
Parameters:
workbook-id
(required) - The workbook ID to retrieve
Example:
/your-tableau-connection
action: get-workbook
workbook-id: workbook-123
Response:
{
"workbook": {
"id": "workbook-123",
"name": "Sales Dashboard",
"description": "Monthly sales performance dashboard",
"contentUrl": "SalesDashboard",
"showTabs": true,
"size": 2048576,
"createdAt": "2025-01-15T12:34:56Z",
"updatedAt": "2025-01-15T14:20:00Z",
"project": {
"id": "project-456",
"name": "Sales Analytics"
},
"owner": {
"id": "user-789",
"name": "John Doe"
},
"views": {
"view": [
{
"id": "view-111",
"name": "Sales Overview",
"contentUrl": "SalesOverview"
}
]
}
}
}
Get Datasources
Retrieve a list of datasources on the site
Parameters:
- No additional parameters required
Example:
/your-tableau-connection
action: get-datasources
Response:
{
"datasources": {
"datasource": [
{
"id": "datasource-123",
"name": "Sales Data",
"description": "Customer and sales transaction data",
"contentUrl": "SalesData",
"type": "sqlserver",
"size": 10485760,
"createdAt": "2025-01-10T09:00:00Z",
"updatedAt": "2025-01-15T08:30:00Z",
"project": {
"id": "project-456",
"name": "Sales Analytics"
},
"owner": {
"id": "user-789",
"name": "John Doe"
}
}
]
}
}
Get Projects
Retrieve a list of projects on the site
Parameters:
- No additional parameters required
Example:
/your-tableau-connection
action: get-projects
Response:
{
"projects": {
"project": [
{
"id": "project-456",
"name": "Sales Analytics",
"description": "Sales team analytics and reporting",
"contentPermissions": "ManagedByOwner",
"parentProjectId": "project-000",
"owner": {
"id": "user-789",
"name": "John Doe"
}
}
]
}
}
Get Views
Retrieve views (sheets/dashboards) from workbooks
Parameters:
- No additional parameters required
Example:
/your-tableau-connection
action: get-views
Response:
{
"views": {
"view": [
{
"id": "view-111",
"name": "Sales Overview",
"contentUrl": "SalesOverview",
"viewUrlName": "SalesOverview",
"createdAt": "2025-01-15T12:34:56Z",
"updatedAt": "2025-01-15T14:20:00Z",
"workbook": {
"id": "workbook-123",
"name": "Sales Dashboard"
},
"project": {
"id": "project-456",
"name": "Sales Analytics"
},
"owner": {
"id": "user-789",
"name": "John Doe"
}
}
]
}
}
Publish Workbook
Publish a workbook to Tableau Server/Online
Parameters:
workbook-name
(required) - Name for the workbook
project-id
(required) - Target project ID
show-tabs
(optional) - Whether to show tabs
Example:
/your-tableau-connection
action: publish-workbook
workbook-name: New Sales Dashboard
project-id: project-456
show-tabs: true
Response:
{
"workbook": {
"id": "workbook-456",
"name": "New Sales Dashboard",
"contentUrl": "NewSalesDashboard",
"showTabs": true,
"size": 1048576,
"createdAt": "2025-01-15T16:00:00Z",
"updatedAt": "2025-01-15T16:00:00Z",
"project": {
"id": "project-456",
"name": "Sales Analytics"
},
"owner": {
"id": "user-789",
"name": "John Doe"
}
}
}
Publish Datasource
Publish a datasource to Tableau Server/Online
Parameters:
datasource-name
(required) - Name for the datasource
project-id
(required) - Target project ID
Example:
/your-tableau-connection
action: publish-datasource
datasource-name: Customer Data
project-id: project-456
Response:
{
"datasource": {
"id": "datasource-456",
"name": "Customer Data",
"contentUrl": "CustomerData",
"type": "tdsx",
"size": 2097152,
"createdAt": "2025-01-15T16:30:00Z",
"updatedAt": "2025-01-15T16:30:00Z",
"project": {
"id": "project-456",
"name": "Sales Analytics"
},
"owner": {
"id": "user-789",
"name": "John Doe"
}
}
}
Update Workbook
Update workbook properties
Parameters:
workbook-id
(required) - The workbook ID to update
workbook-name
(optional) - New name for the workbook
description
(optional) - New description
show-tabs
(optional) - Whether to show tabs
project-id
(optional) - New project ID
Example:
/your-tableau-connection
action: update-workbook
workbook-id: workbook-123
workbook-name: Updated Sales Dashboard
description: Updated monthly sales performance dashboard
show-tabs: false
project-id: project-789
Response:
{
"workbook": {
"id": "workbook-123",
"name": "Updated Sales Dashboard",
"description": "Updated monthly sales performance dashboard",
"contentUrl": "UpdatedSalesDashboard",
"showTabs": false,
"project": {
"id": "project-789",
"name": "Marketing Analytics"
}
}
}
Download Workbook
Download a workbook file
Parameters:
workbook-id
(required) - The workbook ID to download
Example:
/your-tableau-connection
action: download-workbook
workbook-id: workbook-123
Response:
{
"status": 200,
"headers": {
"Content-Type": "application/octet-stream",
"Content-Disposition": "attachment; filename=\"SalesDashboard.twbx\""
},
"output": "[Binary workbook content]"
}
Download Datasource
Download a datasource file
Parameters:
datasource-id
(required) - The datasource ID to download
Example:
/your-tableau-connection
action: download-datasource
datasource-id: datasource-123
Response:
{
"status": 200,
"headers": {
"Content-Type": "application/octet-stream",
"Content-Disposition": "attachment; filename=\"SalesData.tdsx\""
},
"output": "[Binary datasource content]"
}
Get Workbook Permissions
Get permissions for a workbook
Parameters:
workbook-id
(required) - The workbook ID to get permissions for
Example:
/your-tableau-connection
action: get-permissions
workbook-id: workbook-123
Response:
{
"permissions": {
"workbook": {
"id": "workbook-123",
"name": "Sales Dashboard"
},
"granteeCapabilities": [
{
"user": {
"id": "user-789",
"name": "john.doe"
},
"capabilities": {
"capability": [
{
"name": "Read",
"mode": "Allow"
},
{
"name": "Write",
"mode": "Allow"
}
]
}
}
]
}
}
Create Project
Create a new project on the site
Parameters:
project-name
(required) - Name for the new project
description
(optional) - Project description
content-permissions
(optional) - Content permissions setting
parent-project-id
(optional) - Parent project ID
Example:
/your-tableau-connection
action: create-project
project-name: Finance Analytics
description: Financial reporting and analytics
content-permissions: ManagedByOwner
parent-project-id: project-000
Response:
{
"project": {
"id": "project-999",
"name": "Finance Analytics",
"description": "Financial reporting and analytics",
"contentPermissions": "ManagedByOwner",
"parentProjectId": "project-000",
"owner": {
"id": "user-789",
"name": "John Doe"
}
}
}
Query View Data
Query data from a view using CSV format
Parameters:
view-id
(required) - The view ID to query data from
format
(optional) - Data format (default: csv)
max-age
(optional) - Maximum age for cached data
Example:
/your-tableau-connection
action: query-view-data
view-id: view-111
format: csv
max-age: 60
Response:
{
"status": 200,
"headers": {
"Content-Type": "text/csv"
},
"output": "Date,Sales,Region\n2025-01-01,10000,North\n2025-01-01,15000,South\n2025-01-02,12000,North"
}
Notes
Tableau API supports various query parameters including fields, filter, sort, pageSize, and pageNumber for pagination. Publishing operations require multipart/form-data with both JSON metadata and file content. Downloaded files are returned as binary content with appropriate headers.