---
title: "Creates a new catalog"
method: POST
path: "/catalogs"
tags: ["Catalogs"]
---

# Creates a new catalog

`POST /catalogs`

## Request

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

Before you create a catalog, you must define the following resources:

- Hierarchies - hierarchies and nodes to categorize the products.
- Products - product information, associated assets, and links to hierarchy nodes.
- Price Books - prices for the products associated with the hierarchies. You can create multiple price books for different scenarios, such as seasonal sales, business versus retail customer pricing, and reward programs. When creating a catalog, you can specify up to five price books. You must configure a priority for your price books. Product prices are displayed in the catalog according to the priority of the price books. Priority is a number and the price book with the highest number has the highest priority.

## Request body

- CatalogCreateData: Creates a catalog with the following attributes.
  - `data` object, required
    - `attributes` object, required
      - `name` string, required: The name of the catalog.
      - `description` string, nullable: A brief description of the catalog.
      - `hierarchy_ids` string[], required: The unique identifiers of the hierarchies to associate with a catalog.
      - `pricebook_id` string: The unique identifier of the price book to associate with this catalog. You can specify either a `pricebook_id` or `pricebook_ids` but not both. If you specify both a `pricebook_id` and `pricebook_ids`, a `422 Unprocessable Entity` error is displayed.
      - `pricebook_ids` object[]: If you want multiple price books for different scenarios, such as seasonal sales, business versus retail pricing, and reward programs, when creating a catalog, you can specify up to five price books. You must configure a priority for your price books. Product prices are displayed in the catalog according to the priority of the price books.
        - `id` string, uuid, required: A unique identifier of a price book.
        - `priority` integer, required: Priority is a number and the price book with the highest number has the highest priority.
      - `locales` object: Product Experience Manager supports localization of products and hierarchies. If you store supports multiple languages, you can localize product names and descriptions.
      - `enable_price_segmentation` boolean: This indicates whether the catalog will support price segmentation using catalog rules to define which pricebook(s) to use for pricing
      - `include_draft_products` boolean: When `true`, publishing this catalog includes products in `draft` status in the catalog release. When `false` or omitted, only `live` products are included in the release (default).
      - `max_published_releases` integer, nullable: The maximum number of published releases to keep for this catalog. Must be 1, 2, or 3; any other value returns 400 Bad Request. When omitted, the catalog stores 2.
      - `allow_search_overrides` boolean, nullable: When `true`, search overrides are allowed for this catalog. When omitted or null, the catalog stores `false`.
    - `type` 'catalog', required: Represents the type of object being returned. Always `Catalog`.

## Response `201`

The created catalog

- CatalogData: Container for a single catalog.
  - `data` Catalog, required: Creates a catalog with the following attributes.
    - `id` string, required: A unique identifier of a catalog.
    - `attributes` object, required
      - `name` string, required: The name of a catalog.
      - `description` string: A brief description of the catalog, such as the purpose of the catalog.
      - `hierarchy_ids` string[], required: The unique identifiers of the hierarchies associated with a catalog.
      - `pricebook_id` string: The unique identifier of a price book associated with a catalog. If no price book is selected, the catalog is displayed without prices.
      - `pricebook_ids` object[]: If you want multiple price books for different scenarios, such as seasonal sales, business versus retail pricing, and reward programs, when creating a catalog, you can specify up to five price books. You must configure a priority for your price books. Product prices are displayed in the catalog according to the priority of the price books.
        - `id` string, uuid, required: A unique identifier of a price book.
        - `priority` integer, required: Priority is a number and the price book with the highest number has the highest priority.
      - `locales` object: Product Experience Manager supports localization of products and hierarchies. If you store supports multiple languages, you can localize product names and descriptions.
      - `created_at` string, date-time, required: The date and time a catalog is created.
      - `updated_at` string, date-time, required: The date and time a catalog was updated.
      - `owner` 'store' | 'organization', nullable: The owner of this resource, can be either `organization` or `store`.
      - `enable_price_segmentation` boolean: This indicates whether the catalog will support price segmentation using catalog rules to define which pricebook(s) to use for pricing
      - `include_draft_products` boolean: When `true`, publishing this catalog includes products in `draft` status in the catalog release. When `false` or omitted, only `live` products are included in the release (default).
      - `max_published_releases` integer, nullable: The maximum number of published releases kept for this catalog. Omitted when the catalog has never stored a maximum.
      - `allow_search_overrides` boolean: When `true`, search overrides are allowed for this catalog. Defaults to `false`.
    - `relationships` object: Relationships are established between different catalog entities. For example, a catalog rule and a price book are related to a catalog, as both are associated with it.
      - `rules` object: The catalog rules related to a catalog.
        - `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.
      - `releases` object: When a catalog is published, a catalog release is created. This is a URL to all catalog published releases available for this catalog.
        - `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.
        - `meta` object
          - `count` integer: The number releases available for a catalog.
    - `type` 'catalog', required
  - `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`: 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)
