Public API · Transforms

See exactly what the pipeline returns.

The transform layer accepts pixel sizes, percentages, or a uniform scale, and never upscales beyond the source. Drag the sliders to watch the bytes rebuild — the headers panel surfaces the source vs output dimensions so the clamp behaviour isn't a mystery.

<configure share + path>
Configure a share + path to preview.

?w / ?h

Pixels (?w=600) or percentage of source (?w=25%). Decimals allowed (?w=12.5%). Either dimension auto-derives the other from aspect ratio.

?scale

Uniform scale on both dimensions: ?scale=0.5 or?scale=50%. Mutually exclusive with w/h.

?fmt

webp, avif, jpeg,png, or original. Omit to negotiate from the Accept header (AVIF > WebP > source).

?fit

inside (default — preserve aspect, fit within), cover (crop to fill), contain (letterbox).

No upscale, ever.

Requesting ?w=99999 against a 4032-wide source returns the 4032-wide source. The response carries X-Source-Dimensions + X-Output-Dimensionsso a thoughtful client can adapt.

EXIF policy

Default = strip everything from transformed output (privacy first). Per-API-key opt-in keep_gps=1 for trusted integrators. Originals on the no-transform path keep EXIF intact unless ?strip_exif=1.