Updates to MDC REST API and Python Library

Tl;dr: Update to newest version of the MDC Python library (0.2.0 or newer) to continue downloading datasets

A woman being interviewed by someone in a brightly colored shirt against an orange triangular background and purple starburst

Since we launched in November 2025, our Python library and REST API have seen incredible usage. We're shipping over 65 terabytes and ever increasing worth of data a month to downloaders across the globe, with much of it occurring programmatically through the REST API. But with that growth, we spotted some friction.

Namely, the initial download approach was overly complex and slow. Our application servers were streaming datasets to users, which slowed download speeds and bottlenecked traffic. It also increased our costs without adding value for downloaders. So we made it simpler.

What's Changed

We've deprecated the /datasets/{datasetId}/download/{token} endpoint, it now returns a 410 HTTP status code. While the /datasets/{datasetId}/download response remains the same schema-wise, but now includes a direct download URL to our storage layer through the downloadUrl key. No more token management required.

Instead of the two-step process where you'd:

  1. POST to get a token
  2. GET with that token to stream the file through our servers

You now simply:

  1. POST to get a direct, time-limited download URL
  2. Download directly from our storage layer

This means faster downloads, better reliability, and simpler code. The POST response still includes an expiresAt timestamp so you know exactly how long it's valid.

What You Need to Do

If you're using the Python library: Update to version 0.2.0 or newer. The changes are handled automatically under the hood, no code changes required from you!

If you’re calling the API directly: Review if the changes above impact on your implementation.