Fetching the catalog
Key points
- Font IDs are numeric (
1–90) - The API does not expose font names (intentional for licensing)
- Each font has
supported_languages(BCP-47 codes)
Reliability notes (important)
For most production use cases, we recommend starting with font IDs1 or 2. They are the most widely tested across page sizes, DPI, and typical parameter combinations.
Other fonts are supported, but handwriting fonts vary significantly in their glyph metrics (character widths, ascenders/descenders, line spacing, and kerning). In addition, some “natural” effects intentionally apply small random shifts/rotations. Because you’re rendering into a fixed page area (margins + single page), certain font/effect combinations can occasionally:
- look slightly different between requests (by design, when randomness is enabled)
- fit tighter than expected for some text
- touch margins or clip near edges in extreme cases
/preview with representative text (and run it multiple times if you enable random effects). Once you find a stable combination for your use case, lock the font_id + settings in your config.
Recommended workflow
1. Filter by language
If your text includes non-Latin characters, filter fonts by language:2. Test with preview
Use the free/preview endpoint to test fonts visually:
3. Lock your choice
Once you find a font you like, save thefont_id in your config:
Language support
Common language codes
| Code | Language | Notes |
|---|---|---|
en | English | All fonts |
de | German | Most fonts |
fr | French | Most fonts |
es | Spanish | Most fonts |
ru | Russian | Cyrillic fonts only |
uk | Ukrainian | Cyrillic fonts only |
el | Greek | Limited fonts |
ja | Japanese | Very limited |
hi | Hindi | Limited fonts |
Finding Cyrillic-capable fonts
FAQ
Why are some characters missing?
The font doesn’t support those characters. Solutions:- Check language support — Use
/fontsto find a font that supports your language - Stick to supported characters — Filter or validate input before sending
- Use a fallback font — Try font 1 (broad coverage) or font 10 (includes Japanese/Greek)
Why does my text look different than expected?
Fonts have different styles:- Some are more formal/cursive
- Some are more casual/print-like
- Line height and spacing vary
/preview to test before committing.
Which font should I use for…
| Use case | Suggested fonts | Why |
|---|---|---|
| Professional letters | 1, 2, 3 | Clean, readable |
| Greeting cards | 4, 5, 6 | Friendly, casual |
| Multi-language (Cyrillic) | 1 | Broad coverage |
| Multi-language (Japanese) | 10 | CJK support |
How do I match a specific handwriting style?
There’s no way to search by style. Use this approach:- Generate previews for all 90 fonts (takes ~90 preview calls)
- Compare visually
- Narrow down to 3-5 candidates
- Test with real content
- Lock your final choice