Elastic Path Releases API
When a catalog is published, a catalog release is created. A catalog release provides a snapshot of the product information taken at the time of publication. You can have one or more catalog releases available in your organization or in your store. If you publish a catalog for your organization, the catalog is available when the store is launched. If you have more than one catalog published for your store, use catalog rules to specify when to display each catalog. For example, you can use [**catalog rules**](/docs/api/pxm/catalog/rules) to schedule a catalog to appear during a particular date and time, such as a seasonal catalog. The catalog may have different pricing than the other catalogs. When a catalog is ready to be used in a store, you publish it. You can create and publish catalogs for different contexts and channels. Here are some pointers to understand a catalogs' lifecycle. - The default catalog is always the oldest published catalog and must have have at least one release. - At any time, the most recent three catalog releases are maintained. Hence, if there is a fourth catalog release, the first catalog release is automatically removed. - Until the catalog is published again, the previously created three catalog releases stay permanently. - If you want any other catalog to become the default catalog, you must create a catalog rule. - If you want the oldest published catalog to become the default catalog, you must remove the catalog rule. - Use the `sort_order` value in the `variations` to program your storefront to display the variation options in the order that you want. Here is a diagram that describes a catalogs' lifecycle:  ### Publishing catalogs When you publish a catalog, the `live` products in the hierarchies appear in a catalog release. A catalog release provides a snapshot of product information taken at the time of publication. You can have one or more catalog releases available in your organization or in your store. If you publish a catalog for your organization, the catalog is available when the store is launched. If you have more than one catalog published for your store, use catalog rules to specify when to display each catalog. For example, you can use [catalog rules](/docs/api/pxm/catalog/rules) to schedule a catalog to appear during a particular date and time, such as a seasonal catalog. The catalog may have different pricing than the other catalogs. You can have multiple published catalogs. When a catalog is ready to be used in a store, you publish it. You can create and publish catalogs for different contexts and channels. You can see the differences between the last two consecutive catalog releases. See [Publish a catalog](/docs/api/pxm/catalog/publish-release). You retrieve catalogs for your shopper experience by using the [Catalog View API](/docs/api/pxm/catalog/releases).
Documentation
Specifications
openapi: 3.1.0
info:
version: 25.1126.6886238
x-version-timestamp: 2025-11-26 19:10:23+00:00
title: Addresses Introduction Account Addresses Releases API
description: 'The Addresses API allows you to organize account addresses. Addresses are a sub-resource of `account` resources, an account can have multiple addresses, such as home, work, and neighbour.
You can use an account address with either [client_credentials access token](/docs/api/authentication/create-an-access-token) or a combination of [implicit access token](/docs/api/authentication/create-an-access-token) and [Account Management authentication](/docs/api/accounts/post-v-2-account-members-tokens) token.
'
contact:
name: Elastic Path
url: https://www.elasticpath.com
email: support@elasticpath.com
license:
url: https://elasticpath.dev
name: MIT
servers:
- url: https://useast.api.elasticpath.com
description: US East
- url: https://euwest.api.elasticpath.com
description: EU West
security:
- BearerToken: []
tags:
- name: Releases
description: 'When a catalog is published, a catalog release is created. A catalog release provides a snapshot of the product information taken at the time of publication. You can have one or more catalog releases available in your organization or in your store. If you publish a catalog for your organization, the catalog is available when the store is launched.
If you have more than one catalog published for your store, use catalog rules to specify when to display each catalog. For example, you can use [**catalog rules**](/docs/api/pxm/catalog/rules) to schedule a catalog to appear during a particular date and time, such as a seasonal catalog. The catalog may have different pricing than the other catalogs.
When a catalog is ready to be used in a store, you publish it. You can create and publish catalogs for different contexts and channels.
Here are some pointers to understand a catalogs'' lifecycle.
- The default catalog is always the oldest published catalog and must have have at least one release.
- At any time, the most recent three catalog releases are maintained. Hence, if there is a fourth catalog release, the first catalog release is automatically removed.
- Until the catalog is published again, the previously created three catalog releases stay permanently.
- If you want any other catalog to become the default catalog, you must create a catalog rule.
- If you want the oldest published catalog to become the default catalog, you must remove the catalog rule.
- Use the `sort_order` value in the `variations` to program your storefront to display the variation options in the order that you want.
Here is a diagram that describes a catalogs'' lifecycle:

