Image Generation

Deterministic image generation from JSON templates

Same input, same output — every time. No AI randomness. Define a canvas, stack layers — solid colors, text, images, gradients, QR codes, barcodes — and get a pixel-perfect image back.

No credit card required — start with free trial credits

Zero data retention · GDPR Made & hosted in the EU 50 free test requests No credit card required 14-day money-back guarantee

What's included

Templates As Code

Define images as JSON layers — solid colors, text, shapes, gradients, QR codes, and barcodes. Version in Git, generate from CI, and get identical output every time.

AI-Powered Layers

Remove backgrounds and smart-crop to faces or objects directly in your composition. No separate API calls or post-processing.

Zero-Config Typography

98 bundled Google Fonts ready to use, or upload your own TTF, OTF, WOFF, or WOFF2. Markdown bold/italic, auto-scaling, and line wrapping included.

MCP (Model Context Protocol)

Connect directly to AI agents. Use our APIs as tools in Claude, GPT, and other LLM-powered workflows.

Zapier

Connect to 5,000+ apps with Zapier integration.

Coming Soon

n8n

Build automated workflows with n8n integration.

Coming Soon

How it works

01

Define your canvas

Set dimensions and output format. Add layers in order — each composites on top of the previous.

  • 8 layer types: solid color, rectangle, gradient, text, image, overlay, QR code, barcode
  • Per-layer opacity and rotation control
02

Add content to layers

Text with 98 bundled fonts and markdown. Images with AI background removal and smart crop. QR codes and barcodes with custom colors.

  • Auto-scaling text to fit dimensions
  • Custom fonts via base64 (TTF, OTF, WOFF, WOFF2)
  • 6 barcode formats (Code 128, EAN-13, EAN-8, Code 39, ITF, Codabar)
03

Get your image

Receive composited image as base64 JSON, or use a webhook for async delivery.

  • 6 output formats: PNG, JPEG, WebP, TIFF, GIF, AVIF
  • Deterministic — same input always produces the same image

Quick Start

One API call, one credit deducted. Chains naturally with our other APIs — pipe the output of one into the next without glue code. You'll be up and running in minutes.

  • Full OpenAPI 3.1 specification available for code generation and IDE integration.
  • MCP server support for seamless integration with AI agents and tools.
  • Comprehensive documentation with examples for every field type and edge case.
curl -X POST https://api.iterationlayer.com/image-generation/v1/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "dimensions": {"width_in_px": 1200, "height_in_px": 630},
    "output_format": "png",
    "layers": [
      {"index": 0, "type": "solid-color-background", "hex_color": "#1e293b"},
      {"index": 1, "type": "text", "text": "Weekly Report", "font_name": "Inter",
       "font_size_in_px": 48, "text_color": "#ffffff",
       "position": {"x_in_px": 60, "y_in_px": 60},
       "dimensions": {"width_in_px": 600, "height_in_px": 100}}
    ]
  }'
import { IterationLayer } from "iterationlayer";

const client = new IterationLayer({ apiKey: "YOUR_API_KEY" });

const result = await client.generateImage({
  dimensions: { width_in_px: 1200, height_in_px: 630 },
  output_format: "png",
  layers: [
    { index: 0, type: "solid-color-background", hex_color: "#1e293b" },
    { index: 1, type: "text", text: "Weekly Report", font_name: "Inter",
      font_size_in_px: 48, text_color: "#ffffff",
      position: { x_in_px: 60, y_in_px: 60 },
      dimensions: { width_in_px: 600, height_in_px: 100 } },
  ],
});
from iterationlayer import IterationLayer

client = IterationLayer(api_key="YOUR_API_KEY")

result = client.generate_image(
    dimensions={"width_in_px": 1200, "height_in_px": 630},
    output_format="png",
    layers=[
        {"index": 0, "type": "solid-color-background", "hex_color": "#1e293b"},
        {"index": 1, "type": "text", "text": "Weekly Report", "font_name": "Inter",
         "font_size_in_px": 48, "text_color": "#ffffff",
         "position": {"x_in_px": 60, "y_in_px": 60},
         "dimensions": {"width_in_px": 600, "height_in_px": 100}},
    ],
)
import il "github.com/iterationlayer/sdk-go"

client := il.NewClient("YOUR_API_KEY")

result, err := client.GenerateImage(il.GenerateImageRequest{
    Dimensions:   il.Dimensions{WidthInPx: 1200, HeightInPx: 630},
    OutputFormat: "png",
    Layers: []il.Layer{
        il.NewSolidColorBackgroundLayer(0, "#1e293b"),
        il.NewTextLayer(1, "Weekly Report", "Inter", 48, "#ffffff",
            il.Position{XInPx: 60, YInPx: 60},
            il.Dimensions{WidthInPx: 600, HeightInPx: 100}),
    },
})

See it in action

Ready-to-use workflows for the most common data processing tasks.

Privacy by default

We built Iteration Layer with privacy by design. Your data is processed in the EU and never stored beyond temporary logs. Learn more about our security practices .

No data storage

We don't store your files or processing results. Logs are automatically deleted after 30 days.

EU-hosted infrastructure

All processing runs on servers located in the European Union. Your data never leaves the EU.

GDPR-compliant by design

Full compliance with EU data protection regulations. Data Processing Agreement available for all customers.

Pricing

Start with free trial credits. No credit card required.

Developer

For individuals & small projects

$29.99 /per month
  • 1,000 credits / month
    1,000 image transformations 500 document generations 500 image generations 100 document extractions
  • All APIs included
  • Free trial credits per API
  • Email support
  • Budget caps per key
Most Popular

Startup

Save 40%

For growing teams

$119.99 /per month
  • 5,000 credits / month
    5,000 image transformations 2,500 document generations 2,500 image generations 500 document extractions
  • All APIs included
  • Free trial credits per API
  • Priority support
  • Budget caps per key

Business

Save 47%

For high-volume workloads

$319.99 /per month
  • 15,000 credits / month
    15,000 image transformations 7,500 document generations 7,500 image generations 1,500 document extractions
  • All APIs included
  • Free trial credits per API
  • Priority support
  • Budget caps per key

Frequently asked questions

What layer types are available?

The API supports 8 layer types: solid color background, rectangle (with optional angled edges), gradient (linear and radial), text (with markdown bold/italic), static image (with optional AI background removal), full-canvas image overlay, QR code, and barcode.

How do fonts work?

98 Google Fonts are bundled and ready to use by name — Inter, Roboto, Montserrat, Poppins, and more. You can also upload custom fonts as base64 in TTF, OTF, WOFF, or WOFF2 format.

What output formats are supported?

The API outputs PNG, JPEG, WebP, TIFF, GIF, and AVIF. Specify the format in the output_format field.

Can I remove image backgrounds?

Yes. Static image layers support AI-powered background removal. Enable it on the layer and the background is removed before compositing.

What barcode formats are supported?

The API supports 6 barcode formats: Code 128, EAN-13, EAN-8, Code 39, ITF, and Codabar.

Is the output deterministic?

Yes. The same input always produces the same output image. This makes it safe to use in CI pipelines and automated workflows.