


Format negotiation
format=auto (the SDK default) picks the best format from the browser’s Accept header:
- AVIF when
image/avifis advertised - WebP when
image/webpis advertised - JPEG fallback for older browsers
Vary: Accept so edge caches stay correct — at most two variants per URL (modern + JPEG).
Force a specific format with format=webp, format=avif, format=jpeg, or format=png. For SVG tracing and SVG source handling, see Vector & SVG. For forced downloads, see Download.
Progressive JPEG
When output format is JPEG (explicitformat=jpeg or negotiated from format=auto), Convertly uses progressive encoding by default. The full image appears quickly at low quality and sharpens as more bytes arrive — unlike baseline JPEG, which paints top-to-bottom.

| Param | Value | Default |
|---|---|---|
jpgProgressive (jpeg-progressive, jpg-progressive) | 1 / true or 0 / false. | 1 when output is JPEG |
Content-aware quality
q=auto analyzes the source on the first cache miss and picks a quality band:
| Image type | Auto quality |
|---|---|
| Flat graphic / logo | 92 |
| Illustration / screenshot | 88 |
| Mixed content | 82 |
| Photo | 76 |
| Very high-detail photo | 72 |
q=auto works inside presets too.
Client hints
Passch=Width,Dpr to opt into browser Client Hints for sizing. When w is omitted and ch=Width is set, the CDN uses Sec-CH-Width (CSS pixels) multiplied by dpr.
Metadata stripping
strip=all (or strip=1) removes EXIF/XMP/ICC from output. strip=icc keeps colour profile metadata but drops camera tags.

PDF pages and GIF frames
| Param | Purpose |
|---|---|
page | PDF page number (1-based). |
pdfDensity | Rasterization DPI (72–600, default 150). |
frame | GIF frame index (0-based). |
Network-aware quality
When the browser sendsSave-Data: on, Convertly drops encode quality by 15 points (floored at 40). The route sets Vary: Save-Data and caches both variants independently — no client-side changes required.
See Transforms overview → caching for cache behaviour with Accept and Save-Data.