Dynamic Parameters
Override styles, fonts, colors, positions, and content type at render time using dot notation
What are Dynamic Parameters?#
Dynamic parameters let you change how template elements look and behave at render time — without creating separate templates. Using a simple dot notation syntax, you can override colors, fonts, sizes, positions, and even generate AI content on the fly.
Video Tutorial#
Key Capabilities#
Dynamic parameters enable you to:
- Override Styles - Change colors, fonts, sizes, and other CSS properties
- Generate AI Content - Use
.promptto generate text and images with AI - Add Interactive Links - Use
.hrefto make elements clickable in PDFs - Switch Content Types - Use
.contentTypeto render a text element as an image or vice versa
How It Works#
When you parameterize an element in Orshot Studio (e.g., naming a text element title), you can override its properties using the format:
parameterID.propertyBasic Examples#
{
"modifications": {
"title": "New Title Text",
"title.fontSize": "48px",
"title.color": "#ff0000",
"subtitle.fontFamily": "Roboto"
}
}Multi-Page Templates#
For templates with multiple pages, prefix with the page number:
{
"modifications": {
"page1@title": "First Page Title",
"page2@title": "Second Page Title",
"page1@title.fontSize": "48px"
}
}Supported Properties by Element Type#
All Elements (Position & Size)#
These properties are available for all parameterized elements (text, image, shape, video):
Position & Dimensions:
x- Horizontal position in px (e.g.,"200px")y- Vertical position in px (e.g.,"100px")width- Element width in px (e.g.,"500px")height- Element height in px (e.g.,"300px")
Common Effects:
opacity- 0 to 1filter- CSS blur filter (e.g.,"blur(2px)")dropShadowX,dropShadowY,dropShadowBlur,dropShadowColor- Drop shadow properties
{
"modifications": {
"title.x": "200px",
"title.y": "100px",
"logo.width": "150px",
"logo.height": "150px",
"banner.opacity": "0.8"
}
}Text Elements#
Content & Typography:
fontSize- Size in px (e.g.,"24px")fontWeight- Weight from 100-900 (e.g.,"700")fontStyle-"normal"or"italic"fontFamily- Any Google Font or uploaded custom fontcolor- Hex or rgba colorlineHeight- Line height (e.g.,"1.5")letterSpacing- Letter spacing in pxtextAlign-"left","center", or"right"verticalAlign-"flex-start","center", or"flex-end"textDecoration-"none","underline", etc.textTransform-"none","uppercase","lowercase","capitalize"
Effects:
textStrokeWidth- Outline width in pxtextStrokeColor- Outline colorbackgroundColor- Background color behind textbackgroundRadius- Border radius for backgroundopacity- 0 to 1filter- CSS blur filter (e.g.,"blur(2px)")dropShadowX,dropShadowY,dropShadowBlur,dropShadowColor- Drop shadow properties
Reserved Properties:
.prompt- AI text generation (see AI Generation).href- Add clickable links (see Links).contentType- Render as image (see Render As)
Image Elements#
Layout & Styling:
objectFit-"contain","cover","fill", etc.objectPosition- Position (e.g.,"center center")borderRadius- Corner radius in pxborderWidth- Border width in pxborderColor- Border colorboxShadowX,boxShadowY,boxShadowBlur,boxShadowColor- Box shadow properties
Effects:
opacity- 0 to 1filter- CSS blur filterdropShadowX,dropShadowY,dropShadowBlur,dropShadowColor- Drop shadow properties
Reserved Properties:
.prompt- AI image generation (see AI Generation).href- Add clickable links (see Links).contentType- Render as text (see Render As)
Shape Elements#
fill- Fill colorstroke- Stroke colorstrokeWidth- Stroke width in pxborderRadius- Corner radius in pxopacity- 0 to 1filter- CSS blur filterdropShadowX,dropShadowY,dropShadowBlur,dropShadowColor- Drop shadow properties
Usage Across Integrations#
Dynamic parameters work consistently across all Orshot integrations:
REST API#
{
"templateId": "your-template-id",
"modifications": {
"title": "Hello World",
"title.fontSize": "48px",
"title.color": "#ff0000"
}
}Dynamic URLs#
https://api.orshot.com/v1/studio/dynamic-url/my-image?
title=Hello%20World&
title.fontSize=48px&
title.color=%23ff0000Property Value Formats#
Colors#
{
"title.color": "#ff0000", // Hex
"subtitle.color": "rgba(255,0,0,1)" // RGBA
}Sizes#
{
"title.fontSize": "48px", // Pixels (recommended)
"title.letterSpacing": "2px"
}Fonts#
{
"title.fontFamily": "Roboto", // Google Font
"subtitle.fontFamily": "MyCustomFont" // Uploaded custom font
}URLs#
{
"logo": "https://example.com/logo.png",
"banner.href": "https://example.com"
}Case Insensitivity#
Property names are case-insensitive for convenience:
{
"title.fontsize": "48px", // Works
"title.fontSize": "48px", // Also works
"title.FONTSIZE": "48px" // Also works
}Best Practices#
- Use Consistent Units - Stick to
pxfor sizes to avoid rendering issues - Test Property Values - Use the Playground to test modifications before deploying
- Validate Colors - Use valid hex or rgba formats
- Check Font Availability - Ensure custom fonts are uploaded or use available Google Fonts
- Handle Multi-Page Templates - Always prefix with page number when applicable
Next Steps#
- Learn about AI Content Generation with .prompt
- Add Interactive Links with .href
- Switch content types with Render As with .contentType
- Explore API Reference for complete integration details

All Set? Let's Start Automating
- Image, PDF and Video Generation via API
- Canva like editor with AI and smart features
- No-Code Integrations (Zapier, Make, n8n etc.)
- Embed Orshot Studio in your app
- Start Free. No credit card required. Cancel anytime.