> 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.

# Third-Party Widgets

A third-party widget is a configurable, reusable component created and maintained by developers outside of BigCommerce. You can use third-party widgets to display custom content in a Stencil storefront.

This article outlines the three main steps involved in using third-party widgets with [Page Builder](/developer/docs/storefront/stencil/content/page-builder).

## Creating third-party widgets

Widgets are injected into the storefront using the [Widgets API](/developer/api-reference/rest/admin/content/widgets). You can apply [widgets](/developer/docs/admin/widgets-and-scripts#widgets) and [widget templates](/developer/docs/admin/widgets-and-scripts#widget-templates) in a merchant’s store using one of the following methods:

* OAuth token
* App Marketplace

### OAuth token

To use this method, you will need to obtain API credentials with OAuth content scope set to `modify`. For information about making requests against BigCommerce’s REST APIs, see [Authenticating BigCommerce’s REST APIs](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts).  After obtaining the token, you can inject, list, and remove widgets on any page of the store. To learn how to complete these actions, see [Widgets Tutorial](/developer/docs/admin/widgets-and-scripts/guide).

### App Marketplace

The [App Marketplace](https://www.bigcommerce.com/apps/) is an area inside the control panel where merchants can browse for apps available for installation on their BigCommerce store.

To create a widget using the App Marketplace, you will need to create a marketplace application that injects new widgets into the storefront using the Widgets API.

> **Note**
>
> Content created by an application's widget will remain in the store even if the application gets uninstalled.

## Modifying BigCommerce widgets

You can extend a BigCommerce-provided widget by modifying the existing API parameters in the widget template. The API parameters for a widget template are as follows:

| Parameter  | Description                                                                                                                               |
| ---------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `name`     | The name of the widget.                                                                                                                   |
| `template` | The skeleton UI of the widget rendered as Handlebars HTML.                                                                                |
| `schema`   | The JSON schema of data for the widget template. The schema represents the customizable options available in the sidebar of Page Builder. |

### Configuring settings for a widget

To modify a BigCommerce-provided widget, re-configure the existing settings in the widget template’s `schema` property when creating a widget template via the API. The settings you define in this property will be exposed in the Page Builder UI, providing merchants the ability to modify how the widget appears on their storefront.

You can change widget's customization options by modifying the template's `schema`. Once you have modified the `schema`, place the modified JSON object in the request body as the `schema` value, and make a `POST` request for the [Widget Template](/developer/api-reference/rest/admin/content/widgets/widget-template/create-widget-template) to expose the new customization options on Page Builder.

## Exposing third-party widget templates

To expose a third-party widget template in Page Builder, make a `POST` request for the [Widget Template](/developer/api-reference/rest/admin/content/widgets/widget-template/create-widget-template). Include the widget's `name`, `template`, and `schema` in the body of your request. The `schema` value should be the modified JSON object with customizable settings you want to incorporate for the widget.

If you successfully create the widget template, you should see the widget with its customizable options reflected in Page Builder, under the **Custom** section.

> **Note**
>
> You do not need to make a `POST` request for the [Widget](/developer/api-reference/rest/admin/content/widgets/widget/create-widget) or [Widget Placement](/developer/api-reference/rest/admin/content/widgets/placement/create-placement) to reflect the new widget in Page Builder.

## Resources

* [Widgets API](/developer/docs/admin/widgets-and-scripts)
* [Widgets Tutorial](/developer/docs/admin/widgets-and-scripts/guide)