---
title: "Get all Nodes"
method: GET
path: "/catalog/nodes"
tags: ["Shopper Catalog API"]
---

# Get all Nodes

`GET /catalog/nodes`

## Request

- Base URL: `https://euwest.api.elasticpath.com`
- URL: `https://euwest.api.elasticpath.com/catalog/nodes`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/elasticpath/apis/catalogs-introduction/docs/catalog/nodes/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns all nodes in the catalog.

If you have multiple catalog rules defined, the rule that best matches the shoppers context is used to determine which catalog is retrieved. For information about how rules are matched, see [Resolving Catalog Rules](/docs/api/pxm/catalog/rules#resolving-catalog-rules).

You can see the parent nodes a node is associated with in the `breadcrumbs` metadata for each node. This is useful if you want to improve how your shoppers search your store, for example. See [Product and Node Associations in Breadcrumb Metadata](/guides/How-To/Catalogs/breadcrumbs).

In a catalog, you can use a filter to return a list of nodes in a hierarchy structure that a product belongs to. You can use this to build breadcrumbs in your storefront. For more information, see [Building breadcrumbs in a storefront](#building-breadcrumbs-in-a-storefront).

The response lists the products associated with the nodes. If products are [curated](/guides/How-To/Products/curating-products), they are displayed in `curated_products`. Product curation allows you to promote specific products within each of your hierarchies, enabling you to create unique product collections in your storefront.

- You can only curate 20 products or less. You cannot have more than 20 curated products.
- If a curated product is removed from a node, the product is also removed from the `curated_products` list.

### Filtering

This endpoint supports filtering. For general syntax, see [Filtering](/guides/Getting-Started/filtering). The following operators and attributes are available.

| Operator  | Description | Attributes | Example |
| --- | --- | --- | --- |
| `Eq` | Checks if the values of two operands are equal. If they are, the condition is true. | `name`, `slug` | `filter=eq(name,some-name)` |
| `in`      | Checks if the values are included in the specified string. If they are, the condition is true.
| `Id` |  `filter=in(id,9214719b-17fe-4ea7-896c-d61e60fc0d05,e104d541-2c52-47fa-8a9a-c4382480d97c,65daaf68-ff2e-4632-8944-370de835967d)` |

### Building breadcrumbs in a storefront

In a catalog, you can use the nodes directly attached to a product to build breadcrumbs in your storefront. This eliminates the need for additional queries to fetch hierarchy or parent node details. Each node contains all the necessary information in `breadcrumbs` metadata, such as its own details and the details of its parent hierarchy/node(s), to construct the complete breadcrumb path without requiring additional queries.

An example is shown below:

`filter=in(id,c83bfe55-0d87-4302-a86d-ab19e7e323f1,6003d7ef-84f3-49bb-a8bd-4cbfa203dcbb)`

- Specify the node IDs directly attached to the product in the filter expression.
- You can include as many node IDs as required.
- It does not matter what order you specify the node IDs. The nodes are returned in the order they were last updated.

## Query parameters

- `filter` string
- `page[limit]` integer
- `page[offset]` integer

## Headers

- `EP-Channel` string
- `EP-Context-Tag` string
- `accept-language` string

## Response `200`

The nodes of the catalog.

- NodeListData: Container for a list of nodes.
  - `meta` PageMeta: Contains the results for the entire collection.
    - `results` object: Total number of results for the entire collection.
      - `total` integer: Total number of results for the entire collection.
    - `page` object
      - `limit` integer: The maximum number of records for all pages.
      - `offset` integer: The current offset by number of pages.
      - `current` integer: The current number of pages.
      - `total` integer: The total number of records for the entire collection.
  - `data` Node[]
    - `attributes` NodeAttributes: Resource attributes of a catalog node.
      - `created_at` string, date-time: The date and time a node was created.
      - `published_at` string, date-time, nullable: The date and time a node was published in a catalog.
      - `description` string: A description of a node.
      - `label` string
      - `name` string: The name of a node. Names must be unique among sibling nodes in a hierarchy. Otherwise, a name can be non-unique within the hierarchy and across multiple hierarchies.
      - `slug` string: A slug for the node. Slugs must be unique among sibling nodes in the hierarchy. Otherwise, a slug can be non-unique within the hierarchy and across multiple hierarchies.
      - `curated_products` string[]: A list of curated products for a node. You can curate your products in your nodes product lists. Product curation allows you to promote specific products within each node in a hierarchy, enabling you to create unique product collections in your storefront.
      - `status` string
      - `shopper_attributes` ShopperAttributes: A collection of key-value string pairs, viewable by shoppers.
      - `updated_at` string, date-time: The date and time a node was updated.
    - `id` string: The unique identifier of a node.
    - `relationships` NodeRelationships: Relationships to parent and child nodes, and products.
      - `products` object: A URL to all products associated with a node.
        - `data` ProductReference[]
          - `id` string, uuid: A unique identifier for a product.
          - `type` 'product': This represents the type of object being returned. Always `product`.
        - `links` RelatedLink: A URL to a related object, for example, catalog rules, hierarchies, price books, products and deltas.
          - `related` string, required: A URL to a related object, for example, catalog rules, hierarchies, price books, products and deltas.
      - `children` object: A URL to all child nodes associated with a node.
        - `links` RelatedLink, required: A URL to a related object, for example, catalog rules, hierarchies, price books, products and deltas.
          - `related` string, required: A URL to a related object, for example, catalog rules, hierarchies, price books, products and deltas.
      - `parent` object: A URL to all parent nodes associated with a node.
        - `data` object, required
          - `type` 'node', required
          - `id` string, required
        - `links` RelatedLink: A URL to a related object, for example, catalog rules, hierarchies, price books, products and deltas.
          - `related` string, required: A URL to a related object, for example, catalog rules, hierarchies, price books, products and deltas.
      - `hierarchy` object: A URL to the hierarchies associated with a node.
        - `data` object, required
          - `type` 'hierarchy', required
          - `id` string, required
        - `links` RelatedLink: A URL to a related object, for example, catalog rules, hierarchies, price books, products and deltas.
          - `related` string, required: A URL to a related object, for example, catalog rules, hierarchies, price books, products and deltas.
    - `type` string: This represents the type of object being returned. Always `node`.
    - `meta` NodeMeta: A node's metadata.
      - `language` string: The node details localized in the supported languages.
      - `bread_crumb` string[]: Helps you understand the association of products with nodes. It explains how products are associated with parent nodes and the relationship among the array of nodes. This is useful if you want to improve how your shoppers search within you store.
      - `breadcrumbs` object[]: Node Breadcrumbs
        - `id` string: The unique identifier of a hierarchy/node.
        - `name` string: The name of the hierarchy/node.
        - `slug` string: A slug for the hierarchy/node.
      - `has_children` boolean, nullable: Indicates whether a node has child nodes. `true` if the node has at least one child, `false` if it has none.
  - `links` Links: Links allow you to move between requests.
    - `self` string, uri-reference, nullable: Single entities use a `self` parameter with a link the specific resource.
    - `first` string, uri-reference, nullable: Always the first page.
    - `last` string, uri-reference, nullable: This is `null` if there is only one page.
    - `prev` string, uri-reference, nullable: This is `null` if there is only one page.
    - `next` string, uri-reference, nullable: This is `null` if there is only one page.

## Other responses

- `default`: An unexpected error.

---

[API](https://skmtc.dev/elasticpath/apis/catalogs-introduction.md) - [All operations](https://skmtc.dev/elasticpath/apis/catalogs-introduction/llms.txt) - [OpenAPI document](https://skmtc.dev/elasticpath/apis/catalogs-introduction/revisions/eb541d5dea51?raw)
