Skip to navigation

Upload Template

Add a background by sending the picture itself, as multipart/form-data.

createTemplate takes an address, which assumes the caller already has somewhere to serve the file from. A script pulling pictures out of a shared drive does not. The image’s dimensions are read from the file, so they do not need to be supplied.

It joins the library unless sent curate=false, so by default it is a key’s, which acts with an app admin’s rights, or the session of an app admin of Memegen; anybody else’s session is 403 admin_required. With curate=false it is a background for one meme, which anybody but a Viewer of Memegen (403 viewer_only) may upload, as in the app and through MCP, and stays out of the picker. Each upload is a new template; its slug comes from its name, numbered (-2, -3…) if it clashes.

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Request

This endpoint expects a multipart form containing a file.
filefileRequired
namestringOptional
Folded onto one line, trimmed and cut at 120 characters. Left out or blank, the file name, made presentable.
layoutenumOptional
Where the captions sit on a template.
Allowed values:
curatebooleanOptional

true or false. Left out, true: into the library, an app admin’s or a key’s. false: a background for one meme, anybody’s but a Viewer’s. Anything else is 422.

Response

This endpoint returns an object.
idstring
organizationIdstring
namestring
slugstring
layoutenum
Where the captions sit on a template.
Allowed values:
curatedboolean
Part of the library the workspace curates, rather than a background somebody found while composing one meme. Only curated templates appear in the picker.
archivedboolean

Out of the picker. Memes already made from it keep rendering, which is why a template is archived rather than deleted, but no new meme can be made from it. Only an app admin of Memegen, or a key, brings one back: archived: false on PATCH, or adding its picture again with POST /meme-templates, /meme-templates/from-url or /meme-templates/import, which restores it. Anybody else who adds the same picture again is refused (“An admin removed this template.”) and it stays archived.

sortOrderinteger
createdAtdatetime
updatedAtdatetime
builtinKeystringOptional
Set on the templates that ship with the app.
imageUrlstringOptional

The background, an http or https address. Absent on a built-in, which the app draws itself.

widthintegerOptional
The background's real pixel size, so the canvas can match the picture instead of cropping it into a fixed box.
heightintegerOptional
attributionstringOptional
Where a searched template came from. The background is served from there rather than copied, so the credit stays with the row.
sourceUrlstringOptional
Where the credit links to, an http or https address.

Errors

402
Subscription Required Error
403
Forbidden Error
422
Validation Error
429
Too Many Requests Error