Skip to content

Bridge · #82

The API, as one list

9 GET endpoints, no auth, no rate limits recorded — the same list this page renders from is the one the importable collection is generated from, so the documentation and the tooling cannot drift. Every URL below is live on this deployment; curl any of them and you get the same bytes the site itself reads.

The 9 public GET endpoints this deployment serves
MethodPathWhat it returns
GET/api/v1/componentsThe component list as data — one entry per asset with its scores.
GET/api/v1/components/{slug}A single asset's full record; 404 carries the index URL.
GET/api/v1/auditThe audit bands and counts the quality pages print.
GET/api/exports/catalog.jsonEvery component, prompt, background and changelog entry with stored scores.
GET/api/exports/tokens.jsonThe token set as DTCG JSON, parsed from the stylesheet at build time.
GET/api/exports/allThe manifest of every export file with sizes and links.
GET/api/badge/{slug}The SVG badge for one asset's audit scores.
GET/og/{slug}The 1200×630 PNG share card for an asset or the site default.
GET/api/exports/component.schema.jsonThe JSON Schema a component response validates against — this collection's own contract.

Import once, point anywhere

The collection is Postman v2.1 — Bruno imports it directly, Postman through the v2.1 importer. The host variable starts at http://localhost:3139; set it to any deployment and every request follows, which is the whole reason the base is a variable and not baked into nine URLs.

The contract behind the responses

A component response is not a promise, it is a schema: component.schema.json is Draft-07, generated from the same types the site renders from, and the build checks a live response against it. If a field ever disagrees with the schema, the check fails before the page does.