Categories
Category taxonomy endpoints
Categories are hierarchical. A category is identified by its full root→leaf path slug (see
Identifiers), e.g. integrated-circuits-ics/linear. These
endpoints resolve names to canonical categories and let you walk the tree. Free — no match or
part-record billing (abuse-tracked only).
parts:read
Match a category
Resolve a full or partial category name to canonical Zenode categories — useful for turning a free-text category into the path slug you pass to catalog search filters.
https://api.zenode.ai/v1/categories/matchFreeRequest
1{2 "query": "op amp",3 "limit": 104}| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Required | Full or partial category name |
limit | int | Optional | Max results, default 5, max 15 |
Response
1{2 "query": "op amp",3 "results": [4 {5 "category": {6 "slug": "amplifiers/operational-amplifiers",7 "name": "Operational Amplifiers",8 "path": [9 {10 "slug": "amplifiers",11 "name": "Amplifiers"12 },13 {14 "slug": "amplifiers/operational-amplifiers",15 "name": "Operational Amplifiers"16 }17 ]18 },19 "confidence": 9820 }21 ],22 "request_id": "req_3d90..."23}Each result is { category, confidence }, ranked best-first. The category is a
CategoryRef (slug, name, path).
Try it
1{2 "query": "op amp",3 "limit": 54}curl -X POST "https://api.zenode.ai/v1/categories/match" \ -H "Authorization: Bearer <YOUR_API_KEY>" \ -H "Content-Type: application/json" \ -d '{ "query": "op amp", "limit": 5}'Browse the tree
The same GET /v1/categories endpoint serves the tree two ways — one level at a time or the
whole thing at once — controlled by two optional query parameters:
https://api.zenode.ai/v1/categoriesFree| Parameter | Type | Required | Description |
|---|---|---|---|
parent | string | Optional | List this category's direct children. Omit (or leave empty) for the top-level (root) categories. |
all | bool | Optional | Return every category flat in one call. Combine with parent to flatten just that subtree. Default false. |
Both forms return a list of CategoryNodes — { slug, name, has_children, part_count }. has_children tells you whether a node can be drilled into; part_count is the
subtree-inclusive part count.
1# Top-level (root) categories2curl https://api.zenode.ai/v1/categories \\3 -H "Authorization: Bearer <YOUR API KEY HERE>"45# Direct children of one node6curl "https://api.zenode.ai/v1/categories?parent=integrated-circuits-ics" \\7 -H "Authorization: Bearer <YOUR API KEY HERE>"89# The entire taxonomy, flat, in one call10curl "https://api.zenode.ai/v1/categories?all=true" \\11 -H "Authorization: Bearer <YOUR API KEY HERE>"1{2 "categories": [3 {4 "slug": "amplifiers/operational-amplifiers",5 "name": "Operational Amplifiers",6 "has_children": true,7 "part_count": 12848 },9 {10 "slug": "amplifiers/instrumentation-amplifiers",11 "name": "Instrumentation Amplifiers",12 "has_children": false,13 "part_count": 21214 }15 ],16 "request_id": "req_7a02..."17}Try it — one level at a time
Leave parent empty for the root categories, or set it to a category slug (e.g.
integrated-circuits-ics) to list that node's direct children. Follow has_children to know
which results you can expand next — this is the lazy way to walk the tree as a user clicks through it.
Category slug to list children of; empty = roots
Return every category flat in one call (combine with parent to flatten a subtree)
curl -X GET "https://api.zenode.ai/v1/categories" \ -H "Authorization: Bearer <YOUR_API_KEY>"Try it — the whole taxonomy
Prefer one flat call when you want the entire tree (e.g. to build a picker client-side). ?all=true
returns all ~1,200 categories at once; each slug encodes its full path, so you can reconstruct the
hierarchy without further requests. Use one-level browsing instead when you're drilling in
interactively and don't need every node.
Return every category flat in one call
curl -X GET "https://api.zenode.ai/v1/categories?all=true" \ -H "Authorization: Bearer <YOUR_API_KEY>"Category detail
https://api.zenode.ai/v1/categories/{slug}FreeThe {slug} is the full path and may span several URL segments. Returns the
Category object — slug, name, description, the path
breadcrumb, and its immediate children (each a CategoryNode):
1{2 "category": {3 "slug": "amplifiers/operational-amplifiers",4 "name": "Operational Amplifiers",5 "description": "Amplifiers that amplify the voltage difference between two inputs …",6 "path": [7 {8 "slug": "amplifiers",9 "name": "Amplifiers"10 },11 {12 "slug": "amplifiers/operational-amplifiers",13 "name": "Operational Amplifiers"14 }15 ],16 "children": [17 {18 "slug": "amplifiers/operational-amplifiers/precision",19 "name": "Precision",20 "has_children": false,21 "part_count": 31822 }23 ]24 },25 "request_id": "req_4f51..."26}404Not Found not_found if the path matches no category. Inside part results, categories appear as the
lighter CategoryRef (slug, name, path).
Try it
The slug may span several segments — enter the full path (e.g. integrated-circuits-ics/linear):
Full category path slug
curl -X GET "https://api.zenode.ai/v1/categories/integrated-circuits-ics/linear" \ -H "Authorization: Bearer <YOUR_API_KEY>"Filtering catalog search by a category slug is
subtree-inclusive — filtering on amplifiers returns parts in every amplifier subcategory.
Next
- Manufacturers — the same pattern for manufacturers
- Part Catalog search — filter parts by category
- Identifiers — how category path slugs work