Prefer chatting over curling?

Try Memelord's official Grok Bot — prompt it for image and video memes powered by this API.

Does your agent speak MCP?

Connect the hosted Memelord MCP server to Claude, ChatGPT, Cursor, and friends — same tools as this API, OAuth sign-in, no key to paste.

Authentication

All API requests require an API key in the Authorization header.

Get your API Key

Visit Developer Settings to create and manage your API keys.

Authorization: Bearer mlord_live_xxxxxxxxxxxxxxxxxxxxxx
Clippy

Looking for the easiest way to get started?

Once you have an API Key, simply copy & paste our LLM instructions to your favorite coding agent.

Tools API

Every tool in the Memelord MCP server that API keys can use is also a REST endpoint under /api/v1, with the same bearer key. Read-only endpoints are GET with query parameters (arrays accept repeated keys or comma-separated values; ids go in the path); everything that generates or edits is POST with a JSON body whose fields are the tool's inputs. Every parameter is described in the OpenAPI 3.1 document at https://www.memelord.com/api/v1/openapi.json (operationId is the tool name).

Tools marked Billable draw from your usage balance based on the underlying generation cost; discovery, status, and account endpoints are free.

Endpoint (tool)PurposeCost
GET /api/v1/templates/search
search_memes
Search the template library (memes, videos, stickers) by meaning, keyword, or similar imageFree
GET /api/v1/templates/{template_id}
get_meme_template
Fetch one template's metadata, text slots, and media URL by idFree
GET /api/v1/templates/trending
get_trending_memes
Current trending templates with cultural contextFree
GET /api/v1/image-tools
list_image_tools
Catalog of one-shot image tools (face swaps, filters, generators) runnable via run_image_toolFree
POST /api/v1/memes/caption
generate_caption_meme
New text on a real classic meme template — the image itself is never AI-editedBillable
POST /api/v1/memes/ai
generate_ai_meme
AI-remixed memes: the template picture is edited to fit the joke, optionally with your reference imagesBillable
POST /api/v1/memes/edit
edit_meme
Edit the text on a previously generated image memeBillable
POST /api/v1/video-memes
generate_video_meme
Generate captioned video memes (async render jobs)Billable
POST /api/v1/video-memes/edit
edit_video_meme
Re-caption an existing video memeBillable
GET /api/v1/video-jobs/{job_id}
check_video_status
Poll one render job and get the MP4 URL when completeFree
GET /api/v1/video-models
list_video_models
Catalog of AI video models (Kling 3.0, Kling O3, Seedance, Wan 3.0, Cinema Studio 4.0), Genjutsu, and Gemini Omni, with required inputs and paramsFree
POST /api/v1/video-models/run
run_video_model
Generate AI footage with one model from list_video_models from a prompt, start frame, or references (async job)Billable
POST /api/v1/genjutsu/run
run_genjutsu
Put a person or character into an existing video clip, keeping its motion, camera, and audio (async job)Billable
POST /api/v1/gemini-omni/run
run_gemini_omni
Gemini Omni, Google's Gemini video model: edit an existing clip with an instruction, animate a still, or generate a short clip from a prompt (async job)Billable
POST /api/v1/jester/run
run_agent
Hand a natural-language request to Jester, Memelord's full agent (search, caption, edit, generate, video, face swap)Billable
POST /api/v1/image-tools/run
run_image_tool
Run one specific image tool from list_image_tools on an input image or promptBillable
GET /api/v1/account
get_account
Who am I, usage balance, and how this session is authenticatedFree

Search the template library:

curl "https://www.memelord.com/api/v1/templates/search?query=when%20the%20deploy%20works&type=meme&limit=5" \
  -H "Authorization: Bearer mlord_live_YOUR_API_KEY"

Caption a classic template:

curl -X POST https://www.memelord.com/api/v1/memes/caption \
  -H "Authorization: Bearer mlord_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "developers fixing bugs at 3am", "count": 2}'
{
  "success": true,
  "prompt": "developers fixing bugs at 3am",
  "total_generated": 2,
  "results": [
    {
      "success": true,
      "url": "https://…/meme.png",
      "expires_in": "7 days",
      "template_name": "This Is Fine",
      "template_id": "…",
      "caption_slots": [{ "slot": 1, "text": "it's 3am and the build is green" }],
      "edit_handle": "0f1c…"
    }
  ]
}

Video endpoints answer right away with a job_id; poll GET /api/v1/video-jobs/{job_id} every few seconds until status is completed and read mp4_url:

curl -X POST https://www.memelord.com/api/v1/video-memes \
  -H "Authorization: Bearer mlord_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "shipping on Friday"}'

# → { "success": true, "jobs": [{ "job_id": "render-…", … }], … }

curl https://www.memelord.com/api/v1/video-jobs/render-… \
  -H "Authorization: Bearer mlord_live_YOUR_API_KEY"

# → { "job_id": "render-…", "status": "completed", "mp4_url": "https://…" }