### Publishing catalogs
When you publish a catalog, the `live` products in the hierarchies appear in a catalog release. A catalog release provides a snapshot of product information taken at the time of publication. You can have one or more catalog releases available in your organization or in your store. If you publish a catalog for your organization, the catalog is available when the store is launched.
If you have more than one catalog published for your store, use catalog rules to specify when to display each catalog. For example, you can use [catalog rules](/docs/api/pxm/catalog/rules) to schedule a catalog to appear during a particular date and time, such as a seasonal catalog. The catalog may have different pricing than the other catalogs. You can have multiple published catalogs.
When a catalog is ready to be used in a store, you publish it. You can create and publish catalogs for different contexts and channels. You can see the differences between the last two consecutive catalog releases. See [Publish a catalog](/docs/api/pxm/catalog/publish-release).
You retrieve catalogs for your shopper experience by using the [Catalog View API](/docs/api/pxm/catalog/releases).
'
paths:
/catalog:
get:
tags:
- Releases
summary: Get the catalog release as shoppers
description: Returns a list of all published releases of the specified catalog.
operationId: getByContextRelease
parameters:
- $ref: '#/components/parameters/accept-language'
- $ref: '#/components/parameters/channel'
- $ref: '#/components/parameters/tag'
responses:
'200':
description: The catalog.
content:
application/json:
schema:
$ref: '#/components/schemas/release-data'
default:
description: The unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
/catalogs/{catalog_id}/releases:
post:
tags:
- Releases
summary: Publishes a catalog
description: '
Publishes a catalog. You must publish a catalog before you can retrieve that catalog in an organization or store. The hierarchies, live products, and prices associated with a published catalog are in read-only mode. If you make a change to these resources, for example, a change to your price book or hierarchies, you need to republish the catalog.
You can get [a catalog release](/docs/api/pxm/catalog/get-release-by-id) to retrieve a published catalog. Currently, published catalogs are limited to the current release and two releases prior to the current release.
You can see the differences between the last 2 consecutive catalog releases. This is useful if want to understand how your products have changed in your catalog, ensuring your site search integration is kept up-to-date.
Once a catalog release has completed publishing, the delta relationship links to the delta document.
The `delta` links are signed and only valid for 1 hour. Re-reading a catalog release, for example, using [Getting a release of a catalog](/docs/api/pxm/catalog/get-release-by-id) returns a fresh a link.
You can use the `is_full_delta` attribute returned from the `get a release of a catalog` endpoint to determine if you need to refresh the data in your company system before injecting fresh data in a `delta` link. The `is_full_delta` attribute tells you if this is a full publish of the catalog. Using a search service as an example, if the `is_full_delta` attribute is `true`, you should remove all data about that catalog from the search service before injecting fresh data from the `delta` file. If the `is_full_delta` attribute is `false`, then data from the previous catalog overlays the existing data in the `delta` file. To publish a catalog and inject fresh data in a `delta` link, set `export_full_delta` to `true`.
If a previous catalog publish date is greater than 90 days, then a full catalog publish is automatically performed. If you publish your catalogs infrequently, Commerce may perform a full publish when you are expecting a delta publish.
:::caution
Generating a full delta is resource intensive and slows down the publishing process and so should only be performed in certain circumstances, for example, when initializing an integration with a service like Algolia.
:::
The `is_full_delta` attribute is always `true` the first time a catalog is published. The information is stored in a collection of `json` documents in a compressed file. You can either manually check the file or, for example, use them to automatically update another company system you may have.
- Delta files are only available for 30 days.
- Delta files are removed when a catalog release is deleted.
Each document has a `delta_type` with one of the following values, depending on whether a product has been deleted, updated or created in a catalog release.
- `delete` describes products deleted from this release of a catalog.
- `createupdate` describes products updated in this release of a catalog.
### Multi-Store Management Solutions
In a multi-store management solution.
- You can create organization catalogs. Your organization catalogs are available for your stores to use.
- Your stores can create their own catalogs.
- Your stores can create catalogs that have a combination of organization products and store products.
If you are publishing a catalog in a store that contains resources from an organization, in Commerce Manager, you must enable the **Include Organization Resources in Catalog Publishes** checkbox.
1. Go to **SYSTEM** > **Store Settings**.
2. Click **General Settings**.
3. Select **PXM** from the list.
4. Select the **Include Organization Resources in Catalog Publishes** checkbox.
'
operationId: publishRelease
parameters:
- description: The catalog ID.
name: catalog_id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/catalog-release-create-data'
description: Options for catalog release publishing
responses:
'201':
description: Publishes a catalog release with the following attributes.
content:
application/json:
schema:
$ref: '#/components/schemas/release-data'
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
get:
tags:
- Releases
summary: Gets all authorized catalog releases
description: "Returns a list of all published releases of the specified catalog. Currently, published catalogs are limited to the current release and two releases prior to the current release. You can see the differences between the last 2 consecutive catalog releases using the `delta` link returned in the response of a `publish a catalog` endpoint.\n\nYou can use the `is_full_delta` attribute returned from the `get a release of a catalog` endpoint to determine if you need to refresh the data in your company system before publishing a catalog release and injecting fresh data in a delta link. The `is_full_delta` attribute tells you if this is a full publish of a catalog release. Using a search service as an example, if the `is_full_delta` attribute is `true`, you should remove all data about that catalog from the search service before publishing a catalog release and injecting fresh data from the delta file. \n\nIf the `is_full_publish` attribute returned in the response is `false`, data from the previous catalog release overlaid the existing data in the delta file. The `is_full_publish` attribute is always `true` the first time a catalog is published. When determining whether delta data needs to be refreshed, ignore this attribute and always use the `is_full_delta` attribute.\n"
operationId: getReleases
parameters:
- $ref: '#/components/parameters/accept-language'
- description: The catalog ID.
name: catalog_id
in: path
required: true
schema:
type: string
responses:
'200':
description: The list of catalogs.
content:
application/json:
schema:
$ref: '#/components/schemas/release-list-data'
default:
description: The unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
delete:
tags:
- Releases
summary: Deletes all releases
description: Deletes all releases of the specified published catalog.
operationId: deleteReleases
parameters:
- description: The catalog ID.
name: catalog_id
in: path
required: true
schema:
type: string
responses:
'204':
description: A 204 response indicates that the releases have been deleted.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
/catalogs/{catalog_id}/releases/{release_id}:
get:
tags:
- Releases
summary: Get a catalog release by ID
description: Retrieves the specified catalog release.
operationId: getReleaseByID
parameters:
- $ref: '#/components/parameters/accept-language'
- description: The catalog ID.
name: catalog_id
in: path
required: true
schema:
type: string
- description: The unique identifier of a published release of the catalog or `latestPublished` for the most recently published version.
name: release_id
in: path
required: true
schema:
type: string
responses:
'200':
description: The catalog.
content:
application/json:
schema:
$ref: '#/components/schemas/release-data'
default:
description: The unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
delete:
tags:
- Releases
summary: Deletes a release
description: Deletes the specified published catalog release.
operationId: deleteReleaseByID
parameters:
- description: The catalog ID.
name: catalog_id
in: path
required: true
schema:
type: string
- description: The unique identifier of a published release of the catalog or `latestPublished` for the most recently published version.
name: release_id
in: path
required: true
schema:
type: string
responses:
'204':
description: A 204 response indicates that the release has been deleted.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
components:
schemas:
release:
type: object
title: Release
description: A catalog release represents a collection of hierarchical product data, price books and catalogs rules.
properties:
id:
description: A unique identifier for the catalog release.
type: string
x-go-name: ID
example: 8dbb35b2-ef04-477e-974d-e5f3abe6faae
attributes:
type: object
properties:
name:
description: The name of a release.
type: string
example: Clothing
published_at:
description: The date and time a release was published.
type: string
format: date-time
example: '1970-01-01T00:00:00.000'
nullable: true
catalog_id:
description: A unique identifier for the catalog.
type: string
example: 0194f54d-f2a1-4e33-9a6e-9ec366152490
description:
description: A description of the catalog release.
type: string
example: Catalog for Store 123
default: ''
hierarchies:
description: An array of hierarchy IDs associated with the release.
type: array
items:
$ref: '#/components/schemas/node-reference'
x-go-name: RootNodes
relationships:
$ref: '#/components/schemas/release-relationships'
type:
description: This represents the type of object being returned. Always `catalog-release`.
type: string
x-go-name: Type
meta:
$ref: '#/components/schemas/release-meta'
x-go-name: Release
node-reference:
type: object
title: NodeReference
description: Minimum set of information to identify a catalog node.
properties:
id:
description: The unique identifier of a hierarchy.
type: string
example: 65477ce0-fcb8-436b-a120-3d57979421dd
x-go-name: ID
label:
description: A label for a hierarchy.
type: string
example: category
x-go-name: Label
name:
description: The name of a hierarchy.
type: string
example: Formal dresswear
x-go-name: Name
x-go-name: NodeReference
release-data:
type: object
title: Release Data
description: Container for a catalog release.
properties:
data:
$ref: '#/components/schemas/release'
links:
$ref: '#/components/schemas/links'
error:
type: object
title: APIError
description: APIError is a json-api style part of an error response.
properties:
detail:
type: string
example: not processable
x-go-name: Detail
status:
type: string
example: '422'
x-go-name: Status
title:
type: string
example: There was a problem processing your request.
x-go-name: Title
x-go-name: APIError
catalog-release-create-data:
type: object
title: CatalogReleaseCreateData
description: Creates a catalog release with the following attributes.
properties:
data:
type: object
properties:
export_full_delta:
type: boolean
description: 'Set to `true` if you want to export all the data from a catalog release in a delta link. The `is_full_delta` attribute is returned from the `get a release of a catalog` endpoint. The `is_full_delta` attribute tells you if the delta file contains the full content of a catalog release. You can use the `is_full_delta` to determine if you need to refresh the data in your company system before publishing a catalog release with fresh data in a delta link. Using a search service as an example, if the `is_full_delta` attribute is true, you should remove all data about that catalog from the search service before publishing a catalog release and injecting fresh data from the delta file. If the `is_full_delta` attribute is false, then data from the previous catalog overlays the existing data in the delta file. The `is_full_delta` attribute is always `true` the first time a catalog is published.
'
x-go-name: ExportFullDelta
include_organization_resources:
type: boolean
description: If you are publishing a catalog in a store that contains resources from an organization, you must set this to true and you must enable the **Include Organization Resources in Catalog Publishes** checkbox in Commerce Manager. See [**Multi-Store Management Solutions**](/docs/api/pxm/catalog/publish-release).
x-go-name: IncludeOrganizationResources
nullable: true
release-list-data:
type: object
title: ReleaseListData
description: Container for a list of catalog releases.
properties:
data:
type: array
items:
$ref: '#/components/schemas/release'
links:
$ref: '#/components/schemas/links'
error-response:
type: object
title: ErrorResponse
description: ErrorResponse is a json-api style Error response.
properties:
errors:
type: array
items:
$ref: '#/components/schemas/error'
x-go-name: Errors
x-go-name: ErrorResponse
release-meta:
type: object
title: ReleaseMeta
description: A release's metadata.
properties:
created_at:
description: The date and time a release is created.
type: string
format: date-time
example: '1970-01-01T00:00:00.000'
started_at:
description: The date and time a release is available for use. In other words, the date and time the status of a catalog release changes to PUBLISHED, rather than IN PROGRESS.
type: string
format: date-time
example: '1970-01-01T00:00:00.000'
nullable: true
updated_at:
description: The date and time a release is updated.
type: string
format: date-time
example: '1970-01-01T00:00:00.000'
nullable: true
release_status:
description: The status of the current release.
type: string
enum:
- PENDING
- IN_PROGRESS
- FAILED
- PUBLISHED
language:
description: Your storefront's preferred language code and locale.
type: string
example: en-GB
is_full_publish:
description: 'Indicates that a full publish was performed (either because this is the first time a catalog has been published or because of a change that occurred, for example, adding/removing a price book or hierarchy). When determining whether delta data needs to be refreshed, ignore this attribute and always use the `is_full_delta` attribute.
'
type: boolean
example: false
default: false
x-go-name: IsFullPublish
is_full_delta:
description: 'Indicates whether the release delta file contains the full content of a catalog release. Using a search service as an example, if the `is_full_delta` attribute is `true`, you should remove all data about that catalog release from the search service before injecting fresh data from the delta file. If the `is_full_delta` attribute is `false`, then data from the previous catalog release overlays the existing data in the delta file. The `is_full_delta` attribute is always `true` the first time a catalog is published.
'
type: boolean
example: false
default: false
x-go-name: IsFullDelta
total_products:
description: The total number of products displayed in a catalog release.
type: integer
format: int64
x-go-name: TotalProducts
nullable: true
total_nodes:
description: The total number of hierarchy nodes displayed in a catalog release.
type: integer
format: int64
x-go-name: TotalNodes
nullable: true
percent_completed:
description: An integer that represents the progress of a catalog publish. The attribute starts at `0` and reaches `100` when publishing is complete.
type: integer
format: int32
x-go-name: PercentCompleted
nullable: true
owner:
description: The owner of the resource, can be either `organization` or `store`.
type: string
enum:
- store
- organization
x-go-name: Owner
nullable: true
price_segmentation_enabled:
description: This indicates whether the catalog release will support price segmentation using catalog rules to define which pricebook(s) to use for pricing
type: boolean
includes_draft_products:
description: When `true`, this catalog release includes `draft` products in its published data. This reflects the catalog `include_draft_products` attribute at the time of publish.
type: boolean
example: false
default: false
x-go-name: IncludesDraftProducts
x-go-name: ReleaseMeta
x-omitempty: true
related-link:
description: A URL to a related object, for example, catalog rules, hierarchies, price books, products and deltas.
type: object
properties:
related:
description: A URL to a related object, for example, catalog rules, hierarchies, price books, products and deltas.
type: string
required:
- related
release-relationships:
type: object
title: ReleaseRelationships
description: Relationships are established between different catalog entities. For example, products, hierarchies, price books, and catalog rules are related to a catalog, as they are associated with it.
properties:
delta:
description: A URL to a delta document that describes the changes between catalog releases.
type: object
properties:
links:
$ref: '#/components/schemas/related-link'
products:
description: A URL to all products included in a catalog release.
type: object
properties:
links:
$ref: '#/components/schemas/related-link'
hierarchies:
description: A URL to all hierarchies included in a catalog release.
type: object
properties:
links:
$ref: '#/components/schemas/related-link'
required:
- links
x-go-name: ReleaseRelationships
links:
description: Links allow you to move between requests.
type: object
properties:
self:
description: Single entities use a `self` parameter with a link the specific resource.
type: string
format: uri
nullable: true
first:
description: Always the first page.
type: string
format: uri
nullable: true
last:
description: This is `null` if there is only one page.
type: string
format: uri
nullable: true
prev:
description: This is `null` if there is only one page.
type: string
format: uri
nullable: true
next:
description: This is `null` if there is only one page.
type: string
format: uri
nullable: true
parameters:
tag:
description: Tags are used to refine the eligibility criteria for a rule. Requests populate the catalog rule tag using the `EP-Context-Tag` header.
in: header
name: EP-Context-Tag
required: false
schema:
type: string
channel:
description: The list of channels in which this catalog can be displayed. A channel is the shopping experience, such as a mobile app or web storefront. If empty, the catalog rule matches all channels. The channel will eventually be included in the bearer token that is used for authorization, but currently, you must set the `EP-Channel` header in your requests.
in: header
name: EP-Channel
required: false
schema:
type: string
accept-language:
description: The language and locale your storefront prefers. See [Accept-Language](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language).
in: header
name: accept-language
required: false
schema:
type: string
securitySchemes:
BearerToken:
type: http
scheme: bearer