ZenodeZenode
Concepts

Identifiers & slugs

The Zenode API identifies resources with human-readable slugs. Learn how part, manufacturer, and category identifiers are formed and what stays stable.

Zenode resources are identified by stable, human-readable slugs, never by internal database IDs. Store the slugs you receive; they keep resolving as the catalog grows.

Manufacturers

A manufacturer is identified by its slug — lowercase kebab-case, e.g. texas-instruments-inc. It appears as manufacturer.slug on part results and as the path segment for manufacturer lookups.

A manufacturer slug is stable: once the API returns one, it remains valid and is not reused for a different manufacturer.

Parts

A part is identified by the pair of its manufacturer slug and its MPN slug:

TEXT
1(manufacturer slug, mpn_slug) → texas-instruments-inc + TL072CP

Both halves are required, because the same MPN can exist under different manufacturers (st-microelectronics + 2N2222 is a different part from microchip-inc + 2N2222). Part-scoped endpoints take them as two path segments:

TEXT
1GET /v1/parts/texas-instruments-inc/TL072CP

Every part object carries two related fields:

FieldWhat it is
mpnThe full, orderable manufacturer part number (raw — may contain characters like / or #). Use it for display and ordering.
mpn_slugA URL-safe, case-preserving encoding of the MPN. Use it (with the manufacturer slug) as the identifier you pass back to the API.

For most parts mpn_slug equals the MPN. When an MPN contains characters that aren't URL-safe, only those characters are escaped (case is preserved), so LM358/NOPB becomes LM358~2FNOPB. You never need to compute this yourself — use the mpn_slug value Zenode returns.

Part lookups are case-insensitive when unambiguous: requesting …/tl072cp redirects to the canonical …/TL072CP. Storing the exact mpn_slug we return avoids the extra hop.

Categories

Categories are hierarchical. A category slug is the full path from the root, with levels joined by /:

TEXT
1amplifiers/operational-amplifiers
2passive-components/resistors/chip-resistor-surface-mount

The full path is part of the identifier because leaf names repeat across branches (e.g. "Thin Film" appears under more than one parent). A CategoryRef carries the leaf name, the full-path slug, and a path array of its ancestors for breadcrumbs.

When you filter by a category slug, the match is subtree-inclusive — filtering on amplifiers returns parts in every amplifier subcategory.

Treat slugs as tokens

Slugs are readable for convenience, but treat each as a single opaque token: don't parse a slug to infer structure beyond the documented (manufacturer, mpn) and category-path forms.

Next