createa.meme
API Reference

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[].

POST
/v1/meme/generate

Authorization

bearerAuth
AuthorizationBearer <token>

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/generate" \  -H "Content-Type: application/json" \  -d '{    "text": "When the deployment works on the first try",    "tone": "funny"  }'
{
  "success": true,
  "data": {
    "memes": [
      {
        "id": "meme_DhUaSekk3a",
        "url": "http://example.com",
        "path": "meme_DhUaSekk3a.png",
        "template": {
          "id": "string",
          "name": "string"
        },
        "caption": {
          "property1": "string",
          "property2": "string"
        },
        "detected_emotion": "string",
        "detected_language": "string",
        "width": 0,
        "height": 0,
        "format": "png",
        "file_size_bytes": 0,
        "reasoning": "string"
      }
    ]
  },
  "meta": {
    "request_id": "req_abc123",
    "credits_used": 0,
    "credits_remaining": 50,
    "processing_time_ms": 432
  }
}
Empty
Empty
Empty