canonical: https://jentic.com/apis/duply.co/duply

# Duply API

Jentic publishes the only available OpenAPI specification for Duply API, keeping it validated and agent-ready. Duply is a templated image and video generation service that turns design templates plus dynamic parameters into rendered assets, with batch support and ready-made integrations to Zapier and Make. The API exposes 13 endpoints across templates, generation (single and URL-parameter), batch jobs, render history, and asset uploads. Authentication uses an API key passed in the Authorization header.

## For AI agents

Render templated images at scale by supplying parameters to Duply templates. Useful for personalised social cards, ad creative, and bulk visual content jobs.

## Scope

Does not handle template design, image hosting outside Duply renders, or video editing beyond template substitution - use for templated image generation and batch rendering only.

## Capabilities

- List available design templates via GET /templates
- Render a single image from a template via POST /generate
- Render an image using URL-encoded parameters via POST `/generate/url`
- Run a bulk render job via POST /batch and track it via GET `/batch/{batchId}`
- List historical renders via GET /renders and download or delete a specific render
- Upload reusable assets like logos or fonts via POST /assets
- Manage the asset library via GET /assets, GET `/assets/{assetId}`, and DELETE `/assets/{assetId}`

## Use cases

### Personalised Open Graph Images per Blog Post

Auto-generate a unique Open Graph image for each blog post or product page by populating a Duply template with the title, author, and accent colour. POST /generate returns a hosted image URL the agent stores against the post, so social shares always show on-brand creative without designer involvement.

Example prompt: POST /generate with template_id, layers={title:'New Post', author:'Sophie'}, store the returned image_url against the blog post record

### Bulk Ad Creative from a Spreadsheet

Render hundreds or thousands of personalised ad images from a single template plus a row-per-variant data source. POST /batch dispatches the job, and GET `/batch/{batchId}` returns progress and the URLs for each completed render. This replaces manual design work for outreach, retargeting, and A/B test variants.

Example prompt: POST /batch with template_id and 1000 layer-value rows, then poll GET `/batch/{batchId}` until status='completed' and download each render URL

### Brand-Asset Library for Generation

Maintain a Duply asset library of logos, fonts, and product photos so generated images stay on-brand without re-uploading every time. POST /assets uploads new files and GET /assets lists the library, which an agent can reference by id when calling /generate or /batch. This keeps templates portable and brand changes centralised.

Example prompt: POST /assets with the new logo file, then update each affected template to reference the returned asset_id

### Agent-Driven Visual Content Pipeline via Jentic

Wire Duply into agent workflows that draft, render, and publish visual content. Through Jentic the agent searches by intent, loads the schema for /generate or /batch, and executes - the API key in the Authorization header stays in your Jentic One instance, not the agent's prompt context.

Example prompt: Search Jentic for 'generate templated image', load the schema for POST /generate, and execute with the template_id and layer values supplied by the parent content workflow

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/generate` | Generate an image from a template |
| POST | `/generate/url` | Generate an image using URL parameters |
| POST | `/batch` | Start a batch generation job |
| GET | `/batch/{batchId}` | Get batch generation status |
| GET | `/templates` | List design templates |
| POST | `/assets` | Upload a reusable asset |
| GET | `/renders` | List historical renders |

## Key resources

- **Templates** — List and read design templates under /templates
- **Image Generation** — Render single images via /generate and `/generate/url`
- **Batch Generation** — Run bulk render jobs and poll progress under /batch
- **Renders** — List, retrieve, and delete historical renders under /renders
- **Assets** — Upload and manage reusable assets like logos and fonts under /assets

## Why Jentic

- **Setup:** Wiring the Duply API by hand means handling its API-key auth in the Authorization header and building the render, batch, and asset calls yourself. Through Jentic you install once, import Duply from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Duply takes the template and substitution data in the request body, so you limit the agent to the operations it needs, such as generating a single image or reading render history. You choose which operations are allowed, so running a batch or uploading assets is not included unless you add them.
- **Credential handling:** Your Duply API key is stored once, encrypted, by your own Jentic One instance and injected into the Authorization header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'generate a templated image' or 'run a batch render', and Jentic returns the matching Duply operation with its input schema so the agent calls the right endpoint without browsing the docs.

## Related APIs

- **Bannerbear API** — Templated image and video generation with strong batch and webhook support
- **Placid API** — Templated graphic generation with a strong design-tool editor
- **Creatomate API** — Templated video generation that complements Duply's image surface

## FAQ

### Why is there no official OpenAPI spec for Duply API?

Duply does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Duply API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Duply API use?

Duply uses an API key passed in the Authorization header. Through Jentic the key is stored in the encrypted vault and injected at execution, so the raw value never enters the agent's prompt context.

### Can I generate images at scale with the Duply API?

Yes. POST /batch starts a bulk render job from one template plus many layer-value rows, and GET `/batch/{batchId}` returns progress and the resulting render URLs.

### What are the rate limits for the Duply API?

The OpenAPI spec does not declare rate limits. Plans set per-minute and monthly render quotas in the Duply dashboard; have your agent handle HTTP 429 with exponential backoff.

### How do I render a single templated image through Jentic?

Search Jentic for 'generate templated image', load the schema for POST /generate, and execute with template_id plus the layer values you want substituted. Install with pip install jentic.

### Can I upload my own logo and fonts to Duply?

Yes. POST /assets uploads a file and returns an asset_id you can reference inside templates so renders stay on-brand. List, retrieve, and delete them under /assets.

### Can I limit what my agent is allowed to do with the Duply API?

Yes. Because you run Jentic One yourself, your own rules decide which Duply operations the agent may call and which credentials it may use. You can allow only what a task needs, such as generating a single image with POST /generate or reading render history with GET /renders, while leaving batch jobs (POST /batch) and asset uploads (POST /assets) out unless you add them. The agent cannot reach any operation you have not granted, so access stays scoped to the work at hand.
