Catalog
Endpoints for listing and resolving brands from the catalog.
GET /v1/catalog
Paginated list of services.
| Aspect | Detail |
|---|---|
| Header | X-API-Key: YOUR_API_KEY |
| Query | limit - integer 1–200, default 50 |
| Query | offset - integer ≥ 0, default 0 |
Response: ServiceListResponse
items- array of servicestotal- total rows matching the cataloglimit,offset- echo of pagination params
Each item is a ServiceResponse with (among others):
| Field | Type | Notes |
|---|---|---|
id | integer | Stable id |
slug | string | URL-safe identifier |
name | string | Display name |
brandColor | string | null | Primary brand hex |
darkModeColor | string | null | Suggested dark-theme hex |
svgVariants | array | null | Variant metadata (variant, verified) |
colors | array | null | Color roles (role, hex, source) |
_css | object | null | CSS variables map (see below) |
_notice | string | Static legal / usage notice |
curl "https://api.scrift.app/v1/catalog?limit=2&offset=0" \
-H "X-API-Key: YOUR_API_KEY"
{
"items": [
{
"id": 1,
"slug": "stripe",
"name": "Stripe",
"brandColor": "#635BFF",
"darkModeColor": "#A29BFE",
"svgVariants": [{ "variant": "mono", "verified": true }],
"colors": [],
"_css": {
"--brand-color": "#635BFF",
"--brand-color-dark": "#A29BFE",
"--brand-color-contrast": "#FFFFFF"
},
"_notice": "…"
}
],
"total": 4000,
"limit": 2,
"offset": 0
}
GET /v1/catalog/{slug}
Single service by slug.
| Aspect | Detail |
|---|---|
| Header | X-API-Key |
| Path | slug - catalog slug |
Response: ServiceResponse (same fields as a list item).
Error: 404 with service_not_found if the slug does not exist.
curl https://api.scrift.app/v1/catalog/stripe \
-H "X-API-Key: YOUR_API_KEY"
POST /v1/catalog/batch
Resolve up to 50 slugs in one request.
| Aspect | Detail |
|---|---|
| Headers | X-API-Key, Content-Type: application/json |
| Body | { "slugs": ["stripe", "github", "vercel"] } |
Response:
results- object mapping each requested slug to aServiceResponseornullif missingfound- count of slugs that resolvednotFound- array of slugs with no match
curl -X POST https://api.scrift.app/v1/catalog/batch \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"slugs":["stripe","github","vercel"]}'
{
"results": {
"stripe": { "slug": "stripe", "name": "Stripe", "…": "…" },
"github": { "slug": "github", "name": "GitHub", "…": "…" },
"vercel": null
},
"found": 2,
"notFound": ["vercel"]
}
The _css object
_css is a small map of ready-to-use CSS custom properties, aligned with the returned colors, for example:
--brand-color--brand-color-dark--brand-color-contrast
Use them for inline styles or inject into a root container so your components can reference var(--brand-color) consistently.
For the full operation list and schemas, see the interactive API reference.