
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.

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.
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"}'POST /api/v1/ai-meme — Generates and renders memes, returns hosted download URLsPOST /api/v1/ai-meme/edit — Edit the text of an existing meme using AIcount parameter, total cost = count x 1.| Parameter | Type | Required | Description |
|---|---|---|---|
| prompt | string | Yes | Topic or idea for the meme |
| count | number | No | Number of memes (default: 1, max: 10) |
| category | string | No | "trending" or "classic" |
| include_nsfw | boolean | No | Include NSFW templates (default: true) |
{
"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"
}
]
}Edit the text of an existing meme. Provide the original template data and an instruction describing what to change.
| Parameter | Type | Required | Description |
|---|---|---|---|
| instruction | string | Yes | What to change about the meme text |
| template_id | string | Yes | Template asset ID from the original generation response |
| template_data | object | Yes | Layout data with render_mode, width, height, and optional template/caption/expanded_height |
| target_index | number | No | Index of text box to target (>= 1) |
{
"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"
}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 captionsPOST /api/v1/ai-video-meme/edit — Edit the caption of an existing video memeGET /api/video/render/remote?jobId=... — Poll render job statuscount parameter, total cost = count x 5.| Parameter | Type | Required | Description |
|---|---|---|---|
| prompt | string | Yes | Topic or idea for the video meme |
| count | number | No | Number of video memes (default: 1, max: 5) |
| webhookUrl | string | No | URL to receive results when renders complete |
| webhookSecret | string | No | HMAC-SHA256 secret for webhook verification |
| category | string | No | "trending" or "classic" |
| template_id | string | No | Specific video template asset ID |
{
"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."
}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" }
}GET /api/video/render/remote?jobId=... as a fallback.Edit the caption of an existing video meme. Provide the original caption and an instruction describing what to change.
| Parameter | Type | Required | Description |
|---|---|---|---|
| instruction | string | Yes | What to change about the caption |
| template_id | string | Yes | Video template asset ID |
| caption | string | Yes | Current caption text to edit |
| audio_overlay_url | string | No | Audio URL to overlay (mutes base video audio) |
| webhookUrl | string | No | URL to receive result when render completes |
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" }Each API call consumes credits from your account balance. Credit costs vary by endpoint:
| Endpoint | Credits per request |
|---|---|
| POST /api/v1/ai-meme | 1 credit per meme |
| POST /api/v1/ai-meme/edit | 1 credit per edit |
| POST /api/v1/ai-video-meme | 5 credits per video |
| POST /api/v1/ai-video-meme/edit | 5 credits per edit |
We are generous lovers & generous in our support of developers. Apply today.
Create your key and get started now. Do it.
Need help? Contact support or visit Developer Settings to manage your API keys.