A headline result in large numbers next to a customer quote with photo, name and role.
This is a real render from the API with the example values below, at 1200×630.
Case studies sell with one number. This card puts the result — 3.2×, -40 %, 12 hours — in a gradient on the left and the customer's words on the right, with their photo, role and company logo.
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 |
|---|---|---|---|
quote |
text | The quote itself. default: Customer quote | We replaced a fragile Puppeteer service with one API call. Our social previews finally look like our brand. |
name |
text | Customer's name. | Sofia Ramos |
role |
text | Role or job title. | Head of Growth |
company |
text | Company name. | Northwind |
metric |
text | The headline result, e.g. 3.2×. | 3.2× |
metric_label |
text | What the result measures. | more clicks from shared links |
site |
text | Your domain or a short URL. | imageapi.dev/customers |
photo |
image URL | Customer's photo. | https://example.com/images/avatar-woman2.jpg |
logo |
image URL | Customer's company logo. | https://example.com/images/logo-northwind.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. default: 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": "case-study",
"modifications": {
"quote": "We replaced a fragile Puppeteer service with one API call. Our social previews finally look like our brand.",
"name": "Sofia Ramos",
"role": "Head of Growth",
"company": "Northwind",
"metric": "3.2×",
"metric_label": "more clicks from shared links",
"site": "imageapi.dev/customers",
"photo": "https://example.com/images/avatar-woman2.jpg",
"logo": "https://example.com/images/logo-northwind.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/case-study.png?company=Northwind&metric=3.2%C3%97&metric_label=more%20clicks%20from%20shared%20links&name=Sofia%20Ramos"e=We%20replaced%20a%20fragile%20Puppeteer%20service%20with%20one%20API%20call.%20Our%20social%20previews%20finally%20look%20like%20our%20brand.&role=Head%20of%20Growth&site=imageapi.dev%2Fcustomers&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/case-study/copy" \
-H "Authorization: Bearer sk_live_YOUR_KEY"