# Meme Generator from Photo + Caption Request

> Meme Generator from Photo + Caption Request is a paid API for AI agents from memegenerator.modestpika.box.ca, paid per call via x402, $0.02/call, status down (last checked 2026-09-15, last successful call 2026-06-16).

Renders a meme image from a base64-encoded photo and a natural-language caption description, using vision AI for smart text placement.

## Facts

- Endpoint: POST https://memegenerator.modestpika.box.ca/meme
- Price: $0.02/call
- Payment: x402
- Status: down
- Last checked: 2026-09-15
- Last successful call: 2026-06-16
- Success rate: 77% of calls made through Zero
- Rating: 4.5 / 5 from 4 reviews
- Activations on Zero: 36
- Provider: memegenerator.modestpika.box.ca
- Website: https://memegenerator.modestpika.box.ca
- Canonical page: https://www.zero.xyz/c/memegenerator-modestpika-box-ca-meme-generator-from-photo-caption-a487cba3
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_j1fQpG2At793Wzq6gN4aL

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability memegenerator-modestpika-box-ca-meme-generator-from-photo-caption-a487cba3 -d '<json body>'
```

Example prompt: Take this photo (base64 attached) and turn it into a classic impact-font meme with 'WHEN YOU REALIZE IT'S MONDAY' on the top and 'AND YOU FORGOT YOUR COFFEE' on the bottom — avoid covering faces.

## When to prefer this

Choose this endpoint when you have a source image (as base64) and want AI to interpret a natural-language caption request and automatically determine optimal text placement, style, and font — especially when you want classic meme styles like impact font or lolcat without manually specifying pixel coordinates. Prefer over generic image-editing APIs when the goal is meme-style captioning with face/subject-aware placement.

## Known failure modes

- Invalid or corrupt base64 image returns a 400 error
- Unsupported image format (e.g. TIFF) may be rejected
- Overly vague or empty query string may produce unexpected captions
- Very large images may time out or exceed payload limits
- Vision model may misidentify subject placement, leading to text over faces despite avoidance logic
- Network or upstream Groq API outage causes 500 error

## How this service works

Render a meme from a base64 photo and a natural-language caption request.

## Output

Returns a public PNG URL of the rendered meme, a spec object detailing the chosen style (e.g. impact/modern_top_caption/lolcat), font (Impact/Helvetica-Bold/Arial-Bold), top and bottom text strings with their placement positions, a one-sentence reasoning about text placement, and a cache status object indicating whether the meme and upload were cached.

## Example request

```json
{
 "query": "add the text WHEN YOU REALIZE IT'S FRIDAY in classic impact font on top and TGIF on the bottom in white text",
 "image_base64": "iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAIAAABMXPacAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGYktHRAD/AP8A/6C9p5MAAAAHdElNRQfqBQUQNzggFlbcAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDI2LTA1LTA1VDE2OjU1OjU2KzAwOjAwuxoOLQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyNi0wNS0wNVQxNjo1NTo1NiswMDowMMpHtpEAAAAodEVYdGRhdGU6dGltZXN0YW1wADIwMjYtMDUtMDVUMTY6NTU6NTYrMDA6MDCdUpdOAAB6RUlEQVR42iT967J13XYQ5rXeWj+Ow5xrve+39xZSsDBEAslGoJgSRkDhuJKUnTgmGDCJY0QZBydxKglF+SpzGU7QPnzfWmvOOcbo59aaf+S5kcf8f375D369MAx/3n5jfxl6hkE4j6/wdmsjfNfcF51fNB59hDB1WysOhrsJOm9nl+dvcPv67jy9V0r6NpYyv6i9oXu8ru+jHN+2ZkKsw9tRZc74oxvS5e12+3PkQ9w4vtnLOfvxMiM2NFckduMvyUV6O/J2lQD4NJ5+dy8/1dOfbyPfbouoQFY6xrEv/oB5Sp3bsm27ioH63d3mtjGJfi7C+X+k63fCm/kLc0pYfyUtqhRvO61jtve32zYqGpbvcJ35J3U/m6fZ7fBv4ALCxC+64ysEUwy+ZLXP7G43M0y55scPv4SxS/LXS2wrv8mOoUd/e8CsP+dQ+H1zH9r0SgPe/FNmhfcf+ld5+/H9SsldHefyDDf6b//1LwIaCiN3Z8dsuVf31Qe16AWGDbB5/fjAdvWe08pukRrBwQIiy9DTiE6nS46Lhr5DeAlFX/GYHh5xmXEMyQtYwmNOFNda8ovM7hEPd+iaNIoRJ8cM3WpsBticIqNdA+D70DUEad8Wl4f10LNEDgIiCDdHbUsjj9U1HKUFr+Kk9hjU7sb2iScY7PCeOwHcaBXvxyg+htEsqw+tcMLwXnsCYrhwnNa5R92Ct4apm7Sibb0b7eyjv71AuTs0S6/pjCOBMktPMoTBv8xp+0gDQle3ajeTk3NQQ776TN96hdgNDk842eYql6aZLDUP09P/61+9S6gweVoAOsbDGhfEwO112FWKv26jVovXkXsaHW5mOSG5hcNEZ+D718vIorGL+OXYmJ1MXK1sX2+Xr2i8NJy9gDZIRK/Qlc1j8+OLXhsTrHJesJuX5durfYizZl5pNQrVmESWdS63e/o4Bydfmx1u3KXk2cdW56C4bI+1m8+Tyy4C6GT37/Wg5k27ajLQH6X7csUlo7
… (truncated)
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "image_base64",
  "query"
 ],
 "properties": {
  "query": {
   "type": "string",
   "example": "add the text WHEN YOU REALIZE IT'S MONDAY in classic meme style",
   "minLength": 1,
   "description": "Natural-language description of the meme. e.g. \"add the text WHEN MONDAY HITS in classic impact font\" or \"make it a distracted boyfriend style caption with the words X and Y\"."
  },
  "image_base64": {
   "type": "string",
   "description": "Source photo as base64. Accepts either raw base64 or a data URI (data:image/png;base64,...). Supported formats: jpg, png, webp, gif."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "meme_url",
  "spec",
  "cached"
 ],
 "properties": {
  "spec": {
   "type": "object",
   "required": [
    "style",
    "top_text",
    "top_placement",
    "bottom_text",
    "bottom_placement",
    "font",
    "reasoning"
   ],
   "properties": {
    "font": {
     "enum": [
      "Impact",
      "Helvetica-Bold",
      "Arial-Bold"
     ],
     "type": "string"
    },
    "style": {
     "enum": [
      "impact",
      "modern_top_caption",
      "modern_bottom_caption",
      "lolcat"
     ],
     "type": "string"
    },
    "top_text": {
     "type": "string"
    },
    "reasoning": {
     "type": "string",
     "description": "One sentence including where text was placed and why."
    },
    "bottom_text": {
     "type": "string"
    },
    "top_placement": {
     "enum": [
      "top",
      "bottom",
      "top_left",
      "top_right",
      "bottom_left",
      "bottom_right",
      "center"
     ],
     "type": "string"
    },
    "bottom_placement": {
     "enum": [
      "top",
      "bottom",
      "top_left",
      "top_right",
      "bottom_left",
      "bottom_right",
      "center"
     ],
     "type": "string"
    }
   }
  },
  "cached": {
   "type": "object",
   "properties": {
    "meme": {
     "type": "boolean"
    },
    "upload": {
     "type": "boolean"
    }
   }
  },
  "meme_url": {
   "type": "string",
   "format": "uri",
   "description": "Public URL of the rendered meme (PNG)."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/memegenerator-modestpika-box-ca-meme-generator-from-photo-caption-a487cba3/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from memegenerator.modestpika.box.ca](https://www.zero.xyz/host/memegenerator.modestpika.box.ca/llms.txt)
