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.

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
Credits: Each meme costs 1 credit. When using the count parameter, total cost = count x 1.

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)

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"
    }
  ]
}

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)

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"
}

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
Credits: Each video meme costs 5 credits. When using the count parameter, total cost = count x 5.
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

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)
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" }

Credits & Pricing

Each API call consumes credits from your account balance. Credit costs vary by endpoint:

EndpointCredits per request
POST /api/v1/ai-meme1 credit per meme
POST /api/v1/ai-meme/edit1 credit per edit
POST /api/v1/ai-video-meme5 credits per video
POST /api/v1/ai-video-meme/edit5 credits per edit

Apply For Free Credits

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.

API Docs | Memelord Dev Portal