API reference

Embed fonts with the CSS2 endpoint, fetch the catalog as JSON, and wire stable file URLs for production.

Compression & formats

Browsers support different file formats (WOFF2WOFFTTFOTF). The CSS API emits several src candidates per face so each browser can pick the best format it understands.

CSS API

Example
<link rel="stylesheet" href="https://www.geezarchive.com/css2?family=Mahtot&display=swap" />
  • family: required (name or slug)
  • display: optional (swap, block, fallback…)
  • faces: optional — primary returns only the primary file’s @font-face (smaller CSS and fewer font downloads). Default all emits every mapped file in the family.
  • Fallback order: each @font-face uses multiple src entries in the order woff2 woff ttf/otf so 404s don’t break previews.

Stable font URLs

Use the site's public path GET /fonts/<filename>. It responds with a redirect to the hosted font bytes. In HTML, CSS, apps, and docs, link to this hostname and path only—do not copy long third-party storage URLs from exports or admin screens.

Avoid (opaque host / not portable)
https://storage.example.com/v1/buckets/…/objects/MyFont_abc123.ttf
Prefer (this site)
https://www.geezarchive.com/fonts/MyFont_abc123.ttf

Summary: ship https://www.geezarchive.com/fonts/<filename> (or a same-origin relative /fonts/<filename>) in anything end users or integrators will see.

Mobile, Flutter, and native apps

The /css2 stylesheet is for browsers (HTML, WebView, Flutter web). On iOS, Android, Flutter mobile, React Native, there is no @font-face pipeline—load the font fileover HTTPS and register it with each platform's API.

  1. Discover files via GET /api/catalog/fonts (or open a family in the catalog). Each row includes public fields such as name, slug, previewSrc (path on this site for the preferred web font), and fileLabel (primary filename). Prefer previewSrc when present; otherwise use /fonts/<fileLabel>.
  2. Build a download URL: absolute https://www.geezarchive.com+ previewSrc, or https://www.geezarchive.com/fonts/<filename>. Use HTTPS.
  3. Load in the app: download bytes, then use Flutter FontLoader / rootBundle, React Native expo-font loadAsync with a remote uri, iOS CTFontManagerRegisterFontsForURL, Android Typeface / Fontfrom file or stream. Respect the family's license in your app.

Catalog API

GET /api/catalog/fonts returns JSON: data (font rows) and meta (public pagination fields: total, catalogTotal, returned, hasMore, offset, limit, optimizedAt, typeface). Query parameters:

  • q: optional search string (name, slug, designer, publisher)
  • typeface: optional filter
  • limit: optional, default 50, max 200
  • offset: optional, default 0

Rows mirror the public catalog fields; integrators should rely on documented fields such as previewSrc and fileLabel for stable URLs rather than copying raw paths from nested objects.

Example
https://www.geezarchive.com/api/catalog/fonts?q=loga&limit=20