Browse the catalogue
search matches family names without regard to case, category takes an exact
value such as serif or sans-serif, and scope narrows the result to system
for the catalogue alone or custom for your own uploads. page and per_page
page through the result, up to 100 per page.
uuid or postscript_name: either one addresses the font in a render.
Use a font in a render
Setfont on a text layer override.
font and the layer renders in the typeface the designer chose. Send it
and the render uses yours, at the size and colour you set alongside it. See
Text layers for the rest of the override.
A uuid is the exact address, while a PostScript name is the readable one.
Prefer the uuid when a name could match more than one font available to you: an
ambiguous name returns 422 FONT_AMBIGUOUS with a candidates list rather than
choosing for you.
Upload your own font
POST /api/v1/fonts takes one TTF or OTF file, up to 5 MB, on Pro and Scale
plans. Pro includes 10 custom fonts and Scale is unlimited. Free and Starter
plans render from the catalogue.
license_confirmed: true, confirming you hold the right to
use and embed the font. Without it the upload returns 422 with
Confirm you have the right to use and embed this font.
The 201 response carries the font’s uuid and postscript_name, which is
what you send in a render from then on.
Get or delete a font
GET /api/v1/fonts/{uuid} returns a catalogue font or one of your own.
DELETE /api/v1/fonts/{uuid} removes one of your uploads and returns
{ "success": true }.
Catalogue fonts are read-only and cannot be deleted. Deleting a custom font is
permanent, so update any template or stored request that names its uuid first.
When a font is missing
If you send no replacement font, the layer renders in its original typeface where that is available. If an original or resolved catalogue font file cannot be loaded at render time, the render still succeeds in a default font and returns aTEXT_FONT_FALLBACK warning.
422 FONT_NOT_FOUND, so an exact brand typeface can
never be silently swapped for something else.
Check font_available on each text layer in the upload response and you know
which templates will fall back before you render one.
TEXT_FONT_MISSING_GLYPHS, so the fix is to pick a family that covers
the script you are rendering.
Text layers
Address a layer, override its wording, and read the support matrix.
Fonts reference
Every parameter and response field on the fonts endpoints.