---
schema_version: "1"
id: 76ef9e2c618aca98fc5a4821cc635ef15fa58a3a0e08d464c8b09698c92e9b5e
title: Replications
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/commerce-cloud/commerce-api/references/generated-api-specs/replications.md
canonical_url: https://developer.salesforce.com/docs/commerce/commerce-api/references/replications
source_site: developer.salesforce.com
content_type: documentation
content_hash: a967349ea76e9bb872b0d51f21121bcd2964e8eba72f4b4e40afe98b3be1d5e4
products:
  - B2C Commerce API
  - Salesforce APIs
---
Replications

# Replications

[Download API specification](https://developer.salesforce.com/static/commercecloud/commerce-api/replications/replications-oas-v1-public.yaml)

## API Overview

The Replications API provides tools for managing content replication and synchronization across your Commerce Cloud instance. Use this API to control replication throughout your commerce infrastructure.

The API currently supports:

*   Granular Replication: Publishing individual items

### Authentication & Authorization

For resource access, you must use a client ID and client secret from Account Manager to request an access token. The access token is used as a bearer token and added to the Authorization header of your API request.

This API uses OAuth 2.0 authentication via Account Manager (AmOAuth2). You must include the relevant scope(s) in the client ID used to generate the token. For details, see the [Authorization Scopes Catalog](https://developer.salesforce.com/docs/commerce/commerce-api/guide/auth-z-scope-catalog.html).

*   `sfcc.granular-replications.rw` - Enables the triggering of publish processes and access to details about publish processes, for example: monitoring purposes.
*   `sfcc.granular-replications` - Enables access to details about publish processes, for example: monitoring purposes.

For detailed setup instructions, see the [Authorization for Admin APIs guide](https://developer.salesforce.com/docs/commerce/commerce-api/guide/authorization-for-admin-apis.html).

### Response Details

#### Timeouts

Admin API requests must respond within 60 seconds. If a response exceeds this threshold, an HTTP 504 status code is returned. For details, see [Timeouts and Limits.](https://developer.salesforce.com/docs/commerce/commerce-api/guide/timeouts-limits.html)

#### Error Handling

Error responses follow the [RFC 7807](https://datatracker.ietf.org/doc/html/rfc7807) problem detail format. To trace errors, include a `correlation-id` header in your request — the response returns it as `x-correlation-id`. For details, see [HTTP Status Codes and Errors.](https://developer.salesforce.com/docs/commerce/commerce-api/guide/error-response-codes.html)

### Use Cases

#### Granular Replication

The granular replication feature addresses the need to make small updates to existing content in production on an as-needed basis. You can make granular data updates for these three replication groups:

*   Products: Update specific products from staging to production.
*   Price Books: Update specific price table entries from staging to production.
*   Content Assets: Update specific content assets from staging to production. Page Designer pages replicate as content assets with all their components.

Granular Replication is meant to complement and enhance existing data replications, not replace it.

All granular replication related endpoints are available using:

```
https://{shortCode}.api.commercecloud.salesforce.com/operation/replications/v1/organizations/{organizationId}/granular-processes
```

##### Publish Items (POST /granular-processes)

Queues an item, such as products, price tables, and content assets, for the upcoming publish operation.

:::note The published price table is always the table with the continuously valid period. :::

##### List Publish Processes (GET /granular-processes)

Retrieve a list of all publish processes with pagination support.

##### Get Publish Process (GET /granular-processes/{id})

Retrieve details of a specific publish process using its ID.

#### Publish Process Lifecycle

All publish processes follow this lifecycle:

1.  `queued`: Publish process initiated and waiting for publish operation to run.
2.  `in_progress`: Publish operation is running.
3.  `completed`: Publish operation completed and the item was successfully published.
4.  `failed`: The publish operation completed, but an error was detected.

**Version:** 1.0.8

## Servers

*   `https://{shortCode}.api.commercecloud.salesforce.com/operation/replications/v1`
    *   `shortCode (default 123456gf) An eight-character string assigned to a realm for routing purposes. See [Base URL and Request Formation.](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html)`

## Security

*   `AmOAuth2` (oauth2) AccountManager OAuth 2.0 bearer token Authentication.
    *   OAuth flow clientCredentials (tokenUrl: https://account.demandware.com/dwsso/oauth2/access\_token)
    *   Scope c\_example: custom scopes must start with c\_ used for custom APIs \[MAX length of scope 49 characters\]
    *   Scope sfcc.example: standard salesforce commerce apis scopes must start with "sfcc.". Without suffix ".rw" scopes grants READONLY access. \[MAX length of scope 49 characters\]
    *   Scope sfcc.example.rw: salesforce commerce apis scopes must start with "sfcc.". The suffix ".rw" scopes grants READ and WRITE access. \[MAX length of scope 49 characters\]
    *   OAuth flow authorizationCode (authorizationUrl: https://account.demandware.com/dwsso/oauth2/authorize, tokenUrl: https://account.demandware.com/dwsso/oauth2/access\_token)
    *   Scope c\_example: custom scopes mus start with c\_ used for custom APIs \[MAX length of scope 49 characters\]
    *   Scope sfcc.example: standard salesforce commerce apis scopes must start with "sfcc.". Without suffix ".rw" scopes grants READONLY access. \[MAX length of scope 49 characters\]
    *   Scope sfcc.example.rw: salesforce commerce apis scopes must start with "sfcc.". The suffix ".rw" scopes grants READ and WRITE access. \[MAX length of scope 49 characters\]

## Operations

### GET Retrieve a list of all publish processes with pagination support.

`GET /organizations/{organizationId}/granular-processes`

Operation ID: `listPublishProcesses`. Security: AmOAuth2 (sfcc.granular-replications, sfcc.granular-replications.rw).

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `limit` (query, integer (int32)) Number of records to retrieve per request. Must be between 1 (minimum) and 200 (maximum). Defaults to 50.  
    Default: `50`. Minimum: 1. Maximum: 200.
*   `offset` (query, integer (int32)) Used to retrieve the results based on a particular resource offset.  
    Default: `0`. Minimum: 0.

#### Responses

*   **200** Retrieved list of publish processes successfully.
    
    Media type: `application/json`. Schema: `PublishProcessListResponse`.
    
    _Example: listResults_ List results example
    
    ```
    {
      "total": 3,
      "offset": 0,
      "limit": 50,
      "data": [
        {
          "id": "xmRhi7394HymoeRkfwAAAZeg3WiM",
          "status": "completed",
          "startTime": "2024-03-15T10:30:00Z",
          "endTime": "2024-03-15T10:30:45Z",
          "initiatedBy": "user@example.com",
          "productItem": {
            "productId": "PROD-12345"
          }
        },
        {
          "id": "xmRhi7394HymoeRkfwAAAZeg3WiN",
          "status": "completed",
          "startTime": "2024-03-15T10:35:00Z",
          "endTime": "2024-03-15T10:35:30Z",
          "initiatedBy": "user@example.com",
          "productItem": {
            "productId": "PROD-67890"
          }
        },
        {
          "id": "xmRhi7394HymoeRkfwAAAZeg3WiK",
          "status": "failed",
          "startTime": "2024-03-15T10:40:00Z",
          "initiatedBy": "api-client-xyz",
          "contentAssetItem": {
            "contentId": "homepage-hero-banner",
            "type": "shared",
            "libraryId": "sharedLibrary"
          }
        }
      ]
    }
    ```
    
*   **400** Bad Request. Invalid query parameter.
    
    Media type: `application/problem+json`. Schema: `InvalidQueryParameterErrorResponse`.
    
    _Example: InvalidQueryParameterErrorResponseExample_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-query-parameter",
      "detail": "Invalid query parameter.",
      "title": "Invalid Query Parameter"
    }
    ```
    
*   **403** Forbidden. Your access token is valid, but you don't have the required permissions to access the resource, or the Granular Replication feature is disabled.
    
    Media type: `application/problem+json`. Schema: `FeatureNotEnabledErrorResponse`.
    
    _Example: FeatureNotEnabledErrorResponseExample_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/feature-not-enabled",
      "detail": "The Granular Replication feature is not enabled in your staging and production environments.",
      "title": "Feature Not Enabled"
    }
    ```
    
*   **422** If the request was not sent to a staging instance
    
    Media type: `application/problem+json`. Schema: `NotOnStagingInstanceErrorResponse`.
    
    _Example: NotOnStagingInstanceErrorResponseExample_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/not-on-staging-instance",
      "detail": "The request was not sent to a staging instance.",
      "title": "Not On Staging Instance"
    }
    ```
    

### POST Queue items for the upcoming publish operation.

`POST /organizations/{organizationId}/granular-processes`

Operation ID: `publishItems`. Security: AmOAuth2 (sfcc.granular-replications.rw).

Queues items, such as a products, price tables, and content assets, for the upcoming publish operation. You can have multiple items in the queue, but you must send a separate request for each item. Page Designer (PD) pages are replicated as content assets, including all their components. Note: The published price table is always the table with the continuously valid period.

### Publishing Limit

You can queue a maximum of 500 items for a single publish operation. Because each request queues one item, this limit applies to the total number of items queued for the upcoming publish operation across all requests, not to an individual API call. The HTTP status code 409 (Conflict) is returned if the limit is exceeded.

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    

#### Request body (required)

Media type: `application/json`. Schema: `PublishItemRequest`.

_Example: productExample_ Publish a product

Example of publishing a product

```
{
  "product": {
    "productId": "PROD-12345"
  }
}
```

_Example: priceTableExample_ Publish a price table

Example of publishing a price table for a product. Note: The published price table is always the one with the continuously valid period.

```
{
  "priceTable": {
    "productId": "PROD-67890",
    "priceBookId": "USD-Retail-2024"
  }
}
```

_Example: contentAssetExampleSharedLib_ Publish a content asset from a shared library

```
{
  "contentAsset": {
    "contentId": "homepage-hero-banner",
    "type": "shared",
    "libraryId": "mySharedLibrary"
  }
}
```

_Example: contentAssetExamplePrivateLib_ Publish a content asset from a site's private library

Publish a content asset from a site's private library.

```
{
  "contentAsset": {
    "contentId": "homepage-hero-banner",
    "type": "private",
    "siteId": "mySiteID"
  }
}
```

#### Responses

*   **200** ID of the publish process
    
    Media type: `application/json`. Schema: `PublishIdResponse`.
    
    _Example: success_ Successfully queued response
    
    ```
    {
      "id": "xmRhi7394HymoeRkfwAAAZeg3WiM"
    }
    ```
    
*   **400** Bad Request. The request is malformed or contains invalid data.
    
    Media type: `application/problem+json`. Schema: `InvalidRequestBodyErrorResponse`.
    
    _Example: InvalidRequestBodyErrorResponseExample_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-request-body",
      "detail": "Invalid request body. Must provide valid properties for either a product, price table, or content asset.",
      "title": "Invalid Request Body"
    }
    ```
    
*   **403** Forbidden. Your access token is valid, but you don't have the required permissions to access the resource, or the Granular Replication feature is disabled.
    
    Media type: `application/problem+json`. Schema: `FeatureNotEnabledErrorResponse`.
    
    _Example FeatureNotEnabledErrorResponseExample: same as GET /organizations/{organizationId}/granular-processes 403 response._
    
*   **404** The specified item was not found.
    
    Media type: `application/problem+json`. Schema: `ItemNotFoundErrorResponse`.
    
    _Example: ItemNotFoundErrorResponseExample_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/item-not-found",
      "detail": "The specified item was not found.",
      "title": "Item Not Found"
    }
    ```
    
*   **409** The item could not get queued for the upcoming publish operation.
    
    Media type: `application/problem+json`. Schema: `AlreadyQueuedErrorResponse | TooManyQueuedErrorResponse | ReplicationRunningErrorResponse`.
    
    One of: `AlreadyQueuedErrorResponse`, `TooManyQueuedErrorResponse`, `ReplicationRunningErrorResponse`.
    
    _Example: AlreadyQueuedErrorResponseExample_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/already-queued",
      "detail": "The item was already queued for the upcoming publish operation.",
      "title": "Already Queued"
    }
    ```
    
    _Example: TooManyQueuedErrorResponseExample_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/too-many-queued",
      "detail": "The maximum number of items queued for the upcoming publish operation has been exceeded.",
      "title": "Too Many Queued"
    }
    ```
    
    _Example: ReplicationRunningErrorResponseExample_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/replication-running",
      "detail": "A replication is running. Granular Replication is not possible during a running replication.",
      "title": "Replication Running"
    }
    ```
    
*   **422** The item could not get processed.
    
    Media type: `application/problem+json`. Schema: `FeedBasedPriceBookNotSupportedErrorResponse | NotOnStagingInstanceErrorResponse`.
    
    One of: `FeedBasedPriceBookNotSupportedErrorResponse`, `NotOnStagingInstanceErrorResponse`.
    
    _Example NotOnStagingInstanceErrorResponseExample: same as GET /organizations/{organizationId}/granular-processes 422 response._
    
    _Example: FeedBasedPriceBookNotSupportedErrorResponseExample_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/feed-based-price-book-not-supported",
      "detail": "The price table belongs to a feed based price book. Feed based price books are not supported.",
      "title": "Feed Based Price Book Not Supported"
    }
    ```
    

### GET Retrieve details of a specific publish process using its ID.

`GET /organizations/{organizationId}/granular-processes/{id}`

Operation ID: `getPublishProcess`. Security: AmOAuth2 (sfcc.granular-replications, sfcc.granular-replications.rw).

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `id` (path, id, required) Publish process ID of the published item.

#### Responses

*   **200** Publish process details retrieved successfully.
    
    Media type: `application/json`. Schema: `PublishProcessResponse`.
    
    _Example: productProcess_ Product publish process
    
    ```
    {
      "id": "xmRhi7394HymoeRkfwAAAZeg3WiM",
      "status": "completed",
      "startTime": "2024-03-15T10:30:00Z",
      "endTime": "2024-03-15T10:30:45Z",
      "initiatedBy": "user@example.com",
      "productItem": {
        "productId": "PROD-12345"
      }
    }
    ```
    
    _Example: priceTableProcess_ Price table publish process; Note: The published price table is always the one with the continuously valid period.
    
    ```
    {
      "id": "xmRhi7394HymoeRkfwAAAZeg3WiN",
      "status": "completed",
      "startTime": "2024-03-15T10:35:00Z",
      "endTime": "2024-03-15T10:35:30Z",
      "initiatedBy": "1af8e314-60c7-46f0-b7b4-c88aecd3449d",
      "priceTableItem": {
        "productId": "PROD-67890",
        "priceBookId": "USD-Retail-2024"
      }
    }
    ```
    
    _Example: contentAssetProcess_ Content asset publish process
    
    ```
    {
      "id": "xmRhi7394HymoeRkfwAAAZeg3Wik",
      "status": "in_progress",
      "startTime": "2024-03-15T10:40:00Z",
      "initiatedBy": "api-client-xyz",
      "contentAssetItem": {
        "contentId": "homepage-hero-banner",
        "siteId": "mySiteId",
        "type": "private"
      }
    }
    ```
    
*   **403** Forbidden. Your access token is valid, but you don't have the required permissions to access the resource, or the Granular Replication feature is disabled.
    
    Media type: `application/problem+json`. Schema: `FeatureNotEnabledErrorResponse`.
    
    _Example FeatureNotEnabledErrorResponseExample: same as GET /organizations/{organizationId}/granular-processes 403 response._
    
*   **404** The publish process for given ID was not found.
    
    Media type: `application/problem+json`. Schema: `PublishProcessNotFoundErrorResponse`.
    
    _Example: PublishProcessNotFoundErrorResponseExample_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/publish-process-not-found",
      "detail": "Publish process with ID 'xmRhi7394HymoeRkfwAAAZeg3WiM' was not found.",
      "title": "Publish Process Not Found"
    }
    ```
    
*   **422** If the request was not sent to a staging instance
    
    Media type: `application/problem+json`. Schema: `NotOnStagingInstanceErrorResponse`.
    
    _Example NotOnStagingInstanceErrorResponseExample: same as GET /organizations/{organizationId}/granular-processes 422 response._
    

## Schemas

### OrganizationId

An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).

Type: `string`.

Pattern: ^f\_ecom\_\[a-z\]{4}\_(prd|stg|dev|s\[0-9\]{2}|\[0-9\]{3})$. Example: `f_ecom_zzxy_prd`.

### PublishProcessListResponse

Paginated list of publish processes

Includes all fields of `PaginatedResultBase`.

*   `data` (_array of PublishProcessResponse_, required) Array of publish processes

### InvalidQueryParameterErrorResponse

Returned when an invalid query parameter is provided.

Includes all fields of `ErrorResponse`.

### FeatureNotEnabledErrorResponse

Returned when the Granular Replication feature is disabled.

Includes all fields of `ErrorResponse`.

### NotOnStagingInstanceErrorResponse

Returned when the request is sent to a non-staging instance.

Includes all fields of `ErrorResponse`.

### PublishItemRequest

One of: `ProductPublishRequest`, `PriceTablePublishRequest`, `ContentAssetPublishRequest`.

### PublishIdResponse

Item successfully queued for publishing

*   `id` (_id_, required)

### InvalidRequestBodyErrorResponse

Returned when the request body is malformed or contains invalid data.

Includes all fields of `ErrorResponse`.

### ItemNotFoundErrorResponse

Returned when the specified item (product, price table, or content asset) was not found.

Includes all fields of `ErrorResponse`.

### AlreadyQueuedErrorResponse

Returned when attempting to queue an item that is already queued.

Includes all fields of `ErrorResponse`.

### TooManyQueuedErrorResponse

Returned when the maximum number of items (50) queued for publish has been exceeded.

Includes all fields of `ErrorResponse`.

### ReplicationRunningErrorResponse

Returned when attempting to queue items while a replication is running.

Includes all fields of `ErrorResponse`.

### FeedBasedPriceBookNotSupportedErrorResponse

Returned when attempting to publish a price table from a feed-based price book.

Includes all fields of `ErrorResponse`.

### id

Publish process ID of the published item

Type: `string`.

Maximum length: 28. Example: `xmRhi7394HymoeRkfwAAAZeg3WiM`.

### PublishProcessResponse

*   `id` (_id_, required)
*   `status` (_string_, required) Current status of the publish process  
    Allowed values: `completed`, `in_progress`, `failed`, `queued`. Example: `completed`.
*   `startTime` (_string (date-time)_, required) Timestamp at which the publish process was started  
    Pattern: ^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?Z$. Example: `2024-03-15T10:30:00Z`.
*   `endTime` (_string (date-time)_) Timestamp at which the publish process was completed (only available if the status is "completed" or "failed")  
    Pattern: ^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?Z$. Example: `2024-03-15T10:30:45Z`.
*   `initiatedBy` (_string_, required) User or ID of the client application that initiated the publish process  
    Maximum length: 256. Example: `user@example.com`.
*   `productItem` (_ProductItem_)
*   `priceTableItem` (_PriceTableItem_)
*   `contentAssetItem` (_ContentAssetItem_)

### PublishProcessNotFoundErrorResponse

Returned when the publish process for given ID was not found.

Includes all fields of `ErrorResponse`.

*   `id` (_id_)

### PaginatedResultBase

Schema defining generic pageable result. Each response schema of a resource requiring pagination should extend this schema. If you use this extend this schema directly, it needs to be defined what data is returned. Allowed names for the data field is `data`.

Includes all fields of `ResultBase`.

*   `offset` (_Offset_, required)

### ErrorResponse

*   `title` (_string_, required) A short, human-readable summary of the problem type. It will not change from occurrence to occurrence of the problem, except for purposes of localization  
    Maximum length: 256. Example: `You do not have enough credit`.
*   `type` (_string_, required) A URI reference \[RFC3986\] that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type (e.g., using HTML \[W3C.REC-html5-20141028\]). When this member is not present, its value is assumed to be "about:blank". It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
    Maximum length: 2048. Example: `NotEnoughMoney`.
*   `detail` (_string_, required) A human-readable explanation specific to this occurrence of the problem.  
    Example: `Your current balance is 30, but that costs 50`.
*   `instance` (_string_) A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
    Maximum length: 2048. Example: `/account/12345/msgs/abc`.

### ProductPublishRequest

*   `product` (_object_, required)
    *   `productId` (_ProductId_, required)

_Example_

```
{
  "product": {
    "productId": "PROD-12345"
  }
}
```

### PriceTablePublishRequest

*   `priceTable` (_object_, required)
    *   `productId` (_ProductId_, required)
    *   `priceBookId` (_string_, required) ID of the price book  
        Maximum length: 256. Example: `USD-Retail-2024`.

_Example_

```
{
  "priceTable": {
    "productId": "PROD-67890",
    "priceBookId": "USD-Retail-2024"
  }
}
```

### ContentAssetPublishRequest

*   `contentAsset` (_ContentAssetItemPrivate | ContentAssetItemShared_, required)
    
    One of: `ContentAssetItemPrivate`, `ContentAssetItemShared`.
    

### ProductItem

Details of the published product (only available if a product was published)

*   `productId` (_ProductId_, required)

### PriceTableItem

Details of the published price table (only available if a price table was published)

*   `productId` (_ProductId_, required)
*   `priceBookId` (_string_, required) ID of the price book  
    Maximum length: 256. Example: `USD-Retail-2024`.

### ContentAssetItem

One of: `ContentAssetItemPrivate`, `ContentAssetItemShared`.

### ResultBase

Schema defining generic list result. Each response schema of a resource requiring a list response should extend this schema. Additionally it needs to be defined what data is returned.

*   `limit` (_integer (int32)_, required) Maximum records to retrieve per request. The limit with its constraints (minimum, maximum, default) is defined by the request parameter `limit` of the endpoint returning this schema.  
    Example: `10`.
*   `total` (_Total_, required)

### Offset

The zero-based index of the first hit/data to include in the result.

Type: `integer (int32)`.

Default: `0`. Minimum: 0. Example: `0`.

### ProductId

The id (SKU) of the product.

Type: `string`.

Minimum length: 1. Maximum length: 100. Example: `apple-ipod-classic`.

### ContentAssetItemPrivate

Details of the published content asset (only available if a content asset was published). Page Designer pages replicate as content assets, including all their components.

*   `contentId` (_string_, required) ID of the content asset  
    Maximum length: 256. Example: `homepage-hero-banner`.
*   `type` (_string_, required) The type of library (private) from which the content asset originates.  
    Allowed values: `private`. Example: `private`.
*   `siteId` (_SiteId_, required)

_Example_

```
{
  "contentId": "homepage-hero-banner",
  "type": "private",
  "siteId": "mySiteId"
}
```

### ContentAssetItemShared

Details of the published content asset (only available if a content asset was published). Page Designer pages replicate as content assets, including all their components.

*   `contentId` (_string_, required) ID of the content asset  
    Maximum length: 256. Example: `homepage-hero-banner`.
*   `type` (_string_, required) The type of library (shared) from which the content asset originates.  
    Allowed values: `shared`. Example: `shared`.
*   `libraryId` (_string_, required) Use the library ID.  
    Maximum length: 256. Example: `libraryId`.

_Example_

```
{
  "contentId": "homepage-hero-banner",
  "type": "shared",
  "libraryId": "myLibrary"
}
```

### Total

The total number of hits that match the search's criteria. This can be greater than the number of results returned as search results are pagenated.

Type: `integer (int32)`.

Default: `0`. Minimum: 0. Example: `10`.

### SiteId

The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites

Type: `string`.

Minimum length: 1. Maximum length: 32. Example: `RefArch`.