Slack and Discord meme bots
Turn a slash command or channel message into a meme without maintaining your own template map.
/meme shipping on Friday -> finished meme posted to the channel
Send a topic, moment, or message. Supermeme finds a fitting template, writes the captions, and returns ready-to-use memes for your app, bot, or workflow.
API access is included with every paid plan, starting at 100 requests per month.
/v2/meme/image{
"text":
"Explaining your job...",
"count": 3
}Bearer API key

REST + JSON
A familiar HTTP interface
Bearer auth
One key in the header
1-12
Requested finished memes
1,000+
Curated meme templates
How the meme API works
A normal image API expects you to know what to make. This one helps decide the template and caption too. That is the useful bit.
Send a topic, observation, or sentence. You do not need to know a meme template name.
The API matches the idea to relevant templates and writes contextual captions.
Return finished image URLs, keep captions editable, or build your own template picker.
Meme API documentation
Finished images for speed. Separate captions and templates for control. Template search when a human should choose. Minimalist visuals when the idea is better explained than memed.
/api/v2/meme/imageFinished image URLs
Send text and receive captioned memes that are ready to show inside your product.
Best for: Bots, social tools, internal apps, and automated publishing.
textstringrequiredcountintegeroptionalaspectRatiostringoptionalpaddingColorstringoptionalcurl --request POST \
--url https://app.supermeme.ai/api/v2/meme/image \
--header "Authorization: Bearer ${SUPERMEME_API_KEY}" \
--header 'Content-Type: application/json' \
--data '{
"text": "Explaining your job to someone outside your field",
"count": 3,
"aspectRatio": "4:3"
}'{
"memes": [
"https://.../generated-meme-1.png",
"https://.../generated-meme-2.png",
"https://.../generated-meme-3.png"
]
}Set your key once
export SUPERMEME_API_KEY='paste-your-api-key-here'Need your key? Paid users can create and rotate it from developer settings.
Get an API keyError responses
Every error includes an HTTP status, a readable message, a correlation ID for support, and a timestamp.
Quotas reset with the billing period. The API currently returns 429 without rate-limit response headers, so read usage from the developer dashboard.
{
"status": 429,
"message": "You have reached your API limit",
"correlationId": "1720000000000-a1b2c3d4e",
"timestamp": "2026-07-11T09:30:00.000Z"
}Everything an AI assistant or agent needs to use the Meme API: machine-readable docs, a copy-paste setup prompt, an installable skill, and an MCP server.
Using Claude, ChatGPT, or Cursor? Add the Supermeme MCP server and skip API keys entirely — it authenticates with OAuth and gives your assistant meme tools out of the box.
https://mcp.supermeme.ai/mcpMCP setup guidePaste this into your agent's instructions (system prompt, custom GPT, Claude project, or CLAUDE.md). Add your API key where indicated.
You have access to the Supermeme.ai meme generation API.
Base URL: https://app.supermeme.ai
API key: provided in the SUPERMEME_API_KEY environment variable (get one at https://supermeme.ai/account/developers)
Auth: send the header `Authorization: Bearer <api key>` on every request.
Full reference: https://supermeme.ai/meme-api.md (markdown) or https://app.supermeme.ai/openapi.json (OpenAPI 3.1)
Endpoints:
- POST /api/v2/meme/image — body {"text", "count"?, "aspectRatio"?, "paddingColor"?} returns {"memes": [urls], "expiresAt"}. Finished meme images with captions rendered in. This is the main endpoint. text <= 2500 chars, count 1-12, aspectRatio one of "1:1","3:4","4:3","9:16","16:9".
- POST /api/v1/minimalist-visual — body {"text", "count"? (1-3), "aspectRatio"?} returns {"images": [urls], "expiresAt"}. Hand-drawn minimalist illustrations.
- POST /api/v1/meme/text — body {"text"} returns {"memes": [{"caption", "image"}], ...}. Captions plus blank template URLs, for rendering text yourself.
- GET /api/v1/search?query=... — returns {"templates": [urls]}. Blank meme template search.
Rules:
- Generated image URLs expire after 1 hour (see "expiresAt") — download or re-host them immediately, never store the URLs.
- Generation takes 10-60 seconds; use an HTTP timeout of 120 seconds and don't retry while a request is running.
- Responses carry X-RateLimit-Limit / X-RateLimit-Remaining / X-RateLimit-Reset (unix seconds) headers. HTTP 429 means the monthly quota is exhausted — stop and don't retry before the reset time.
- Errors are JSON {"status", "type", "message"}; branch on "type": validation_error (fix request), unauthorized (bad key), forbidden (plan has no API access), quota_exceeded (429), internal_error (one retry OK).
- In "text", describe the situation or feeling rather than writing a literal caption — the API detects the emotion and writes captions itself, in the language of the input.Using Claude Code or the Claude apps? Install the Supermeme skill and Claude picks it up automatically whenever memes come up:
mkdir -p ~/.claude/skills/supermeme && \
curl -fsSL -o ~/.claude/skills/supermeme/SKILL.md \
https://supermeme.ai/skills/supermeme/SKILL.mdView SKILL.mdNot just another image endpoint
Returning a folder of templates is useful. Turning an idea into a relevant meme is more useful.
Popular meme API use cases
These workflows already start with text. That makes them a natural fit for an API that turns text into finished memes.
Turn a slash command or channel message into a meme without maintaining your own template map.
/meme shipping on Friday -> finished meme posted to the channel
Generate meme options from a campaign idea or post draft inside the existing content queue.
Post draft -> 3 captioned images ready for review
Give a custom agent a meme tool so it can return a relevant visual when the conversation calls for one.
Conversation context -> meme URL in the assistant response
Celebrate milestones, soften empty states, or respond to familiar moments with contextual memes.
Achievement event -> shareable reaction meme
Turn launch briefs, webinar quotes, or article summaries into meme options for a human to approve.
Content brief -> editable captions or finished images
Make a lesson, company announcement, or recurring workplace situation easier to remember.
Key message -> multilingual meme for the audience
API access and limits
Every paid plan includes meme API access. Larger production quotas are available without inventing a mysterious pricing tier.
Compare plansMeme API FAQ
Still deciding between the REST API and an AI-assistant integration? Read about the Supermeme meme MCP server.
A meme API lets software request meme content programmatically. With Supermeme, you send text through a REST endpoint and receive finished meme images, editable caption-and-template pairs, or matching template paths.
A static template API usually makes you choose the template, write the caption, and compose the image yourself. Supermeme can interpret the text, find a relevant template, write the caption, and return a finished meme.
Use POST /api/v2/meme/image for finished memes, POST /api/v1/meme/text for captions and clean templates, GET /api/v1/search for template paths, and POST /api/v1/minimalist-visual for hand-drawn-style illustrations.
Every request uses a Supermeme API key in the Authorization header as a Bearer token. Paid users can create and manage the key from the developer settings page.
Solo includes 100 API requests per month, Pro includes 1,000, Startup includes 2,000, and Enterprise includes 5,000. Contact us when you need a larger quota.
The text-to-meme endpoint supports 110+ languages and detects the input language automatically. Endpoint-specific language support is documented alongside each request.
Yes. Image URLs returned by POST /api/v2/meme/image and POST /api/v1/minimalist-visual are signed for one hour. Save the images to your own storage when your product needs permanent URLs.
Use the REST API when you are building meme generation into an app, bot, or backend. Use the meme MCP server when you want an MCP-compatible AI assistant to search and generate memes inside a conversation.
POST text. GET memes.
Get an API key, make the first request, and see whether your idea gets funnier. We think it will. (The API still returns JSON either way.)