openapi: 3.0.1 info: title: BigCommerce Widgets version: '' description: >- Create and manage widget templates, widgets, regions, and placements. ## Subresources ### Widget templates [Widget templates](/docs/rest-content/widgets/widget-template) are reusable Handlebars-enabled HTML templates that define the structure of the widget on a page. ### Widgets [Widgets](/docs/rest-content/widgets/widget) are units of content placed on specific pages in a Stencil theme. Widgets consist of a widget configuration and a widget template UUID and render as part of the storefront’s HTML. ### Regions [Regions](/docs/rest-content/widgets/regions) are specific locations in the Stencil theme template files where you can place a widget. ### Placements [Placements](/docs/rest-content/widgets/placement) determine the region where you place widgets and in what order. ## Additional Information * [Widgets API Overview](/docs/storefront/widgets) * [Widget UI Schema](/docs/storefront/widgets/input-reference/schema) * [Widget UI Input Types](/docs/storefront/widgets/input-reference/settings) termsOfService: https://www.bigcommerce.com/terms contact: name: BigCommerce url: https://www.bigcommerce.com email: support@bigcommerce.com tags: - name: Placement description: BigCommerce Placements API Definition. - name: Regions - name: Widget - name: Widget Template description: BigCommerce Widget Templates API Definition. security: - X-Auth-Token: [] servers: - url: https://api.bigcommerce.com/stores/{store_hash}/v3 variables: store_hash: default: store_hash description: Permanent ID of the BigCommerce store. description: BigCommerce API Gateway paths: /content/widget-templates: post: tags: - Widget Template summary: BigCommerce Create a Widget Template operationId: createWidgetTemplate parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: $ref: '#/components/schemas/widgetTemplate_Post' required: true x-examples: application/json: |- { "name": "Header Images", "template": "{{#each images}}{{/each}}" } Custom Configuration Widget: |- { "name":"Header Images", "template":"{{#each images}}{{/each}}", "schema":[ { "type":"array", "label":"Images", "id":"images", "defaultCount":3, "entryLabel":"Image", "thumbnail":"imageUrl.src", "schema":[ { "type":"tab", "label":"Content", "sections":[ { "settings":[ { "type":"imageManager", "id":"imageUrl", "default":{ "src":"https://cdn11.bigcommerce.com/s-n0i50vy/images/stencil/1280x1280/products/109/361/kinfolkessentialissue_1024x1024__22507.1456436715.jpg?c=2&imbypass=on", "type":"IMAGE_MANAGER" } }, { "label":"Link", "type":"input", "id":"link", "default":"#" } ] } ] } ] } ] } responses: '200': $ref: '#/components/responses/WidgetTemplate_Resp' '422': $ref: '#/components/responses/Error422_Resp' description: >- Creates a **Widget Template**. ***Note:*** *There is a limit of 1000 custom widget templates per store.* **Required Fields** * name * template get: tags: - Widget Template operationId: getWidgetTemplates parameters: - name: page description: | Specifies the page number in a limited (paginated) list of products. required: false in: query schema: type: integer - name: limit description: > Controls the number of items per page in a limited (paginated) list of products. required: false in: query schema: type: integer - in: query name: widget_template_kind description: The kind of widget template. required: false schema: type: string - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/ContentType' - in: query name: channel_id:in description: Filter items by channel_id. schema: type: integer responses: '200': $ref: '#/components/responses/WidgetTemplateCollection_Resp' '422': $ref: '#/components/responses/Error422_Resp' description: Returns a list of **Widget Templates**. summary: BigCommerce Get All Widget Templates /content/widget-templates/{uuid}/preview: post: tags: - Widget Template summary: BigCommerce Render a Widget Template description: Render a widget template and return the widget html. operationId: previewWidget parameters: - $ref: '#/components/parameters/TemplateUUID' requestBody: content: application/json: schema: $ref: '#/components/schemas/WidgetTemplatePreview' required: true responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/WidgetTemplatePreviewResponse' '404': description: Not Found '422': description: Unprocessable Entity parameters: - schema: type: string name: uuid in: path required: true description: The identifier for a specific widget. /content/widget-templates/{uuid}: get: tags: - Widget Template summary: BigCommerce Get a Widget Template operationId: getWidgetTemplate parameters: - schema: type: string in: query name: version_uuid description: >- This is an optional query parameter used to attempt to fetch a specific Widget Template version. responses: '200': $ref: '#/components/responses/WidgetTemplate_Resp' '404': $ref: '#/components/responses/Error404_Resp' '422': $ref: '#/components/responses/Error422_Resp' description: Returns a single **Widget Template**. put: tags: - Widget Template summary: BigCommerce Update a Widget Template operationId: updateWidgetTemplate parameters: - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: $ref: '#/components/schemas/widgetTemplate_Put' required: true x-examples: application/json: name: Header Images template: '{{#each images}}{{/each}}' create_new_version: true responses: '200': $ref: '#/components/responses/WidgetTemplate_Resp' '404': $ref: '#/components/responses/Error404_Resp' '422': $ref: '#/components/responses/Error422_Resp' description: Updates a **Widget Template**. delete: tags: - Widget Template summary: BigCommerce Delete A Widget Template operationId: deleteWidgetTemplate responses: '204': description: An empty response. '404': $ref: '#/components/responses/Error404_Resp' '422': $ref: '#/components/responses/Error422_Resp' description: Deletes a **Widget Template**. parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/TemplateUUID' /content/widgets: post: tags: - Widget summary: BigCommerce Create a Widget operationId: createWidget parameters: - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: $ref: '#/components/schemas/widget_Post' required: true x-examples: application/json: name: Header Images template: '{{#each images}}{{/each}}' widget_configuration: images: - image_source: >- https://cdn11.bigcommerce.com/s-n0i50vy/images/stencil/1280x1280/products/109/361/kinfolkessentialissue_1024x1024__22507.1456436715.jpg?c=2&imbypass=on - image_source: >- https://cdn11.bigcommerce.com/s-n0i50vy/images/stencil/500x659/products/85/282/livingwithplants_grande__26452.1456436666.jpg?c=2&imbypass=on - image_source: >- https://cdn11.bigcommerce.com/s-n0i50vy/images/stencil/1280x1280/products/109/361/kinfolkessentialissue_1024x1024__22507.1456436715.jpg?c=2&imbypass=on widget_template_uuid: f8459145-da8f-4d98-93e4-83aa47da61c6 responses: '200': $ref: '#/components/responses/Widget_Resp' '422': $ref: '#/components/responses/Error422_Resp' description: >- Creates a **Widget**. **Note:** There is a limit of 100,000 widgets per store and 150 widgets per page. For more information, see [Store Limits](https://support.bigcommerce.com/s/article/Platform-Limits#storelimits). get: tags: - Widget summary: BigCommerce Get All Widgets operationId: getWidgets parameters: - name: page description: | Specifies the page number in a limited (paginated) list of products. required: false in: query schema: type: integer - name: limit description: > Controls the number of items per page in a limited (paginated) list of products. required: false in: query schema: type: integer - in: query name: widget_template_kind description: The kind of widget template. required: false schema: type: string - in: query name: widget_template_uuid description: The identifier for a specific widget template. required: false schema: type: string format: uuid - in: query name: name description: The URL encoded name of the widget. schema: type: string - in: query name: name:in description: >- Use to pass in comma-separated list of widget names. Example: `/widgets?name:in=test-widget-name,header%20images` schema: type: array items: {} - in: query name: channel_id:in description: Filter items by channel_id. schema: type: integer - schema: type: string in: query name: site_id:in description: A comma-separated list of site ids to filter the results by. responses: '200': $ref: '#/components/responses/WidgetCollection_Resp' '422': $ref: '#/components/responses/Error422_Resp' description: Returns a list of **Widgets**. Optional parameters can be passed in. parameters: - $ref: '#/components/parameters/Accept' /content/widgets/{uuid}: get: tags: - Widget summary: BigCommerce Get a Widget operationId: getWidget responses: '200': $ref: '#/components/responses/Widget_Resp' '404': $ref: '#/components/responses/Error404_Resp' '422': $ref: '#/components/responses/Error422_Resp' description: Returns a single **Widget**. put: tags: - Widget summary: BigCommerce Update a Widget operationId: updateWidget parameters: - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: $ref: '#/components/schemas/widget_Put' required: true x-examples: application/json: name: Header Images widget_configuration: images: - image_source: >- https://cdn11.bigcommerce.com/s-n0i50vy/images/stencil/1280x1280/products/109/361/kinfolkessentialissue_1024x1024__22507.1456436715.jpg?c=2&imbypass=on - image_source: >- https://cdn11.bigcommerce.com/s-n0i50vy/images/stencil/500x659/products/85/282/livingwithplants_grande__26452.1456436666.jpg?c=2&imbypass=on - image_source: >- https://cdn11.bigcommerce.com/s-n0i50vy/images/stencil/1280x1280/products/109/361/kinfolkessentialissue_1024x1024__22507.1456436715.jpg?c=2&imbypass=on widget_template_uuid: f8459145-da8f-4d98-93e4-83aa47da61c6 responses: '200': $ref: '#/components/responses/Widget_Resp' '404': $ref: '#/components/responses/Error404_Resp' '422': $ref: '#/components/responses/Error422_Resp' description: Updates a **Widget**. delete: tags: - Widget summary: BigCommerce Delete a Widget operationId: deleteWidget responses: '204': description: An empty response. '404': $ref: '#/components/responses/Error404_Resp' '422': $ref: '#/components/responses/Error422_Resp' description: Deletes a **Widget**. parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/WidgetUUID' /content/placements: post: tags: - Placement summary: BigCommerce Create a Placement operationId: createPlacement parameters: - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: $ref: '#/components/schemas/placement_Post' required: true x-examples: application/json: widget_uuid: a8940709-5655-4401-a341-62c44e3180b2 entity_id: '21' template_file: pages/category status: active sort_order: 1 region: category_header_banner responses: '200': $ref: '#/components/responses/Placement_Resp' '422': $ref: '#/components/responses/Error422_Resp' description: >- Creates a **Placement**. **Template Files** To view the list of values accepted by the `template_file` property, including **custom** templates, see [Placements](/docs/storefront/widgets#placements). get: tags: - Placement summary: BigCommerce Get All Placements operationId: getPlacements parameters: - name: page description: | Specifies the page number in a limited (paginated) list of products. required: false in: query schema: type: integer - name: limit description: > Controls the number of items per page in a limited (paginated) list of products. required: false in: query schema: type: integer - in: query name: widget_template_kind description: The kind of widget template. required: false schema: type: string - in: query name: template_file description: 'The template file, for example: `pages/home`.' required: false schema: type: string - name: widget_uuid description: The identifier for a specific widget. in: query required: false schema: type: string format: uuid - in: query name: widget_template_uuid description: The identifier for a specific widget template. required: false schema: type: string format: uuid - $ref: '#/components/parameters/ChannelIDInParam' - $ref: '#/components/parameters/SiteIDInParam' responses: '200': $ref: '#/components/responses/PlacementsCollection_Resp' '422': $ref: '#/components/responses/Error422_Resp' description: Returns a list of **Placements**. parameters: - $ref: '#/components/parameters/Accept' /content/placements/{uuid}: get: tags: - Placement summary: BigCommerce Get a Placement operationId: getPlacement responses: '200': $ref: '#/components/responses/Placement_Resp' '404': $ref: '#/components/responses/Error404_Resp' '422': $ref: '#/components/responses/Error422_Resp' description: Returns a single **Placement**. put: tags: - Placement summary: BigCommerce Update a Placement operationId: updatePlacement parameters: - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: $ref: '#/components/schemas/placement_Put' required: true x-examples: application/json: sort_order: 1 region: home_header_image template_file: pages/home status: active responses: '200': $ref: '#/components/responses/Placement_Resp' '404': $ref: '#/components/responses/Error404_Resp' '422': $ref: '#/components/responses/Error422_Resp' description: Updates a **Placement**. delete: tags: - Placement summary: BigCommerce Delete a Placement operationId: deletePlacement responses: '204': description: An empty response. '404': $ref: '#/components/responses/Error404_Resp' '422': $ref: '#/components/responses/Error422_Resp' description: Deletes a **Placement**. parameters: - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/PlacementUUID' /content/regions: get: responses: '200': $ref: '#/components/responses/ThemeRegions_Resp' '404': $ref: '#/components/responses/Error404_Resp' '422': $ref: '#/components/responses/Error422_Resp' summary: BigCommerce Get Theme Regions description: Returns a list of unique **Theme Regions** in a file. operationId: getContentRegions tags: - Regions parameters: - $ref: '#/components/parameters/Accept' - in: query name: template_file description: 'The template file, for example: `templateFile=pages/home`.' required: true schema: type: string components: parameters: TemplateUUID: name: uuid description: The identifier for a specific template. required: true in: path schema: type: string format: uuid FilterWidgetTemplateUUIDParam: in: query name: widget_template_uuid description: The identifier for a specific widget template. required: false schema: type: string format: uuid FilterWidgetTemplateKindParam: in: query name: widget_template_kind description: The kind of widget template. required: false schema: type: string FilterTemplateFileParam: in: query name: template_file description: 'The template file, for example: `pages/home`.' required: false schema: type: string RequiredTemplateFile: in: query name: templateFile description: 'The template file, for example: `templateFile=pages/home`.' required: true schema: type: string LayoutUUID: name: uuid description: The identifier for a specific layout. required: true in: path schema: type: string format: uuid PlacementUUID: name: uuid description: The identifier for a specific placement. required: true in: path schema: type: string format: uuid WidgetUUID: name: uuid description: The identifier for a specific widget. required: true in: path schema: type: string format: uuid FilterWidgetUUIDParam: name: widget_uuid description: The identifier for a specific widget. in: query required: false schema: type: string format: uuid PageParam: name: page description: | Specifies the page number in a limited (paginated) list of products. required: false in: query schema: type: integer LimitParam: name: limit description: > Controls the number of items per page in a limited (paginated) list of products. required: false in: query schema: type: integer QueryWidgetsParam: name: query in: query description: | The query string associated with a widget's name and description. schema: type: string Accept: name: Accept in: header required: true description: >- The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response body. schema: type: string default: application/json ContentType: name: Content-Type in: header required: true description: >- The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the request body. schema: type: string default: application/json ChannelIDInParam: name: channel_id:in in: query required: false schema: type: string description: A comma-separated list of channel ids to filter the results by. SiteIDInParam: name: site_id:in in: query required: false schema: type: string description: A comma-separated list of site IDs to filter the results by. responses: ThemeRegions_Resp: description: '' content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/themeRegion' meta: $ref: '#/components/schemas/Meta' examples: response: value: data: - name: header_bottom - name: category_header_banner meta: {} LayoutCollectionResponse: description: '' content: application/json: schema: type: object properties: data: type: array items: properties: uuid: type: string format: uuid description: The primary identifier. entity_id: type: string description: The specific instance of a page template_file: type: string description: The page template name. region: type: string description: >- The name of the region defined in the Stencil theme file. markup: type: string description: >- The HTML layout which defines complex positioning for placements. date_created: type: string format: date-time description: The date on which this object was initially created. date_modified: type: string format: date-time description: The date on which this object was last updated. title: Layout meta: type: object description: >- Data about the response, including pagination and collection totals. properties: pagination: type: object description: > Data about the response, including pagination and collection totals. properties: total: type: integer description: | Total number of items in the result set. count: type: integer description: | Total number of items in the collection response. per_page: type: integer description: > The amount of items returned in the collection per page, controlled by the limit parameter. current_page: type: integer description: | The page you are currently on within the collection. total_pages: type: integer description: | The total number of pages in the collection. links: type: object description: > Pagination links for the previous and next parts of the whole collection. properties: previous: type: string description: > Link to the previous page returned in the response. current: type: string description: | Link to the current page returned in the response. next: type: string description: | Link to the next page returned in the response. title: Collection Meta examples: response: value: data: - uuid: cacdadcf-07ec-43f3-aec4-f8e3382d7618 template_file: pages/category entity_id: '21' region: category_header_banner markup: ' ' date_created: '2019-02-25T18:38:08.455Z' date_modified: '2019-02-25T18:38:08.455Z' meta: pagination: total: 1 count: 1 per_page: 50 current_page: 1 total_pages: 1 LayoutResponse: description: '' content: application/json: schema: type: object properties: data: type: array items: properties: uuid: type: string format: uuid description: The primary identifier. entity_id: type: string description: The specific instance of a page template_file: type: string description: The page template name. region: type: string description: >- The name of the region defined in the Stencil theme file. markup: type: string description: >- The HTML layout which defines complex positioning for placements. date_created: type: string format: date-time description: The date on which this object was initially created. date_modified: type: string format: date-time description: The date on which this object was last updated. title: Layout PlacementsCollection_Resp: description: '' content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/placement_Full' meta: $ref: '#/components/schemas/metaCollection' examples: response: value: data: - channel_id: 1 date_created: '2020-12-21T20:43:16.796Z' date_modified: '2020-12-21T20:43:16.796Z' entity_id: '21' region: category_header_banner sort_order: 1 status: active template_file: pages/category uuid: 89eac5b3-91d7-48e5-92e7-ff53ecf07f8c widget: channel_id: 1 date_created: '2020-12-21T19:54:16.406Z' date_modified: '2020-12-21T20:40:45.173Z' description: '' name: Header Images storefront_api_query_params: {} uuid: 1f05183e-dfa4-4583-af28-250b47e177b2 version_uuid: c863f77b-e5b4-4462-a9ed-2aff9005140e widget_configuration: _: id: 1f05183e-dfa4-4583-af28-250b47e177b2 images: - image_source: >- https://cdn11.bigcommerce.com/s-n0i50vy/images/stencil/1280x1280/products/109/361/kinfolkessentialissue_1024x1024__22507.1456436715.jpg?c=2&imbypass=on - image_source: >- https://cdn11.bigcommerce.com/s-n0i50vy/images/stencil/500x659/products/85/282/livingwithplants_grande__26452.1456436666.jpg?c=2&imbypass=on - image_source: >- https://cdn11.bigcommerce.com/s-n0i50vy/images/stencil/1280x1280/products/109/361/kinfolkessentialissue_1024x1024__22507.1456436715.jpg?c=2&imbypass=on widget_template: channel_id: 1 client_rerender: false current_version_uuid: c863f77b-e5b4-4462-a9ed-2aff9005140e date_created: '2020-12-21T19:49:29.110Z' date_modified: '2020-12-21T19:49:29.110Z' icon_name: default kind: custom name: Header Images schema: [] storefront_api_query: '' template: '{{#each images}}{{/each}}' template_engine: handlebars_v3 uuid: f8459145-da8f-4d98-93e4-83aa47da61c6 meta: pagination: count: 1 current_page: 1 per_page: 50 total: 1 total_pages: 1 Placement_Resp: description: '' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/placement_Full' meta: $ref: '#/components/schemas/Meta' examples: response: value: data: channel_id: 1 date_created: '2020-12-21T20:43:16.796Z' date_modified: '2020-12-21T20:43:16.796Z' entity_id: '21' region: category_header_banner sort_order: 1 status: active template_file: pages/category uuid: 89eac5b3-91d7-48e5-92e7-ff53ecf07f8c widget: channel_id: 1 date_created: '2020-12-21T19:54:16.406Z' date_modified: '2020-12-21T20:40:45.173Z' description: '' name: Header Images storefront_api_query_params: {} uuid: 1f05183e-dfa4-4583-af28-250b47e177b2 version_uuid: c863f77b-e5b4-4462-a9ed-2aff9005140e widget_configuration: _: id: 1f05183e-dfa4-4583-af28-250b47e177b2 images: - image_source: >- https://cdn11.bigcommerce.com/s-n0i50vy/images/stencil/1280x1280/products/109/361/kinfolkessentialissue_1024x1024__22507.1456436715.jpg?c=2&imbypass=on - image_source: >- https://cdn11.bigcommerce.com/s-n0i50vy/images/stencil/500x659/products/85/282/livingwithplants_grande__26452.1456436666.jpg?c=2&imbypass=on - image_source: >- https://cdn11.bigcommerce.com/s-n0i50vy/images/stencil/1280x1280/products/109/361/kinfolkessentialissue_1024x1024__22507.1456436715.jpg?c=2&imbypass=on widget_template: channel_id: 1 client_rerender: false current_version_uuid: c863f77b-e5b4-4462-a9ed-2aff9005140e date_created: '2020-12-21T19:49:29.110Z' date_modified: '2020-12-21T19:49:29.110Z' icon_name: default kind: custom name: Header Images schema: [] storefront_api_query: '' template: '{{#each images}}{{/each}}' template_engine: handlebars_v3 uuid: f8459145-da8f-4d98-93e4-83aa47da61c6 meta: {} WidgetTemplateCollection_Resp: description: '' content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/widgetTemplate_Full' meta: $ref: '#/components/schemas/metaCollection' examples: response: value: data: - channel_id: 1 client_rerender: false current_version_uuid: 4bd7619e-7992-4454-8610-84fb16449761 date_created: '2020-12-21T19:36:16.896Z' date_modified: '2020-12-21T19:36:16.896Z' icon_name: default kind: custom name: Header Images schema: [] storefront_api_query: '' template: '{{#each images}}{{/each}}' template_engine: handlebars_v3 uuid: f8459145-da8f-4d98-93e4-83aa47da61c6 - channel_id: 1 client_rerender: false current_version_uuid: c23dd66b-fa3f-451d-88ef-9f4082c6051e date_created: '2020-12-21T19:36:59.384Z' date_modified: '2020-12-21T19:36:59.384Z' icon_name: default kind: custom name: Simple List schema: [] storefront_api_query: '' template: >- template_engine: handlebars_v3 uuid: 42b42cbb-e2d8-4f2a-97ea-06755032115a - channel_id: 1 client_rerender: false current_version_uuid: bc820372-368e-4a96-a6d6-f313edba5617 date_created: '2020-12-21T19:38:08.036Z' date_modified: '2020-12-21T19:38:08.036Z' icon_name: default kind: custom name: Simple Text with Styling schema: [] storefront_api_query: '' template: | {{text}} template_engine: handlebars_v3 uuid: 17dcc919-982a-4cc0-8ede-a5b49f9ab6dc - channel_id: 1 client_rerender: false current_version_uuid: 873b0a03-b219-46ec-8f06-c3c4522ef25d date_created: '2020-12-21T19:38:30.223Z' date_modified: '2020-12-21T19:38:30.223Z' icon_name: default kind: custom name: YouTube Embed schema: [] storefront_api_query: '' template: '' template_engine: handlebars_v3 uuid: d9e7fd0e-d5c2-45c9-8919-ce68a5590c12 - channel_id: 1 client_rerender: false current_version_uuid: 8fa7ff13-fcfb-4106-9c32-5a084224a444 date_created: '2020-12-21T19:38:46.557Z' date_modified: '2020-12-21T19:38:46.557Z' icon_name: default kind: custom name: Slider Template schema: [] storefront_api_query: '' template: |- {{#each slides}} {{/each}} template_engine: handlebars_v3 uuid: 30714957-0e01-4c4e-8551-25591261d0d0 - channel_id: 0 client_rerender: false current_version_uuid: 7494d009-c695-43ce-a1eb-ba75ef663ba2 date_created: '2020-06-23T18:07:12.110Z' date_modified: '2020-06-23T18:07:12.110Z' icon_name: default kind: pp-cartpage-fullbanner name: PayPal Credit Banner - Cart Page (728x90) schema: [] storefront_api_query: '' template: '' template_engine: handlebars_v3 uuid: 2ff24732-6848-47ba-9a7f-c8b1d444f270 - channel_id: 0 client_rerender: false current_version_uuid: ee4978a6-31f9-47e2-ab38-810dd1c78e34 date_created: '2020-06-23T18:07:12.136Z' date_modified: '2020-06-23T18:07:12.136Z' icon_name: default kind: pp-homepage-fullbanner name: PayPal Credit Banner - Home Page (728x90) schema: [] storefront_api_query: '' template: '' template_engine: handlebars_v3 uuid: 3002bf5b-5eca-4ac2-8f1f-5240c2b74712 meta: pagination: total: 7 count: 7 per_page: 50 current_page: 1 total_pages: 1 WidgetTemplate_Resp: description: '' content: application/json: schema: allOf: - type: object properties: data: $ref: '#/components/schemas/widgetTemplate_Full' - properties: meta: $ref: '#/components/schemas/Meta' examples: response: value: data: channel_id: 1 client_rerender: false current_version_uuid: 4bd7619e-7992-4454-8610-84fb16449761 date_created: '2020-12-21T19:36:16.896Z' date_modified: '2020-12-21T19:36:16.896Z' icon_name: default kind: custom name: Header Images schema: [] storefront_api_query: '' template: '{{#each images}}{{/each}}' template_engine: handlebars_v3 uuid: f8459145-da8f-4d98-93e4-83aa47da61c6 meta: {} WidgetCollection_Resp: description: '' content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/widget_Full' meta: $ref: '#/components/schemas/metaCollection' examples: response: value: data: - channel_id: 1 date_created: '2020-12-21T19:54:16.406Z' date_modified: '2020-12-21T19:54:16.406Z' description: '' name: Header Images storefront_api_query_params: {} uuid: 1f05183e-dfa4-4583-af28-250b47e177b2 version_uuid: c863f77b-e5b4-4462-a9ed-2aff9005140e widget_configuration: _: id: 1f05183e-dfa4-4583-af28-250b47e177b2 images: - image_source: >- https://cdn11.bigcommerce.com/s-n0i50vy/images/stencil/1280x1280/products/109/361/kinfolkessentialissue_1024x1024__22507.1456436715.jpg?c=2&imbypass=on - image_source: >- https://cdn11.bigcommerce.com/s-n0i50vy/images/stencil/500x659/products/85/282/livingwithplants_grande__26452.1456436666.jpg?c=2&imbypass=on - image_source: >- https://cdn11.bigcommerce.com/s-n0i50vy/images/stencil/1280x1280/products/109/361/kinfolkessentialissue_1024x1024__22507.1456436715.jpg?c=2&imbypass=on widget_template: channel_id: 1 client_rerender: false current_version_uuid: c863f77b-e5b4-4462-a9ed-2aff9005140e date_created: '2020-12-21T19:49:29.110Z' date_modified: '2020-12-21T19:49:29.110Z' icon_name: default kind: custom name: Header Images schema: [] storefront_api_query: '' template: '{{#each images}}{{/each}}' template_engine: handlebars_v3 uuid: f8459145-da8f-4d98-93e4-83aa47da61c6 - channel_id: 1 date_created: '2020-12-21T20:26:18.557Z' date_modified: '2020-12-21T20:26:18.557Z' description: '' name: Simple List storefront_api_query_params: {} uuid: 7a842254-96ad-475f-9fe5-a59695e9685f version_uuid: c23dd66b-fa3f-451d-88ef-9f4082c6051e widget_configuration: _: id: 7a842254-96ad-475f-9fe5-a59695e9685f list_items: - color: blue text: The color is blue - color: green text: The color is green - color: red text: The color is red widget_template: channel_id: 1 client_rerender: false current_version_uuid: c23dd66b-fa3f-451d-88ef-9f4082c6051e date_created: '2020-12-21T19:36:59.384Z' date_modified: '2020-12-21T19:36:59.384Z' icon_name: default kind: custom name: Simple List schema: [] storefront_api_query: '' template: >- template_engine: handlebars_v3 uuid: 42b42cbb-e2d8-4f2a-97ea-06755032115a meta: pagination: count: 2 current_page: 1 per_page: 50 total: 2 total_pages: 1 Widget_Resp: description: '' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/widget_Full' meta: $ref: '#/components/schemas/Meta' examples: response: value: data: channel_id: 1 date_created: '2020-12-21T19:54:16.406Z' date_modified: '2020-12-21T19:54:16.406Z' description: '' name: Header Images storefront_api_query_params: {} uuid: 1f05183e-dfa4-4583-af28-250b47e177b2 version_uuid: c863f77b-e5b4-4462-a9ed-2aff9005140e widget_configuration: _: id: 1f05183e-dfa4-4583-af28-250b47e177b2 images: - image_source: >- https://cdn11.bigcommerce.com/s-n0i50vy/images/stencil/1280x1280/products/109/361/kinfolkessentialissue_1024x1024__22507.1456436715.jpg?c=2&imbypass=on - image_source: >- https://cdn11.bigcommerce.com/s-n0i50vy/images/stencil/500x659/products/85/282/livingwithplants_grande__26452.1456436666.jpg?c=2&imbypass=on - image_source: >- https://cdn11.bigcommerce.com/s-n0i50vy/images/stencil/1280x1280/products/109/361/kinfolkessentialissue_1024x1024__22507.1456436715.jpg?c=2&imbypass=on widget_template: channel_id: 1 client_rerender: false current_version_uuid: c863f77b-e5b4-4462-a9ed-2aff9005140e date_created: '2020-12-21T19:49:29.110Z' date_modified: '2020-12-21T19:49:29.110Z' icon_name: default kind: custom name: Header Images schema: [] storefront_api_query: '' template: '{{#each images}}{{/each}}' template_engine: handlebars_v3 uuid: f8459145-da8f-4d98-93e4-83aa47da61c6 meta: {} Error422_Resp: description: > This is the result of missing required fields, or of invalid data. See the response for more details. content: application/json: schema: $ref: '#/components/schemas/error_Base' Error404_Resp: description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/error_Base' examples: example-1: value: status: 0 title: string type: string instance: string errors: {} securitySchemes: X-Auth-Token: name: X-Auth-Token description: >- ### OAuth scopes | UI Name | Permission | Parameter | |:--|:--|:-| | Content | modify | `store_v2_content` | | Content | read-only | `store_v2_content_read_only` | ### Authentication header | Header | Argument | Description | |:-|:|:| | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our [Guide to API Accounts](/docs/start/authentication/api-accounts). | ### Further reading For example requests and more information about authenticating BigCommerce APIs, see [Authentication and Example Requests](/docs/start/authentication#x-auth-token-header-example-requests). For more about BigCommerce OAuth scopes, see our [Guide to API Accounts](/docs/start/authentication/api-accounts#oauth-scopes). For a list of API status codes, see [API Status Codes](/docs/start/about/status-codes). type: apiKey in: header schemas: WidgetTemplatePreview: properties: widget_configuration: type: object description: The JSON data that populates the template. format: json x-tags: - Models WidgetTemplatePreviewResponse: type: object properties: data: properties: html: type: string description: The HTML render of the widget template. format: html x-tags: - Models title: '' widgetTemplate_Put: allOf: - $ref: '#/components/schemas/widgetTemplate_Base' - type: object properties: create_new_version: type: boolean description: >- Can be added to create a new widget template version instead of updating the current one. channel_id: type: integer description: The id of the channel on which to place this template. title: widgetTemplate_Put x-internal: false widgetTemplate_Post: title: widgetTemplate_Post type: object description: '' x-internal: false properties: name: type: string description: User-friendly name. schema: $ref: '#/components/schemas/widgetSchema' template: type: string description: Handlebars HTML content. Also has access to Stencil Paper helpers. format: html storefront_api_query: type: string description: The GraphQL Storefront API query that provides widget data. channel_id: type: integer description: >- The id of the channel on which to create this template. Defaults to the first channel created on the store. required: - name - template x-examples: example-1: name: string schema: - tab template: string storefront_api_query: string channel_id: 0 widgetTemplate_Full: allOf: - $ref: '#/components/schemas/widgetTemplate_Base' - type: object properties: uuid: type: string format: uuid description: The primary identifier. kind: type: string description: The kind of widget template. date_created: type: string format: date-time description: The date on which this object was initially created. date_modified: type: string format: date-time description: The date on which this object was last updated. current_version_uuid: type: string description: The identifier to the current version of this widget template. icon_name: type: string default: default description: >- A read-only value. Do not attempt to set or modify this value in a POST or PUT operation. title: widgetTemplate_Full description: '' x-internal: false widget_Full: title: widget_Full allOf: - $ref: '#/components/schemas/widget_Base' - type: object properties: uuid: type: string format: uuid description: The primary identifier. widget_template: $ref: '#/components/schemas/widgetTemplate_Full' date_created: type: string format: date-time description: The date on which this object was initially created. date_modified: type: string format: date-time description: The date on which this object was last updated. version_uuid: type: string description: >- The identifier of the widget template version associated with this widget. channel_id: type: integer description: The ID of the channel on which this widget exists. x-internal: false widget_Post: title: widget_Post x-internal: false type: object properties: name: type: string description: User friendly name. description: type: string description: The user-friendly description. widget_configuration: type: object description: The JSON data that populates the template. format: json widget_template_uuid: type: string description: The widget template UUID. channel_id: type: integer description: >- The ID of the channel on which to create this widget. Defaults to the first channel created on the store. required: - name - widget_template_uuid widget_Put: title: widget_Put allOf: - $ref: '#/components/schemas/widget_Base' - type: object properties: widget_template_uuid: type: string description: The widget template UUID. channel_id: type: integer upgrade: type: boolean description: Upgrade the Widget to latest version of the WidgetTemplate. x-internal: false placement_Post: title: placement_Post allOf: - type: object properties: widget_uuid: type: string description: A widget identifier. template_file: type: string description: The template file that you would like to target. channel_id: type: integer description: >- The id of the channel on which to create this placement. Defaults to the first channel created on the store. example: 1 required: - widget_uuid - template_file - $ref: '#/components/schemas/placement_Base' x-internal: false placement_Put: title: placement_Put allOf: - type: object properties: template_file: type: string description: The template file that you would like to target. widget_uuid: type: string description: A widget identifier. channel_id: type: integer description: The ID of the channel on which this placement exists. - $ref: '#/components/schemas/placement_Base' x-internal: false placement_Full: title: placement_Full allOf: - type: object properties: uuid: type: string format: uuid description: The primary identifier. template_file: type: string description: The template file that you would like to target. date_created: type: string format: date-time description: The date on which this object was initially created. date_modified: type: string format: date-time description: The date on which this object was last updated. channel_id: type: integer description: The ID of the channel on which this placement exists. - $ref: '#/components/schemas/placement_Base' - type: object properties: widget: $ref: '#/components/schemas/widget_Full' x-internal: false metaCollection: type: object description: Data about the response, including pagination and collection totals. title: metaCollection properties: pagination: $ref: '#/components/schemas/pagination' x-internal: false pagination: type: object description: | Data about the response, including pagination and collection totals. properties: total: type: integer description: | Total number of items in the result set. count: type: integer description: | Total number of items in the collection response. per_page: type: integer description: > The amount of items returned in the collection per page, controlled by the limit parameter. current_page: type: integer description: | The page you are currently on within the collection. total_pages: type: integer description: | The total number of pages in the collection. links: type: object description: > Pagination links for the previous and next parts of the whole collection. properties: previous: type: string description: | Link to the previous page returned in the response. current: type: string description: | Link to the current page returned in the response. next: type: string description: | Link to the next page returned in the response. title: pagination x-internal: false ErrorResponse: allOf: - $ref: '#/components/schemas/BaseError' - type: object properties: errors: $ref: '#/components/schemas/DetailedErrors' x-tags: - Models error_Base: type: object description: Error payload for the BigCommerce API. properties: status: description: The HTTP status code. type: integer title: description: The error title describing the particular error. type: string type: type: string instance: type: string errors: type: object x-internal: false title: error_Base BaseError: type: object description: | Error payload for the BigCommerce API. properties: status: description: | The HTTP status code. type: integer title: description: | The error title describing the particular error. type: string type: type: string instance: type: string x-tags: - Models DetailedErrors: type: object properties: {} additionalProperties: true title: Detailed Errors x-tags: - Models themeRegion: properties: name: type: string description: The region name. title: themeRegion x-internal: false Meta: title: Response meta type: object properties: {} additionalProperties: true description: Response metadata. placement_Base: type: object title: placement_Base properties: entity_id: type: string description: >- The identifier of a page you would like to target. For product pages, choose product ID. For category pages, choose category ID. Home page does not support `entity_id`. sort_order: type: integer description: >- The sort order to control the position of a content widget in a region. region: type: string description: The name of the region in which to insert content widgets. status: type: string enum: - inactive - active description: Sets the placement as either inactive or active. default: inactive x-internal: false widgetTemplate_Base: type: object title: widgetTemplate_Base properties: name: type: string description: The user-friendly name. schema: $ref: '#/components/schemas/widgetSchema' template: type: string format: html description: The widget template HTML. Supports Handlebars and Paper helpers. storefront_api_query: type: string description: The GraphQL Storefront API query that provides widget data. description: '' x-internal: false widget_Base: type: object title: widget_Base properties: name: type: string description: The user-friendly name. description: type: string description: The user-friendly description. widget_configuration: type: object format: json description: The JSON data that populates the template. x-internal: false x-examples: {} new-model: type: array items: type: object properties: type: type: string label: type: string id: type: string default: type: integer typeMeta: type: string conditional: $ref: '#/components/schemas/widgetSchemaConditional' x-internal: false widgetSchemaTab: type: object title: widgetSchemaTab description: >- **Tab.** Use the **tab** settings type to create settings visible in Page Builder. properties: type: type: string description: The type of setting component to display. enum: - tab label: type: string example: Content description: >- The user-friendly message to inform the user how this setting will be used. sections: type: array description: Groups of related settings. items: type: object title: widgetSchemaTabSections properties: label: type: string description: >- The user-friendly message to inform the user how this setting will be used. example: Product settings: type: array description: >- For examples of schema settings, see [Widget UI Input Types](/docs/storefront/widgets/input-reference/settings). items: type: object title: widgetSchemaSetting_Base description: >- For examples of each type of setting, see [Page Builder > Schema Settings](/docs/storefront/widgets/input-reference/settings#alignment) in Theme Docs. properties: type: type: string description: >- The type of setting component to display. You can view the list of elements below to discover which are available to use. For examples of each type of setting, see [Page Builder > Schema Settings](/docs/storefront/widgets/input-reference/settings#alignment) in Theme Docs. enum: - alignment - boolean - boxModel - code - color - imageManager - input - number - productId - productImage - range - regexInput - select - text - toggle label: type: string description: >- The user friendly message to inform the user how this setting will be used. id: type: string description: >- The variable name where the setting value will be available in the widget template. default: type: string description: >- The default value to use when rendering the widget for the first time. Make sure to set sensible defaults to make your widget easier to use. typeMeta: type: object description: >- Additional information needed based on the selected setting type. properties: selectOptions: type: array items: type: object properties: label: type: string example: Image value: type: string example: image conditional: type: object title: widgetSchemaConditional description: >- An optional property that can be added to each setting to control whether it should be displayed to the user while editing in Page Builder. This does not clear the value in the setting, just controls the display of the setting. x-examples: Conditional attribute: key: backgroundType operator: IN value: - color properties: key: type: string description: >- The ID of the `setting` object the conditional attribute is related to. example: backgroundType operator: type: string description: >- Specifies the operation used to determine whether to display the setting. The `IN` operator is currently the only supported operator. The setting will be displayed if the conditional’s `value` property is equal to the selected value of the `selectOptions`. example: IN value: type: array description: >- A single-object array containing a value from the `typeMeta`'s `selectOptions`. items: {} x-internal: false x-examples: {} widgetSchemaTabSections: type: object title: widgetSchemaTabSections properties: label: type: string settings: type: array description: >- For examples of each type of setting, see [Page Builder > Schema Settings](/docs/storefront/widgets/input-reference/settings#alignment) in Theme Docs. items: $ref: '#/components/schemas/widgetSchemaSetting_Base' x-internal: false widgetSchemaArray: type: object title: widgetSchemaArray description: >- **Array.** Use the **array** settings type to build collections of elements within the widget. Each element in the array can contain tabs, sections, and an entire schema. properties: type: type: string enum: - array label: type: string id: type: string defaultCount: type: integer description: number of elements in the list to display by default. entryLabel: type: string description: name for each element in the list thumbnail: type: object description: used to display an image stored at the specified attribute name properties: type: type: string example: image valueKey: type: string example: imageUrl.src schema: description: The schema used for each element in the array. type: array items: anyOf: - $ref: '#/components/schemas/widgetSchemaHidden' - $ref: '#/components/schemas/widgetSchemaTab' x-internal: false widgetSchemaSetting_Base: type: object title: widgetSchemaSetting_Base description: >- For examples of each type of setting, see [Page Builder > Schema Settings](/docs/storefront/widgets/input-reference/settings#alignment) in Theme Docs. properties: type: type: string description: >- The type of setting component to display. You can view the list of elements below to discover which are available to use. For examples of each type of setting, see [Page Builder > Schema Settings](/docs/storefront/widgets/input-reference/settings#alignment) in Theme Docs. enum: - alignment - boolean - boxModel - code - color - imageManager - input - number - productId - productImage - range - regexInput - select - text - toggle label: type: string description: >- The user friendly message to inform the user how this setting will be used. id: type: string description: >- The variable name where the setting value will be available in the widget template. default: type: string description: >- The default value to use when rendering the widget for the first time. Make sure to set sensible defaults to make your widget easier to use. typeMeta: type: object description: Additional information needed based on the selected setting type. properties: selectOptions: type: array items: type: object properties: label: type: string example: Image value: type: string example: image conditional: $ref: '#/components/schemas/widgetSchemaConditional' x-internal: false widgetSchema: type: array description: >- The schema for the widget’s merchant-facing UI. For more information on the available schema settings, see [Widget UI Schema](/docs/storefront/widgets/input-reference/schema). title: '' items: anyOf: - $ref: '#/components/schemas/widgetSchemaTab' - $ref: '#/components/schemas/widgetSchemaArray' - $ref: '#/components/schemas/widgetSchemaHidden' x-internal: false widgetSchemaHidden: type: object title: widgetSchemaHidden description: >- **Hidden.** Use the **hidden** settings type to create controls that have no user interface drawn in Page Builder. Hidden settings are not grouped into any other tabs or arrays. x-internal: false properties: type: type: string enum: - hidden example: hidden settings: type: array items: type: object title: widgetSchemaSetting_Base description: >- For examples of each type of setting, see [Page Builder > Schema Settings](/docs/storefront/widgets/input-reference/settings#alignment) in Theme Docs. properties: type: type: string description: >- The type of setting component to display. You can view the list of elements below to discover which are available to use. For examples of each type of setting, see [Page Builder > Schema Settings](/docs/storefront/widgets/input-reference/settings#alignment) in Theme Docs. enum: - alignment - boolean - boxModel - code - color - imageManager - input - number - productId - productImage - range - regexInput - select - text - toggle label: type: string description: >- The user friendly message to inform the user how this setting will be used. id: type: string description: >- The variable name where the setting value will be available in the widget template. default: type: string description: >- The default value to use when rendering the widget for the first time. Make sure to set sensible defaults to make your widget easier to use. typeMeta: type: object description: >- Additional information needed based on the selected setting type. properties: selectOptions: type: array items: type: object properties: label: type: string example: Image value: type: string example: image conditional: type: object title: widgetSchemaConditional description: >- An optional property that can be added to each setting to control whether it should be displayed to the user while editing in Page Builder. This does not clear the value in the setting, just controls the display of the setting. x-examples: Conditional attribute: key: backgroundType operator: IN value: - color properties: key: type: string description: >- The ID of the `setting` object the conditional attribute is related to. example: backgroundType operator: type: string description: >- Specifies the operation used to determine whether to display the setting. The `IN` operator is currently the only supported operator. The setting will be displayed if the conditional’s `value` property is equal to the selected value of the `selectOptions`. example: IN value: type: array description: >- A single-object array containing a value from the `typeMeta`'s `selectOptions`. items: {} widgetSchemaTabSectionsSettings: type: object properties: {} title: widgetSchemaTabSectionsSettings x-internal: false widgetSchemaConditional: type: object title: widgetSchemaConditional description: >- An optional property that can be added to each setting to control whether it should be displayed to the user while editing in Page Builder. This does not clear the value in the setting, just controls the display of the setting. x-examples: Conditional attribute: key: backgroundType operator: IN value: - color properties: key: type: string description: >- The ID of the `setting` object the conditional attribute is related to. example: backgroundType operator: type: string description: >- Specifies the operation used to determine whether to display the setting. The `IN` operator is currently the only supported operator. The setting will be displayed if the conditional’s `value` property is equal to the selected value of the `selectOptions`. example: IN value: type: array description: >- A single-object array containing a value from the `typeMeta`'s `selectOptions`. items: {} x-internal: false