openapi: 3.1.0
info:
  title: 'Admin Content: Pages'
  version: 1.0.0
paths:
  /stores/{store_hash}/v3/content/pages:
    get:
      operationId: getPages
      summary: List Pages
      description: Returns one or more content pages. This endpoint supports bulk operations.
      tags:
        - pagesBulk
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: channel_id
          in: query
          description: Return only pages associated with the specified channel.
          required: false
          schema:
            type: integer
        - name: id:in
          in: query
          description: >-
            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.
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: name
          in: query
          description: Name of the page.
          required: false
          schema:
            type: string
        - name: name:like
          in: query
          description: Return only pages whose `name` or `body` contain the supplied string.
          required: false
          schema:
            type: string
        - name: limit
          in: query
          description: The number of results to return per request. See `meta.pagination.per_page` in the response body.
          required: false
          schema:
            type: integer
        - name: page
          in: query
          description: The ordered grouping of results to return. See `meta.pagination.current_page` in the response body.
          required: false
          schema:
            type: integer
        - name: include
          in: query
          description: >-
            Include the requested property in the response. The `body` property returns the page’s markup, text, or raw
            content.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/ContentPagesGetParametersIncludeSchemaItems'
        - name: X-Auth-Token
          in: header
          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](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagesCollectionResponse'
        '400':
          description: >-
            Bad Request; reasons for failure include passing query parameters that are not supported on this endpoint,
            but are common on other BigCommerce endpoints.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseErrorDetailed'
        '422':
          description: >-
            Invalid input. Reasons for failure include passing supported parameters with values that have the incorrect
            datatype.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseErrorItemized'
    post:
      operationId: createPages
      summary: Create Pages
      description: >-
        Creates one or more content pages. This endpoint supports bulk operations.


        Web pages created via this endpoint are subject to the 4000 web page platform limit. Attempting to create pages
        over the limit will return an error. For more information on platform limits, see [Platform Limits (Help
        Center)](https://support.bigcommerce.com/s/article/Platform-Limits).
      tags:
        - pagesBulk
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include
          in: query
          description: >-
            Include the requested property in the response. The `body` property returns the page’s markup, text, or raw
            content.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/ContentPagesPostParametersIncludeSchemaItems'
        - name: X-Auth-Token
          in: header
          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](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '201':
          description: >-
            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.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Pages (Bulk)_createPages_Response_201'
        '422':
          description: >-
            The input was not valid. This is the result of missing required fields or other invalid arguments. See the
            response for more details.


            When making bulk requests, an invalid input in any one entry will cause the whole request to return 422. The
            entries that are valid will still be created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseErrorDetailed'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Pages (Bulk)_createPages_Request'
    put:
      operationId: updatePages
      summary: Update Pages
      description: Updates one or more content pages. This endpoint supports bulk operations.
      tags:
        - pagesBulk
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include
          in: query
          description: >-
            Include the requested property in the response. The `body` property returns the page’s markup, text, or raw
            content.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/ContentPagesPutParametersIncludeSchemaItems'
        - name: X-Auth-Token
          in: header
          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](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: |
            Updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagesCollectionResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseErrorBrief'
        '422':
          description: >-
            The input was not valid. This is the result of missing required fields or other invalid arguments. See the
            response for more details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseErrorDetailed'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Pages (Bulk)_updatePages_Request'
    delete:
      operationId: deletePages
      summary: Delete Pages
      description: Deletes one or more content pages. This endpoint supports bulk operations.
      tags:
        - pagesBulk
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: id:in
          in: query
          description: >-
            Request deletion of multiple pages by passing a comma-separated string of corresponding page IDs. Supports
            bulk operations.
          required: true
          schema:
            type: array
            items:
              type: integer
        - name: delete_children
          in: query
          description: >
            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`.
          required: false
          schema:
            type: boolean
        - name: X-Auth-Token
          in: header
          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](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '204':
          description: No content. A 204 response with no payload indicates successful deletion of all specified pages.
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '404':
          description: >-
            Not Found. One of more of the pages specified for deletion did not exist. Specified pages that did exist
            were successfully deleted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseErrorBrief'
        '422':
          description: Invalid input. See response for details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseErrorDetailed'
  /stores/{store_hash}/v3/content/pages/{pageId}:
    get:
      operationId: getPage
      summary: Get Page
      description: >-
        Returns one content page.


        > #### Warning

        > **Pay attention to query parameters**

        > This endpoint recognizes the same query parameters as [Get Multiple
        Pages](/developer/api-reference/rest/admin/content/pages/get-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.
      tags:
        - pagesSingle
      parameters:
        - name: pageId
          in: path
          description: The ID of the page to be operated on.
          required: true
          schema:
            type: string
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include
          in: query
          description: >-
            Include the requested property in the response. The `body` property returns the page’s markup, text, or raw
            content.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/ContentPagesPageIdGetParametersIncludeSchemaItems'
        - name: X-Auth-Token
          in: header
          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](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SinglePageResponse'
        '404':
          description: Not Found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseErrorBrief'
        '422':
          description: Invalid input. One or more path parameter(s) did not have the correct datatype.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseErrorItemized'
    put:
      operationId: updatePage
      summary: Update Page
      description: Updates one content page.
      tags:
        - pagesSingle
      parameters:
        - name: pageId
          in: path
          description: The ID of the page to be operated on.
          required: true
          schema:
            type: string
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include
          in: query
          description: >-
            Include the requested property in the response. The `body` property returns the page’s markup, text, or raw
            content.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/ContentPagesPageIdPutParametersIncludeSchemaItems'
        - name: X-Auth-Token
          in: header
          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](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SinglePageResponse'
        '400':
          description: Bad Request; reasons for failure include invalid query parameters. See the response for more details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseErrorDetailed'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseErrorBrief'
        '422':
          description: >-
            The input was not valid. This error is the result of missing required fields or other invalid arguments. See
            the response for more details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseErrorDetailed'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PagePutObj'
    delete:
      operationId: deletePage
      summary: Delete Page
      description: |-
        Deletes one content page.

        > #### Warning
        > **Query parameters not recognized**
        > This endpoint does not recognize query parameters.
      tags:
        - pagesSingle
      parameters:
        - name: pageId
          in: path
          description: The ID of the page to be operated on.
          required: true
          schema:
            type: string
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          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](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '204':
          description: No content. A 204 response with no payload indicates successful deletion of all specified pages.
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '404':
          description: The page specified for deletion did not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseErrorBrief'
servers:
  - url: https://api.bigcommerce.com
    description: https://api.bigcommerce.com
components:
  schemas:
    ContentPagesGetParametersIncludeSchemaItems:
      type: string
      enum:
        - body
      title: ContentPagesGetParametersIncludeSchemaItems
    TypePageType:
      type: string
      enum:
        - page
        - raw
        - contact_form
        - link
        - blog
      description: >-
        Determines the type of page. See [Pages V3 page
        types](/developer/api-reference/rest/admin/content/pages#page-types) for more about the differences.
      title: TypePageType
    typePage:
      type: object
      properties:
        id:
          type: integer
        channel_id:
          type: integer
          default: 1
        name:
          type: string
          description: The name of the page. Must be unique.
        is_visible:
          type: boolean
          default: true
          description: A boolean value that controls whether the page is available to users or visible in any navigation menus.
        parent_id:
          type: integer
          default: 0
          description: ID of the parent page, if any.
        sort_order:
          type: integer
          description: >-
            Determines the order in which the page is displayed in the parent page’s menu. Pages with lower integers
            display earlier.
        type:
          $ref: '#/components/schemas/TypePageType'
          description: >-
            Determines the type of page. See [Pages V3 page
            types](/developer/api-reference/rest/admin/content/pages#page-types) for more about the differences.
        is_homepage:
          type: boolean
          default: false
          description: Determines whether this page loads at the siteʼs root route. For example, at `https://example.com/`.
        is_customers_only:
          type: boolean
          default: false
          description: When `true`, this page is visible only to logged-in customers.
        url:
          type: string
          description: |
            Relative URL on the storefront for this page.
        meta_title:
          type:
            - string
            - 'null'
        meta_keywords:
          type:
            - string
            - 'null'
          default: '""'
          description: |
            Comma-separated list of SEO-relevant keywords to include in the element of this page.
        meta_description:
          type:
            - string
            - 'null'
          default: '""'
          description: |
            Description contained within the element of this page.
        search_keywords:
          type:
            - string
            - 'null'
          default: '""'
          description: |
            Comma-separated list of keywords that shoppers can use to locate this page when searching the store.
      required:
        - name
        - type
      description: |
        `type: page`. A user-defined plain-text page.
      title: typePage
    TypeBlogType:
      type: string
      enum:
        - page
        - raw
        - contact_form
        - link
        - blog
      description: >-
        Determines the type of page. See [Pages V3 page
        types](/developer/api-reference/rest/admin/content/pages#page-types) for more about the differences.
      title: TypeBlogType
    typeBlog:
      type: object
      properties:
        id:
          type: integer
        channel_id:
          type: integer
          default: 1
        name:
          type: string
          description: The name of the page. Must be unique.
        is_visible:
          type: boolean
          default: true
          description: A boolean value that controls whether the page is available to users or visible in any navigation menus.
        parent_id:
          type: integer
          default: 0
          description: ID of the parent page, if any.
        sort_order:
          type: integer
          description: >-
            Determines the order in which the page is displayed in the parent page’s menu. Pages with lower integers
            display earlier.
        type:
          $ref: '#/components/schemas/TypeBlogType'
          description: >-
            Determines the type of page. See [Pages V3 page
            types](/developer/api-reference/rest/admin/content/pages#page-types) for more about the differences.
        is_homepage:
          type: boolean
          default: false
          description: Determines whether this page loads at the siteʼs root route. For example, at `https://example.com/`.
        is_customers_only:
          type: boolean
          default: false
          description: When `true`, this page is visible only to logged-in customers.
        url:
          type: string
          description: |
            Relative URL on the storefront for this page.
        meta_title:
          type:
            - string
            - 'null'
        meta_keywords:
          type:
            - string
            - 'null'
          default: '""'
          description: |
            Comma-separated list of SEO-relevant keywords to include in the element of this page.
        meta_description:
          type:
            - string
            - 'null'
          default: '""'
          description: |
            Description contained within the element of this page.
        search_keywords:
          type:
            - string
            - 'null'
          default: '""'
          description: |
            Comma-separated list of keywords that shoppers can use to locate this page when searching the store.
      required:
        - name
        - type
      description: >-
        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](/developer/api-reference/rest/admin/content/store-content/blog-posts/create-blog-posts) to
        work with blog posts and tags.
      title: typeBlog
    TypeContactFormType:
      type: string
      enum:
        - page
        - raw
        - contact_form
        - link
        - blog
      description: >-
        Determines the type of page. See [Pages V3 page
        types](/developer/api-reference/rest/admin/content/pages#page-types) for more about the differences.
      title: TypeContactFormType
    typeContactForm:
      type: object
      properties:
        id:
          type: integer
        channel_id:
          type: integer
          default: 1
        name:
          type: string
          description: The name of the page. Must be unique.
        is_visible:
          type: boolean
          default: true
          description: A boolean value that controls whether the page is available to users or visible in any navigation menus.
        parent_id:
          type: integer
          default: 0
          description: ID of the parent page, if any.
        sort_order:
          type: integer
          description: >-
            Determines the order in which the page is displayed in the parent page’s menu. Pages with lower integers
            display earlier.
        type:
          $ref: '#/components/schemas/TypeContactFormType'
          description: >-
            Determines the type of page. See [Pages V3 page
            types](/developer/api-reference/rest/admin/content/pages#page-types) for more about the differences.
        is_homepage:
          type: boolean
          default: false
          description: Determines whether this page loads at the siteʼs root route. For example, at `https://example.com/`.
        is_customers_only:
          type: boolean
          default: false
          description: When `true`, this page is visible only to logged-in customers.
        url:
          type: string
          description: |
            Relative URL on the storefront for this page.
        meta_title:
          type:
            - string
            - 'null'
        meta_keywords:
          type:
            - string
            - 'null'
          default: '""'
          description: |
            Comma-separated list of SEO-relevant keywords to include in the element of this page.
        meta_description:
          type:
            - string
            - 'null'
          default: '""'
          description: |
            Description contained within the element of this page.
        search_keywords:
          type:
            - string
            - 'null'
          default: '""'
          description: |
            Comma-separated list of keywords that shoppers can use to locate this page when searching the store.
        email:
          type: string
          description: >-
            Applicable when the page type is `contact_form`: contact email address that receives messages sent using the
            form. Must be unique.
        contact_fields:
          type: string
          description: >
            A comma-separated list of the contact field forms that are enabled in the store control panel for display on
            the subject storefront. Possible fields include:


            | Field | Description |

            |:------|:------------|

            | `fullname` | The full name of the customer submitting the form. |

            | `phone` | The customer’s phone number. |

            | `companyname` | The customer’s company name. |

            | `orderno` | A field that lets customers specify a subject order number. |

            | `rma` | A customer’s submitted RMA (Return Merchandise Authorization) number. |
      required:
        - name
        - type
      description: '`type: contact_form`. A user-customizable page that contains a contact form. Body content returns HTML.'
      title: typeContactForm
    TypeRawType:
      type: string
      enum:
        - page
        - raw
        - contact_form
        - link
        - blog
      description: >-
        Determines the type of page. See [Pages V3 page
        types](/developer/api-reference/rest/admin/content/pages#page-types) for more about the differences.
      title: TypeRawType
    typeRaw:
      type: object
      properties:
        id:
          type: integer
        channel_id:
          type: integer
          default: 1
        name:
          type: string
          description: The name of the page. Must be unique.
        is_visible:
          type: boolean
          default: true
          description: A boolean value that controls whether the page is available to users or visible in any navigation menus.
        parent_id:
          type: integer
          default: 0
          description: ID of the parent page, if any.
        sort_order:
          type: integer
          description: >-
            Determines the order in which the page is displayed in the parent page’s menu. Pages with lower integers
            display earlier.
        type:
          $ref: '#/components/schemas/TypeRawType'
          description: >-
            Determines the type of page. See [Pages V3 page
            types](/developer/api-reference/rest/admin/content/pages#page-types) for more about the differences.
        is_homepage:
          type: boolean
          default: false
          description: Determines whether this page loads at the siteʼs root route. For example, at `https://example.com/`.
        is_customers_only:
          type: boolean
          default: false
          description: When `true`, this page is visible only to logged-in customers.
        url:
          type: string
          description: |
            Relative URL on the storefront for this page.
        search_keywords:
          type:
            - string
            - 'null'
          default: '""'
          description: |
            Comma-separated list of keywords that shoppers can use to locate this page when searching the store.
        body:
          type:
            - string
            - 'null'
          description: >
            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`.
        content_type:
          type: string
          description: The MIME type of the page body.
      required:
        - name
        - type
        - body
      description: '`type: raw`. A user-defined page with a body that contains HTML markup or other stringified code.'
      title: typeRaw
    TypeLinkType:
      type: string
      enum:
        - page
        - raw
        - contact_form
        - link
        - blog
      description: >-
        Determines the type of page. See [Pages V3 page
        types](/developer/api-reference/rest/admin/content/pages#page-types) for more about the differences.
      title: TypeLinkType
    typeLink:
      type: object
      properties:
        id:
          type: integer
        channel_id:
          type: integer
          default: 1
        name:
          type: string
          description: The name of the page. Must be unique.
        is_visible:
          type: boolean
          default: true
          description: A boolean value that controls whether the page is available to users or visible in any navigation menus.
        parent_id:
          type: integer
          default: 0
          description: ID of the parent page, if any.
        sort_order:
          type: integer
          description: >-
            Determines the order in which the page is displayed in the parent page’s menu. Pages with lower integers
            display earlier.
        type:
          $ref: '#/components/schemas/TypeLinkType'
          description: >-
            Determines the type of page. See [Pages V3 page
            types](/developer/api-reference/rest/admin/content/pages#page-types) for more about the differences.
        is_homepage:
          type: boolean
          default: false
          description: Determines whether this page loads at the siteʼs root route. For example, at `https://example.com/`.
        is_customers_only:
          type: boolean
          default: false
          description: When `true`, this page is visible only to logged-in customers.
        url:
          type: string
          description: |
            Relative URL on the storefront for this page.
        link:
          type: string
          description: The link for the page type `link`.
      required:
        - name
        - type
        - link
      description: >-
        `type: link`. A link to an external absolute URL. Displays in the menu of other pages that contain markup. Does
        not contain a body.
      title: typeLink
    PagesCollectionResponseDataItems:
      oneOf:
        - $ref: '#/components/schemas/typePage'
        - $ref: '#/components/schemas/typeBlog'
        - $ref: '#/components/schemas/typeContactForm'
        - $ref: '#/components/schemas/typeRaw'
        - $ref: '#/components/schemas/typeLink'
      title: PagesCollectionResponseDataItems
    ResponseMetaPaginationLinks:
      type: object
      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.
      description: |
        Pagination links for the previous and next parts of the whole collection.
      title: ResponseMetaPaginationLinks
    ResponseMetaPagination:
      type: object
      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:
          $ref: '#/components/schemas/ResponseMetaPaginationLinks'
          description: |
            Pagination links for the previous and next parts of the whole collection.
      description: |
        Data about the response, including pagination and collection totals.
      title: ResponseMetaPagination
    ResponseMeta:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/ResponseMetaPagination'
          description: |
            Data about the response, including pagination and collection totals.
      description: |
        Data about the response, including pagination and collection totals.
      title: ResponseMeta
    PagesCollectionResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/PagesCollectionResponseDataItems'
        meta:
          $ref: '#/components/schemas/ResponseMeta'
      description: |
        Response payload for the BigCommerce API.
      title: PagesCollectionResponse
    ResponseErrorDetailed:
      type: object
      properties:
        status:
          type: integer
          description: |
            The HTTP status code.
        title:
          type: string
          description: |
            The error title describing the particular error.
        type:
          type: string
        detail:
          type: string
      required:
        - status
      description: |
        Error payload for the BigCommerce API.
      title: ResponseErrorDetailed
    ResponseErrorItemized:
      type: object
      properties:
        status:
          type: integer
          description: |
            The HTTP status code.
        title:
          type: string
          description: |
            The error title describing the particular error.
        type:
          type: string
        errors:
          type: array
          items:
            type: string
      required:
        - status
      description: |
        Error payload for the BigCommerce API.
      title: ResponseErrorItemized
    ContentPagesPostParametersIncludeSchemaItems:
      type: string
      enum:
        - body
      title: ContentPagesPostParametersIncludeSchemaItems
    PagesBulkCreatePagesRequest0:
      oneOf:
        - $ref: '#/components/schemas/typePage'
        - $ref: '#/components/schemas/typeBlog'
        - $ref: '#/components/schemas/typeContactForm'
        - $ref: '#/components/schemas/typeRaw'
        - $ref: '#/components/schemas/typeLink'
      title: PagesBulkCreatePagesRequest0
    ContentPagesPostRequestBodyContentApplicationJsonSchemaOneOf1Items:
      oneOf:
        - $ref: '#/components/schemas/typePage'
        - $ref: '#/components/schemas/typeBlog'
        - $ref: '#/components/schemas/typeContactForm'
        - $ref: '#/components/schemas/typeRaw'
        - $ref: '#/components/schemas/typeLink'
      title: ContentPagesPostRequestBodyContentApplicationJsonSchemaOneOf1Items
    PagesBulkCreatePagesRequest1:
      type: array
      items:
        $ref: '#/components/schemas/ContentPagesPostRequestBodyContentApplicationJsonSchemaOneOf1Items'
      title: PagesBulkCreatePagesRequest1
    Pages (Bulk)_createPages_Request:
      oneOf:
        - $ref: '#/components/schemas/PagesBulkCreatePagesRequest0'
        - $ref: '#/components/schemas/PagesBulkCreatePagesRequest1'
      title: Pages (Bulk)_createPages_Request
    ContentPagesPostResponsesContentApplicationJsonSchemaData:
      oneOf:
        - $ref: '#/components/schemas/typePage'
        - $ref: '#/components/schemas/typeBlog'
        - $ref: '#/components/schemas/typeContactForm'
        - $ref: '#/components/schemas/typeRaw'
        - $ref: '#/components/schemas/typeLink'
      title: ContentPagesPostResponsesContentApplicationJsonSchemaData
    Pages (Bulk)_createPages_Response_201:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/ContentPagesPostResponsesContentApplicationJsonSchemaData'
        meta:
          $ref: '#/components/schemas/ResponseMeta'
      title: Pages (Bulk)_createPages_Response_201
    ContentPagesPutParametersIncludeSchemaItems:
      type: string
      enum:
        - body
      title: ContentPagesPutParametersIncludeSchemaItems
    PagePutObjType:
      type: string
      enum:
        - page
        - raw
        - contact_form
        - link
        - blog
      description: >-
        Specifies the type of page. See [Pages V3 page
        types](/developer/api-reference/rest/admin/content/pages#page-types) for more about the differences.
      title: PagePutObjType
    PagePutBulk:
      type: object
      properties:
        channel_id:
          type: integer
          default: 1
          description: |
            The ID of the channel where this page should be shown.
        name:
          type: string
          description: |
            The name of the page. Must be unique.
        is_visible:
          type: boolean
          description: |
            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_id:
          type: integer
          default: 0
          description: |
            ID of any parent Web page.
        sort_order:
          type: integer
          default: 0
          description: >
            Specifies the order in which the page is displayed on the storefront. (Lower integers specify earlier
            display.)
        type:
          $ref: '#/components/schemas/PagePutObjType'
          description: >-
            Specifies the type of page. See [Pages V3 page
            types](/developer/api-reference/rest/admin/content/pages#page-types) for more about the differences.
        body:
          type:
            - string
            - 'null'
          description: >
            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`.
        is_homepage:
          type: boolean
          description: |
            Boolean value that specifies whether this page is the storefront’s home page.
        is_customers_only:
          type: boolean
          description: |
            Boolean value. When `true`, this page is visible only to logged-in customers.
        email:
          type: string
          description: >-
            Applicable when the page type is `contact_form`: contact email address that receives messages sent via the
            form. Must be unique.
        meta_title:
          type:
            - string
            - 'null'
        link:
          type: string
          description: |
            Required in a `POST` request to create a link if the page type is `link`.
        contact_fields:
          type: string
          description: >
            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|
        meta_keywords:
          type:
            - string
            - 'null'
          default: ''
          description: |
            Comma-separated list of SEO-relevant keywords to include in the element of this page.
        meta_description:
          type:
            - string
            - 'null'
          description: |
            Description contained within the element of this page.
        search_keywords:
          type:
            - string
            - 'null'
          description: |
            Comma-separated list of keywords that shoppers can use to locate this page when searching the store.
        url:
          type: string
          description: |
            Relative URL on the storefront for this page.
        id:
          type: integer
          description: The ID of the target page.
      required:
        - id
      title: PagePutBulk
    PagesBulkUpdatePagesRequest1:
      type: array
      items:
        $ref: '#/components/schemas/PagePutBulk'
      title: PagesBulkUpdatePagesRequest1
    Pages (Bulk)_updatePages_Request:
      oneOf:
        - $ref: '#/components/schemas/PagePutBulk'
        - $ref: '#/components/schemas/PagesBulkUpdatePagesRequest1'
      title: Pages (Bulk)_updatePages_Request
    ResponseErrorBrief:
      type: object
      properties:
        status:
          type: integer
          description: |
            The HTTP status code.
        title:
          type: string
          description: |
            The error title describing the particular error.
        type:
          type: string
      required:
        - status
      description: |
        Error payload for the BigCommerce API.
      title: ResponseErrorBrief
    ContentPagesPageIdGetParametersIncludeSchemaItems:
      type: string
      enum:
        - body
      title: ContentPagesPageIdGetParametersIncludeSchemaItems
    SinglePageResponseData:
      oneOf:
        - $ref: '#/components/schemas/typePage'
        - $ref: '#/components/schemas/typeBlog'
        - $ref: '#/components/schemas/typeContactForm'
        - $ref: '#/components/schemas/typeRaw'
        - $ref: '#/components/schemas/typeLink'
      title: SinglePageResponseData
    SinglePageResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/SinglePageResponseData'
        meta:
          $ref: '#/components/schemas/ResponseMeta'
      description: |
        Response payload for a single content page.
      title: SinglePageResponse
    ContentPagesPageIdPutParametersIncludeSchemaItems:
      type: string
      enum:
        - body
      title: ContentPagesPageIdPutParametersIncludeSchemaItems
    PagePutObj:
      type: object
      properties:
        channel_id:
          type: integer
          default: 1
          description: |
            The ID of the channel where this page should be shown.
        name:
          type: string
          description: |
            The name of the page. Must be unique.
        is_visible:
          type: boolean
          description: |
            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_id:
          type: integer
          default: 0
          description: |
            ID of any parent Web page.
        sort_order:
          type: integer
          default: 0
          description: >
            Specifies the order in which the page is displayed on the storefront. (Lower integers specify earlier
            display.)
        type:
          $ref: '#/components/schemas/PagePutObjType'
          description: >-
            Specifies the type of page. See [Pages V3 page
            types](/developer/api-reference/rest/admin/content/pages#page-types) for more about the differences.
        body:
          type:
            - string
            - 'null'
          description: >
            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`.
        is_homepage:
          type: boolean
          description: |
            Boolean value that specifies whether this page is the storefront’s home page.
        is_customers_only:
          type: boolean
          description: |
            Boolean value. When `true`, this page is visible only to logged-in customers.
        email:
          type: string
          description: >-
            Applicable when the page type is `contact_form`: contact email address that receives messages sent via the
            form. Must be unique.
        meta_title:
          type:
            - string
            - 'null'
        link:
          type: string
          description: |
            Required in a `POST` request to create a link if the page type is `link`.
        contact_fields:
          type: string
          description: >
            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|
        meta_keywords:
          type:
            - string
            - 'null'
          default: ''
          description: |
            Comma-separated list of SEO-relevant keywords to include in the element of this page.
        meta_description:
          type:
            - string
            - 'null'
          description: |
            Description contained within the element of this page.
        search_keywords:
          type:
            - string
            - 'null'
          description: |
            Comma-separated list of keywords that shoppers can use to locate this page when searching the store.
        url:
          type: string
          description: |
            Relative URL on the storefront for this page.
      description: Properties of the page modification request body.
      title: PagePutObj
  securitySchemes:
    X-Auth-Token:
      type: apiKey
      in: header
      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](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


        ### Further reading


        For example requests and more information about authenticating BigCommerce APIs, see [Authentication and Example
        Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


        For more about BigCommerce OAuth scopes, see our [Guide to API
        Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


        For a list of API status codes, see [API Status
        Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
