Skip to main content

Bulk Render API: Automate Large Scale Mockup Generation

Do you generate huge amount of mockups? Here's how to use batch render mockups API to automate mockup generation at scale.

Written by Dynamic Mockups Support
Updated over 2 months ago

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

  1. Open the desired template collection in the Dynamic Mockups application

  2. Locate the Collection UUID menu item

  3. Copy this value to use as the collection_uuid parameter

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

collection_uuid

string

Unique identifier for your mockup collection

Optional

Parameter

Type

Description

artworks

object

Artwork mapping inputs defined in your collection

colors

object

Color mapping inputs defined in your collection

export_label

string

Custom label for organizing your renders

export_options

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

image_format

string

Output format: jpg, png, webp

image_size

integer

Maximum dimension in pixels

mode

string

download (binary export) or view (browser display)

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 mockups

  • url - Direct link to rendered image

  • label - 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?

Did this answer your question?