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.
| Method | Path | What it returns |
|---|---|---|
| GET | /api/v1/components | The 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/audit | The audit bands and counts the quality pages print. |
| GET | /api/exports/catalog.json | Every component, prompt, background and changelog entry with stored scores. |
| GET | /api/exports/tokens.json | The token set as DTCG JSON, parsed from the stylesheet at build time. |
| GET | /api/exports/all | The 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.json | The 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.