API Reference
Get blank template image
Returns the blank (un-captioned) source image for a template via 302 redirect to the public CDN URL. Use directly in `<img>` tags.
GET /v1/templates/{id}/image
Returns the blank source image for a template — no captions overlaid. The endpoint responds with a 302 redirect to the underlying public CDN URL, so browsers and image clients follow it transparently.
Why use this instead of image_url from GET /v1/templates/[id]?
Both work. image_url is cleaner if you're already fetching the JSON record
and want to render it yourself. This endpoint is cleaner when:
- You want to embed
<img src="https://api.createa.meme/v1/templates/tpl_x/image" />in HTML without a separate JSON fetch first - You want auth + rate-limit to apply to the image download
- You want the URL contract to remain stable even if storage backends change
Request
GET /v1/templates/{id}/image HTTP/1.1
Host: api.createa.meme
Authorization: Bearer cam_live_xxxxxxxxxxxxxxxxxxxx| Param | In | Required | Description |
|---|---|---|---|
id | path | Yes | Template ID, e.g. tpl_distractedboyfriend |
Response
302 redirect to the public CDN URL. Headers include:
Location— the CDN URL of the imageCache-Control: public, max-age=86400— safe to cache aggressively, source images don't change- Standard
X-RateLimit-*headers
Cost
Free — 0 credits per call, same as other read-only template endpoints.
Example
# Direct download
curl -L 'https://api.createa.meme/v1/templates/tpl_distractedboyfriend/image' \
-H 'Authorization: Bearer cam_live_xxxxxxxxxxxxxxxxxxxx' \
-o blank-template.png<!-- Embed in HTML -->
<img src="https://api.createa.meme/v1/templates/tpl_distractedboyfriend/image"
alt="Distracted Boyfriend blank template" />Errors
| Code | Status | When |
|---|---|---|
INVALID_API_KEY | 401 | Missing or invalid Authorization header |
RATE_LIMITED | 429 | Too many requests on this key |
TEMPLATE_NOT_FOUND | 404 | The template id doesn't exist or is inactive |