Starters · 1200 × 630 · 6 layers · 5 variables · social, blog

Blog post, light

A paper-white card with a serif headline, an author line with a round avatar, and the date.

live · POST /v1/images1200 × 630
Blog post, light, rendered with the sample variables
rendering…
rendered with the sample variables · change them and render again
Open in the editor
the same render with your saved copy
curl -X POST https://api.imageapis.com/v1/images \
  -H 'X-API-Key: YOUR_KEY' -H 'Content-Type: application/json' \
  -d '{"template": "tpl_…", "variables": {"title": "What we learned running Postgres at 40 TB", "author": "Dana Reyes", "date": "October 2026", "site": "engineering.example.com", "avatar": "https://i.pravatar.cc/120?img=32"}}'

Make it yours

Copy the starter into your account once; from then on it is a template id you render with new variables. Creating and reading templates is free.

curl -s https://api.imageapis.com/v1/starters/blog-post -H 'X-API-Key: YOUR_KEY' | jq .template > blog-post.json
curl -X POST https://api.imageapis.com/v1/templates -H 'X-API-Key: YOUR_KEY' \
  -H 'Content-Type: application/json' -d @blog-post.json
# → { "id": "tpl_…", "object": "template", … }

Change any layer by name at render time with modifications, or change the design itself in the editor and save it back with PUT /v1/templates/<id>.

Layers

NameTypex, ySizeContent
striperect0, 016 × 630
sitetext80, 72900 × 36{{site}}
titletext80, 1501040 × 300{{title}}
avatarimage80, 50064 × 64{{avatar}}
authortext160, 500700 × 32{{author}}
datetext160, 534700 × 30{{date}}

The template

Show the JSON (6 layers)
{
  "name": "Blog post, light",
  "width": 1200,
  "height": 630,
  "background": "#ffffff",
  "layers": [
    {
      "name": "stripe",
      "type": "rect",
      "x": 0,
      "y": 0,
      "width": 16,
      "height": 630,
      "fill": "#f59e0b"
    },
    {
      "name": "site",
      "type": "text",
      "x": 80,
      "y": 72,
      "width": 900,
      "height": 36,
      "text": "{{site}}",
      "font": "Inter",
      "weight": 600,
      "size": 24,
      "color": "#64748b"
    },
    {
      "name": "title",
      "type": "text",
      "x": 80,
      "y": 150,
      "width": 1040,
      "height": 300,
      "text": "{{title}}",
      "font": "Playfair Display",
      "weight": 700,
      "size": 76,
      "color": "#0b1220",
      "line_height": 1.1,
      "fit": "shrink",
      "max_lines": 3
    },
    {
      "name": "avatar",
      "type": "image",
      "x": 80,
      "y": 500,
      "width": 64,
      "height": 64,
      "src": "{{avatar}}",
      "fit": "cover",
      "radius": 32
    },
    {
      "name": "author",
      "type": "text",
      "x": 160,
      "y": 500,
      "width": 700,
      "height": 32,
      "text": "{{author}}",
      "font": "Inter",
      "weight": 600,
      "size": 26,
      "color": "#0b1220",
      "valign": "middle"
    },
    {
      "name": "date",
      "type": "text",
      "x": 160,
      "y": 534,
      "width": 700,
      "height": 30,
      "text": "{{date}}",
      "font": "Inter",
      "weight": 400,
      "size": 22,
      "color": "#64748b",
      "valign": "middle"
    }
  ]
}