> This page is for Developer.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.bigcommerce.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.bigcommerce.com/_mcp/server.

# Overview: Page widgets

> **Note**
>
> A POST request to [Publish or overwrite a page](/developer/api-reference/rest/admin/content/page-widgets#publish-or-overwrite-page-content) deletes any and all existing data for the requested page and replaces it with the data in the request payload.

The page widgets feature supports the following actions:

* Duplicating pages
* Modifying widget content for an entire page using a single API call
* Migrating page widgets and layout configurations from a staging store to production store
* Moving page widgets from store to store or channel to channel
* Storing snapshots of page widgets and layout configurations
* Restoring page widgets and layout configurations

## Concepts and limits

Page widgets make page layouts portable by dividing pages into **regions**, **layouts**, **dropzones**, and **widgets**. The following sections describe the properties and relationships of the page widgets objects.

![Diagram of conceptual relationships in the page widgets feature](/_fern-img/eb62571345d733f29c378f79077bb352da735984501b6845d59c9ec954ad1acd.webp)

### Regions

A region object contains the following properties:

| Property   | Type   | Description                                                                       |
| :--------- | :----- | :-------------------------------------------------------------------------------- |
| `name`     | string | Matches the name specified as `{{{region_name="..."}}}` in a theme template file. |
| `children` | array  | Consists of [layout](#layouts) and/or [widget](#widgets) objects.                 |

### Layouts

> **Note**
>
> **Limits** for layout objects: - per page: 150 - per channel: 10,000

A layout object contains the following properties:

| Property               | Type         | Description                                                                                  |
| :--------------------- | :----------- | :------------------------------------------------------------------------------------------- |
| `layout_template_uuid` | UUID string  | Set by BigCommerce. Read-only.                                                               |
| `configuration`        | object       | A JSON object that describes the Page Builder options menu that corresponds with the layout. |
| `name`                 | string       | A human-readable label for the layout; displays in Page Builder.                             |
| `dropzones`            | array        | Consists of [dropzone](#dropzones) objects.                                                  |
| `type`                 | string, enum | `layout`                                                                                     |

### Dropzones

Dropzones are any areas in a layout in which a widget can be dropped. A dropzone object contains the following properties:

| Property        | Type   | Description                                                                                    |
| :-------------- | :----- | :--------------------------------------------------------------------------------------------- |
| `configuration` | object | A JSON object that describes the Page Builder options menu that corresponds with the dropzone. |
| `widgets`       | array  | Consists of [widget](#widgets) objects.                                                        |

### Widgets

> **Note**
>
> **Limits** for widget objects: - per page: 150 - per channel: 50,000

A widget object contains the following properties:

| Property                      | Type         | Description                                                                                                                                                                                                                                                                   |
| :---------------------------- | :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `widget_template_uuid`        | UUID string  | The unique identifier of the parent widget template; set by the store or channel where the widget template originated.                                                                                                                                                        |
| `configuration`               | object       | A JSON object that describes the Page Builder options menu that corresponds with the widget.                                                                                                                                                                                  |
| `storefront_api_query_params` | string       | A comma-separated list of parameters used to query the GraphQL Storefront API. Used when the parent widget template is configured to request data directly from the GraphQL Storefront API; in this case, the parent widget template has the `storefront_api_query` property. |
| `name`                        | string       | A human-readable label for the widget. Retrievable using either the [Get a widget](/developer/api-reference/rest/admin/content/widgets/widget/get-widget) or the [Get all widgets](/developer/api-reference/rest/admin/content/widgets/widget/get-widgets) endpoint.          |
| `description`                 | string       | A description of the widget. Retrievable using either the [Get a widget](/developer/api-reference/rest/admin/content/widgets/widget/get-widget) or the [Get all widgets](/developer/api-reference/rest/admin/content/widgets/widget/get-widgets) endpoint.                    |
| `type`                        | string, enum | `widget`                                                                                                                                                                                                                                                                      |

## Resources

* [Guide to page widgets](/developer/docs/admin/widgets-and-scripts/page-widgets/guide)

### REST Content API reference

* [Page widgets](/developer/api-reference/rest/admin/content/page-widgets)
* [Widgets](/developer/api-reference/rest/admin/content/widgets)