Description
# Tableau Server Client (Python) [](https://www.tableau.com/support-levels-it-and-developer-tools) [](https://github.com/tableau/server-client-python/actions) [](https://app.fossa.com/projects/git%2Bgithub.com%2Ftableau%2Fserver-client-python?ref=badge_shield) Use the Tableau Server Client (TSC) library to increase your productivity as you interact with the Tableau Server REST API. With the TSC library you can do almost everything that you can do with the REST API, including: * Publish workbooks and data sources. * Create users and groups. * Query projects, sites, and more. This repository contains Python source code for the library and sample files showing how to use it. As of September 2024, support for Python 3.7 and 3.8 will be dropped - support for older versions of Python aims to match https://devguide.python.org/versions/ To see sample code that works directly with the REST API (in Java, Python, or Postman), visit the [REST API Samples](https://github.com/tableau/rest-api-samples) repo. For more information on installing and using TSC, see the documentation: <https://tableau.github.io/server-client-python/docs/> To contribute, see our [Developer Guide](https://tableau.github.io/server-client-python/docs/dev-guide). A list of all our contributors to date is in [CONTRIBUTORS.md]. ## License [](https://app.fossa.com/projects/git%2Bgithub.com%2Ftableau%2Fserver-client-python?ref=badge_large)
Release History
| Version | Changes | Urgency | Date |
|---|---|---|---|
| 0.40 | Imported from PyPI (0.40) | Low | 4/21/2026 |
| v0.40 | ## What's Changed * 0.40 - fix packaging error in 0.39 by @jacalata in https://github.com/tableau/server-client-python/pull/1750 **Full Changelog**: https://github.com/tableau/server-client-python/compare/v0.39...v0.40 | Low | 2/3/2026 |
| v0.39 | ## What's Changed * feat: New APIs: Update multiple connections in a single workbook/datasource (https://github.com/tableau/server-client-python/pull/1638) * feat: enable toggling attribute capture for a site (https://github.com/tableau/server-client-python/pull/1619) * feat: support OIDC endpoints (https://github.com/tableau/server-client-python/pull/1630) * feat: add WebAuthoringForFlows capability to Permission class (https://github.com/tableau/server-client-python/pull/1642) * feat: | Low | 2/2/2026 |
| v0.38 | ## What's Changed * v0.38 - IDP configuration by @jacalata in https://github.com/tableau/server-client-python/pull/1606 * * docs: docstrings for schedules and intervals (https://github.com/tableau/server-client-python/pull/1528) * docs: Docstrings for new fields * feat: enable retrieving only owned workbooks * feat: Add support for multiple IDPs (jorwoods) * feat: Add fields:_all_ support (https://github.com/tableau/server-client-python/pull/1563) * feat: project support all fields * | Low | 5/15/2025 |
| v0.37 | ## What's Changed * fix: Incorrect size unit when logging fileUpload by @KulykDmytro in https://github.com/tableau/server-client-python/pull/1560 * docs: DatasourceItem and Endpoint docstrings by @jorwoods in https://github.com/tableau/server-client-python/pull/1556 * fix: Change GroupSets.get api for more consistency by @jorwoods in https://github.com/tableau/server-client-python/pull/1568 * fix: Virtual connection ConnectionItem attributes by @jorwoods in https://github.com/tableau/server- | Low | 3/24/2025 |
| v0.36 | Fixes a 400 Bad Request error when calling Refresh Datasource with 0.35 | Low | 1/10/2025 |
| v0.35 | ## What's Changed * feat: Workbook update Description by @LehmD in https://github.com/tableau/server-client-python/pull/1516 * feat: capture site content url from sign in by @jorwoods in https://github.com/tableau/server-client-python/pull/1524 * fix: datasource id on ConnectionItem by @jorwoods in https://github.com/tableau/server-client-python/pull/1538 * feat: support for thumbnail related options in workbook publish by @renoyjohnm in https://github.com/tableau/server-client-python/pull/1 | Low | 1/6/2025 |
| v0.34 | ## What's Changed * Draft: Make urllib3 dependency more flexible by @bcantoni in https://github.com/tableau/server-client-python/pull/1468 * chore(versions): Upgrade minimum python version by @jorwoods in https://github.com/tableau/server-client-python/pull/1465 * chore(typing): include samples in type checks by @jorwoods in https://github.com/tableau/server-client-python/pull/1455 * fix: queryset support for flowruns by @jorwoods in https://github.com/tableau/server-client-python/pull/1460 | Low | 10/26/2024 |
| v0.33 | ## What's Changed * Update contributors by @bcantoni in https://github.com/tableau/server-client-python/pull/1428 * Add support for all types of monthly repeating schedules by @bcantoni in https://github.com/tableau/server-client-python/pull/1462 * Add workbook and datasource name attributes to JobItem Model by @ivanB1975 in https://github.com/tableau/server-client-python/pull/1391 * chore: make auth endpoint imports absolute by @jorwoods in https://github.com/tableau/server-client-python/pu | Low | 9/18/2024 |
| v0.32 | ## What's Changed - Bump urllib3 from 2.0.7 to 2.2.2 #1400 - Allow setting page_size in .all and .filter #1417 - Switch to absolute imports for favorites #1415 - Switch to absolute imports for datasource #1416 - Fix pop from empty list #1404 - Ignore known internal warnings on tests #1407 - Add support for changing project owner #1419 - Add type hints to auth models #1403 - Add typing to Pager #1390 - Remove blocks of code and arguments that have been deprecated #1380 - Add usage to | Low | 7/27/2024 |
| v0.27 | 0.27 (https://github.com/tableau/server-client-python/pull/1272) (Release notes seem to have been left in draft - publishing now for history) Performance notes: v0.26 had significant performance problems. v0.27 has, we believe, reverted those, and it now runs very slightly slower than v0.25. If you are seeing perf issues in v0.27 that are noticeably worse than v0.25, we'd love to hear. New functionality * enable filtering for Excel downloads https://github.com/tableau/server-client-py | Low | 6/8/2024 |
| v0.31 | ## What's Changed - Remove deprecated cgi package and switch to `email.message.Message` #1346 - Allow viz height and width parameters #1348 - Add support for System schedule type #1350 - Add support for daily (24 hour) intervals for tasks #1355 - Update Actions to include Python 3.12 and reduce duplicate test runs #1356 - Add Data Acceleration and Data Freshness Policy support #1343 - Add create cloud flow task support #1371 - Pass parameters in request options #1372 - Improve robustn | Low | 6/4/2024 |
| v0.30 | ## What's Changed * fix Unauthorized Error in 0.29 by @jacalata in https://github.com/tableau/server-client-python/pull/1345 **Full Changelog**: https://github.com/tableau/server-client-python/compare/v0.29...v0.30 | Low | 1/24/2024 |
| v0.29 | ## What's Changed * Various github action updates * Bump urllib3 from 2.0.4 to 2.0.7 by @dependabot * Fixed type annotation for workbook.refresh by @pes-magic in https://github.com/tableau/server-client-python/pull/1319 * Remove comment with fake password that was causing confusion by @bcantoni in https://github.com/tableau/server-client-python/pull/1323 * Add all missing RequestOptions fields by @jorwoods in https://github.com/tableau/server-client-python/pull/1307 * Jorwoods/1312 downloa | Low | 1/13/2024 |
| v0.28 | Adds JWT auth | Low | 10/4/2023 |
| v0.26 | ## What's Changed * make project nullable on datasource https://github.com/tableau/server-client-python/issues/1210 * add params to workbook publish method https://github.com/tableau/server-client-python/issues/1087 * add certification to publishing a datasource https://github.com/tableau/server-client-python/issues/1058 * add contentURL as a filter https://github.com/tableau/server-client-python/issues/456 * adding sample file for favorites, issue #737 by @narcolino-tableau in https://gith | Low | 4/25/2023 |
| v0.25 | * Implement custom view objects (https://github.com/tableau/server-client-python/pull/1195) * Fix bug in update-datasources before 3.15 (https://github.com/tableau/server-client-python/pull/1203) (fixes https://github.com/tableau/server-client-python/issues/1072) * catch exceptions from ServerInfo (https://github.com/tableau/server-client-python/pull/1204) * add query-tagging attribute to connection (https://github.com/tableau/server-client-python/pull/1202) (add explanation for why it doesn' | Low | 3/16/2023 |
| v0.24 | ## What's Changed * Add logic to retrieve Datarole and Metric permissions by @TrimPeachu in https://github.com/tableau/server-client-python/pull/1163 * Allow injection of sessions (https://github.com/tableau/server-client-python/pull/1111) * show server info (https://github.com/tableau/server-client-python/pull/1118) * Fix bug in exposing ExcelRequestOptions and test (https://github.com/tableau/server-client-python/pull/1123) * Fix a few pylint errors (https://github.com/tableau/server-clie | Low | 2/14/2023 |
| v0.23.4 | Fixed automated publishing of packages to [PyPI](https://pypi.org/project/tableauserverclient/). No code changes since v0.23.1. | Low | 12/22/2022 |
| v0.23.1 | ## What's Changed @jacalata @MrwanBaghdad @jorwoods @bcantoni Add custom session injection, Fix bug for http_options **Full Changelog**: https://github.com/tableau/server-client-python/compare/v0.23...v0.23.1 | Low | 10/14/2022 |
| v0.23 | ## What's Changed * Add custom session injection, Fix bug for http_options by @jacalata in https://github.com/tableau/server-client-python/pull/1119 **Full Changelog**: https://github.com/tableau/server-client-python/compare/v0.22...v0.23 | Low | 9/28/2022 |
| v0.22 | Now also available on pypi! :) | Low | 9/20/2022 |
| v0.21 | * Datasources: Use explicit None identity check for datasource updates (https://github.com/tableau/server-client-python/pull/1099) (Resolves https://github.com/tableau/server-client-python/issues/1062 - cannot set empty password) * Projects: add publish-samples option to create/update project * Workbooks: fix workbook.delete_extract, add workbook pdf download, make project_id nullable to support "Personal Space", Remove vf support from populate_excel, make hidden views an attribute of Workbook | Low | 9/13/2022 |
| v0.19.0 | * Add new samples and delete redundant ones * Clean up hidden_views by making it an attribute of WorkbookItem * Add type hints for workbook and data source revisions, data alerts, Favorites, Flows, groups, permissions, projects, flow runs, site, subscriptions, Users, webhooks * add get_by_id method and test for schedules * Allow null value for user quota tiers * fix workbook.delete_extract * add publish to pypi action fix xml generation for items * Add Status, ParentProjectId and Star | Low | 6/7/2022 |
| v0.18.0 | Switched to using defused_xml for xml attack protection added linting and type hints improve experience with self-signed certificates/invalid ssl updated samples new item types: metrics, revisions for datasources and workbooks features: support adding flows to schedules, exporting workbooks to powerpoint fixes: delete extracts | Low | 4/8/2022 |
| v0.17.0 | ## TSC v0.17.0 (20 October 2021) * Added support for accepting parameters for post request of the metadata api (#850) * Fixed jobs.get_by_id(job_id) example & reference docs (#867, #868) * Fixed handling for workbooks in personal spaces which do not have projectID or Name (#875) * Updated links to Data Source Methods page in REST API docs (#879) * Unified arguments of sample scripts (#889) * Updated docs for - links to Datasource API (#879) , sample scripts (#892) & metadata query (#89 | Low | 10/20/2021 |
| v0.16.0 | ## 0.16.0 (15 July 2021) * Documentation updates (#800, #818, #839, #842) * Fixed data alert repr in subscription item (#821) * Added support for Data Quality Warning (#836) * Added support for renaming datasources (#843) * Improved Datasource tests (#843) * Updated catalog obfuscation field (#844) * Fixed revision limit field in site_item.py file (#847) * Added the Missing content permission field- LockedToProjectWithoutNested (#856) | Low | 7/16/2021 |
| v0.15.0 | ## 0.15.0 (16 Feb 2021) * Added support for python version 3.9 (#744) * Added support for 'Get View by ID' (#750) * Added docs and test data to MANIFEST.in file (#780) * Added owner_id property to ProjectItem (#784) * Added support for skipping connection check while publishing workbook (#791) * Added support for 'Update Subscription' (#794) * Added support for 'Get Groups for a User' (#799) * Improved debug logging by including put/post request contents (#743) * Improved local and acti | Low | 2/17/2021 |
| v0.14.1 | ## 0.14.1 (9 Dec 2020) * Fixed filter query issue for server version below 2020.1 (#745) * Fixed large workbook/datasource publish issue (#757) | Low | 12/10/2020 |
| v0.14.0 | ## 0.14.0 (9 Nov 2020) * Added django-style filtering and sorting (#615) * Added encoding tag-name before deleting (#687) * Added 'Execute' Capability to permissions (#700) * Added support for publishing workbook using file objects (#704) * Added new fields to datasource_item (#705) * Added all fields for users.get to get email and fullname (#713) * Added support publishing datasource using file objects (#714) * Improved request options by removing manual query param generation (#686) * | Low | 11/9/2020 |
| v0.13 | ## 0.13 (1 Sept 2020) * Added notes field to JobItem (#571) * Added webpage_url field to WorkbookItem (#661) * Added support for switching between sites (#655) * Added support for querying favorites for a user (#656) * Added support for Python 3.8 (#659) * Added support for Data Alerts (#667) * Added support for basic Extract operations - Create, Delete, en/re/decrypt for site (#672) * Added support for creating and querying Active Directory groups (#674) * Added support for asynchronou | Low | 9/2/2020 |
| v0.12 | ## 0.12 (10 July 2020) * Added hidden_views parameter to workbook publish method (#614) * Added simple paging endpoint for GraphQL/Metadata API (#623) * Added endpoints to Metadata API for retrieving backfill/eventing status (#626) * Added maxage parameter to CSV and PDF export options (#635) * Added support for querying, adding, and deleting favorites (#638) * Added a sample for publishing datasources (#644) | Low | 7/10/2020 |
| v0.11 | ## 0.11 (1 May 2020) * Added more fields to Data Acceleration config (#588) * Added OpenID as an auth setting enum (#610) * Added support for Data Acceleration Reports (#596) * Added support for view permissions (#526) * Materialized views changed to Data Acceleration (#576) * Improved consistency across workbook/datasource endpoints (#570) * Fixed print error in update_connection.py (#602) * Fixed log error in add user endpoint (#608) | Low | 5/1/2020 |
| v0.10 | ## 0.10 (21 Feb 2020) * Added a way to handle non-xml errors (#515) * Added Webhooks endpoints for create, delete, get, list, and test (#523, #532) * Added delete method in the tasks endpoint (#524) * Added description attribute to WorkbookItem (#533) * Added support for materializeViews as schedule and task types (#542) * Added warnings to schedules (#550, #551) * Added ability to update parent_id attribute of projects (#560, #567) * Improved filename behavior for download endpoints ( | Low | 2/21/2020 |
| v0.9 | ## 0.9 (4 Oct 2019) * Added Metadata API endpoints (#431) * Added site settings for Data Catalog and Prep Conductor (#434) * Added new fields to ViewItem (#331) * Added support and samples for Tableau Server Personal Access Tokens (#465) * Added Permissions endpoints (#429) * Added tags to ViewItem (#470) * Added Databases and Tables endpoints (#445) * Added Flow endpoints (#494) * Added ability to filter projects by topLevelProject attribute (#497) * Improved server_info endpoint er | Low | 10/4/2019 |
| v0.8.1 | ## 0.8.1 (17 July 2019) * Fixed update_workbook endpoint (#454) | Low | 7/17/2019 |
| v0.8 | ## 0.8 (8 Apr 2019) * Added Max Age to download view image request (#360) * Added Materialized Views (#378, #394, #396) * Added PDF export of Workbook (#376) * Added Support User Role (#392) * Added Flow Subscriptions (#403) * Updated Pager to handle un-paged results (#322) * Fixed checked upload (#309, #319, #326, #329) * Fixed embed_password field on publish (#416) | Low | 4/8/2019 |
| v0.7 | * Added cancel job (#299) * Added Get background jobs (#298) * Added Multi-credential support (#276) * Added Update Groups (#279) * Adding project_id to view (#285) * Added ability to rename workbook using `update workbook` (#284) * Added Sample for exporting full pdf using pdf page combining (#267) * Added Sample for exporting data, images, and single view pdfs (#263) * Added view filters to the populate request options (#260) * Add Async publishing for workbook and datasource endpoint | Low | 7/11/2018 |
| v0.6.3 | * Expanded the enum for site roles | Low | 5/8/2018 |
| v0.6.1 | * Fixed #257 where refreshing extracts does not work due to a missing "self" | Low | 1/26/2018 |
| v0.6 | * Added support for add a datasource/workbook refresh to a schedule (#244) * Added support for updating datasource connections (#253) * Added Refresh Now for datasource and workbooks (#250) * Fixed Typos in the docs (#251) | Low | 1/17/2018 |
| v0.5.1 | * Fix a critical issue caused by #224 that was the result of lack of test coverage (#226) | Low | 9/21/2017 |
| v0.5 | * Added revision settings to update site (#187) * Added support for certified data sources (#189) * Added support for include/exclude extract (#203) * Added auto-paging for group users (#204) * Added ability to add workbooks to a schedule (#206) * Added the ability to create nested projects (#208) * Fixed sort order when using pager (#192) * Docs Updates and new samples (#196, #199, #200, #201) | Low | 9/19/2017 |
| v0.4.1 | * Fix #177 to remove left in debugging print | Low | 4/26/2017 |
| v0.4 | * Added API version annotations to endpoints (#125) * Added New High Res Image Api Endpoint * Added Tags to Datasources, Views * Added Ability to run an Extract Refresh task (#159) * Auto versioning enabled (#169) * Download twbx/tdsx without the extract payload (#143, #144) * New Sample to initialize a server (#95) * Added ability to update connection information (#149) * Added Ability to get a site by name (#153) * Dates are now DateTime Objects (#102) * Bugfixes (#162, #166) | Low | 4/18/2017 |
| v0.3 | - Return DateTime objects instead of strings (#102) - UserItem now is compatible with Pager (#107, #109) - Deprecated site in favor of site_id (#97) - Improved handling of large downloads (#105, #111) - Added support for oAuth when publishing (#117) - Added Testing against Py36 (#122, #123) - Added Version Checking to use highest supported REST api version (#100) - Added Infrastructure for throwing error if trying to do something that is not supported by REST api version (#124) - Various Code Cl | Low | 1/11/2017 |
| v0.2 | - Added Initial Schedules Support (#48) - Added Initial Create Group endpoint (#69) - Added Connection Credentials for publishing datasources/workbooks (#80) - Added Pager object for handling pagination results and sample (#72, #90) - Added ServerInfo endpoint (#84) - Deprecated `site` as a parameter to `TableauAuth` in favor of `site_id` - Code Cleanup - Bugfixes | Low | 11/1/2016 |
| v0.1 | Release v0.1 | Low | 9/12/2016 |
