Rest API TSC Intermediate

#DDQ2026-02 Fetch recent refreshes (Intermediate)

Learn how to find extract performance details.

J

Jordan Woods

Author

2026-02-26T17:00:00
3 min read
preview.png

Welcome to the DataDev Quest Challenge for February 2026! This challenge is designed to teach you
how to use the filtering mechanisms with TSC and Tableau’s REST API.

Challenge Overview

Objective:

Learn how to add filter, sort, and slice background jobs effectively.

Why this challenge?

When starting a refresh on Tableau server, you may choose to have your script wait until the job can be reasonably certain of being complete.

Learning Goals

  • Filter the responses from Tableau Server
  • Interacting with Iterable interfaces in Python
  • Tracking job history

Submission Guidelines

  • Source Code: Publish your project publicly in your GitHub profile
  • Add README: Include any setup instructions and describe how to run the program.
  • Video of Solution: Include a video of your solution in the README file. You can publish it on YouTube and embed the iframe, or save the video file in the repository’s root directory
  • Comments: Ensure your code is well-commented
  • Submission: Submit your challenge in the following forms

Additional Resources


Getting Started

The first step is to get and set up your Tableau Developer Sandbox. Cristian Saavedra Desmoineaux has a Medium Post that provides a step-by-step guide to configuring it.

1. In your Tableau Site, identify a workbook or datasource that has refreshes occurring. You can check the admin views for this.

2. Identify the workbook/datasource refreshing

You will need the name of the object for which you are retrieving refresh history. Have you checked if that name is unique? How might you guarantee uniqueness?

3. Install Python

I recommend installing python with uv. Install Python 3.13 or newer if you don’t have one already installed.

4. Install TSC

With uv, you can install TSC with the following

CODE
uv add tableauserverclient>=v0.40

Challenge

Now that you’ve identified the object, retrieve the last 10 successful extract refreshes for it. Calculate the average and standard deviation. Is there a lot of variability? If you were going to wait to poll the server for job status, how would you determine how long to wait?


Extra Challenge

Do you want to learn more?

  • Can you do it without keeping hundreds or thousands of jobs in memory?
  • How might you preserve execution history?
  • What indications might you have that the query is not giving you the results you expect?

Solutions


Coming soon…

Who am I?

I am Jordan Woods, a Tableau DataDev Ambassador and co-founder of DataDevQuest. I am passionate about data, Python, and automation. You can contact me on LinkedIn.

Jordan Woods Headshot

Special Thanks to Marcelo Has for the beautiful redesign of DataDevQuest!