Documentation
Full API reference for the Scrift brand asset API at api.scrift.app.
Authentication
All /v1/* requests
require an X-API-Key header. /healthz is
public.
Endpoints
/v1/catalog List all brand entries (paginated)
/v1/catalog/{slug} Get a single brand by slug
/v1/catalog/batch Resolve up to 50 slugs in one request (JSON body)
/v1/search?q= Search by name, slug, or alias
/v1/svg/{slug} Get raw SVG for a brand
/healthz Health check (no API key)
Catalog service (JSON)
Every service object returned from GET /v1/catalog (each
item), GET /v1/catalog/{slug}, each match in GET /v1/search, and each non-null entry in batch results shares the same shape. Normal fields use camelCase.
-
brandColor,darkModeColor- hex without#, ornull. -
_css-null, or an object with--brand-color,--brand-color-dark,--brand-color-contrast(#-prefixed hex). Apply as CSS custom properties (e.g. on a wrapper element’sstyle).nullwhenbrandColoris missing. -
_notice- static legal attribution string, identical on every object; points consumers to scrift.app/legal.
Batch lookup
Request body (max 50 slugs, 422 if exceeded). Slugs not in the catalog appear as null under results and are listed in notFound.
POST /v1/catalog/batch
Content-Type: application/json
{"slugs":["github","stripe","missing-slug"]} {
"results": {
"github": { "id": 1, "slug": "github", "name": "GitHub", ... },
"stripe": { ... },
"missing-slug": null
},
"found": 2,
"notFound": ["missing-slug"]
} Trademark notice
Brand logos and marks returned by this API are trademarks of their
respective owners. Scrift is a delivery layer - not a rights holder.
Your use of brand assets must comply with each brand's own guidelines.
The API also returns a _notice field
on each catalog object for programmatic display.
Read our full legal notice →