read.bulk.categories
The category map (id -> {name, path, status, icon_url}) for navigation/menus and the home tiles. Lists every category, inactive included (this is where the NAMES live) — the reader decides what it serves or links. Served on the BULK face: the same published answer as the public read, charged to the caller’s own bulk budget instead of the shopper’s, and never to be reached by a browser.
- Surface:
GET /v1/read/bulk/categories - Auth: ★ Bulk read (machine) — a TENANT credential is REQUIRED (no credential is
unauthorized), andstoremust be a store of THAT tenant (another tenant’s isforbidden). The ANSWER is the public read’s, byte for byte: this store’s published assortment, no drafts, no actor. What the credential buys is the BUDGET — this face has its ownRateLimit-*bucket, so walking a whole catalogue here takes nothing from the ceiling a shopper’s browser shares.
Params (JSON Schema)
Section titled “Params (JSON Schema)”{ "properties": { "store": { "minLength": 1, "type": "string" } }, "required": [ "store" ], "type": "object"}Result (200)
Section titled “Result (200)”Open (unknown) — this capability does not declare an output schema.
Errors
Section titled “Errors”invalid_params (400) · not_found (404) · unauthorized (401) · forbidden (403)