POST /api/coolblue/categories
Price: 1 credit
List Coolblue product categories (taxonomy inventory): numeric id, slug, canonical landing URL, per-category sitemap URL. Optionally enrich each entry with breadcrumb parent path and pretty name by fetching the category landing page.
Coolblue product-category taxonomy. Default returns the raw sitemap inventory (includes legacy/system entries with no breadcrumb path). Each entry: id (numeric), slug, name, url (canonical landing), sitemap_url (per-category product inventory). Set include_breadcrumbs=true to also fetch each landing and fill parent (immediate parent category) and breadcrumbs (full path from site root); with include_breadcrumbs the name is replaced by the landing-page heading when available (more accurate than slug-derived). Combine include_breadcrumbs with exclude_orphan=true to drop legacy/system entries whose landing has no breadcrumb path, returning a clean taxonomy. Enabling include_breadcrumbs fetches each category landing page individually — cost and latency scale linearly with count.
access-token string requiredtimeout integer — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)count integer required — Max number of results (min: 1)include_breadcrumbs boolean — Fetch each category landing page to enrich with breadcrumb parent path and pretty name. Cost and latency scale linearly with count (one landing fetch per category). (default: false)exclude_orphan boolean — Drop legacy/system entries that have no reachable breadcrumb path. Only takes effect together with include_breadcrumbs. (default: false)@type string (default: "CoolblueCategoryEntry")id string requiredname string requiredslug string requiredurl string requiredsitemap_url string requiredparent object nullable@type string (default: "CoolblueCategoryRef")id string nullablename string requiredalias string nullableurl string nullablebreadcrumbs array nullable@type string (default: "CoolblueCategoryRef")id string nullablename string requiredalias string nullableurl string nullable422 — The request body did not validate Check the fields against this schema. A URN with the wrong prefix is the most common cause.408 — The request ran past its time limit Raise `timeout` in the request body, up to the maximum this endpoint documents. Lowering `count` or turning off the `with_*` flags also helps, because less work finishes sooner.412 — The entity was not found, or a precondition failed Retrying will not help: either the entity does not exist, or the input points at a different one.429 — Too many requests: a rate limit or a usage window is exhausted When the response carries an X-Retry-After header, wait that many seconds and retry: the same number is in the body as `detail.retry_after`, and the limit clears once that window passes. The message in the body names the limit that was hit.500 — Something broke on our side Retrying will not help. If it keeps happening, send us the X-Request-ID from the response headers.529 — Rate limit reached, or the endpoint is overloaded Wait at least 30 seconds, then retry.X-Error — Error message text (present only on error)X-Request-ID — Unique request identifierX-Execution-Time — Execution time in secondsX-Result-Count — How many records the body carries. 0 means an empty result, which is a normal answer and not by itself an error. A non-zero count can come back together with X-Error when the failure happened partway through — read this header and X-Error independently.X-Total-Available-Results — How many records exist for this query, when the endpoint can say. On a `dry_run` request this is the answer and the body is empty. It saturates: the endpoint's documented maximum means 'at least that many', any smaller number is exact.X-Warning — Present when the request body carried keys this endpoint does not document. They were ignored, so any filter you meant to apply through them did not apply. Check the spelling against this schema and retry.X-Retry-After — Seconds to wait before retrying. Present only on 429.