---
title: "Presign Assets Batch"
method: POST
path: "/api/assets/presign/batch"
tags: ["assets"]
---

# Presign Assets Batch

`POST /api/assets/presign/batch`

## Request

- Base URL: `https://api.tintin-x.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.tintin-x.com/api/assets/presign/batch`
- Auth: HTTP bearer

Return presigned URLs for a batch of keys in one round-trip.

Invalid keys are reported per-key in `errors` so one bad entry doesn't
fail the whole batch — callers are usually resolving independent
thumbnails and would rather render N-1 correctly than none at all.
Duplicate keys in the input dedupe naturally via the output map.

## Request body

- PresignBatchRequest
  - `keys` string[], required: S3 object keys to presign
  - `variant` string, nullable: Downscaled read-variant to serve instead of the original: 'thumb' (256 px, grid cells) or 'preview' (1280 px, lightbox). Omit or 'original' for full size — which is what download, editing and export must keep using. Falls back to the original whenever the derivative isn't available yet, so the caller can always just render what it gets back.

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/tintin-x/apis/tintin-api.md) · [All operations](https://skmtc.dev/tintin-x/apis/tintin-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tintin-x/apis/tintin-api/revisions/8839a8d0a66c?raw)
