Fonts
Returns the fonts available in your Abyssale workspace, ordered by name: the Google Fonts pre-loaded by Abyssale and any custom fonts you have uploaded via the dashboard. Search by name, filter by category and weight, and page.
Use the id from the response to force a specific font on a Text or Button element using the font property.
Sample request
curl -H "x-api-key: {YOUR-API-KEY}" https://api.abyssale.com/fontsimport abyssale from '@abyssale/sdk';
// Set ABYSSALE_API_KEY env var before running
const { data, error } = await abyssale.listFonts();
if (error) console.error(error);
else console.log(data.map((f) => `${f.id} ${f.name}`).join('\n'));from abyssale import Abyssale
# Set ABYSSALE_API_KEY env var before running
with Abyssale() as client:
fonts = client.list_fonts()
for font in fonts:
print(font.id, font.name)Query parameters
All parameters are optional. Without any, the answer is every font.
| Parameter | Type | Description |
|---|---|---|
name | string | Text in the font name, ignoring case, accents, spaces, hyphens and underscores: OpenSans finds Open Sans. Exact names come first, then names starting with the text, then the rest. |
category | string | serif, sans-serif, display, handwriting or monospace. Google fonts only — custom fonts have no category. |
weight | integer | Only fonts with this weight: 100 to 900 by hundreds (700 is bold). Upright, unless style=italic. |
style | string | normal or italic: only fonts with a variant in this style. With weight, that weight in that style — weight=700&style=italic keeps fonts that have 700-italic. |
type | string | "google" or "custom". An unknown value is ignored — the full unfiltered list is returned, never a 400. |
page | integer | 1-based page number. Sending page or per_page turns paging on. |
per_page | integer | Fonts per page when paging: 25 by default, at most 100. |
The number of matching fonts, across all pages, is in the X-Total-Count response header. A wrong category, weight, style, page or per_page answers 400 (unknown_enum_value, out_of_range or wrong_type); a parameter this endpoint does not define is ignored.
TIP
"Bold" is a weight and "italic" a style, not part of a name: search the family by name and add weight=700 or style=italic. To render italic, wrap the text in <w=italic>…</w> — or <w=700-italic>…</w> for bold italic.
Response
Returns an array of font objects.
| Field | Type | Description |
|---|---|---|
id | string (uuid) | Unique identifier of the font. Use this value for the font property in generation requests. |
name | string | Display name of the font, e.g. "Ubuntu Mono". |
type | string | Font source: "google" for Google Fonts, "custom" for fonts uploaded to your workspace. |
category | string | Google fonts only: serif, sans-serif, display, handwriting or monospace. Absent on custom fonts. |
available_weights | array | List of supported weights. Numeric values (100–900) for regular weights; string values like "400-italic" for italic variants. |
Response example
[
{
"id": "61568e7c-33c5-11ea-9877-92672c1b8195",
"name": "Ubuntu Mono",
"type": "google",
"category": "monospace",
"available_weights": [400, 700, "400-italic", "700-italic"]
},
{
"id": "a3f92c10-44d1-22fb-8988-03783d2c9306",
"name": "Brand Sans",
"type": "custom",
"available_weights": [400, 600, 700]
}
]Related
- Text — override a text layer's
font - Button — override a button label's
font - Node.js SDK · Python SDK — every method, config, retries and the polling helpers
