Get Started


Get Started with direct calls to the External Client API

  1. Install Tableau Studio.
  2. Open Tableau Studio.
  3. Find your External Client API discovery file.

    This file is recreated with fresh values on each launch of Tableau Studio and only available once the app has fully started. The basename of the file is the OS process id Tableau is running in.

    Mac OS

    ~/Library/Application Support/Tableau/Tableau/ExternalApi/<pid>.json

    Windows

    %LOCALAPPDATA%/Tableau/Tableau/ExternalApi/

    The two important values it contains are:

    • baseUrl - typically http://127.0.0.1:<xxxxx>
    • token - looks like: af1129c44d5dcd8bd9206a8641133c91eed66c76b5f562633a37fd186e5ccac1

    A full typical discovery file looks like:

     {
     "schemaVersion": 1,
     "instanceId": "td_a8f1bf61-9194-49e8-8205-6ae7e831d5c2",
     "pid": 28814,
     "baseUrl": "http://127.0.0.1:62197",
     "tokenType": "Bearer",
     "token": "af1129c44d5dcd8bd9206a8641133c91eed66c76b5f562633a37fd186e5ccac1",
     "applicationVersion": "0.0.0",
     "apiVersion": "0.2.6",
     "startedAt": "2026-08-14T16:14:52Z"
     }
    

    A model call looks like:

     curl -sS -H "Authorization: Bearer <token value>" \
     <baseURL>/v0/workbook
    
  4. Check the presence of the client (no authorization needed for is one call). Run:

     curl -sS  http://127.0.0.1:62197/v0/health
    

    This should return:

     {"status":"OK"} (HTTP 200)
    
  5. Try a call to list all available workbooks. Run:

     curl -sS -H "Authorization: Bearer af1129c44d5dcd8bd9206a8641133c91eed66c76b5f562633a37fd186e5ccac1" \
     http://127.0.0.1:62197/v0/workbook
    

    This should return something like:

     {
       "title": "Book1",
       "location": null,
       "unsavedChanges": false,
       "worksheets": [
         {
           "id": "{9BBEEE50-4AF9-46C2-BB36-1DAC6793FE4B}",
           "name": "Sheet 1",
           "hidden": false,
           "isActiveSheet": true,
           "index": 0,
           "isAutoUpdatesPaused": false,
           "datasources": []
         }
       ],
       "dashboards": [],
       "storyboards": []
     }