openapi: 3.1.0
info:
  title: 'Admin Management: Sites'
  version: 1.0.0
paths:
  /stores/{store_hash}/v3/sites:
    post:
      operationId: createSite
      summary: Create Site
      description: >-
        Create a site that links a [headless storefront](/developer/docs/storefront/headless) to a sales
        [channel](/developer/api-reference/rest/admin/management/channels).
      tags:
        - sites
      parameters:
        - 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 |

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

            |  Channel Listings | modify | `store_channel_listings` |

            |  Channel Listings | read-only | `store_channel_listings_read_only` |

            |  Channel Settings | modify | `store_channel_settings` |

            |  Channel Settings | read-only | `store_channel_settings_read_only` |

            |  Sites & Routes | modify | `store_sites` |

            |  Sites & Routes | read-only | `store_sites_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
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Sites_createSite_Response_201'
        '400':
          description: |-
            Malformed request syntax. Typically need to fix the JSON
            request body to resend successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_Full'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_Full'
        '404':
          description: Requested resource not founded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_Full'
        '502':
          description: ''
          content:
            application/json:
              schema:
                description: Any type
        '504':
          description: >-
            If this occurs, you should retry the request. Typically retrying the request several times will result in a
            successful request; However, if you are unable to successfully make a request, please check the BigCommerce
            system status [here](https://status.bigcommerce.com/). A service is likely down and the request will need to
            be made again when it is back up (in several hours usually).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_Full'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/post_Site'
    get:
      operationId: getSites
      summary: List Sites
      description: Get sites linked to a [headless storefront](/developer/docs/storefront/headless) sales channels.
      tags:
        - sites
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: Specifies the page number in a limited (paginated) list of items.
          required: false
          schema:
            type: integer
        - name: limit
          in: query
          description: Controls the number of items per page in a limited (paginated) list of items.
          required: false
          schema:
            type: integer
        - name: channel_id:in
          in: query
          description: A comma-separated list that returns sites by channel ID.
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: url_type:in
          in: query
          description: A comma-separated list that returns sites by their URL type, specified in the `data.urls` array.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

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

            |  Channel Listings | modify | `store_channel_listings` |

            |  Channel Listings | read-only | `store_channel_listings_read_only` |

            |  Channel Settings | modify | `store_channel_settings` |

            |  Channel Settings | read-only | `store_channel_settings_read_only` |

            |  Sites & Routes | modify | `store_sites` |

            |  Sites & Routes | read-only | `store_sites_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
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Sites_getSites_Response_200'
  /stores/{store_hash}/v3/sites/{site_id}:
    get:
      operationId: getSite
      summary: Get Site
      description: Get a site with site ID `{site_id}`.
      tags:
        - sites
      parameters:
        - name: site_id
          in: path
          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 |

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

            |  Channel Listings | modify | `store_channel_listings` |

            |  Channel Listings | read-only | `store_channel_listings_read_only` |

            |  Channel Settings | modify | `store_channel_settings` |

            |  Channel Settings | read-only | `store_channel_settings_read_only` |

            |  Sites & Routes | modify | `store_sites` |

            |  Sites & Routes | read-only | `store_sites_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
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Sites_getSite_Response_200'
    put:
      operationId: updateSite
      summary: Update Site
      description: Update a site with site ID `{site_id}`.
      tags:
        - sites
      parameters:
        - name: site_id
          in: path
          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 |

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

            |  Channel Listings | modify | `store_channel_listings` |

            |  Channel Listings | read-only | `store_channel_listings_read_only` |

            |  Channel Settings | modify | `store_channel_settings` |

            |  Channel Settings | read-only | `store_channel_settings_read_only` |

            |  Sites & Routes | modify | `store_sites` |

            |  Sites & Routes | read-only | `store_sites_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
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Sites_updateSite_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/put_Site'
    delete:
      operationId: deleteSite
      summary: Delete Site
      description: Delete a site with site ID `{site_id}`. Remove the URL set for a given site ID.
      tags:
        - sites
      parameters:
        - name: site_id
          in: path
          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 |

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

            |  Channel Listings | modify | `store_channel_listings` |

            |  Channel Listings | read-only | `store_channel_listings_read_only` |

            |  Channel Settings | modify | `store_channel_settings` |

            |  Channel Settings | read-only | `store_channel_settings_read_only` |

            |  Sites & Routes | modify | `store_sites` |

            |  Sites & Routes | read-only | `store_sites_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
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '204':
          description: No Content.
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /stores/{store_hash}/v3/sites/{site_id}/certificate:
    get:
      operationId: getSiteCertificate
      summary: Get Site’s SSL TLS Certificate Information
      description: Obtain information about a site’s SSL/TLS certificate.
      tags:
        - siteCertificate
      parameters:
        - name: site_id
          in: path
          required: true
          schema:
            type: integer
        - 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 |

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

            |  Channel Listings | modify | `store_channel_listings` |

            |  Channel Listings | read-only | `store_channel_listings_read_only` |

            |  Channel Settings | modify | `store_channel_settings` |

            |  Channel Settings | read-only | `store_channel_settings_read_only` |

            |  Sites & Routes | modify | `store_sites` |

            |  Sites & Routes | read-only | `store_sites_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
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CertificateResponse'
    put:
      operationId: upsertSiteCertificate
      summary: Upsert Site’s SSL TLS Certificate Information
      description: >-
        - If a value for `url` is not supplied, the saved certificate is associated with the specified site’s `primary`
        URL.

        - Use caution. Because this endpoint upserts, supplying an SSL certificate for a domain that already has a
        certificate connected overwrites the domain’s extant certificate.'
      tags:
        - siteCertificate
      parameters:
        - name: site_id
          in: path
          required: true
          schema:
            type: integer
        - 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 |

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

            |  Channel Listings | modify | `store_channel_listings` |

            |  Channel Listings | read-only | `store_channel_listings_read_only` |

            |  Channel Settings | modify | `store_channel_settings` |

            |  Channel Settings | read-only | `store_channel_settings_read_only` |

            |  Sites & Routes | modify | `store_sites` |

            |  Sites & Routes | read-only | `store_sites_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
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InstallCertificateData'
  /stores/{store_hash}/v3/sites/certificates:
    get:
      operationId: getSitesCertificates
      summary: List Site Certificates
      description: Return all SSL certificates connected to domains within a store.
      tags:
        - siteCertificate
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: urls:in
          in: query
          description: A comma-separated list that filters certificates by one or more URLs.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

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

            |  Channel Listings | modify | `store_channel_listings` |

            |  Channel Listings | read-only | `store_channel_listings_read_only` |

            |  Channel Settings | modify | `store_channel_settings` |

            |  Channel Settings | read-only | `store_channel_settings_read_only` |

            |  Sites & Routes | modify | `store_sites` |

            |  Sites & Routes | read-only | `store_sites_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
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCertificatesResponse'
  /stores/{store_hash}/v3/sites/{site_id}/routes:
    get:
      operationId: getSiteRoutes
      summary: Get Site’s Routes
      description: Get a site’s routes.
      tags:
        - siteRoutes
      parameters:
        - name: site_id
          in: path
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: type
          in: query
          description: Filter routes by a specified resource type.
          required: false
          schema:
            type: string
        - name: page
          in: query
          description: Specifies the page number in a limited (paginated) list of items.
          required: false
          schema:
            type: integer
        - name: limit
          in: query
          description: Controls the number of items per page in a limited (paginated) list of items.
          required: false
          schema:
            type: integer
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

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

            |  Channel Listings | modify | `store_channel_listings` |

            |  Channel Listings | read-only | `store_channel_listings_read_only` |

            |  Channel Settings | modify | `store_channel_settings` |

            |  Channel Settings | read-only | `store_channel_settings_read_only` |

            |  Sites & Routes | modify | `store_sites` |

            |  Sites & Routes | read-only | `store_sites_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
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Site Routes_getSiteRoutes_Response_200'
    post:
      operationId: createSiteRoute
      summary: Create Site Route
      description: >-
        Create routes that tell BigCommerce how to link to pages on a [headless
        storefront](/developer/docs/storefront/headless).


        ## Usage Notes

        * For a list of supported route types, see [Route
        types](/developer/api-reference/rest/admin/management/sites#route-types).
      tags:
        - siteRoutes
      parameters:
        - name: site_id
          in: path
          required: true
          schema:
            type: integer
        - 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 |

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

            |  Channel Listings | modify | `store_channel_listings` |

            |  Channel Listings | read-only | `store_channel_listings_read_only` |

            |  Channel Settings | modify | `store_channel_settings` |

            |  Channel Settings | read-only | `store_channel_settings_read_only` |

            |  Sites & Routes | modify | `store_sites` |

            |  Sites & Routes | read-only | `store_sites_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
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Site Routes_createSiteRoute_Response_201'
        '422':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateSiteRouteRequestUnprocessableEntityError'
        '502':
          description: >-
            If something happens during the request that causes it to fail, a 502 response will be returned. A new
            request should be made; however, it could fail.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_Full'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/siteRoute_Base'
    put:
      operationId: updateSiteRoutes
      summary: Update Site’s Routes
      description: |-
        Upsert routes for site with ID `{site_id}`.

        ## Usage Notes
        * `id` is required when updating an existing route.
      tags:
        - siteRoutes
      parameters:
        - name: site_id
          in: path
          required: true
          schema:
            type: integer
        - 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 |

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

            |  Channel Listings | modify | `store_channel_listings` |

            |  Channel Listings | read-only | `store_channel_listings_read_only` |

            |  Channel Settings | modify | `store_channel_settings` |

            |  Channel Settings | read-only | `store_channel_settings_read_only` |

            |  Sites & Routes | modify | `store_sites` |

            |  Sites & Routes | read-only | `store_sites_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
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Site Routes_updateSiteRoutes_Response_200'
        '422':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateSiteRoutesRequestUnprocessableEntityError'
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/siteRoute_Full'
  /stores/{store_hash}/v3/sites/{site_id}/routes/{route_id}:
    get:
      operationId: getSiteRoute
      summary: Get Site Route
      description: Get a site’s route.
      tags:
        - siteRoutes
      parameters:
        - name: site_id
          in: path
          required: true
          schema:
            type: string
        - name: route_id
          in: path
          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 |

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

            |  Channel Listings | modify | `store_channel_listings` |

            |  Channel Listings | read-only | `store_channel_listings_read_only` |

            |  Channel Settings | modify | `store_channel_settings` |

            |  Channel Settings | read-only | `store_channel_settings_read_only` |

            |  Sites & Routes | modify | `store_sites` |

            |  Sites & Routes | read-only | `store_sites_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
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Site Routes_getSiteRoute_Response_200'
    put:
      operationId: updateSiteRoute
      summary: Update Site Route
      description: |
        Update a site’s route.
      tags:
        - siteRoutes
      parameters:
        - name: site_id
          in: path
          required: true
          schema:
            type: string
        - name: route_id
          in: path
          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 |

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

            |  Channel Listings | modify | `store_channel_listings` |

            |  Channel Listings | read-only | `store_channel_listings_read_only` |

            |  Channel Settings | modify | `store_channel_settings` |

            |  Channel Settings | read-only | `store_channel_settings_read_only` |

            |  Sites & Routes | modify | `store_sites` |

            |  Sites & Routes | read-only | `store_sites_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
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Site Routes_updateSiteRoute_Response_201'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/siteRoutes_Route_Base'
    delete:
      operationId: deleteSiteRoute
      summary: Delete Site Route
      description: Delete a site’s route.
      tags:
        - siteRoutes
      parameters:
        - name: site_id
          in: path
          required: true
          schema:
            type: string
        - name: route_id
          in: path
          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 |

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

            |  Channel Listings | modify | `store_channel_listings` |

            |  Channel Listings | read-only | `store_channel_listings_read_only` |

            |  Channel Settings | modify | `store_channel_settings` |

            |  Channel Settings | read-only | `store_channel_settings_read_only` |

            |  Sites & Routes | modify | `store_sites` |

            |  Sites & Routes | read-only | `store_sites_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
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '204':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties: {}
servers:
  - url: https://api.bigcommerce.com
    description: https://api.bigcommerce.com
