How to get Tableau server REST API version

Dmitri Gaikovoi
1 min readMar 8, 2021
Photo by Christopher Robin Ebbinghaus on Unsplash

Tableau server REST API has endpoint “ serverinfo” to find information about server’s REST API version:

GET /api/api-version/serverinfo

As per documentation, for api-version you have to specify “The version of the API to use, such as 3.10”. This creates chicken/egg situation: you need to know API version in order to get API version. To resolve this dilemma, I use “2.4” as a value for api-version. The endpoint “serverinfo” was introduced in API version 2.4 (Tableau Server 10.1) — this is minimum possible API version that can be used for this endpoint. When you call “serverinfo” like this:

GET /api/2.4/serverinfo

the server will response with the actual api version:

<tsResponse xmlns="http://tableau.com/api"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-2.4.xsd">
<serverInfo>
<productVersion build="20204.20.1116.1810">2020.4.0</productVersion>
<restApiVersion>3.10</restApiVersion>
</serverInfo>
</tsResponse>

I use next PowerShell one-liner to get API version in my scripts:

(Invoke-RestMethod -Method Get -Uri "https://$tableauServer/api/2.4/serverinfo" -Headers @{Accept = 'application/json'}).serverInfo.restApiVersion

Bonus tip. Header “Accept: application/json” forces Tableau RESP API to response in JSON format instead of the default XML. This allows PowerShell cmdlet Invoke-RestMethod to conveniently convert API responses into .Net object, making Tableau REST API manipulations a bit easier.

Originally published at https://blog.gaikovoi.dev.

--

--