# Tang Tard Meme Factory — LLM Integration Guide > Meme editor with open API. No API key required. ## Quick Start Open the meme editor with a pre-loaded image: ``` https://smoothbrain.app/app?image=IMAGE_URL&mode=tard ``` That's it. One URL. Opens in browser with the image ready to edit. ## URL Parameters | Param | Required | Description | |-------|----------|-------------| | `image` | Yes* | Direct URL to any image | | `template` | Yes* | Search imgflip templates by name (e.g. `drake`) | | `mode` | No | `tard` (default) or `chad` | | `top` | No | Pre-fill top caption text | | `bottom` | No | Pre-fill bottom caption text | | `ref` | No | Referral source for analytics | *One of `image` or `template` is required. ## Examples Load a custom image in tard mode: ``` https://smoothbrain.app/app?image=https://example.com/meme-template.jpg&mode=tard ``` Load Drake template with captions: ``` https://smoothbrain.app/app?template=drake&top=Writing%20docs&bottom=Writing%20memes&mode=chad ``` ## API Endpoints Base URL: `https://smoothbrain.app` All endpoints are public. No API key needed. Fair-use rate limits apply per IP. ### GET /api/v1/health Returns service status. ### GET /api/v1/templates?search=QUERY&limit=N Search meme templates from imgflip. Returns `{ templates: [...], count: N }`. ### GET /api/v1/templates/:id Get a single template by ID. Returns template details plus editor URLs. ### POST /api/v1/memes/render Generate an editor URL with pre-loaded config. Request body: ```json { "image": "https://example.com/template.jpg", "mode": "chad", "topText": "Top caption", "bottomText": "Bottom caption" } ``` Response: ```json { "editorUrl": "/app?image=...&mode=chad&top=...&bottom=...", "fullUrl": "https://smoothbrain.app/app?image=...&mode=chad&top=...&bottom=..." } ``` ### POST /api/v1/memes/render-image Render a meme as an SVG image. Returns `image/svg+xml` (not JSON). No AI key needed. Request body: ```json { "image": "https://i.imgflip.com/30b1gx.jpg", "topText": "TOP TEXT", "bottomText": "BOTTOM TEXT" } ``` Response: raw SVG image with embedded source + styled text. Save with `-o meme.svg`. ### POST /api/v1/memes/caption (BYOK) Generate AI captions. Pass your own API key — used once, never stored. Request body: ```json { "image": "https://example.com/meme.jpg", "provider": "openrouter", "apiKey": "sk-or-...", "topic": "crypto", "roastMode": false } ``` Providers: gemini, openai, anthropic, openrouter, xai, meta, groq, together, mistral, deepseek, fireworks, local, custom Response: `{ captions: [{ topText, bottomText }, ...], editorUrl }` ### POST /api/v1/memes/imagine (BYOK) Generate an AI image from a prompt. Request body: ```json { "prompt": "confused orange cartoon", "provider": "openai", "apiKey": "sk-..." } ``` Image gen providers: gemini, openai, openrouter, xai Response: `{ image: "data:image/png;base64,..." }` ### POST /api/v1/memes/auto (BYOK) Full pipeline: analyze image, generate captions, return editor URL. One AI call. Request body: ```json { "image": "https://example.com/meme.jpg", "provider": "groq", "apiKey": "gsk_...", "mode": "chad", "topic": "gym bros" } ``` Response: `{ templateMatch, captions: [...], editorUrl, fullUrl }` ## Integration Pattern For platforms hosting meme competitions or template libraries: ```html Make a Meme ``` No SDK, no API key, no auth. Just a link.