BigCommerce Sites API

Enables creation and management of external sites (domains) where shoppers shop. Allows for the correct shopping experience to be delivered and maintained (i.e. redirect URLs, email links) when a shopper goes through the purchasing process.

Operations 5

POST /sites BigCommerce Create a Site #
GET /sites BigCommerce Get Sites #
GET /sites/{site_id} BigCommerce Get a Site #
PUT /sites/{site_id} BigCommerce Update a Site #
DELETE /sites/{site_id} BigCommerce Delete a Site #

Documentation

📖
Documentation
https://developer.bigcommerce.com/
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/abandoned-carts
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/carts
📖
APIReference
https://developer.bigcommerce.com/docs/rest-catalog/brands
📖
APIReference
https://developer.bigcommerce.com/docs/rest-catalog/categories
📖
APIReference
https://developer.bigcommerce.com/docs/rest-catalog/category-trees
📖
APIReference
https://developer.bigcommerce.com/docs/rest-catalog/product-modifiers
📖
APIReference
https://developer.bigcommerce.com/docs/rest-catalog/product-variant-options
📖
APIReference
https://developer.bigcommerce.com/docs/rest-catalog/product-variants
📖
APIReference
https://developer.bigcommerce.com/docs/rest-catalog/products
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/channels
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/checkouts
📖
APIReference
https://developer.bigcommerce.com/docs/rest-content/store-content
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/currencies
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/customers
📖
APIReference
https://developer.bigcommerce.com/docs/rest-content/email-templates
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/geography
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/orders
📖
APIReference
https://developer.bigcommerce.com/docs/rest-content/pages
📖
APIReference
https://developer.bigcommerce.com/docs/rest-payments/tokens
📖
APIReference
https://developer.bigcommerce.com/docs/rest-payments/methods-deprecated
📖
APIReference
https://developer.bigcommerce.com/docs/rest-payments/processing
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/settings
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/shipping-v2
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/channels/site
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/store-information
📖
APIReference
https://developer.bigcommerce.com/docs/rest-storefront/carts
📖
APIReference
https://developer.bigcommerce.com/docs/rest-storefront/checkouts
📖
APIReference
https://developer.bigcommerce.com/docs/rest-storefront/customers
📖
APIReference
https://developer.bigcommerce.com/docs/rest-storefront/orders
📖
APIReference
https://developer.bigcommerce.com/docs/rest-storefront/subscriptions
📖
APIReference
https://developer.bigcommerce.com/docs/integrations/webhooks
📖
APIReference
https://developer.bigcommerce.com/docs/rest-content/widgets

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/bigcommerce-sites-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

bigcommerce-sites-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: BigCommerce Sites API
  version: ''
  description: "Create and manage [sites](#sites) and [routes](#routes) for [headless storefront](https://support.bigcommerce.com/s/article/The-Headless-Approach#what-mean) sales [channels](/docs/rest-management/channels).\n\n## [Sites](/docs/rest-management/sites)\n\nSites link [headless storefronts](/docs/storefront/headless) to sales [channels](/docs/rest-management/channels). To [create a site](/docs/rest-management/sites#create-a-site), send a `POST` request to `/stores/{{STORE_HASH}}/v3/sites`.\n\n```http\nPOST https://api.bigcommerce.com/stores/{{STORE_HASH}}/v3/sites\nX-Auth-Token: {{ACCESS_TOKEN}}\nContent-Type: application/json\nAccept: application/json\n\n{\n  \"url\": \"http://store.example.com/\",\n  \"channel_id\": 5\n}\n```\n\n**Response**\n\n```json\n{\n  \"id\": 1,\n  \"url\": \"http://store.example.com/\",\n  \"channel_id\": 5,\n  \"created_at\": \"2022-01-04T04:15:50.000Z\",\n  \"updated_at\": \"2022-01-04T04:15:50.000Z\"\n}\n```\n\nTo [get a list of sites](/docs/rest-management/sites#get-sites), send a `GET` request to `/stores/{{STORE_HASH}}/v3/sites`.\n\n```http\nGET https://api.bigcommerce.com/stores/{{STORE_HASH}}/v3/sites\nX-Auth-Token: {{ACCESS_TOKEN}}\nAccept: application/json\n```\n\n## Site routes\n\n[Site routes](/docs/rest-management/sites/site-routes) tell BigCommerce how to link to pages on a [headless storefront](/docs/storefront/headless). To [create a route](/docs/rest-management/sites/site-routes#create-a-site-route) for a [site](#sites), send a `POST` request to `/stores/{{STORE_HASH}}/v3/sites/{site_id}/routes`.\n\n```http\nPOST https://api.bigcommerce.com/stores/{{STORE_HASH}}/v3/sites/{site_id}/routes\nX-Auth-Token: {{ACCESS_TOKEN}}\nContent-Type: application/json\nAccept: application/json\n\n{\n  \"type\": \"product\",\n  \"matching\": \"12\",\n  \"route\": \"/en/product?id=12\"\n}\n```\n\n## Route types\n\nThe following route types are supported.\n\n| Type | Description |\n|-|-|\n|`product`|Route for product details pages |\n|`brand`|Route to brand pages |\n|`category`|Route to category pages |    \n|`blog`|Route to blog page|    \n|`home`|Route to storefront homepage|\n|`cart`|Route to shopper’s cart|\n|`checkout`|Route to checkout page|\n|`search`|Route to store search page|\n|`account`|Route to account profile page|\n|`login`|Route to account login page|\n|`returns`|Route for return policy page|\n|`static`|Route to a static page|    \n|`create_account`|Route to create new shopper account page|\n|`forgot_password`|Route to shopper forgot password page|\n|`account_order_status`|Route for order status page|\n|`account_new_return`|Route for product returns page|\n|`recover_abandoned_cart`|Route for URL in emails for a shopper to recover their abandoned cart|\n\n## Route variables\n\nThe following route variables are supported.\n\n|Variable|Description|\n|-|-|\n|`{id}`|The **ID** of the requested item|\n|`{slug}`|The **slug** for the requested item (if available). Note: the `slug` value may contain `/` slash|\n|`{lang}`|The **language** string that the client is using|\n\n**Example:**\n\n```http\nPOST https://api.bigcommerce.com/stores/{{STORE_HASH}}/v3/sites/{site_id}/routes\nX-Auth-Token: {{ACCESS_TOKEN}}\nContent-Type: application/json\nAccept: application/json\n\n{\n  \"type\": \"product\",\n  \"matching\": \"*\",\n  \"route\": \"/{lang}/{slug}?id={id}\"\n}\n```\n\n## Additional Information\n\n### Related resources\n* [Channels and Listings Reference](/docs/rest-management/channels)\n* [Channels Overview](/docs/integrations/channels)\n* [Building Headless Storefronts Guide](/docs/storefront/headless)"
  termsOfService: https://www.bigcommerce.com/terms
  contact:
    name: BigCommerce
    url: https://www.bigcommerce.com
    email: support@bigcommerce.com
servers:
- url: https://api.bigcommerce.com/stores/{store_hash}/v3
  variables:
    store_hash:
      default: store_hash
      description: Permanent ID of the BigCommerce store.
  description: BigCommerce API Gateway
security:
- X-Auth-Token: []
tags:
- name: Sites
  description: Enables creation and management of external sites (domains) where shoppers shop. Allows for the correct shopping experience to be delivered and maintained (i.e. redirect URLs, email links) when a shopper goes through the purchasing process.
paths:
  /sites:
    parameters:
    - $ref: '#/components/parameters/Accept'
    post:
      summary: BigCommerce Create a Site
      operationId: createSite
      parameters:
      - $ref: '#/components/parameters/ContentType'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/post_Site'
        required: true
        x-examples:
          application/json:
            url: http://store.example.com/
            channel_id: 2
      responses:
        '201':
          $ref: '#/components/responses/response_Site'
        '400':
          $ref: '#/components/responses/400_BadRequest'
        '403':
          $ref: '#/components/responses/403_Unauthorized'
        '404':
          $ref: '#/components/responses/404_NotFound'
        '502':
          description: ''
        '504':
          $ref: '#/components/responses/504_GatewayTimeout'
      tags:
      - Sites
      description: Create a site that links a [headless storefront](/docs/storefront/headless) to a sales [channel](/docs/rest-management/channels).
    get:
      responses:
        '200':
          $ref: '#/components/responses/site_RespCollection'
      summary: BigCommerce Get Sites
      description: Get sites linked to a [headless storefront](/docs/storefront/headless) sales channels.
      operationId: getSites
      tags:
      - Sites
      parameters:
      - in: query
        name: page
        description: Specifies the page number in a limited (paginated) list of items.
        schema:
          type: integer
      - in: query
        name: limit
        description: Controls the number of items per page in a limited (paginated) list of items.
        schema:
          type: integer
      - schema:
          type: integer
          example: 1
        in: query
        name: channel_id:in
        description: Filters returned sites by channel ID.
      - schema:
          type: string
        in: query
        name: url_type:in
        description: Filters sites returned in the `data.urls` array by their URL type.
  /sites/{site_id}:
    parameters:
    - $ref: '#/components/parameters/Accept'
    - name: site_id
      in: path
      required: true
      schema:
        type: string
    get:
      summary: BigCommerce Get a Site
      operationId: getSite
      responses:
        '200':
          $ref: '#/components/responses/response_Site'
      tags:
      - Sites
      description: Get a site with site ID `{site_id}`.
    put:
      summary: BigCommerce Update a Site
      operationId: updateSite
      parameters:
      - $ref: '#/components/parameters/ContentType'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/put_Site'
        required: true
        x-examples:
          application/json:
            url: https://remote-site.com/
      responses:
        '200':
          $ref: '#/components/responses/response_Site'
      tags:
      - Sites
      description: Update a site with site ID `{site_id}`.
    delete:
      summary: BigCommerce Delete a Site
      operationId: deleteSite
      responses:
        '204':
          description: ''
      tags:
      - Sites
      description: Delete a site with site ID `{site_id}`.
components:
  schemas:
    error_Full:
      type: object
      title: error_Full
      properties:
        status:
          description: 'The HTTP status code.

            '
          type: integer
        title:
          description: 'The error title describing the particular error.

            '
          type: string
        type:
          type: string
      x-internal: false
    _metaCollection:
      title: metaCollection
      description: Meta data relating to pagination.
      type: object
      properties:
        pagination:
          type: object
          properties:
            total:
              type: integer
              description: Total number of items returned.
              example: 3
            count:
              type: integer
              description: Number of items returned on per page.
              example: 1
            per_page:
              type: integer
              description: Number of items to be displayed per page.
              example: 1
            current_page:
              type: integer
              description: Current page number.
              example: 2
            total_page:
              type: integer
              description: Total number of pages.
              example: 3
            links:
              type: object
              properties:
                previous:
                  type: string
                  description: Query string appended to the resource to return to the previous page.
                  example: ?limit=1&page=1
                next:
                  type: string
                  description: Query string appended to the resource to proceed to the next page.
                  example: ?limit=1&page=3
                current:
                  type: string
                  description: Query string appended to the resource to show the current page.
                  example: ?limit=1&page=2
      x-internal: false
    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.
          example: http://kittens.mybigcommerce.com/
      title: put_Site
      x-internal: false
    _site:
      type: object
      description: ''
      title: ''
      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.
          example: http://kittens.mybigcommerce.com/
        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.
          example: '2022-01-04T04:15:50.000Z'
        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.
          example: '2022-01-04T04:15:50.000Z'
        ssl_status:
          type: string
          enum:
          - dedicated
          - shared
          description: Indicates whether a site is using a private/dedicated SSL or a shared SSL.
        urls:
          type: array
          description: All URLs that belong to the site, including `primary`, `canonical`, and `checkout` URLs.
          items:
            $ref: '#/components/schemas/Url'
        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.
    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.
          example: http://kittens.mybigcommerce.com/
        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
      x-internal: false
    Url:
      type: object
      properties:
        url:
          type: string
          description: URL of site.
        type:
          type: string
          description: Specifies the URL type.
          enum:
          - primary
          - canonical
          - checkout
        created_at:
          type: string
          description: The date-time that this URL was created, formatted as an [RFC-3339](https://www.ietf.org/rfc/rfc3339.txt) string.
          example: '2018-01-04T04:15:50.000Z'
          format: date-time
        updated_at:
          type: string
          description: The date-time that this URL was last updated, formatted as an [RFC-3339](https://www.ietf.org/rfc/rfc3339.txt) string.
          example: '2018-01-04T04:15:50.000Z'
          format: date-time
  responses:
    site_RespCollection:
      description: ''
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/components/schemas/_site'
              meta:
                $ref: '#/components/schemas/_metaCollection'
          examples: {}
    404_NotFound:
      description: Requested resource not founded.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error_Full'
    403_Unauthorized:
      description: ''
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error_Full'
          examples:
            response:
              value:
                status: 403
                title: Unauthorized Access. You do not have permission to make this request.
                type: /api-docs/getting-started/api-status-codes
    response_Site:
      description: ''
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/_site'
              meta:
                $ref: '#/components/schemas/_metaCollection'
          examples:
            Example:
              value:
                data:
                  id: 23
                  url: https://example.com
                  channel_id: 234
                  created_at: '2018-01-04T04:15:50.000Z'
                  updated_at: '2018-01-04T04:15:50.000Z'
                  ssl_status: dedicated
                  urls:
                  - url: https://example.com
                    type: primary
                    created_at: '2020-11-03T19:26:12Z'
                    updated_at: '2021-08-31T21:46:50Z'
                  - url: https://store-29i23fcz6.mybigcommerce.com
                    type: canonical
                    created_at: '2020-11-03T19:26:12Z'
                    updated_at: '2020-11-03T19:26:12Z'
                  - url: https://checkout.example.com
                    type: checkout
                    created_at: '2020-11-03T19:26:12Z'
                    updated_at: '2021-08-31T21:46:50Z'
                  is_checkout_url_customized: true
                meta:
                  pagination:
                    offset: 0
                    limit: 50
                    total_items: 1
    400_BadRequest:
      description: 'Malformed request syntax. Typically need to fix the JSON

        request body to resend successfully.'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error_Full'
          examples:
            response:
              value:
                status: 400
                title: Input is invalid.
                type: /api-docs/getting-started/api-status-codes
    504_GatewayTimeout:
      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'
          examples:
            response:
              value:
                status: 504
                title: Gateway Timeout
                type: /api-docs/getting-started/api-status-codes
                errors: {}
  parameters:
    Accept:
      name: Accept
      in: header
      required: true
      description: The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response body.
      schema:
        type: string
        default: application/json
    ContentType:
      name: Content-Type
      in: header
      required: true
      description: The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the request body.
      schema:
        type: string
        default: application/json
  securitySchemes:
    X-Auth-Token:
      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](/docs/start/authentication/api-accounts). |


        ### Further reading


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


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


        For a list of API status codes, see [API Status Codes](/docs/start/about/status-codes).'
      type: apiKey
      in: header