Success is 200 with the tool's JSON result. Errors are { "success": false, "code": "…", "error": "…" }:

StatuscodeWhen
200—The tool ran. The body is the tool's JSON result (video tools answer with job ids to poll).
400INVALID_REQUEST_BODYThe POST body is not a JSON object.
400INVALID_PARAMETERAn argument fails the tool's input schema (issues lists each problem), or the tool rejected an input.
400TOOL_ERRORThe tool reported a failure that is none of the above; error carries its reason.
401API_KEY_MISSING / API_KEY_INVALIDNo bearer token, a token that is not an mlord_live_ key, or a revoked key.
402INSUFFICIENT_CREDITSA billable tool and the usage balance is empty.
404NOT_FOUNDThe template or job id does not exist on this account.
500GENERATION_FAILED / INTERNAL_ERRORThe generation itself failed (error says what the model reported) or something unexpected broke.
{
  "success": false,
  "code": "INVALID_PARAMETER",
  "error": "Invalid arguments for tool search_memes",
  "issues": [{ "code": "too_big", "path": ["limit"], "message": "…" }]
}

Quick Start: Image Meme API

Generate a rendered meme and get back a download URL:

curl -X POST https://www.memelord.com/api/v1/ai-meme \
  -H "Authorization: Bearer mlord_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "developer fixing bugs at 3am"}'

Endpoints

  • POST /api/v1/ai-meme — Generates and renders memes, returns hosted download URLs
  • POST /api/v1/ai-meme/edit — Edit the text of an existing meme using AI
POST /api/v1/ai-meme
Usage: Each meme draws from your usage balance based on the underlying generation cost. When using the count parameter, each generated meme is billed individually.

Request Body

ParameterTypeRequiredDescription
promptstringYesTopic or idea for the meme
countnumberNoNumber of memes (default: 1, max: 10)
categorystringNo"trending" or "classic"
include_nsfwbooleanNoInclude NSFW templates (default: true)
mode"remix" | "caption"No"remix" (default) AI-edits the template picture to fit the joke, then captions it. "caption" only renders new text on a real classic template; the image is never AI-edited.
caption_style"tiktok" | "snapchat"NoStyle for single-caption renders: TikTok (bold centered outlined text, the default) or Snapchat (translucent strip). Both overlay the image. Multi-slot templates keep their own text boxes and ignore it.

caption_style does not choose between caption and remix output — set mode for that.

Response (200)

{
  "success": true,
  "prompt": "when the code works on the first try",
  "total_generated": 2,
  "results": [
    {
      "success": true,
      "url": "https://...signed-download-url...",
      "expires_in": 86400,
      "template_name": "Drake Hotline Bling",
      "template_id": "abc-123",
      "template_url": "https://...template-source-url...",
      "template_data": {
        "render_mode": "template",
        "width": 1200,
        "height": 1200,
        "template": { ... },
        "caption": null,
        "expanded_height": null
      }
    }
  ]
}

Edit Endpoint

POST /api/v1/ai-meme/edit

Edit the text of an existing meme. Provide the original template data and an instruction describing what to change.

ParameterTypeRequiredDescription
instructionstringYesWhat to change about the meme text
template_idstringYesTemplate asset ID from the original generation response
template_dataobjectYesLayout data with render_mode, width, height, and optional template/caption/expanded_height
target_indexnumberNoIndex of text box to target (>= 1)
caption_style"tiktok" | "snapchat"NoOptional caption render override for caption-mode memes. Requests using this field with template-mode memes return 400.

For caption memes, caption_style can switch the rendered output between top, TikTok, and Snapchat styles. For template-mode memes, this parameter should not be sent.

Edit Response (200)

{
  "success": true,
  "url": "https://...signed-download-url...",
  "expires_in": 86400,
  "template_id": "abc-123",
  "template_data": { ... },
  "edit_summary": "Changed the top text to reference JavaScript"
}

Example Outputs

ai-startup-haroldviral-winnieplayoff-cattelling-claude-to-try-againai-cigmake-millions-believe

Quick Start: Video Meme API

Generate captioned video memes from your prompt. Videos are selected from the template library, captioned automatically, and rendered. Results are delivered via webhook.

  • POST /api/v1/ai-video-meme — Generate video memes with AI captions
  • POST /api/v1/ai-video-meme/edit — Edit the caption of an existing video meme
  • GET /api/video/render/remote?jobId=... — Poll render job status
Usage: Each video meme draws from your usage balance based on the underlying generation cost. When using the count parameter, each generated video is billed individually.
POST /api/v1/ai-video-meme

Request Body

ParameterTypeRequiredDescription
promptstringYesTopic or idea for the video meme
countnumberNoNumber of video memes (default: 1, max: 5)
webhookUrlstringNoURL to receive results when renders complete
webhookSecretstringNoHMAC-SHA256 secret for webhook verification
categorystringNo"trending" or "classic"
template_idstringNoSpecific video template asset ID
force_caption_stylestringNoForce caption style: "top" (letterbox) or "tiktok" (centered overlay). Overrides default dimension-based behavior.

