Skip to main content
Send a transformations list with an upload and Openinary renders those variants right away, so the first visitor hits a warm cache instead of paying for the processing.
It matters most for video, where an unwarmed first request answers 202 and makes the visitor wait for an encode. For the full endpoint reference, all parameters, form fields, and response schema, see the Upload Files API reference.

Upload video with queued transformations

Video transformations run in a background queue, they don’t block the upload response.
An upload never processes a video on its own, not even for a thumbnail. To prewarm one, request it like any other variant: t_true,tt_5,f_webp,w_500,h_500,c_fill,q_80. Thumbnails are queued ahead of other video work. Without it, every request to a thumbnail URL extracts the frame again (~1s): the on-demand path returns the frame without writing it to the variant cache, so only queued thumbnails are cached. That makes prewarming the difference between paying once and paying every time.

TypeScript examples

Limits

  • Max 20 transformations per upload request.
  • Max file size defaults to 50 MB. Configurable via MAX_FILE_SIZE_MB, useful for large video uploads in self-hosted setups.

Tips

  • Prewarm only the variants you actually serve, don’t prewarm speculatively.
  • Use consistent transformation strings across your frontend and backend to maximize cache hits.
  • For video, monitor the queue via GET /queue/stats during high-volume ingestion.

Next steps

Upload API reference

Full endpoint reference: all fields, validation, and response schema.

Image Transformations

Full parameter reference for resizing, cropping, and format conversion.

Video Transformations

Resize, trim, and extract thumbnails from video files.

File Uploader Component

Drop a ready-to-use React uploader into your app with a single shadcn/ui command.