Starters · 1200 × 630 · 6 layers · 3 variables · social, ecommerce

Product review

Kicker, a big serif title, a star rating with a caption, a score bar and a photo on the right.

live · POST /v1/images1200 × 630
Product review, 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": "The best headless image API we have tested this year", "reviews": "1,284", "photo": "https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=800"}}'

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/product-review -H 'X-API-Key: YOUR_KEY' | jq .template > product-review.json
curl -X POST https://api.imageapis.com/v1/templates -H 'X-API-Key: YOUR_KEY' \
  -H 'Content-Type: application/json' -d @product-review.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
kickertext80, 80640 × 36PRODUCT REVIEW
titletext80, 130640 × 260{{title}}
starsrating80, 420 × 40value 4.5
scoretext320, 420360 × 404.5 / 5 from {{reviews}} reviews
barbar80, 500640 × 14value 90
photoimage780, 80340 × 470{{photo}}

The template

Show the JSON (6 layers)
{
  "name": "Product review",
  "width": 1200,
  "height": 630,
  "background": "linear-gradient(135deg,#0f172a,#1e293b)",
  "layers": [
    {
      "name": "kicker",
      "type": "text",
      "x": 80,
      "y": 80,
      "width": 640,
      "height": 36,
      "text": "PRODUCT REVIEW",
      "font": "Space Grotesk",
      "weight": 700,
      "size": 22,
      "color": "#a5b4fc",
      "letter_spacing": 3
    },
    {
      "name": "title",
      "type": "text",
      "x": 80,
      "y": 130,
      "width": 640,
      "height": 260,
      "text": "{{title}}",
      "font": "Playfair Display",
      "weight": 800,
      "size": 96,
      "color": "#ffffff",
      "fit": "shrink",
      "max_lines": 3,
      "line_height": 1.05
    },
    {
      "name": "stars",
      "type": "rating",
      "x": 80,
      "y": 420,
      "height": 40,
      "value": 4.5,
      "fill": "#fbbf24",
      "track": "rgba(255,255,255,0.2)"
    },
    {
      "name": "score",
      "type": "text",
      "x": 320,
      "y": 420,
      "width": 360,
      "height": 40,
      "text": "4.5 / 5 from {{reviews}} reviews",
      "font": "Inter",
      "size": 24,
      "color": "#cbd5e1",
      "valign": "middle"
    },
    {
      "name": "bar",
      "type": "bar",
      "x": 80,
      "y": 500,
      "width": 640,
      "height": 14,
      "value": 90,
      "fill": "#22c55e",
      "track": "rgba(255,255,255,0.12)",
      "radius": 7
    },
    {
      "name": "photo",
      "type": "image",
      "x": 780,
      "y": 80,
      "width": 340,
      "height": 470,
      "src": "{{photo}}",
      "fit": "cover",
      "radius": 28
    }
  ]
}