Two options side by side on a diagonal split with logos, names and a VS badge.
This is a real render from the API with the example values below, at 1200×630.
For "X vs Y" articles, alternatives pages and review sites. Each side has its own colour — accent on the left, accent_b on the right — and the text colour on each side adapts to it.
Every field is optional. Long text shrinks to fit instead of overflowing; an image field takes a public URL that we fetch on our side.
| Field | Type | Description | Example |
|---|---|---|---|
left |
text | Name of the first option. default: Option A | PostgreSQL |
right |
text | Name of the second option. default: Option B | MySQL |
title |
text | Question shown on top. | Which database for your next SaaS? |
left_note |
text | One line about the first option. | Extensions, JSONB, strict types |
right_note |
text | One line about the second option. | Simple replication, huge ecosystem |
accent_b |
colour | Background colour of the right-hand side, as hex. default: #111827 | — |
site |
text | Your domain or a short URL. | stackdecisions.dev |
left_logo |
image URL | Logo of the first option. | https://example.com/images/logo-p.png |
right_logo |
image URL | Logo of the second option. | https://example.com/images/logo-m.png |
accent |
colour | Brand colour as hex, e.g. #6366f1. Drives buttons, highlights and the background glow. default: #2563eb | #2563eb |
theme |
dark | light | Colour scheme: dark or light. | — |
Use the slug as template. The response holds the URL of the finished PNG; ?wait=true keeps the connection open until it is ready.
curl -X POST "https://imageapi.benchkithq.com/v1/images?wait=true" \
-H "Authorization: Bearer sk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"template": "comparison",
"modifications": {
"left": "PostgreSQL",
"right": "MySQL",
"title": "Which database for your next SaaS?",
"left_note": "Extensions, JSONB, strict types",
"right_note": "Simple replication, huge ecosystem",
"site": "stackdecisions.dev",
"left_logo": "https://example.com/images/logo-p.png",
"right_logo": "https://example.com/images/logo-m.png"
}
}'
For static sites, Webflow, Shopify and no-code tools: put the fields in the query string and sign it with your signing secret. The first request renders the image, every later one is a redirect to the cached file. How to compute the signature.
<meta property="og:image" content="https://imageapi.benchkithq.com/i/acc_YOUR_ACCOUNT_ID/comparison.png?left=PostgreSQL&left_note=Extensions%2C%20JSONB%2C%20strict%20types&right=MySQL&right_note=Simple%20replication%2C%20huge%20ecosystem&site=stackdecisions.dev&title=Which%20database%20for%20your%20next%20SaaS%3F&s=YOUR_SIGNATURE">
accent and theme change per request. For anything more, copy the template into your account: you get an ordinary HTML template with the same fields that you can edit in the dashboard or through the API. If the slug is free on your account, the copy takes it — your integrations switch to your version without changing a line.
curl -X POST "https://imageapi.benchkithq.com/v1/templates/library/comparison/copy" \
-H "Authorization: Bearer sk_live_YOUR_KEY"