Thanks for being patient while we implement your feedback to improve the developer experience.
Pages V3
Overview
A page appears on a site that is associated with a channel.
Some pages, such as blog pages, contact forms, and plain-text or HTML pages, are web pages in the traditional sense. They contain markup (a body) and load at a relative page location on the site itself (the url). Other pages, such as link and feed pages, make external or non-visual content available from the menu of a parent page or by direct link.
Bulk operations
All endpoints without a pageId path parameter support bulk operations.
Page types
The following table describes the types of pages that the Pages API can manage:
Page Type
Description
Body
page
A user-defined plain-text page.
text
contact_form
A user-customizable page that contains a contact form.
HTML
raw
A user-defined page that contains HTML markup or other stringified code.
HTML, other code
blog
A page that contains blog posts. Use caution; blog-type pages can only be created in the store control panel, but you may be able to change the type of a blog page to something else with this API. Use the Store Content API to work with blog posts and tags.
empty string
feed
Makes RSS-syndicated content feeds available in the menu of other pages that contain markup.
—
link
A link to an external absolute URL. Displays in the menu of other pages that contain markup.
Returns one or more content pages. This endpoint supports bulk operations.
Authentication
X-Auth-Token in header - required
Parameters
store_hash in path - string
channel_id in query - integer
Return only pages associated with the specified channel.
id:in in query - string
A comma-separated string of page IDs to fetch. Supports bulk operations. If none of the page IDs passed exist, the query will return an empty data array.
name in query - string
Name of the page.
name:like in query - string
Return only pages whose name or body contain the supplied string.
limit in query - integer
The number of results to return per request. See meta.pagination.per_page in the response body.
page in query - integer
The ordered grouping of results to return. See meta.pagination.current_page in the response body.
include in query - string
Include the requested property in the response. The body property returns the page’s markup, text, or raw content.
Creates one or more content pages. This endpoint supports bulk operations.
Authentication
X-Auth-Token in header - required
Parameters
store_hash in path - string
include in query - string
Include the requested property in the response. The body property returns the page’s markup, text, or raw content.
Content-Type in header with default of application/json - string - required
Body
application/json
emailstring
Applicable when the page type is contact_form: contact email address that receives messages sent via the form. Must be unique.
<= 255 characters
Default:
meta_titlestring
bodystring
HTML or variable that populates this page’s element, in default/desktop view. Required in a POST request if the page type is raw.
Example: <div>Hello World!</div>
feedstring
The URL of the RSS feed. Required in a POST request if the page type is rss_feed.
linkstring
Required in a POST request to create a link if the page type is link.
contact_fieldsstring
Applicable when the page type is contact_form: comma-separated list of keywords representing the fields enabled in the control panel for storefront display. Possible fields include:
Field
Description
fullname
Full name of the customer submitting the form
phone
Customer’s phone number, as submitted on the form
companyname
Customer’s submitted company name
orderno
Customer’s submitted order number
rma
Customer’s submitted RMA (Return Merchandise Authorization) number
Example: fullname,orderno,rma
Default:
meta_keywordsstring
Comma-separated list of SEO-relevant keywords to include in the page’s element.
Default:
meta_descriptionstring
Description contained within this page’s element.
search_keywordsstring
Comma-separated list of keywords that shoppers can use to locate this page when searching the store.
Example: trousers,pockets,luxury
urlstring
Relative URL on the storefront for this page.
Example: /my-store-page
channel_idinteger
The Id of the channel where this page should be shown.
Example: 12
Default: 1
namestring
required
The name of the page. Must be unique.
>= 1 characters<= 100 characters
Example: My Store Page
is_visibleboolean
Determines the visibility of the page in the storefront’s navigation menu.
Boolean value that specifies the visibility of the page in the storefront’s navigation menu.
Indicates whether the page is available to users and visible in any menus.
parent_idinteger
ID of any parent Web page.
Example: 0
Default: 0
sort_orderinteger
Determines the order in which the page is displayed on the storefront. (Lower integers specify earlier display.)
Example: 0
Default: 0
typestring
required
Determines the type of the page.
Value
Description
blog
blog page. Read-only; blog pages can only be created in the store control panel.
contact_form
hosts the store's contact form
link
link to another absolute URL
page
user-defined plain-text page
raw
page that contains markup, such as HTML.
rss_feed
contains syndicated content from an RSS feed
Allowed: page | raw | contact_form | feed | link | blog
Example: page
is_homepageboolean
Determines whether this page is the storefront’s home page.
is_customers_onlyboolean
If true, this page will only be visible to customers that are logged in to the store.
Response.data will inherit the datatype of the request. A single entry passed as an object will return an object for the data property. Any number of entries passed in an array will return an array for the data property.
Properties associated with a page type that are not required to create an entry will be created with default values.
When you make bulk requests, an invalid input in any one entry will return 422. The entries that are valid will still be created.
Body
object | application/json
data
Any of:Option 2Option 3Option 4Option 5Option 6
idinteger
channel_idinteger
namestring
required
The name of the page. Must be unique.
>= 1 characters<= 100 characters
Example: About Our Company
is_visibleboolean
A boolean value that controls whether the page is available to users or visible in any navigation menus.
Example: true
Default: true
parent_idinteger
ID of the parent page, if any.
Example: 0
Default: 0
sort_orderinteger
Determines the order in which the page is displayed in the parent page’s menu. Pages with lower integers display earlier.
Example: 0
typestring
required
Determines the type of page. See Pages v3 page types for more about the differences.
Allowed: page | raw | contact_form | feed | link | blog
Example: page
is_homepageboolean
Determines whether this page loads at the siteʼs root route. For example, at https://example.com/.
Default: false
is_customers_onlyboolean
When true, this page is not visible to merchant users who are signed in to the store control panel.
Default: false
urlstring
Relative URL on the storefront for this page.
Example: /my-store-page
meta_titlestring
meta_keywordsstring
Comma-separated list of SEO-relevant keywords to include in the element of this page.
Default: ""
meta_descriptionstring
Description contained within the element of this page.
Default: ""
search_keywordsstring
Comma-separated list of keywords that shoppers can use to locate this page when searching the store.
Example: trousers,pockets,luxury
Default: ""
metaobject
Data about the response, including pagination and collection totals.
Updates one or more content pages. This endpoint supports bulk operations.
Authentication
X-Auth-Token in header - requiredShow details
Parameters
store_hash in path - string
include in query - string
Include the requested property in the response. The body property returns the page’s markup, text, or raw content.
Content-Type in header with default of application/json - string - required
Body
application/json
One of:objectarray
namestring
The name of the page. Must be unique.
>= 1 characters<= 100 characters
Example: My Store Page
is_visibleboolean
Boolean value that specifies the visibility of the page in the storefront’s navigation menu.
Indicates whether the page is available to users and visible in any menus.
parent_idinteger
ID of any parent Web page.
Example: 0
Default: 0
sort_orderinteger
Specifies the order in which the page is displayed on the storefront. (Lower integers specify earlier display.)
Example: 0
Default: 0
typestring
Specifies the type of the page. The following values are possible;
Value
Description
blog
blog page. Read-only; blog pages can only be created in the store control panel.
contact_form
hosts the store's contact form
link
link to another absolute URL
page
user-defined plain-text page
raw
page that contains markup, such as HTML.
rss_feed
contains syndicated content from an RSS feed
Allowed: page | raw | contact_form | feed | link | blog
Example: page
is_homepageboolean
Boolean value that specifies whether this page is the storefront’s home page.
is_customers_onlyboolean
Boolean value. If this value is set to true, this page will not be visible when the user is logged in to the store control panel.
idinteger
required
The ID of the target page.
emailstring
Applicable when the page type is contact_form: contact email address that receives messages sent via the form. Must be unique.
<= 255 characters
meta_titlestring
bodystring
HTML or variable that populates the element of this page, in default/desktop view. Required in a POST request if the page type is raw.
Example: <div>Hello World!</div>
feedstring
The URL of the RSS feed. Required in a POST request if the page type is rss_feed.
linkstring
Required in a POST request to create a link if the page type is link.
contact_fieldsstring
Applicable when the page type is contact_form: comma-separated list of keywords representing the fields enabled in the control panel for storefront display. Possible fields include:
Field
Description
fullname
Full name of the customer submitting the form
phone
Customer’s phone number, as submitted on the form
companyname
Customer’s submitted company name
orderno
Customer’s submitted order number
rma
Customer’s submitted RMA (Return Merchandise Authorization) number
Example: fullname,companyname,phone,orderno,rma
meta_keywordsstring
Comma-separated list of SEO-relevant keywords to include in the element of this page.
Default:
meta_descriptionstring
Description contained within the element of this page.
search_keywordsstring
Comma-separated list of keywords that shoppers can use to locate this page when searching the store.
Example: trousers,pockets,luxury
urlstring
Relative URL on the storefront for this page.
Example: /my-store-page
channel_idinteger
The ID of the channel where this page should be shown.
Example: 12
Default: 0
example
jsoncurlnodephprubyjava
{"name":"My Store Page","is_visible":true,"parent_id":0,"sort_order":0,"type":"page","is_homepage":true,"is_customers_only":true,"id":0,"email":"string","meta_title":"string","body":"<div>Hello World!</div>","feed":"string","link":"string","contact_fields":"fullname,companyname,phone,orderno,rma","meta_keywords":"","meta_description":"string","search_keywords":"trousers,pockets,luxury","url":"/my-store-page","channel_id":12}
Response
200404422
Updated.
Body
object | application/json
Response payload for the BigCommerce API.
dataarray[]
metaobject
Data about the response, including pagination and collection totals.
update meta descriptions for two pages
json
{"data":[{"id":20,"channel_id":1,"name":"all about powder detergents","meta_title":"","is_visible":false,"parent_id":0,"sort_order":0,"meta_keywords":null,"type":"page","meta_description":"cornpone","is_homepage":false,"is_customers_only":false,"search_keywords":""},{"id":19,"channel_id":1,"name":"sign up to dream big","meta_title":"","email":"","is_visible":false,"parent_id":0,"sort_order":0,"meta_keywords":null,"contact_fields":"","type":"contact_form","meta_description":"arugula","is_homepage":false,"is_customers_only":false,"search_keywords":""}],"meta":{}}
Deletes one or more content pages. This endpoint supports bulk operations.
Warning
Pay attention to query parameters
If you attempt to delete multiple pages by passing more than one page ID to id:in and one or more of them does not exist, you will receive a 404 response. However, the pages corresponding to the page IDs that do exist will still be deleted.
Authentication
X-Auth-Token in header - requiredShow details
Parameters
store_hash in path - string
id:in in query - string - required
Request deletion of multiple pages by passing a comma-separated string of corresponding page IDs. Supports bulk operations.
Pay attention to query parameters
This endpoint recognizes the same query parameters as Get Multiple Pages. If the requested page does not meet the query parameters you specify, you will receive a 404 response even if the requested pageId does exist.
Authentication
X-Auth-Token in header - requiredShow details
Parameters
store_hash in path - string
include in query - string
Include the requested property in the response. The body property returns the page’s markup, text, or raw content.
Data about the response, including pagination and collection totals.
several data types
json
{"data":[{"id":3,"channel_id":1,"name":"Blog","meta_title":"Blog","is_visible":false,"parent_id":0,"sort_order":4,"meta_keywords":"","type":"blog","meta_description":"","is_homepage":false,"is_customers_only":false,"search_keywords":"0","url":"/blog/"},{"id":5,"channel_id":1,"name":"Contact Us","meta_title":"","email":"","is_visible":true,"parent_id":0,"sort_order":3,"meta_keywords":"contact keyword","contact_fields":"fullname,companyname,phone,orderno,rma","type":"contact_form","meta_description":"contact meta desc","is_homepage":false,"is_customers_only":true,"search_keywords":"contact search keyword"},{"id":16,"channel_id":1,"name":"all about powder detergents 2","meta_title":"","is_visible":false,"parent_id":0,"sort_order":0,"meta_keywords":null,"type":"page","meta_description":"","is_homepage":false,"is_customers_only":false,"search_keywords":""},{"id":17,"channel_id":1,"name":"one hundred million red balloons 3","is_visible":false,"parent_id":0,"sort_order":0,"type":"raw","is_homepage":false,"is_customers_only":false,"search_keywords":"","content_type":"text/html"},{"id":18,"channel_id":1,"name":"diaper pin purveyors 3","is_visible":false,"parent_id":0,"sort_order":0,"link":"https://example.com/diaper-pins","type":"link","is_homepage":false,"is_customers_only":false},{"id":19,"channel_id":1,"name":"sign up to crush dreams 3","meta_title":"","email":"","is_visible":false,"parent_id":0,"sort_order":0,"meta_keywords":null,"contact_fields":"","type":"contact_form","meta_description":"","is_homepage":false,"is_customers_only":false,"search_keywords":""},{"id":20,"channel_id":1,"name":"all about powder detergents 3","meta_title":"","is_visible":false,"parent_id":0,"sort_order":0,"meta_keywords":null,"type":"page","meta_description":"","is_homepage":false,"is_customers_only":false,"search_keywords":""},{"id":21,"channel_id":1,"name":"feed monsters 3","meta_title":"","is_visible":false,"parent_id":0,"sort_order":0,"meta_keywords":null,"feed":"/rss/monsters","type":"feed","meta_description":"","is_homepage":false,"is_customers_only":false,"search_keywords":""},{"id":22,"channel_id":1,"name":"one hundred million red balloons 4","is_visible":false,"parent_id":0,"sort_order":0,"type":"raw","is_homepage":false,"is_customers_only":false,"search_keywords":"","content_type":"text/html"},{"id":23,"channel_id":1,"name":"diaper pin purveyors 4","is_visible":false,"parent_id":0,"sort_order":0,"link":"https://example.com/diaper-pins","type":"link","is_homepage":false,"is_customers_only":false}],"meta":{"pagination":{"total":6,"count":6,"per_page":50,"current_page":1,"total_pages":1,"links":{"current":"?page=1&limit=50"}}}}
Content-Type in header with default of application/json - string - required
include in query - string
Include the requested property in the response. The body property returns the page’s markup, text, or raw content.
Body
object | application/json
Properties of the page modification request body.
namestring
The name of the page. Must be unique.
>= 1 characters<= 100 characters
Example: My Store Page
is_visibleboolean
Boolean value that specifies the visibility of the page in the storefront’s navigation menu.
parent_idinteger
ID of any parent Web page.
Example: 0
Default: 0
sort_orderinteger
Specifies the order in which the page is displayed on the storefront. (Lower integers specify earlier display.)
Example: 0
Default: 0
typestring
Specifies the type of the page.
Value
Description
blog
blog page. Read-only; blog pages can only be created in the store control panel.
contact_form
hosts the store's contact form
link
link to another absolute URL
page
user-defined plain-text page
raw
page that contains markup, such as HTML.
rss_feed
contains syndicated content from an RSS feed
Allowed: page | raw | contact_form | feed | link | blog
Example: page
is_homepageboolean
Boolean value that specifies whether this page is the storefront’s home page.
is_customers_onlyboolean
Boolean value. If this value is set to true, this page will not be visible when the user is logged in to the store control panel.
emailstring
Applicable when the page type is contact_form: contact email address that receives messages sent via the form. Must be unique.
<= 255 characters
meta_titlestring
bodystring
HTML or variable that populates the elment of this page, in default/desktop view. Required in a POST request if the page type is raw.
Example: <div>Hello World!</div>
feedstring
The URL of the RSS feed. Required in a POST request if the page type is rss_feed.
linkstring
Required in a POST request to create a link if the page type is link.
contact_fieldsstring
Applicable when the page type is contact_form: comma-separated list of keywords representing the fields enabled in the control panel for storefront display. Possible fields include:
Field
Description
fullname
Full name of the customer submitting the form
phone
Customer’s phone number, as submitted on the form
companyname
Customer’s submitted company name
orderno
Customer’s submitted order number
rma
Customer’s submitted RMA (Return Merchandise Authorization) number
Example: fullname,companyname,phone,orderno,rma
meta_keywordsstring
Comma-separated list of SEO-relevant keywords to include in the element of this page.
Default:
meta_descriptionstring
Description contained within the element of this page.
search_keywordsstring
Comma-separated list of keywords that shoppers can use to locate this page when searching the store.
Example: trousers,pockets,luxury
urlstring
Relative URL on the storefront for this page.
Example: /my-store-page
channel_idinteger
The ID of the channel where this page should be shown.
Example: 12
Default: 0
example
jsoncurlnodephprubyjava
{"name":"My Store Page","is_visible":true,"parent_id":0,"sort_order":0,"type":"page","is_homepage":true,"is_customers_only":true,"email":"string","meta_title":"string","body":"<div>Hello World!</div>","feed":"string","link":"string","contact_fields":"fullname,companyname,phone,orderno,rma","meta_keywords":"","meta_description":"string","search_keywords":"trousers,pockets,luxury","url":"/my-store-page","channel_id":12}
Response
200400404422
Body
object | application/json
Response payload for the BigCommerce API.
dataarray[object]
metaobject
Data about the response, including pagination and collection totals.
example
json
{"data":[{"email":"","meta_title":"string","body":"<div>Hello World!</div>","feed":"string","link":"string","contact_fields":"fullname,orderno,rma","meta_keywords":"","meta_description":"string","search_keywords":"trousers,pockets,luxury","url":"/my-store-page","channel_id":12,"name":"My Store Page","is_visible":true,"parent_id":0,"sort_order":0,"type":"page","is_homepage":true,"is_customers_only":true}],"meta":{"pagination":{"total":0,"count":0,"per_page":0,"current_page":0,"total_pages":0,"links":{"previous":"string","current":"string","next":"string"}}}}