// the find
tableau/server-client-python
A Python library for the Tableau Server REST API
Official Python wrapper for the Tableau Server REST API, maintained by Tableau/Salesforce themselves. Covers the full breadth of server administration tasks — publishing workbooks and data sources, managing users/groups/sites, scheduling extracts, handling permissions. Target audience is BI/data platform engineers who need to automate Tableau Server or Tableau Cloud operations.
First-party maintenance means it tracks the actual API surface reasonably well and won't be abandoned when Tableau changes something. The samples directory is genuinely useful — each sample is a focused, runnable script showing a real task rather than a toy hello-world. The Pager abstraction handles pagination transparently, which saves everyone from writing the same cursor loop. Test coverage is solid with a large fixture library of XML responses, so the mocking approach is at least consistent.
The library is synchronous-only — no async support anywhere, which is a real problem if you're doing bulk operations against a large server and want to parallelize. Error handling surfaces raw HTTP exceptions with minimal context; when the Tableau API returns a structured error body, TSC often just raises a generic exception and drops the error code. The models are XML-parsed data bags with no validation, so you won't know a field is wrong until the API rejects your request. Documentation lives in a separate GitHub Pages site that lags behind the code, and several newer API endpoints (virtual connections, linked tasks) have thin or no sample coverage.