Skip to main content
A font is the typeface a text layer is drawn in. Every account renders from a shared catalogue, and Pro and Scale accounts add their own licensed files to it. A render names the font it wants, and the layer comes back set in it. Reach for the catalogue when you need to:
  • Match a brand: render in the typeface your licence covers.
  • Pick without uploading: use an open-licensed family already on the account.
  • Know before you render: see which templates fall back to a default.

Browse the catalogue

The catalogue is the open-licensed Google Fonts library, 2,000+ families under the OFL, Apache and UFL licences, free to use in commercial work. Narrow it by name, classification or origin.
Part of a family name. Case does not matter, so open finds Open Sans.
string
One classification only. Possible values:
  • sans-serif
  • serif
  • handwriting
  • display
  • monospace
string
default:"all"
Which fonts come back. Possible values:
  • all: the catalogue and your uploads
  • system: the catalogue alone
  • custom: your uploads alone
page and per_page walk the result. See Pagination.

Upload your own font

Send one TTF or OTF per request, as the file itself or as a public link to it.
file
The TTF or OTF file, sent as multipart form data. Send this or url.
string
A public link to a TTF or OTF file, sent in a JSON body. Send this or file.
boolean
required
Confirmation that you hold the right to use and embed the font. Without it the upload comes back as a 422 reading Confirm you have the right to use and embed this font.
Uploading is on the Pro and Scale plans, and every plan renders from the catalogue. Pro holds 10 custom fonts and Scale is unlimited.

Use a font in a render

Set font on a text layer override, to the uuid or the postscript_name. Leave it out and the layer keeps the typeface the designer chose. The uuid is the exact address, so prefer it when a name could match more than one font. Text layers carries the whole override, including the size and colour you set alongside the font, and Render a PSD mockup carries the request it belongs to.

Response format

A font reads back as the same object from every endpoint that returns one. A list wraps those objects in data alongside pagination, and an upload returns the one it created, with is_system false.
Font object

Limitations

Uploading holds to a few fixed bounds:
  • One file per upload, TTF or OTF, up to 5 MB.
  • Each weight is its own upload, so Regular, Medium and Bold is three uploads and three PostScript names.
  • Catalogue fonts are read-only and cannot be deleted.
  • Deleting your own is permanent. Update any template naming its uuid first.

Troubleshooting

A font you asked for is not available

A font you name explicitly never falls back. A uuid or PostScript name outside your catalogue comes back as 422 FONT_NOT_FOUND, so a brand typeface is never silently swapped. Upload the file, or ask for one the catalogue lists.

A name matches more than one font

The answer is 422 FONT_AMBIGUOUS with a candidates list rather than a choice made for you. Send one of those uuids as font.

The template’s own font is missing

Send no replacement and the layer renders in its original typeface, where that is available. Where the file cannot be loaded, the render still succeeds in a default font and carries a TEXT_FONT_FALLBACK warning. Read font_available on each text layer of the upload response and you know which templates fall back before you render one.

The font lacks characters in your text

A font that is present but does not cover the replacement text carries a TEXT_FONT_MISSING_GLYPHS warning. Pick a family that covers the script.

API reference

Text layers

Address a layer, override its wording, and read what renders.

Fonts in the dashboard

Browse the gallery and upload from the panel.