URL shape

Append /m/<WxH>[/filters:<f1>:<f2>] to the raw asset URL. Storage resolves the key against the allow-list regex and streams the transformed output. Results are cacheable via the proxy.

http
GET /storage/v1/spaces/1/assets/42/photo.jpg/m/800x600/filters:format(webp):quality(80)
Resize to 800x600 and serve as WebP.

Dimension tokens

  • 800x600 — fit inside 800×600, aspect preserved.

  • 800x0 — set width, height auto.

  • 0x600 — set height, width auto.

  • fit-in/800x600 — letterbox inside the box.

  • smart/800x600 — content-aware crop (faces, salience).

Filters

  • format(webp|avif|jpeg|png) — force output format. AVIF gated on ALLOW_AVIF=1.

  • quality(1..100) — encoder quality; default 80.

  • blur(0..100) — Gaussian blur radius.

  • grayscale() — desaturate.

  • brightness(-100..100), contrast(-100..100), saturation(-100..100).

  • rotate(90|180|270).

  • focal(x:y) — focal point for smart crops (0..1 in each axis).

http
GET /storage/v1/spaces/1/assets/42/hero.jpg/m/smart/600x600/filters:format(webp):quality(70)
Combined: smart crop to 600x600, WebP, 70% quality.