New Launch: AI Social Media Post Generator –Try for Free➜

+ AD AUTOMATION

Create ad banners on autopilot.

Connect your product data, spreadsheet, or campaign variables to a Contentdrips template and generate ad banners via API in 60 seconds.

<60s Per Creative Batch100% On-Brand by Default0 Designers Needed
→ Zapier→ Google Sheets→ REST API→ Make→ Meta Ads→ n8n→ PNG + PDF Output→ Single Image & Carousel→ Zapier→ Google Sheets→ REST API→ Make→ Meta Ads→ n8n→ PNG + PDF Output→ Single Image & Carousel
THE PROBLEM

Manual ad production doesn't scale.

Every new product, promotion, or variant triggers another design request, another revision cycle, another wait.

Hours per campaign

Briefing a designer, waiting for revisions, exporting 10 variants. Days of work compressed into a creative bottleneck you can’t afford.

🎨

Off-brand inconsistency

When different people touch different ads, fonts, colors, and sizing drift. Your brand suffers every time someone exports manually.

🧪

Can't test enough variants

You know you should be running 5 headline variants. You’re running one because production is the bottleneck, not ideas.

🔄

Repetitive refresh cycles

Seasonal sales, new SKUs, updated pricing. Each one kicks off the same manual creative process from scratch, every time.

TEMPLATES

Start from a ready-made template.

Pick any template in the visual editor, mark your dynamic fields, and start generating. Every element you label becomes a value the API can swap per render.

CREATE TEMPLATES

Design Your Own Templates In Our Editor

Customize a template or create your own in our editor. Mark your dynamic fields, and start generating. Every element you label becomes a value the API can swap per render.

HOW IT WORKS

From template to live ad — step by step.

The full journey from blank template to a generated image URL, ready for your ad platform.

1

Build your template in the visual editor

Open any Contentdrips template or start from scratch. Set your brand colors, fonts, and logo. Mark every element you want to change per creative as a dynamic layer with a label. Those labels are the keys you’ll reference in the API.

Dynamic element types

  • Textboxes — headlines, prices, captions
  • Images — product photos, hero imagery
  • Shapes — fills, badge colors, opacity
  • Canvas background — per-render override
2

POST to /render with your data

Send a POST request to https://generate.contentdrips.com/render with your template ID, desired output format, and a content_update array. Each object targets a labelled layer. The API returns a job_id instantly.

// POST /render
{
  "template_id": "YOUR_ID",
  "output": "png",
  "content_update": [{
    "type": "textbox",
    "label": "title",
    "value": "Spring Sale"
  }]
}
3

Poll /job/:id/status until done

Use the job_id from step 2 to check render progress. The response returns pending, completed, or failed. Always check status before fetching the result. Recommended polling interval: every 5 seconds. Max timeout: 5 minutes.

// GET /job/:id/status
{
  "status": "completed"
// pending | completed | failed
}
4

Fetch your image from /job/:id/result

Once status is completed, call GET /job/:id/result. The response contains an export_url — a direct link to your generated PNG or PDF — plus the output type and generation date. Use this URL directly in your Meta Ads upload flow or automation.

// GET /job/:id/result
{
  "export_url": "https://...",
  "type": "png",
  "date": "2026-04-22..."
}
5

Connect a trigger — automate without code

Hook the API into Zapier or Make to fire creative generation from any event. New row in a Google Sheet, new product, a webhook, a scheduled time — any of these can trigger a render with zero developer involvement after setup.

Trigger examples

📊
Google Sheets row addedNew product → auto-render product ad
🛒
New store product (SKU launch)Creative ready as soon as product goes live
🗓
Scheduled campaignWeekly sale → batch of variants overnight
📣
Meta Ads direct uploadexport_url lands in your ad manager
THE API

Simple by design. Powerful at scale.

Three endpoints. Async by default. Most integrations are live in under an hour.

  • 1
    POST /renderSend template ID + content_update array. Returns job_id immediately. Supports png and pdf output formats.
  • 2
    GET /job/:id/statusReturns pending, completed, or failed. Poll every 5 seconds. Maximum timeout is 5 minutes.
  • 3
    GET /job/:id/resultReturns export_url with the generated file. Only call once status is completed.
