Forma AI & ML
Background removal, generative replace, object removal, text-to-image, and outpaint.
Watermarks
Single marks, tiled grids, blend modes, rotation, and anchor positions.
Face and plate privacy
Face blur, face pixelation, license-plate redaction, and coordinate-based region privacy.
Resize, crop & fit
Width, height, aspect ratio, fit modes, and smart gravity crops.
Text overlays
Dynamic OG cards, badges, multiline text, stroke, and custom fonts.
Adjustments & effects
Brightness, contrast, blur, sharpen, auto-enhance, and auto-compress.
Format & delivery
Format negotiation, progressive JPEG, content-aware quality, client hints, and metadata stripping.
Download
Force browser downloads with
dl and Content-Disposition attachment headers.Vector & SVG
Raster-to-SVG tracing and SVG input sanitization.
Canvas, trim & masks
Padding, borders, rounded corners, alpha trim, and image masks.
Video transforms
Poster frames, clip trimming, transcode, and animated GIF output.
/api/images/analyze, see Smart cropping & image analysis.
Parameter reference
Size, crop, and focal
Format and delivery
See Format & delivery and Download.
Canvas, trim, and masks
Vector and SVG
See Vector & SVG.
Watermarks
See Watermarks.
Text overlays
See Text overlays.
Adjustments and effects
See Adjustments & effects.
Face and plate privacy
See Face and plate privacy.
Colour palette
See Smart cropping & image analysis.
AI and ML
See Forma AI & ML.
Video and documents
See Video transforms.
How caching works
Every URL is deterministic. The endpoint sets long-lived immutable cache headers and varies onAccept and Save-Data:
curl -I:
Realistic cache ratios
The 95% number is achievable, not guaranteed. A few honest factors:- Edge caches are regional. A globally popular image must warm at more than one edge. The persistent variant layer prevents most regional cold fills from repeating the original transform.
- LRU eviction. Edge caches evict less popular URLs under memory pressure. Long-tail content re-fetches more often than hot URLs.
- Cache-busting URLs. Anything like
?v=${Date.now()}collapses the cache ratio to nearly zero. Use a content hash or an asset revision that changes only when the source bytes change. - Too many responsive widths. Every unique width is a separate variant. Define a small width set that matches your layout instead of generating a new width for every device pixel value.
What counts as a delivery
An origin request is a request that misses both Convertly cache layers and reaches the transform or source origin. These do not consume the origin-request allowance:- Repeat hits served by an edge cache.
- Persistent variant hits used to refill a cold regional edge.
- Browser cache hits.
- Service worker cache hits.
(file, canonical params, negotiated format) variant normally counts. Later regional edge fills can reuse its persistent render. A request counts again only when both cache layers miss or a purge intentionally removes the reusable variant.