Overview
The Bulk Render API generates multiple mockup variations from a single API request using collection-based rendering. Apply the same artwork and color variations across an entire collection of mockup templates in one call.
Perfect for:
Print-on-demand platforms automating product catalog generation
E-commerce stores updating mockups across multiple product variants
Agencies managing mockups for multiple clients at scale
Automated mockup generation workflows
Understanding Collections
What is a Collection?
A collection is a group of mockup templates organized for bulk rendering. Collections allow you to:
Group multiple mockup styles for the same product type
Define artwork mapping inputs that apply consistently across templates
Define color mapping inputs for brand color variations
Generate multiple mockups with a single API call
Example: T-Shirt Collections
Collection 1: "Casual T-Shirts" - Lifestyle shots, casual settings
Collection 2: "Studio T-Shirts" - Professional studio angles, flat lays
By targeting different collection_uuid values, you can easily switch between template collections in each API call.
Finding Your Collection UUID
Open the desired template collection in the Dynamic Mockups application
Locate the Collection UUID menu item
Copy this value to use as the
collection_uuidparameter
Note: You must have at least one collection created in the "My Templates" section before using the Bulk Render API.
API Endpoint
POST https://app.dynamicmockups.com/api/v1/renders/bulk
Request Parameters
Required
Parameter | Type | Description |
| string | Unique identifier for your mockup collection |
Optional
Parameter | Type | Description |
| object | Artwork mapping inputs defined in your collection |
| object | Color mapping inputs defined in your collection |
| string | Custom label for organizing your renders |
| object | Settings for image format, size, and display mode |
Artwork Mapping
Collections use artwork mapping inputs to apply designs across templates. You can name inputs however you want and provide any number of artworks.
Single Artwork
{
"collection_uuid": "0663101b-f01c-4e85-89af-f90b4e9f983b",
"artworks": {
"artwork_main": "https://cdn.example.com/logo.png"
}
}
Multiple Artworks
{
"collection_uuid": "0663101b-f01c-4e85-89af-f90b4e9f983b",
"artworks": {
"artwork_main": "https://cdn.example.com/logo.png",
"artwork_secondary": "https://cdn.example.com/icon.png"
}
}Performance Note: Fewer artworks = faster rendering.
Upload Methods
Option 1: URL (Recommended)
"artworks": {
"artwork_main": "https://cdn.example.com/design.png"
}
Option 2: Binary File
Use FormData when sending binary files:
const formData = new FormData();
formData.append('collection_uuid', 'your-collection-uuid');
formData.append('artwork_main', fileBlob, 'design.png');
formData.append('artwork_secondary', 'https://cdn.example.com/icon.png'); // Mix URLs and files
Supported formats: jpg, jpeg, png, webp, gif
Color Mapping
Apply color variations to specific templates in your collection:
{
"collection_uuid": "4f21ac10-67ff-42f4-9362-84a7498c8a9b",
"colors": {
"color_primary": "#FF5733"
}
}Colors are applied based on your collection configuration in the web application.
Export Options
"export_options": {
"image_format": "webp",
"image_size": 360,
"mode": "view"
}Option | Type | Description |
| string | Output format: jpg, png, webp |
| integer | Maximum dimension in pixels |
| string |
|
Complete Request Example
POST /api/v1/renders/bulk HTTP/1.1
Host: app.dynamicmockups.com
X-Api-Key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
{
"collection_uuid": "4f21ac10-67ff-42f4-9362-84a7498c8a9b",
"artworks": {
"artwork_main": "https://cdn.example.com/artworks/logo.png"
},
"colors": {
"color_primary": "#FF5733"
},
"export_label": "fall_collection_render",
"export_options": {
"image_format": "webp",
"image_size": 360,
"mode": "view"
}
}
Response Structure
Success Response
{
"success": true,
"message": "",
"data": {
"export_label": "fall_collection_render",
"exports": [
{
"url": "https://cdn.example.com/exports/rendered_image_01.webp",
"label": "Modern-Living-Room-Frame"
},
{
"url": "https://cdn.example.com/exports/rendered_image_02.webp",
"label": "Bright-Studio-Canvas-Display"
}
]
}
}Response Fields:
export_label- Your custom label (if provided)exports- Array of rendered mockupsurl- Direct link to rendered imagelabel- Mockup template name
Use Cases
Product Catalog Generation
Generate complete catalogs with consistent branding:
const response = await fetch('https://app.dynamicmockups.com/api/v1/renders/bulk', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
collection_uuid: 'tshirt-collection-uuid',
artworks: {
front_design: 'https://cdn.example.com/new-design.png'
},
export_label: 'summer-2024-catalog'
})
});Color Variant Testing
Test multiple color variations:
javascript
const colors = ['#FF5733', '#33FF57', '#3357FF'];
for (const color of colors) {
await generateBulkMockups({
collection_uuid: 'product-collection',
artworks: { main: 'https://cdn.example.com/logo.png' },
colors: { primary: color },
export_label: `variant-${color}`
});
}
Multi-Product Campaigns
Create coordinated marketing materials:
javascript
const collections = ['mugs', 'tshirts', 'posters'];
const artwork = 'https://cdn.example.com/campaign.png';
for (const collection of collections) {
await generateBulkMockups({
collection_uuid: `${collection}-collection-uuid`,
artworks: { campaign_art: artwork },
export_label: 'spring-campaign-2024'
});
}
Best Practices
✅ Minimize artwork count - Fewer artworks = faster rendering performance
✅ Use descriptive export labels - Organize renders with meaningful identifiers
✅ Choose appropriate formats - WebP for size, PNG for transparency, JPG for photos
✅ Set realistic dimensions - Balance quality and performance for your use case
✅ Structure collections logically - Group templates by product type or use case
✅ Handle responses properly - Process all returned URLs from the exports array
Need Help?
Join our Slack Community - Get support from our engineers
Email Support: [email protected]
API Documentation: docs.dynamicmockups.com