Free, versioned, rate limited. Provenance in every response. No key needed to read the catalog.
| GET /api/v1/catalog | ?jurisdiction= §or= &coverage_status= &limit= (max 100) |
|---|---|
| GET /api/v1/catalog/{slug} | one catalog entry, full metadata |
| GET /api/v1/families | ?record_class= &published= &limit= — all 100 families, published and withheld, each with withheld_reason |
| GET /api/v1/families/{slug} | one family |
| GET /api/v1/meta | catalog counts, jurisdictions, sectors, limitations |
A withheld family has no page and is not in the sitemap. It is still returned by /api/v1/families, with the reason — so nobody has to guess whether we looked.
Unsupported parameters are accepted, ignored and logged — asking for a field we do not have is the most useful thing you can tell us.