Skip to content
Bloomcount API
Esc
navigateopen⌘Jpreview

List categories

Every category on the tenant, sorted by label, unpaginated.

A product’s category holds the label text rather than an ID, so this endpoint is how an integration learns which labels will match before writing products.

GET/api/v1/categories
Authorization
AuthorizationBearer token (bloomcount_...) · headerrequired
Query parameters
fieldsstring
Comma-separated list of the fields to return, so a caller can ask for the parts of an object it actually uses. A dotted path reaches inside a collection, so `variants.sku` keeps the variants array with only each variant's SKU. The object's own id comes back whether or not it is listed, which keeps a trimmed response addressable. A name that the resource hasn't got returns 422 `unknown_fields:` followed by the names that did not resolve. Omit the parameter for the full object.
Responses
200OK
itemsCategory[]required
Show properties
Array of Category
categoryIdstringrequired
namestringrequired
The label a product's category is matched against.
colorstringrequired
isPresetbooleanrequired
Preset categories ship with the account and can't be deleted.
401Missing or invalid API key, or revoked / expired.
errorstringrequired
403Authenticated, but the key lacks the required scope or the tenant has no API access.
errorstringrequired
429Per-minute rate limit (60/min) or per-month cap exceeded.
errorstringrequired
Try it
Server
Authorization
Parameters
Request
curl -X GET "https://app.bloomcount.com/api/v1/categories" \
  -H "Authorization: Bearer YOUR_TOKEN"
Response
{
  "items": [
    {
      "categoryId": "cat_n3q8w5y0m2k7r4t9v1x6z3b8",
      "name": "Roses"
    },
    {
      "categoryId": "cat_p4r9x6z1n3m8k5t0v2y7b4c9",
      "name": "Sundries"
    }
  ]
}