Add captions to a template or custom image
Overlay text captions on a template or your own image. Costs 1 credit per call. Synchronous — blocks until rendered (~1-3s). Response is a single flat object under data.
Authorization
bearerAuth Before clicking 'Try it' or copying the curl example, paste your API key into the Authorization input field on this page. Format: cam_live_xxxxxxxxxxxxxxxxxxxx (the playground will prepend Bearer for you). Get a free key at the dashboard — 20 generations per month, no card required.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://api.createa.meme/v1/meme/caption" \ -H "Content-Type: application/json" \ -d '{ "template_id": "tmpl_drake", "captions": [ { "text": "Writing documentation", "position": "top" }, { "text": "Writing memes about documentation", "position": "bottom" } ] }'{
"success": true,
"data": {
"id": "meme_7xK2p",
"url": "http://example.com",
"template_id": "string",
"model_used": "string",
"prompt_used": "string",
"width": 0,
"height": 0,
"format": "png",
"file_size_bytes": 0
},
"meta": {
"request_id": "req_abc123",
"credits_used": 0,
"credits_remaining": 50,
"processing_time_ms": 432
}
}Get blank template image
Returns the blank (un-captioned) source image for a template via 302 redirect to the public CDN URL. Use directly in `<img>` tags.
Flagship: AI picks template + writes caption
Provide a prompt; the API picks matching templates, writes captions, and renders memes. Returns one meme by default. Pass `count: N` (1–12) to get multiple variations in a single call. **Billing is per-meme: cost = 2 credits × count**, so `count: 1` costs 2 credits, `count: 4` costs 8 credits, `count: 12` costs 24 credits. Synchronous — blocks until rendered (~3-15s). Response is an array under data.memes[].