Sirv dynamic imaging URL API for on-the-fly image transformation. Use when building image URLs with Sirv CDN, resizing images via URL parameters, adding watermarks/text overlays, cropping, applying filters, format conversion (WebP, AVIF), or any Sirv URL-based image manipulation. Covers 100+ URL parameters for scaling, cropping, effects, text, watermarks, frames, and optimization.
75
94%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Transform images on-the-fly by adding URL parameters.
Base URL: https://yourcdn.sirv.com/path/image.jpg?{options}
Prefer high-quality masters and delivery-time transformations. Sirv applies URL parameters before profile settings, and profile settings before the Default profile. Processing order is auto-crop, scale, crop, canvas, rotate, then other effects; URL parameter order does not change that order.
Check current Sirv docs before changing parameter names, defaults, or fallback behavior:
https://sirv.com/help/articles/dynamic-imaging/https://sirv.com/help/articles/dynamic-imaging/format/https://sirv.com/help/articles/dynamic-imaging/crop/https://sirv.com/help/articles/responsive-images-smv/| Option | Example | Description |
|---|---|---|
w | ?w=800 | Width (px or %) |
h | ?h=600 | Height (px or %) |
s | ?s=500 | Longest dimension |
thumbnail | ?thumbnail=200 | Square thumbnail |
scale.option | ?scale.option=fit | fit, fill, ignore, noup |
?w=800 # 800px wide
?w=50% # 50% of original width
?w=800&h=600 # Specific dimensions
?w=800&scale.option=fit # Fit within 800px (maintain aspect)
?w=800&scale.option=fill # Fill 800px (may crop)| Option | Example | Description |
|---|---|---|
cw, ch | ?cw=500&ch=300 | Crop width/height |
cx, cy | ?cx=100&cy=50 | Crop start position |
crop.type | ?crop.type=face | Auto-crop: trim, poi, face |
?cw=500&ch=300&cx=100&cy=50 # Manual crop
?crop.type=face&w=400 # Face detection crop
?crop.type=trim # Trim whitespace| Option | Example | Description |
|---|---|---|
format | ?format=optimal | jpg, png, webp, avif, optimal, original |
q | ?q=85 | JPEG/WebP quality 0-100; default is usually 80 |
subsampling | ?subsampling=4:2:0 | JPEG chroma subsampling |
?format=optimal # Auto-select best format
?format=webp&q=80 # WebP at 80% quality
?format=avif # AVIF format
?format=original # Preserve original formatPrefer format=optimal or the account default for web delivery unless a fixed format is required. If forcing WebP/AVIF, verify the fallback behavior in current Sirv docs and rendered responses.
| Option | Range | Description |
|---|---|---|
blur | 0-100 | Gaussian blur |
sharpen | 0-100 | Sharpen |
brightness | -100 to 100 | Brightness |
contrast | -100 to 100 | Contrast |
saturation | -100 to 100 | Saturation |
grayscale | true/false | Black & white |
rotate | -180 to 180 | Rotation degrees |
colortone | preset name | sepia, warm, cold, sunset... |
?blur=10 # Light blur
?grayscale=true&contrast=20 # B&W with more contrast
?colortone=sepia # Sepia effect
?rotate=90 # Rotate 90 degrees?text=Hello%20World
?text=Hello&text.size=30%&text.color=white&text.position=southeast
?text=©%20Acme&text.font.family=Open%20Sans&text.opacity=50?watermark=/logo.png
?watermark=/logo.png&watermark.position=southeast&watermark.opacity=50
?watermark=/logo.png&watermark.scale.width=20%?canvas.width=1200&canvas.height=800&canvas.color=white
?frame.style=solid&frame.color=black&frame.width=10<img
src="https://cdn.sirv.com/image.jpg?w=800&q=80"
srcset="
https://cdn.sirv.com/image.jpg?w=400&q=78 400w,
https://cdn.sirv.com/image.jpg?w=800&q=80 800w,
https://cdn.sirv.com/image.jpg?w=1200&q=82 1200w
"
sizes="(max-width: 600px) 100vw, 50vw"
width="1200"
height="800"
alt="Description"
><picture>
<source srcset="https://cdn.sirv.com/image.jpg?format=avif" type="image/avif">
<source srcset="https://cdn.sirv.com/image.jpg?format=webp" type="image/webp">
<img src="https://cdn.sirv.com/image.jpg" alt="Description">
</picture>?w=400&h=400&scale.option=fit&canvas.width=400&canvas.height=400&canvas.color=white?w=1600&q=82&scale.option=noupPair with preconnect/preload, fetchpriority="high", explicit dimensions, and no lazy loading.
?watermark=/logo.png&watermark.position=southeast&watermark.opacity=30&dlSave reusable option sets as JSON profiles in /Profiles/:
?profile=my-thumbnailProfile example:
{
"image": {
"scale": {"width": 400},
"format": "optimal",
"quality": 80
}
}Use profiles for repeated recipes such as product cards, marketplace exports, watermarked downloads, and social previews. Keep one-off layout sizing in URL params.
format=optimal or account defaults for browser delivery unless a fixed format is required.Use ../sirv-media-viewer/SKILL.md instead when the change is about gallery behavior, zoom/spin/video/model/PDF viewing, thumbnails, fullscreen, mobile breakpoints, Sirv JS loading, viewer API/events, or SMV accessibility. Dynamic Imaging owns delivery transforms; Sirv Media Viewer owns the interactive presentation.
scale.option=ignore unless distortion is explicitly desired.content-type, content-length, and cache headers with curl -I.fill, poi, face, or manual crop params.IgorVaryvoda/image-optimization-skill
6000fda
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.