Free meme API for developers. 2000+ templates, search, trending, AI generation. No API key needed.
https://justmeme.wtf/api/v1Content-Type: application/json and full CORS support.
// Get trending memes
const res = await fetch('https://justmeme.wtf/api/v1/trending');
const data = await res.json();
console.log(data.trending);
// Search for templates
const search = await fetch('https://justmeme.wtf/api/v1/templates/search?q=drake');
const results = await search.json();
console.log(results.templates);
// AI meme generation
const ai = await fetch('https://justmeme.wtf/api/v1/ai-generate', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ prompt: 'something funny about coding' })
});
const meme = await ai.json();
console.log(meme);
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (default: 1) |
| limit | integer | Results per page (default: 20, max: 100) |
| category | string | Filter by category slug (optional) |
curl "https://justmeme.wtf/api/v1/templates?page=1&limit=5"
{
"success": true,
"templates": [
{
"id": "drake-hotline-bling",
"name": "Drake Hotline Bling",
"slug": "drake-hotline-bling",
"url": "https://i.imgflip.com/30b1gx.jpg",
"categories": ["reaction", "comparison"]
}
],
"total": 2358,
"page": 1,
"limit": 5
}
| Param | Type | Description |
|---|---|---|
| q required | string | Search query (min 2 chars) |
curl "https://justmeme.wtf/api/v1/templates/search?q=drake"
{
"success": true,
"templates": [
{
"id": "drake-hotline-bling",
"name": "Drake Hotline Bling",
"slug": "drake-hotline-bling",
"url": "https://i.imgflip.com/30b1gx.jpg",
"categories": ["reaction", "comparison"]
}
],
"total": 3
}
| Param | Type | Description |
|---|---|---|
| slug required | string | Template slug (e.g. "drake-hotline-bling") |
curl https://justmeme.wtf/api/v1/templates/drake-hotline-bling
{
"success": true,
"template": {
"name": "Drake Hotline Bling",
"slug": "drake-hotline-bling",
"url": "https://i.imgflip.com/30b1gx.jpg",
"categories": ["reaction", "comparison"],
"page_url": "https://justmeme.wtf/meme/drake-hotline-bling"
}
}
curl https://justmeme.wtf/api/v1/trending
{
"success": true,
"trending": [
{
"id": "drake-hotline-bling",
"name": "Drake Hotline Bling",
"slug": "drake-hotline-bling",
"url": "https://i.imgflip.com/30b1gx.jpg",
"categories": ["reaction"]
}
]
}
curl https://justmeme.wtf/api/v1/categories
{
"success": true,
"categories": [
{ "slug": "reaction", "name": "reaction", "count": 342 },
{ "slug": "comparison", "name": "comparison", "count": 198 },
{ "slug": "animal", "name": "animal", "count": 156 }
]
}
| Field | Type | Description |
|---|---|---|
| prompt required | string | What the meme should be about (3-300 chars) |
curl -X POST https://justmeme.wtf/api/v1/ai-generate \
-H "Content-Type: application/json" \
-d '{"prompt": "something funny about coding"}'
{
"success": true,
"template": "drake-hotline-bling",
"top_text": "Writing tests",
"bottom_text": "console.log debugging",
"editor_url": "https://justmeme.wtf/?template=drake-hotline-bling"
}
curl https://justmeme.wtf/api/v1/random
{
"success": true,
"template": {
"name": "Distracted Boyfriend",
"slug": "distracted-boyfriend",
"url": "https://i.imgflip.com/1ur9b0.jpg"
}
}
All errors follow a consistent format:
{
"success": false,
"error": "Description of what went wrong"
}
| Status | Meaning | When |
|---|---|---|
| 400 | Bad Request | Missing or invalid parameters |
| 404 | Not Found | Template or endpoint not found |
| 429 | Too Many Requests | Rate limit exceeded (60/min) |
| 500 | Server Error | Something went wrong on our end |
| 503 | Service Unavailable | AI service temporarily down |
No. The API is completely free and requires no authentication. Just start making requests.
60 requests per minute per IP address. The AI generation endpoint shares this limit. If you need more, open an issue on GitHub.
Yes. The API is free for personal and commercial use. Please include attribution to justmeme.wtf when possible.
Not yet. The API uses standard REST conventions so any HTTP client works. Check GitHub for community wrappers.
Trending templates are refreshed every 6 hours from imgflip. New templates can be added via the submit endpoint or by the community.