createa.meme
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
ParamInRequiredDescription
idpathYesTemplate ID, e.g. tpl_distractedboyfriend

Response

302 redirect to the public CDN URL. Headers include:

  • Location — the CDN URL of the image
  • Cache-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

CodeStatusWhen
INVALID_API_KEY401Missing or invalid Authorization header
RATE_LIMITED429Too many requests on this key
TEMPLATE_NOT_FOUND404The template id doesn't exist or is inactive

On this page