Skip to content

Samples and use cases

Complete render payloads for the jobs people actually automate. Copy one, point it at a template of your own, and it runs.

How to use these#

Each sample is a full request body for POST /api/v1/render. The templateId values refer to example templates — swap in one of your own and match the values keys to its field schema, which you can read from GET /api/v1/templates/:id.

The previews below are illustrative of the layout each template produces, not renders of your brand — the point of a template is that the same payload looks like you.

Ecommerce#

Offer cards and product creatives generated per SKU, straight from your catalogue.

Product offer card

Image1080 × 10801 image credit

One creative per SKU for a sale. Loop your catalogue and call the API once per product.

sku-offer-card.json
{
  "templateId": "product-offer-square",
  "values": {
    "headline": "Monsoon Sale",
    "productName": "Aurora Table Lamp",
    "mrp": "₹2,499",
    "price": "₹1,249",
    "badge": "50% OFF",
    "product": "https://cdn.acme.com/sku/lamp-01.jpg"
  },
  "output": {
    "format": "png",
    "scale": 2
  }
}

Price-drop reel

Video1080 × 1920≈ 3 video credits

A six-second vertical cut announcing a price change, generated nightly from the price feed.

price-drop-story.json
{
  "templateId": "price-drop-reel",
  "values": {
    "productName": "Aurora Table Lamp",
    "oldPrice": "₹2,499",
    "newPrice": "₹1,249",
    "product": "https://cdn.acme.com/sku/lamp-01.jpg",
    "music": "upbeat-01"
  },
  "output": {
    "format": "mp4",
    "resolution": "fhd",
    "fps": 30
  }
}

Real estate#

Listing creatives built from CRM fields, so every property posts on brand.

Listing card

Image1080 × 13501 image credit

Generated when a property is published in the CRM, so the agent never rebuilds it by hand.

listing-card.json
{
  "templateId": "listing-card-portrait",
  "values": {
    "title": "3 BHK in Indiranagar",
    "price": "₹1.8 Cr",
    "area": "1,640 sq ft",
    "highlights": [
      "Corner unit",
      "East facing",
      "Covered parking"
    ],
    "photo": "https://cdn.acme.com/listings/9921/hero.jpg",
    "agentName": "Priya Nair",
    "agentPhone": "+91 98800 12345"
  },
  "output": {
    "format": "jpeg",
    "scale": 2,
    "quality": 90
  }
}

Walkthrough cut

Video1080 × 1920≈ 6 video credits

Stitches listing photos into a captioned walkthrough with Ken Burns motion.

walkthrough-cut.json
{
  "templateId": "listing-walkthrough",
  "values": {
    "title": "Just listed in Indiranagar",
    "price": "₹1.8 Cr",
    "photos": [
      "https://cdn.acme.com/listings/9921/1.jpg",
      "https://cdn.acme.com/listings/9921/2.jpg",
      "https://cdn.acme.com/listings/9921/3.jpg"
    ],
    "captions": [
      "Living room",
      "Balcony",
      "Master bedroom"
    ]
  },
  "output": {
    "format": "mp4",
    "resolution": "fhd",
    "fps": 30
  }
}

Social & campaigns#

Stories, reels and festive creatives sized for each platform.

Festive greeting

Image1080 × 19201 image credit

One template, one row per franchisee — each branch gets its own on-brand greeting.

festive-story.json
{
  "templateId": "festive-greeting-story",
  "values": {
    "greeting": "Happy Diwali",
    "fromName": "Acme Electronics, Koramangala",
    "logo": "https://cdn.acme.com/brand/logo-light.png",
    "phone": "+91 98800 12345"
  },
  "output": {
    "format": "png",
    "scale": 2
  }
}

Countdown reel

Video1080 × 1920≈ 3 video credits

A launch countdown rendered fresh each day, with the number bound to a single field.

countdown-reel.json
{
  "templateId": "launch-countdown",
  "values": {
    "daysRemaining": "3",
    "productName": "Aurora Series",
    "launchDate": "21 September",
    "theme": "dark"
  },
  "output": {
    "format": "mp4",
    "resolution": "hd",
    "fps": 30
  }
}

Captioned voiceover reel

Video1080 × 1920≈ 5 video credits

A generated voiceover with captions timed to it — the words land on the speech, with the spoken one lit.

voiceover-reel.json
{
  "templateId": "listing-voiceover-vertical",
  "values": {
    "footage": "https://cdn.acme.com/listings/4471/walkthrough.mp4",
    "voiceover": "https://cdn.acme.com/listings/4471/voiceover.mp3",
    "script": "Luxury apartment now for rent in central Pune",
    "highlight": "#FFD200"
  },
  "output": {
    "format": "mp4",
    "resolution": "fhd",
    "fps": 30
  }
}

Media & publishing#

Headline cards and social cuts produced at news speed.

Headline card

Image1080 × 10801 image credit

Posted the moment a story publishes — the CMS webhook calls the render API directly.

headline-card.json
{
  "templateId": "headline-card-square",
  "values": {
    "headline": "Markets close higher for a third straight session",
    "section": "Business",
    "byline": "By Ananya Rao",
    "publishedAt": "2026-08-13T16:05:00Z",
    "photo": "https://cdn.acme.com/news/8871/lead.jpg"
  },
  "output": {
    "format": "png",
    "scale": 2
  }
}

Bulletin cut

Video1080 × 1920≈ 5 video credits

Three headlines assembled into a captioned bulletin, rendered on a schedule.

bulletin-cut.json
{
  "templateId": "news-bulletin-vertical",
  "values": {
    "edition": "Evening Bulletin",
    "stories": [
      {
        "headline": "Markets close higher",
        "photo": "https://cdn.acme.com/news/8871/lead.jpg"
      },
      {
        "headline": "Monsoon arrives early",
        "photo": "https://cdn.acme.com/news/8872/lead.jpg"
      },
      {
        "headline": "Metro line opens Friday",
        "photo": "https://cdn.acme.com/news/8873/lead.jpg"
      }
    ]
  },
  "output": {
    "format": "mp4",
    "resolution": "fhd",
    "fps": 30
  }
}

Results reel

Video1080 × 1920≈ 6 video credits

A quarter of numbers as a vertical video — bars and a KPI drawing themselves on, straight from the figures.

results-reel.json
{
  "templateId": "quarterly-results-vertical",
  "values": {
    "heading": "Q3 enquiries",
    "months": [
      "Jun",
      "Jul",
      "Aug",
      "Sep"
    ],
    "enquiries": [
      18,
      34,
      27,
      41
    ],
    "leads": 12400,
    "split": {
      "labels": [
        "Rent",
        "Own",
        "Other"
      ],
      "values": [
        52,
        33,
        15
      ]
    }
  },
  "output": {
    "format": "mp4",
    "resolution": "fhd",
    "fps": 30
  }
}