Upload workspace font

Changed on

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Uploads a font file to the workspace. Send it as multipart/form-data in a field named file.

Workspace fonts are font files the workspace uploaded, which every app in the workspace can use. Each font is one weight and style of a family, so a family with a regular and a bold weight is two fonts. Upload one file per weight and style.

The file can be TrueType, OpenType, WOFF or WOFF2, up to 5 MB. Font collections (.ttc) aren't supported. Base44 reads the family name, weight and style from the file itself, not from its file name, and stores the font as WOFF2.

When the workspace already has a font with the same family name, ignoring case, weight and style, you get that font back and the file you sent is discarded, so retrying an upload is safe below the font limit. A family name that's already a Google Fonts family is refused, and so is an upload once the workspace has 256 fonts.

In this response, created_date includes a +00:00 offset for a newly added font.

Fonts belong to the workspace your credential is for. With a personal access token, that's the token's workspace, and there's no parameter to choose another one.

Uploads are limited to 30 a minute for each workspace.

<Note>Call this as an owner, admin, or editor of the workspace, with a personal access token sent as a Bearer token, or from a signed-in session. A read-only token is refused, and workspace API keys aren't accepted.</Note>

post/api/fonts

Request

  • Base URL: https://app.base44.com
  • URL: https://app.base44.com/api/fonts
  • Auth: HTTP bearer

Response

The uploaded font, or the existing font with the same family, weight and style.

idstring required

ID of the font.

family_namestring required

Family name, read from the font file. Use it as the CSS font-family.

display_family_namestring nullable required

The broader family the font file says it belongs to, which groups stylistic variants such as an inline cut, or null when the file doesn't say.

variant_namestring nullable required

Name of the stylistic variant, or null when the file doesn't name one.

weightinteger required

Weight from 1 to 1000, usually a multiple of 100.

style'normal' | 'italic' required

Style of the font.

public_urlstring required

Public URL of the font as a WOFF2 file, for an @font-face src.

created_bystring required

Email of the member who uploaded the font.

created_datestring required

When the font was uploaded, as a UTC timestamp in ISO 8601 format.

Example response

{
  "id": "68d4b2e1f0a9c8001b3e5f27",
  "family_name": "Acme Sans",
  "display_family_name": "Acme",
  "variant_name": "Inline",
  "weight": 400,
  "style": "normal",
  "public_url": "https://media.base44.com/files/public/workspaces/67e0b12c4d8a3f005b21c9e4/fonts/3f9a1c2e_68d4b2e1f0a9c8001b3e5f27.woff2",
  "created_by": "dana@acme.com",
  "created_date": "2026-09-02T11:24:05.311000"
}

Changes