Immediate Response (200)

{
  "success": true,
  "prompt": "when the code works on the first try",
  "total_requested": 1,
  "jobs": [
    {
      "job_id": "render-1740524400000-abc12",
      "template_name": "Surprised Pikachu Video",
      "template_id": "abc-123",
      "caption": "When the code works on the first try"
    }
  ],
  "message": "Render jobs started. Results will be POSTed to webhookUrl."
}

Webhook Payload

Each render job POSTs its result to your webhookUrl when complete.

{
  "jobId": "render-1740524400000-abc12",
  "success": true,
  "mp4Url": "https://...signed-url...",
  "templateName": "Surprised Pikachu Video",
  "templateId": "abc-123",
  "caption": "When the code works on the first try",
  "stats": { "renderTimeMs": 12340, "outputSizeMB": "2.34" }
}
Note: MP4 URLs expire after 7 days. Poll job status via GET /api/video/render/remote?jobId=... as a fallback.

Edit Endpoint

POST /api/v1/ai-video-meme/edit

Edit the caption of an existing video meme. Provide the original caption and an instruction describing what to change.

ParameterTypeRequiredDescription
instructionstringYesWhat to change about the caption
template_idstringYesVideo template asset ID
captionstringYesCurrent caption text to edit
audio_overlay_urlstringNoAudio URL to overlay (mutes base video audio)
force_caption_stylestringNoForce caption style: "top" (letterbox) or "tiktok" (centered overlay). Overrides default dimension-based behavior.
webhookUrlstringNoURL to receive result when render completes

Polling Job Status

GET /api/video/render/remote?jobId=render-...

Poll for render job status when not using webhooks:

// Pending
{ "status": "pending", "jobId": "render-..." }

// Completed
{
  "status": "completed",
  "jobId": "render-...",
  "mp4Url": "https://...signed-url...",
  "storagePath": "user-id/exports/ai-video-meme-....mp4"
}

// Failed
{ "status": "failed", "jobId": "render-...", "error": "Render timed out" }

Example Outputs

Generated with prompt: "something funny about startups"

Usage & Pricing

The API is usage-based. Each call draws from your account's usage balance in dollars, based on the cost of the underlying generation. Check spend anytime on Settings → Usage, and top up from billing settings.

Model Pricing

These are the prices you pay per generation — what you see is what you are charged, drawn from your usage balance.

Video Edits

ModelPrice
Pixverse Swap$0.10 per generation
H3 Max Image To Video$0.0003 per generation
H3 Max Reference To Video$0.10 per generation
H3 Max Text To Video$0.0003 per generation
Grok Imagine Video Image To Video$0.10 per generation
Grok Imagine Video Text To Video$0.10 per generation
Veo 3.1 Generate Preview$0.52 per second
Wan 3.0 Image To Video$0.20 per second
Wan 3.0 Prime Text To Video$0.11 per second
Wan 3.0 Reference To Video$0.20 per second
Seedance 2.0 Reference To Video$0.60 per second
Seedance 2.5 Image To Video$0.92 per second
Seedance 2.5 Reference To Video$0.92 per second
Seedance 2.5 Text To Video$0.92 per second
Cinema Studio 4.0$0.92 per second
Motion Transfer V1.0$0.64 per second
Object Swap V1.0$0.64 per second
O3 First Last Frame$0.09 per second
O3 Image Reference$0.19 per second
O3 Video Reference$0.18 per second
4k Image To Video$0.42 per second
Pro Image To Video$0.19 per second
Pro Text To Video$0.19 per second
Std Image To Video$0.14 per second
Std Text To Video$0.13 per second
V3.0 Turbo Image To Video$0.12 per second
V3.0 Turbo Text To Video$0.12 per second

Image Edits

ModelPrice
Background Remove$0.04 per generation
Tts Turbo V2.5$0.10 per generation
Sync Lipsync V2$6.00 per generation
Grok Imagine Image Edit$0.04 per generation
Gemini 3.1 Flash Image Preview$0.08 per image
Gemini Nano Banana 2.1$0.08 per image
Gemini Omni Flash Preview$0.05 per image

Text & Token Models

ModelInput (per 1M tokens)Output (per 1M tokens)
Gemini 2.5 Flash$0.60$5.00
Gemini 3.5 Flash$0.60$5.00
Gemini 3.8 Flash$0.60$5.00
Gemini 3 Pro Preview$4.00$24.00
Gemini Embedding 2 Preview$0.30—
Gpt 5.1$2.50$20.00
Grok 3$2.50$5.00
Grok 4$2.50$5.00
Grok 4 0709$2.50$5.00
Grok 4 1 Fast Non Reasoning$2.50$5.00

Token models power meme text generation and editing. Most API calls combine a small amount of token usage with the image or video generation shown above.

Apply For Free Usage

We are generous lovers & generous in our support of developers. Apply today.

Why are you still here...

Create your key and get started now. Do it.

Need help? Contact support or visit Developer Settings to manage your API keys.