😂 Meme Generator
Turn a photo - or an instant AI image - into a meme with top and bottom captions
About this tool
Turn any picture into a ready-to-share meme. Upload your own image, or generate one instantly from a text prompt with the AI image generator - then add a top caption, a bottom caption, or both. The picture stays whole: each caption is added as a clean bar above or below it (no text means no bar), and the canvas grows to fit, so nothing is cropped or covered. Pick the bar and text colours (a black bar with white text by default), then play with the post-production controls - a colour grade plus saturation, brightness, contrast, temperature and hue - to make it pop. Free, no signup, no watermark.
API
POST /api/tools/meme-generator/run (multipart/form-data) → JSON with
outputs[].url, a zip link and a config_url.
Every run also hands you the config JSON (button above). It is the request body - POST it straight back to replay the exact generation:
curl -X POST -H 'Content-Type: application/json' \\ --data @genbox-config-meme-generator.json \\ /api/tools/meme-generator/run
For AI agents · API specs
Technical specs
| Category | generate |
|---|---|
| Slug | meme-generator |
| Run endpoint | POST /api/tools/meme-generator/run |
| Content type | multipart/form-data (with file uploads) or application/json |
| Response | JSON: job, notes, outputs[].url, zip, config_url |
| Rate limit | API: 1 request / minute / IP. Live preview and image renders have their own separate limits, plus a short global cooldown between renders (storm protection). Over a limit you get HTTP 429 + a Retry-After header (local requests are unlimited) |
| Machine-readable spec | GET /api/tools/meme-generator |
| OpenAPI 3.1 (Swagger) | this tool (JSON) · all tools |
Request body
Every parameter accepted by the run endpoint, in request-body order.
Fields are optional unless marked required. The same schema is published as
OpenAPI 3.1.
Upload files with multipart/form-data; a JSON body replays a saved config.
| Parameter | Type | Required | Default / allowed values | Description |
|---|---|---|---|---|
photos |
file | no | |
Upload a photo to turn into a meme. |
gen_prompt |
genprompt | no | |
|
top_caption |
text | no | |
Leave empty for no top bar. |
bottom_caption |
text | no | |
Leave empty for no bottom bar. |
bar_color |
color | no | #000000 |
|
font_color |
color | no | #ffffff |
|
grade |
select | no | none · warm · cool · vivid · cinematic · vintage · faded · mono |
|
saturation |
range | no | 0 |
|
brightness |
range | no | 0 |
|
contrast |
range | no | 0 |
|
temperature |
range | no | 0 |
|
hue |
range | no | 0 |
Call it from an agent
GET /api/tools/meme-generator- machine-readable spec of this tool (inputs, category, API block).GET /api/tools- list of every tool plus the categories.POST /api/tools/meme-generator/run- run it. Acceptsmultipart/form-data(with files) or a rawapplication/jsonbody. Returns JSON withoutputs[].url,zipandconfig_url.- The
config_urlJSON is the request body - POST it back to replay the same generation.
# agent example curl -s https://genbox.eu/api/tools/meme-generator/run \\ -H 'Content-Type: application/json' \\ --data @genbox-config-meme-generator.json
Rate limits
- Max 1 request per minute per IP on the run endpoint.
- Over the limit you get HTTP 429 with
retry_after(seconds) - wait that long and retry. - Higher limits and API keys are coming soon: an API key will lift the per-IP throttle. Not available yet.