Maton

Memelord

Access the Memelord API with managed authentication. Generate AI-powered memes and video memes with customizable text overlays.

Reference

Generate Meme

Generate AI-powered memes with text overlays. Returns signed download URLs.

Cost: 1 credit per request

POST /memelord/api/v1/ai-meme
Content-Type: application/json

{
  "prompt": "when the code finally compiles",
  "count": 3,
  "category": "trending",
  "include_nsfw": false
}

Parameters:

ParameterTypeRequiredDescription
promptstringYesText prompt for meme generation
countintegerNoNumber of memes to generate (1-10, default: 1)
categorystringNoCategory filter: "trending" or "classic"
include_nsfwbooleanNoInclude NSFW templates (default: true)

Response:

{
  "success": true,
  "prompt": "when the code finally compiles",
  "total_generated": 3,
  "total_requested": 3,
  "results": [
    {
      "success": true,
      "url": "https://example.supabase.co/storage/v1/object/sign/user-assets/.../ai-memes/abc123.webp?token=...",
      "expires_in": 86400,
      "template_url": "https://example.supabase.co/storage/v1/object/public/public-assets/.../main.webp",
      "template_name": "Iceberg",
      "template_id": "282bf941-2f34-478f-abf4-fd26a399a652",
      "template_data": {
        "render_mode": "template",
        "width": 500,
        "height": 759,
        "template": [
          {
            "id": "text1",
            "text": "Code compiled",
            "font": "sans",
            "color": "white",
            "fontSize": "m"
          },
          {
            "id": "text2",
            "text": "All the logical bugs",
            "font": "sans",
            "color": "white",
            "fontSize": "m"
          }
        ]
      }
    }
  ]
}

Edit Meme

Edit text on an existing meme using AI instructions.

Cost: 1 credit per request

POST /memelord/api/v1/ai-meme/edit
Content-Type: application/json

{
  "instruction": "make it about debugging instead",
  "template_id": "success-kid-001",
  "template_data": {
    "top_text": "When the code compiles",
    "bottom_text": "On the first try"
  },
  "target_index": 0
}

Parameters:

ParameterTypeRequiredDescription
instructionstringYesAI instruction for editing the meme text
template_idstringYesTemplate ID from original generation
template_dataobjectYesCurrent template data with text fields
target_indexintegerNoSpecific text element to edit

Response:

{
  "success": true,
  "url": "https://example.supabase.co/storage/v1/object/sign/user-assets/.../ai-memes/edited123.webp?token=...",
  "expires_in": 86400,
  "template_id": "282bf941-2f34-478f-abf4-fd26a399a652",
  "template_data": {
    "render_mode": "template",
    "width": 500,
    "height": 759,
    "template": [
      {
        "id": "text1",
        "text": "Debugging for hours",
        "font": "sans",
        "color": "white"
      },
      {
        "id": "text2",
        "text": "It was a typo",
        "font": "sans",
        "color": "white"
      }
    ]
  },
  "edit_summary": "Updated template text"
}

Generate Video Meme

Generate captioned video memes with asynchronous rendering.

Cost: 5 credits per request (multiplied by count)

POST /memelord/api/v1/ai-video-meme
Content-Type: application/json

{
  "prompt": "explaining my code to a rubber duck",
  "count": 2,
  "category": "trending",
  "webhookUrl": "https://your-server.com/webhook",
  "webhookSecret": "your-secret-key"
}

Parameters:

ParameterTypeRequiredDescription
promptstringYesText prompt for video meme generation
countintegerNoNumber of videos to generate (1-5, default: 1)
categorystringNoCategory filter: "trending" or "classic"
template_idstringNoSpecific template to use
webhookUrlstringNoURL for completion notification
webhookSecretstringNoSecret for webhook signature verification

Response:

{
  "success": true,
  "prompt": "when the code works on the first try",
  "total_requested": 2,
  "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."
}

Edit Video Meme

Modify captions on an existing video meme.

Cost: 5 credits per request

POST /memelord/api/v1/ai-video-meme/edit
Content-Type: application/json

{
  "instruction": "make it more dramatic",
  "template_id": "confused-travolta",
  "caption": "When the tests pass locally",
  "audio_overlay_url": "https://example.com/audio.mp3",
  "webhookUrl": "https://your-server.com/webhook"
}

Parameters:

ParameterTypeRequiredDescription
instructionstringYesAI instruction for editing captions
template_idstringYesTemplate ID from original generation
captionstringYesCurrent caption text
audio_overlay_urlstringNoURL to audio file for overlay
webhookUrlstringNoURL for completion notification

Response:

{
  "success": true,
  "job_id": "render-1740524400000-xyz99",
  "template_name": "Surprised Pikachu Video",
  "template_id": "abc-123",
  "original_caption": "When the tests pass locally",
  "edited_caption": "When the tests pass locally but fail in CI",
  "edit_summary": "Updated caption text",
  "message": "Render job started. Poll GET /api/video/render/remote?jobId=... for status."
}

Check Video Render Status

Poll the status of an asynchronous video render job.

GET /memelord/api/video/render/remote?jobId={job_id}

Response (Rendering):

{
  "success": true,
  "job": {
    "id": "render-1740524400000-abc12",
    "status": "rendering",
    "mp4Url": null,
    "storagePath": null,
    "error": null,
    "renderTimeMs": null,
    "createdAt": "2026-03-31T01:30:26.361825+00:00",
    "completedAt": null
  }
}

Response (Completed):

{
  "success": true,
  "job": {
    "id": "render-1740524400000-abc12",
    "status": "completed",
    "mp4Url": "https://example.supabase.co/storage/v1/object/sign/user-assets/.../exports/ai-video-meme-1740524400000.mp4?token=...",
    "storagePath": "user-id/exports/ai-video-meme-1740524400000.mp4",
    "error": null,
    "renderTimeMs": 12664,
    "createdAt": "2026-03-31T01:30:26.361825+00:00",
    "completedAt": "2026-03-31T01:30:47.814+00:00"
  }
}

Response (Failed):

{
  "success": true,
  "job": {
    "id": "render-1740524400000-abc12",
    "status": "failed",
    "mp4Url": null,
    "storagePath": null,
    "error": "Render timed out",
    "renderTimeMs": null,
    "createdAt": "2026-03-31T01:30:26.361825+00:00",
    "completedAt": null
  }
}

Resources

On this page