JavaScript
// 1. Submit render job
const { job_id } = await fetch(
  "https://generate.contentdrips.com/render", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${"{apiKey}"}`
  },
  body: JSON.stringify({
    template_id: "YOUR_TEMPLATE_ID",
    output: "png",
    content_update: [{
      type: "textbox", label: "title",
      value: "Spring Sale"
    }]
  })
}).then(r => r.json());

// 2. Poll for completion
let done = false;
while (!done) {
  const { status } = await fetch(
    `https://generate.contentdrips.com/job/${"{job_id}"}/status`
  ).then(r => r.json());
  if (status === "completed") done = true;
  else await sleep(5000);
}

// 3. Fetch result URL
const { export_url } = await fetch(
  `https://generate.contentdrips.com/job/${"{job_id}"}/result`
).then(r => r.json());
MANUAL VS AUTOMATED

The difference in practice.

Side by side — what changes when you automate your ad creative pipeline.

TaskManual productionWith Contentdrips API
10 ad variants for a sale3–5 hours of design workUnder 60 seconds
New product launch creativeDesigner brief + 1–2 day turnaroundTriggered automatically
Brand consistency across 50 adsInconsistent — varies by person100% on-brand by default
Updating pricing across 30 creativesReopen, edit, export each fileOne API call, all updated
Scaling to 200 ad variantsNot realistic without a teamLoop through your data source
Non-designer produces adsRequires design skillsAnyone with spreadsheet access
WHO USES THIS

Built for teams with volume.

If you’re producing more than 10 ad creatives a month, this pays for itself immediately.

📈

Performance marketers

Run more creative variants without going back to design every time. Test headlines, visuals, and CTAs at the speed your budget demands.

🏢

Marketing agencies

Manage ad creative production for multiple clients from a single API integration. Consistent output, no per-client design overhead.

🛍️

Ecommerce brands

Auto-generate product ad creatives from your catalogue. New SKU goes live and your ad creative is ready. Seasonal pricing updates automatically.

💻

SaaS teams

Run always-on retargeting campaigns with feature-specific creatives. Update copy and visuals without touching design tools between sprints.

INTEGRATIONS

Pre-built Nodes for the Biggest Automation Platforms

Connect without writing custom HTTP code. Contentdrips has native nodes in Make, Zapier, and n8n.

Make (Integromat)

Native Contentdrips module in Make. Connect a Google Sheet, trigger on a schedule, and auto-generate carousels without writing any code. Visual workflow builder.

zapier logo

Zapier

Contentdrips action available in Zapier. Trigger from any Zapier source, pass content, get your graphic URL back as a step output. Chain it with a LinkedIn or Instagram publish step.

n8n

Self-hosted or cloud n8n workflow support. Use the HTTP Request node with the Contentdrips API or the dedicated community node. Full async job support with webhook callbacks.

FAQ

Common questions, answered.

Based strictly on what the API actually does — no guesswork.

All requests require a Bearer token: Authorization: Bearer YOUR_API_KEY. Obtain your key from your Contentdrips account and include it on every request.
POST /render returns a job_id immediately. The render is processed asynchronously — use the job_id to poll the status endpoint, then fetch the result once the job is complete.
The API supports png and pdf output. Set the format using the output parameter in your render request body.
Include an object in the content_update array with type set to “textbox”, a label matching the layer name in your template, and a value with the new text. You can also override fontSize and fontColor per render.
Yes. For shapes, set type to “shape” and provide the layer label along with a fill color and optional opacity. For images, reference the labelled image layer in content_update.
Yes. Add a carousel object to your request body alongside content_update. It accepts an intro_slide, a slides array, and an ending_slide. Each slide supports its own backgroundColor and heading object.
Renders complete in seconds. Poll GET /job/:id/status every 5 seconds until status returns completed. The maximum timeout before the API returns a failure response is 5 minutes.
Poll GET /job/:id/status using the job_id. The status field returns: “pending”, “completed”, or “failed”. Always confirm completed before calling the result endpoint.
Once status is completed, call GET /job/:id/result. The response contains an export_url — a direct download link to your PNG or PDF — along with the output type and a date timestamp.
If the API key is missing or invalid, the API returns a 500 error. Ensure your key is passed in the Authorization: Bearer header on every request.
If the render fails, the status endpoint returns “failed”. If the job exceeds 5 minutes, a timeout error is returned. Resubmit the render request with the same parameters to try again.
No. The API can be triggered from no-code tools like Zapier and Make without writing any code. You set up your template once in the visual editor, configure the integration, and creatives generate automatically.

Start automating your ad production today.

Free to start. No designer required after setup.

Trusted by performance marketers and agencies worldwide

Try it