Skip to main content
GET
Returns a flat list of every file associated with an order. Each item includes boolean flags that tell you exactly whether the file can be downloaded right now and why it might be unavailable. You do not need to implement any expiration, limit, or access-revocation logic on your end.

Path parameters

string
required
The order’s unique identifier (UUID).

Response

string
required
The order’s unique identifier.
string
required
The order name/number, e.g. #1042.
array
required
Flat list of download objects. Each object represents one file or licence key.

Understanding the downloadable flag

The downloadable field is a convenience flag that combines all the individual status checks:
If you only need to know whether a file is available, check the downloadable field. Use the individual flags when you need to display a specific reason to the user.

Watermarked files

When PDF watermarking is enabled in your store settings, eligible PDFs are stamped with the buyer’s details. Watermarking runs asynchronously and is generated on demand: calling this endpoint starts the job for any eligible file that does not have one yet, exactly like the customer opening the hosted download page. Recommended client flow:
  1. GET /orders/{id}/downloads.
  2. For any entry with watermark_status: "processing", wait a few seconds and call the endpoint again. Watermarking typically completes within seconds; only the first request per file hits this window.
  3. Once watermark_status is ready, download download_url. The returned PDF already contains the buyer’s name and email, so it stays watermarked when stored offline.
download_url is never the un-watermarked original, so a ready entry can come back with download_url: null in the rare case where the signed URL could not be generated. Treat that like processing and retry. downloadable still gates everything: if it is false (expired, revoked, limit reached, or unreleased preorder) then download_url is null regardless of watermark status.
Legacy files still stored on our previous storage provider cannot be served as a watermarked copy through the API and are returned as not_applicable.