Skip to content
v0.3

read.bulk.category_paths

The ltree paths of the categories this store’s published assortment actually fills — a category with no published, buyable product in this store (in it or below it) is absent, and the ancestors of a filled category are present because their listing matches descendants. The categories map beside it is tenant-wide and is where the NAMES live; this answers what the store SERVES. 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/category_paths
  • Auth: ★ Bulk read (machine) — a TENANT credential is REQUIRED (no credential is unauthorized), and store must be a store of THAT tenant (another tenant’s is forbidden). 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 own RateLimit-* bucket, so walking a whole catalogue here takes nothing from the ceiling a shopper’s browser shares.
{
"properties": {
"store": {
"minLength": 1,
"type": "string"
}
},
"required": [
"store"
],
"type": "object"
}

Open (unknown) — this capability does not declare an output schema.

invalid_params (400) · not_found (404) · unauthorized (401) · forbidden (403)