components:
  schemas:
    post_Site:
      type: object
      properties:
        url:
          type: string
          description: >-
            The Fully Qualified URL (including host and scheme) where this site is hosted. All URLs generated for this
            site will be appended to this.
        channel_id:
          type: integer
          description: >-
            The channel this site is attached to. Each site belongs to a single channel, and each channel can have
            either zero or one sites.
      title: post_Site
    SiteSslStatus:
      type: string
      enum:
        - dedicated
        - shared
      description: Indicates whether a site is using a private/dedicated SSL or a shared SSL.
      title: SiteSslStatus
    UrlType:
      type: string
      enum:
        - primary
        - canonical
        - checkout
      description: Specifies the URL type.
      title: UrlType
    Url:
      type: object
      properties:
        url:
          type: string
          description: URL of site.
        type:
          $ref: '#/components/schemas/UrlType'
          description: Specifies the URL type.
        created_at:
          type: string
          format: date-time
          description: >-
            The date-time that this URL was created, formatted as an [RFC-3339](https://www.ietf.org/rfc/rfc3339.txt)
            string.
        updated_at:
          type: string
          format: date-time
          description: >-
            The date-time that this URL was last updated, formatted as an
            [RFC-3339](https://www.ietf.org/rfc/rfc3339.txt) string.
      title: Url
    _site:
      type: object
      properties:
        id:
          type: integer
        url:
          type: string
          description: >-
            The fully qualified URL (including host and scheme) where this site is hosted. All URLs generated for this
            site will be appended to this.
        channel_id:
          type: integer
          description: >-
            The channel to which this site is attached. Each site belongs to a single channel, and each channel can have
            either zero or more sites.
        created_at:
          type: string
          description: >-
            The date-time that this site was created, formatted as an [RFC-3339](https://www.ietf.org/rfc/rfc3339.txt)
            string.
        updated_at:
          type: string
          description: >-
            The date-time that this site was last updated, formatted as an
            [RFC-3339](https://www.ietf.org/rfc/rfc3339.txt) string.
        ssl_status:
          $ref: '#/components/schemas/SiteSslStatus'
          description: Indicates whether a site is using a private/dedicated SSL or a shared SSL.
        urls:
          type: array
          items:
            $ref: '#/components/schemas/Url'
          description: All URLs that belong to the site, including `primary`, `canonical`, and `checkout` URLs.
        is_checkout_url_customized:
          type: boolean
          description: >-
            Indicates whether the channel uses a custom checkout domain. When `false`, the checkout domain falls back to
            the default channel’s primary URL.
      title: _site
    MetaOpen:
      type: object
      properties: {}
      description: Response metadata.
      title: MetaOpen
    Sites_createSite_Response_201:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/_site'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Sites_createSite_Response_201
    error_Full:
      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
      title: error_Full
    MetaPagination:
      type: object
      properties:
        offset:
          type: integer
          description: The number of items skipped before starting the set of items returned.
        limit:
          type: integer
          description: The maximum number of items returned per page.
        total_items:
          type: integer
          description: The total number of items available across all pages.
      title: MetaPagination
    Meta:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/MetaPagination'
      title: Meta
    Sites_getSites_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/_site'
        meta:
          $ref: '#/components/schemas/Meta'
      title: Sites_getSites_Response_200
    Sites_getSite_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/_site'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Sites_getSite_Response_200
    put_Site:
      type: object
      properties:
        url:
          type: string
          description: >-
            The Fully Qualified URL (including host and scheme) where this site is hosted. All URLs generated for this
            site will be appended to this.
      title: put_Site
    Sites_updateSite_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/_site'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Sites_updateSite_Response_200
    CertificateResponseDataStatus:
      type: string
      enum:
        - shared
        - dedicated
      title: CertificateResponseDataStatus
    InstalledCertificateDetail:
      type: object
      properties:
        common_name:
          type: string
          description: Common Name on the TLS certificate.
        subject_alternative_names:
          type: array
          items:
            type: string
          description: Subject Alternative Names for which the certificate is also valid.
        validity_not_before:
          type: string
          description: When does the validity period of this certificate begin? RFC 3339.
        validity_not_after:
          type: string
          description: >-
            When does the validity period of this certificate end? If this date is in the past, the certificate has
            expired. RFC 3339.
        signing_algorithm:
          type: string
          description: Signing algorithm used to sign the certificate.
        issuer:
          type: string
        certificate:
          type: string
          description: The primary certificate, as a string.
        intermediate_certificates:
          type: string
          description: The intermediate certificate(s), as a string.
      description: Details about the installed certificate, including the raw certificate data, without the private key.
      title: InstalledCertificateDetail
    CertificateResponseData:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/CertificateResponseDataStatus'
        installed_certificate:
          $ref: '#/components/schemas/InstalledCertificateDetail'
      title: CertificateResponseData
    CertificateResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CertificateResponseData'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: CertificateResponse
    CertificateWrite:
      type: object
      properties:
        certificate:
          type: string
          description: The primary certificate, as a string.
        private_key:
          type: string
          description: The private key, as a string. Is a "write-only" field, will never be returned after write.
        intermediate_certificates:
          type: string
          description: The intermediate certificate(s), as a string.
      title: CertificateWrite
    InstallCertificateData:
      type: object
      properties:
        url:
          type: string
          description: URL for the site.
        certificate:
          $ref: '#/components/schemas/CertificateWrite'
      title: InstallCertificateData
    EmptyResponseData:
      type: object
      properties: {}
      title: EmptyResponseData
    EmptyResponseMeta:
      type: object
      properties: {}
      title: EmptyResponseMeta
    EmptyResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/EmptyResponseData'
        meta:
          $ref: '#/components/schemas/EmptyResponseMeta'
      title: EmptyResponse
    GetCertificatesResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/InstalledCertificateDetail'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: GetCertificatesResponse
    SiteRouteBaseType:
      type: string
      enum:
        - product
        - brand
        - category
        - page
        - blog
        - home
        - cart
        - checkout
        - search
        - account
        - login
        - returns
        - static
      description: >-
        The type of resource being routed to; [supported
        types](/developer/api-reference/rest/admin/management/sites#route-types).
      title: SiteRouteBaseType
    siteRoute_Full:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/SiteRouteBaseType'
          description: >-
            The type of resource being routed to; [supported
            types](/developer/api-reference/rest/admin/management/sites#route-types).
        matching:
          type: string
          description: >-
            Depending on the resource type, this can be an ID (matching a specific item), or a "*" wildcard (matching
            all items of that type).


            For example, a route with a type: "product" and matching: "5" will be used for the product with the ID of 5.
        route:
          type: string
          description: |-
            The route template that will be used to generate the URL for the requested resource.

            Supports several tokens:
            - `{id}` The **ID** of the requested item.
            - `{slug}` The **slug** for the requested item (if available). Note: the `slug` value may contain `/` slash.
            - `{language}` The **language** string that the client is using.
        id:
          type: integer
          description: Unique ID for this route. Required when updating an existing route.
      description: Route object used in responses.
      title: siteRoute_Full
    MetaCollectionPaginationLinks:
      type: object
      properties:
        previous:
          type: string
          description: Query string appended to the resource to return to the previous page.
        next:
          type: string
          description: Query string appended to the resource to proceed to the next page.
        current:
          type: string
          description: Query string appended to the resource to show the current page.
      title: MetaCollectionPaginationLinks
    MetaCollectionPagination:
      type: object
      properties:
        total:
          type: integer
          description: Total number of items returned.
        count:
          type: integer
          description: Number of items returned on per page.
        per_page:
          type: integer
          description: Number of items to be displayed per page.
        current_page:
          type: integer
          description: Current page number.
        total_page:
          type: integer
          description: Total number of pages.
        links:
          $ref: '#/components/schemas/MetaCollectionPaginationLinks'
      title: MetaCollectionPagination
    _metaCollection:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/MetaCollectionPagination'
      description: Meta data relating to pagination.
      title: _metaCollection
    Site Routes_getSiteRoutes_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/siteRoute_Full'
        meta:
          $ref: '#/components/schemas/_metaCollection'
      title: Site Routes_getSiteRoutes_Response_200
    siteRoute_Base:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/SiteRouteBaseType'
          description: >-
            The type of resource being routed to; [supported
            types](/developer/api-reference/rest/admin/management/sites#route-types).
        matching:
          type: string
          description: >-
            Depending on the resource type, this can be an ID (matching a specific item), or a "*" wildcard (matching
            all items of that type).


            For example, a route with a type: "product" and matching: "5" will be used for the product with the ID of 5.
        route:
          type: string
          description: |-
            The route template that will be used to generate the URL for the requested resource.

            Supports several tokens:
            - `{id}` The **ID** of the requested item.
            - `{slug}` The **slug** for the requested item (if available). Note: the `slug` value may contain `/` slash.
            - `{language}` The **language** string that the client is using.
      title: siteRoute_Base
    Site Routes_createSiteRoute_Response_201:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/siteRoute_Full'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Site Routes_createSiteRoute_Response_201
    _errors:
      type: object
      properties: {}
      description: The keys and values in an errors object will vary depending on the error received.
      title: _errors
    CreateSiteRouteRequestUnprocessableEntityError:
      type: object
      properties:
        title:
          type: string
          description: General error message
        status:
          type: string
          description: HTTP status code
        errors:
          $ref: '#/components/schemas/_errors'
        type:
          type: string
      title: CreateSiteRouteRequestUnprocessableEntityError
    Site Routes_updateSiteRoutes_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/siteRoute_Full'
        meta:
          $ref: '#/components/schemas/_metaCollection'
      title: Site Routes_updateSiteRoutes_Response_200
    _metaEmpty:
      type: object
      properties: {}
      description: Empty meta object; may be used later.
      title: _metaEmpty
    UpdateSiteRoutesRequestUnprocessableEntityError:
      type: object
      properties:
        status:
          type: integer
          description: The HTTP status code.
        title:
          type: string
        errors:
          $ref: '#/components/schemas/_errors'
        meta:
          $ref: '#/components/schemas/_metaEmpty'
        type:
          type: string
      title: UpdateSiteRoutesRequestUnprocessableEntityError
    Site Routes_getSiteRoute_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/siteRoute_Full'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Site Routes_getSiteRoute_Response_200
    SiteRoutesRouteBaseType:
      type: string
      enum:
        - product
        - brand
        - category
        - page
        - blog
        - home
        - cart
        - checkout
        - search
        - account
        - login
        - returns
        - static
      description: >-
        The type of resource being routed to; [supported
        types](/developer/api-reference/rest/admin/management/sites#route-types).
      title: SiteRoutesRouteBaseType
    siteRoutes_Route_Base:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/SiteRoutesRouteBaseType'
          description: >-
            The type of resource being routed to; [supported
            types](/developer/api-reference/rest/admin/management/sites#route-types).
        matching:
          type: string
          description: >-
            Depending on the resource type, this can be an ID (matching a specific item), or a "*" wildcard (matching
            all items of that type).


            For example, a route with a type: "product" and matching: "5" will be used for the product with the ID of 5.
        route:
          type: string
          description: |-
            The route template that will be used to generate the URL for the requested resource.

            Supports several tokens:
            - `{id}` The **ID** of the requested item.
            - `{slug}` The **slug** for the requested item (if available). Note: the `slug` value may contain `/` slash.
            - `{language}` The **language** string that the client is using.
      required:
        - type
        - matching
        - route
      title: siteRoutes_Route_Base
    Site Routes_updateSiteRoute_Response_201:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/siteRoute_Full'
        meta:
          $ref: '#/components/schemas/MetaOpen'
      title: Site Routes_updateSiteRoute_Response_201
  securitySchemes:
    X-Auth-Token:
      type: apiKey
      in: header
      name: X-Auth-Token
      description: >-
        ### OAuth scopes


        | UI Name | Permission | Parameter |

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

        |  Channel Listings | modify | `store_channel_listings` |

        |  Channel Listings | read-only | `store_channel_listings_read_only` |

        |  Channel Settings | modify | `store_channel_settings` |

        |  Channel Settings | read-only | `store_channel_settings_read_only` |

        |  Sites & Routes | modify | `store_sites` |

        |  Sites & Routes | read-only | `store_sites_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).
