---
title: "Generate meme images v2"
method: POST
path: "/api/v2/meme/image"
tags: ["Meme V2"]
---

# Generate meme images v2

`POST /api/v2/meme/image`

## Request

- Base URL: `https://app.supermeme.ai`
- URL: `https://app.supermeme.ai/api/v2/meme/image`
- Auth: HTTP bearer

Generates ready-to-use meme images with captions rendered in. Returned URLs are signed and expire after 1 hour (see `expiresAt`) — download or re-host promptly.

## Request body

- object
  - `text` string, required: Text to convert to meme images (max 2,500 characters)
  - `count` number: Number of memes to generate, up to 12 (optional). Normalized server-side: non-integer values are truncated, values above 12 are clamped to 12, values below 1 are rejected.
  - `aspectRatio` '1:1' | '3:4' | '4:3' | '9:16' | '16:9': Aspect ratio for the generated images (optional)
  - `paddingColor` string: Hex color for aspect ratio padding (optional, defaults to #FFFFFF)

## Response `200`

Meme images generated successfully

- MemeImagesResponse
  - `memes` string[], required: Signed URLs of the generated meme images (captions are rendered into the image)
  - `expiresAt` string, required: Conservative ISO 8601 expiry for the returned image URLs (signed with a 1-hour TTL). The URLs are guaranteed valid until this time; treat them as expired after it.

## Other responses

- `400`: Bad request — invalid or missing parameters (`type: validation_error`)
- `401`: Missing or invalid API key (`type: unauthorized`)
- `403`: The subscription does not include API access (`type: forbidden`)
- `429`: Monthly request quota exhausted (`type: quota_exceeded`). The `X-RateLimit-Reset` header says when the quota resets.
- `500`: Internal server error (`type: internal_error`)

---

[API](https://skmtc.dev/supermeme/apis/supermeme-ai-meme-api.md) - [All operations](https://skmtc.dev/supermeme/apis/supermeme-ai-meme-api/llms.txt) - [OpenAPI document](https://skmtc.dev/supermeme/apis/supermeme-ai-meme-api/revisions/7444fbdcb9c4?raw)
