Now available for agents & bots

Give your agent
the power of memes.

One API call. Send text, get a meme posted to X. AI picks the template, writes the caption, renders the image, and posts it. Connect OpenClaw, LangChain, or any agent.

One API call. That's it.

Send text, get a meme posted to X. Or just get the image. Your agent doesn't need to think about templates.

Generate meme + post to X (one call)

POST /api/v1/memes/generate-and-post
{
  "text": "Deployed to prod on a Friday"
}

→ {
  "success": true,
  "tweet_id": "1895123456789",
  "tweet_url": "https://x.com/i/status/...",
  "template_name": "This Is Fine",
  "meme_texts": [
    "The servers are on fire",
    "This is fine"
  ]
}

Just get the meme image (one call)

POST /api/v1/memes/generate
{
  "text": "Deployed to prod on a Friday"
}

→ {
  "image_base64": "iVBORw0KGgo...",
  "url": "data:image/png;base64,...",
  "template_name": "This Is Fine",
  "texts": [
    "The servers are on fire",
    "This is fine"
  ]
}

Need more control? We also have individual endpoints for listing templates, captioning, and posting separately.

OpenAPI spec: /api/v1/openapi.json — auto-discover all endpoints in your agent framework.

Everything your agent needs

🤖

Built for agents

REST API with Bearer auth. Works with OpenClaw, LangChain, AutoGPT, CrewAI, or any HTTP client.

🧠

AI auto-captioning

Send your post text. Mork picks the best meme template and writes a funny, relevant caption.

🎨

700+ templates

Drake, Distracted Boyfriend, This Is Fine, Stonks — all the classics. New templates added regularly.

Fast

Meme generation in under 2 seconds. AI auto-meme in under 5. No queues, no waiting.

📐

Dynamic text fields

Each template has a defined box_count. Send the right number of text lines and they're placed perfectly.

🔗

Flexible output

Get base64 data URL for embedding, raw PNG binary for saving, or image_base64 for decoding.

🔒

API key auth

Generate keys from your dashboard. SHA-256 hashed. Revoke anytime. Usage tied to your plan.

📤

Post to X via API

Generate a meme and post it to X in one flow. Or post plain text. Your agent handles everything.

💰

Use your own service too

Get the meme image and post it wherever — X, Discord, Slack, your own app. Or let us post to X for you.

Connect any agent

Your bot writes content. Our API turns it into memes. Post to X, Discord, Slack — anywhere.

Python — one line to post a meme to X

import requests

KEY = "xp_your_key"
H = {"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"}

# That's it. One call. Meme generated + posted to X.
result = requests.post(
    "https://www.memelair.com/api/v1/memes/generate-and-post",
    headers=H,
    json={"text": "When the code works on first try"}
).json()

print(result["tweet_url"])  # https://x.com/i/status/...

OpenClaw / LangChain tool — 5 lines

from langchain.tools import tool

@tool
def post_meme(text: str) -> str:
    """Generate an AI meme and post it to X."""
    import requests
    r = requests.post(
        "https://www.memelair.com/api/v1/memes/generate-and-post",
        headers={"Authorization": "Bearer xp_your_key",
                 "Content-Type": "application/json"},
        json={"text": text}
    ).json()
    return f"Posted: {r.get('tweet_url')}"

Node.js / TypeScript — one function

async function postMeme(text: string) {
  const r = await fetch(
    "https://www.memelair.com/api/v1/memes/generate-and-post",
    {
      method: "POST",
      headers: {
        Authorization: `Bearer ${process.env.MEMELAIR_API_KEY}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({ text }),
    }
  ).then(r => r.json());

  console.log(r.tweet_url); // posted!
}

curl — copy, paste, done

curl -X POST https://www.memelair.com/api/v1/memes/generate-and-post \
  -H "Authorization: Bearer xp_your_key" \
  -H "Content-Type: application/json" \
  -d '{"text": "When your bot starts posting memes for you"}'

# → {"success":true,"tweet_url":"https://x.com/i/status/..."}

Just get the image (don't post)

# Use /memes/generate if you want the image but not to post
curl -X POST https://www.memelair.com/api/v1/memes/generate \
  -H "Authorization: Bearer xp_your_key" \
  -H "Content-Type: application/json" \
  -d '{"text": "Monday morning standup"}'

# → {"image_base64":"...","template_name":"This Is Fine"}

What people are building

Auto-posting meme bots

Agent monitors trending topics, generates a meme, posts to X — fully automated. Runs 24/7.

Discord / Slack meme commands

Users type /meme "text" and your bot generates and sends a meme in the channel.

Content pipelines

Write a post → auto-generate a matching meme → schedule both together. Full content automation.

OpenClaw agent tools

Add meme generation as a tool in your OpenClaw bot. The agent decides when a meme fits and generates one.

Get started in 2 minutes

1

Sign up for Meme Lair

Lite ($9/mo) gets 200 memes/month. Unlimited ($29/mo) for heavy usage.

2

Generate an API key

Go to Dashboard → API Keys → Create key. Copy it once.

3

Post a meme

POST /api/v1/memes/generate-and-post with {"text": "your tweet"}. Done. Meme created + posted.

Pricing

API access requires a paid plan. No watermark on any paid tier.

POPULAR

Lite

$9/mo

200 memes/month

No watermark

Unlimited

$29/mo

Unlimited memes

No watermark

Your agent is one API call away from being funny.

Sign up, grab an API key, and start generating memes in minutes.

Starts at $9/mo. Cancel anytime.