API - Downloads & archives

The API can hand you secure, time-limited download links, including for the private original that never appears on your public CDN, and it can build ZIP archives whenever you need them.

Downloading a single file

POST /v1/downloads gives you a signed URL for one version of an image:

POST /v1/downloads
Idempotency-Key: <uuid>

{ "image_public_uuid": "be66ea4e-…", "version": "original" }
{ "url": "https://…signed…", "filename": "IMG_1234.jpg", "access": "private", "expires_at": 1783099999 }

The link works until the time in expires_at, then it stops. Leave version out and you'll get the largest version we can serve. This one needs the api.download scope.

Building a ZIP archive

When you want a lot of images at once, build an archive:

  • POST /v1/archives with image_public_uuids: […] (and, if you like, a version_profile_uuid and a filename) kicks off the build and hands back an Operation to poll.
  • GET /v1/archives lists the archives your account has ready, each with a link you can share, its size, how many images it holds, and when it expires.
POST /v1/archives
Idempotency-Key: <uuid>

{ "image_public_uuids": ["…", "…"], "filename": "friday-selects" }

Archives are the way to send a whole selection to a client. The build happens in the background as an Operation, so poll it, then share the link from GET /v1/archives.

Last updated: