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 blog feature of the REST 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
Parameters
store_hash in path - string
Accept in header with default of application/json - string
required
channel_id in query - integer
Return only pages associated with the specified channel.
id:in in query - array
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.
Type: array[integer]
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 - array
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
Parameters
store_hash in path - string
Accept in header with default of application/json - string
required
include in query - array
Include the requested property in the response. The body property returns the page’s markup, text, or raw content.
Type: array[string]
Allowed: body
Content-Type in header with default of application/json - string
required
Body
application/json
One of:Create multiple pages using array
One of:Create single page using objectCreate multiple pages using array
Create single page using object
JSONcURLNode.jsPHPJava
99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
›
⌄
{
"channel_id": 1,
"name": "Content Page",
"is_visible": false,
"parent_id": 0,
"sort_order": 0,
"type": "page",
"body": "<div>Hello World!</div>",
"is_homepage": false,
"meta_title": "My Content page",
"meta_keywords": "string",
"meta_description": "string",
"search_keywords": "string",
"url": "/my-content-page"
}
Create multiple pages using array
JSONcURLNode.jsPHPJava
99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
›
⌄
⌄
⌄
[
{
"channel_id": 1,
"name": "Content Page",
"is_visible": false,
"parent_id": 0,
"sort_order": 0,
"type": "page",
"body": "<div>Hello World!</div>",
"is_homepage": false,
"meta_title": "My Content page",
"meta_keywords": "string",
"meta_description": "string",
"search_keywords": "string",
"url": "/my-content-page"
},
{
"channel_id": 547,
"name": "A feed page",
"is_visible": false,
"parent_id": 0,
"sort_order": 0,
"type": "feed",
"meta_title": "A feed page",
"meta_keywords": "string",
"meta_description": "string",
"search_keywords": "string",
Response
201207422
Created.
Response.data will inherit the data type 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:pageblogcontact formfeedrawlink
idinteger
read-only
channel_idinteger
read-only
Default: 1
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.
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.
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 visible only to logged-in customers.
Default: false
urlstring
Relative URL on the storefront for this page.
Example: /my-store-page
meta_titlestring or null
meta_keywordsstring or null
Comma-separated list of SEO-relevant keywords to include in the element of this page.
Default: ""
meta_descriptionstring or null
Description contained within the element of this page.
Default: ""
search_keywordsstring or null
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 headerAuthentication details
Parameters
store_hash in path - string
Accept in header with default of application/json - string
required
include in query - array
Include the requested property in the response. The body property returns the page’s markup, text, or raw content.
Type: array[string]
Allowed: body
Content-Type in header with default of application/json - string
required
Body
application/json
One of:objectarray
idinteger
required
The ID of the target page.
channel_idinteger
The ID of the channel where this page should be shown.
Example: 12
Default: 1
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.
Default: 0
sort_orderinteger
Specifies the order in which the page is displayed on the storefront. (Lower integers specify earlier display.)
Default: 0
typestring
Specifies the type of page. See Pages V3 page types for more about the differences.
Allowed: page | raw | contact_form | feed | link | blog
Example: page
bodystring or null
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>
is_homepageboolean
Boolean value that specifies whether this page is the storefront’s home page.
is_customers_onlyboolean
Boolean value. When true, this page is visible only to logged-in customers.
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 or null
feedstring
The URL of the RSS feed. Required in a POST request if the page type is 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 or null
Comma-separated list of SEO-relevant keywords to include in the element of this page.
Default:
meta_descriptionstring or null
Description contained within the element of this page.
search_keywordsstring or null
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
One of:objectarray
idinteger
required
The ID of the target page.
channel_idinteger
The ID of the channel where this page should be shown.
Example: 12
Default: 1
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.
Default: 0
sort_orderinteger
Specifies the order in which the page is displayed on the storefront. (Lower integers specify earlier display.)
Default: 0
typestring
Specifies the type of page. See Pages V3 page types for more about the differences.
Allowed: page | raw | contact_form | feed | link | blog
Example: page
bodystring or null
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>
is_homepageboolean
Boolean value that specifies whether this page is the storefront’s home page.
is_customers_onlyboolean
Boolean value. When true, this page is visible only to logged-in customers.
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 or null
feedstring
The URL of the RSS feed. Required in a POST request if the page type is 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 or null
Comma-separated list of SEO-relevant keywords to include in the element of this page.
Default:
meta_descriptionstring or null
Description contained within the element of this page.
search_keywordsstring or null
Comma-separated list of keywords that shoppers can use to locate this page when searching the store.
Deletes one or more content pages. This endpoint supports bulk operations.
Authentication
X-Auth-Token in headerAuthentication details
Parameters
store_hash in path - string
Accept in header with default of application/json - string
required
id:in in query - array
required
Request deletion of multiple pages by passing a comma-separated string of corresponding page IDs. Supports bulk operations.
Type: array[integer]
delete_children in query - boolean
When you explicitly set this query parameter to true, deleting a parent page will recursively delete all its immediate children and their descendants.
Otherwise, if you set this query parameter to false or not provided, deleting a parent page will update its immediate children by setting their parent_id to 0 and their is_visible status to false.
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 headerAuthentication details
Parameters
store_hash in path - string
Accept in header with default of application/json - string
required
pageId in path - string
required
The ID of the page to be operated on.
include in query - array
Include the requested property in the response. The body property returns the page’s markup, text, or raw content.
Accept in header with default of application/json - string
required
pageId in path - string
required
The ID of the page to be operated on.
Content-Type in header with default of application/json - string
required
include in query - array
Include the requested property in the response. The body property returns the page’s markup, text, or raw content.
Type: array[string]
Allowed: body
Body
object | application/json
Properties of the page modification request body.
channel_idinteger
The ID of the channel where this page should be shown.
Example: 12
Default: 1
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.
Default: 0
sort_orderinteger
Specifies the order in which the page is displayed on the storefront. (Lower integers specify earlier display.)
Default: 0
typestring
Specifies the type of page. See Pages V3 page types for more about the differences.
Allowed: page | raw | contact_form | feed | link | blog
Example: page
bodystring or null
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>
is_homepageboolean
Boolean value that specifies whether this page is the storefront’s home page.
is_customers_onlyboolean
Boolean value. When true, this page is visible only to logged-in customers.
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 or null
feedstring
The URL of the RSS feed. Required in a POST request if the page type is 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 or null
Comma-separated list of SEO-relevant keywords to include in the element of this page.
Default:
meta_descriptionstring or null
Description contained within the element of this page.
search_keywordsstring or null
Comma-separated list of keywords that shoppers can use to locate this page when searching the store.