Squarespace Products API

The Squarespace Products API allows developers to manage the product catalog of a Squarespace merchant site. It supports physical products, service products, gift cards, and digital downloads, along with their images and variants.

Operations 25

GET /v2/commerce/products List products #
POST /v2/commerce/products Create product #
GET /v2/commerce/products/{productIdCsvs} Get products #
DELETE /v2/commerce/products/{productId} Delete specified product #
POST /v2/commerce/products/{productId} Update product #
POST /v2/commerce/products/{productId}/images Upload product image #
DELETE /v2/commerce/products/{productId}/images/{imageId} Delete one product image #
POST /v2/commerce/products/{productId}/images/{imageId} Update product image #
POST /v2/commerce/products/{productId}/images/{imageId}/order Update product image order #
GET /v2/commerce/products/{productId}/images/{imageId}/status Get image processing status #
POST /v2/commerce/products/{productId}/variants Create product variant #
DELETE /v2/commerce/products/{productId}/variants/{variantId} Delete one product variant #
POST /v2/commerce/products/{productId}/variants/{variantId} Update product variant #
POST /v2/commerce/products/{productId}/variants/{variantId}/image Associate variant image #
GET /commerce/products Retrieve All Products #
POST /commerce/products Create a Product #
GET /commerce/products/{productIds} Retrieve Specific Products #
POST /commerce/products/{productIds} Update a Product #
DELETE /commerce/products/{productIds} Delete a Product #
POST /commerce/products/{productId}/variants Create a Product Variant #
POST /commerce/products/{productId}/variants/{variantId} Update a Product Variant #
POST /commerce/products/{productId}/images Upload a Product Image #
POST /commerce/products/{productId}/images/{imageId} Update a Product Image #
DELETE /commerce/products/{productId}/images/{imageId} Delete a Product Image #
POST /commerce/products/{productId}/images/reorder Reorder Product Images #

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/squarespace-products-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

squarespace-products-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Squarespace Products API
  version: '1.0'
  description: 'Operations tagged Products across 2 of this provider''s published API definitions: squarespace-commerce-api-v2-openapi.json, squarespace-products-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.squarespace.com
  description: Commerce API
- url: https://api.squarespace.com/1.0
  description: Production Server
tags:
- name: Products
  x-zudoku-collapsed: true
paths:
  /v2/commerce/products:
    get:
      description: Retrieves information for products; products can be filtered within a date range and by product type. The response contains product information in a Product, up to 50 Products ordered by their modification date (modifiedOn), and supports dynamic cursors for pagination.
      operationId: getProducts
      parameters:
      - in: query
        name: modifiedAfter
        required: false
        schema:
          type: string
      - in: query
        name: modifiedBefore
        required: false
        schema:
          type: string
      - in: query
        name: cursor
        required: false
        schema:
          type: string
      - in: query
        name: query
        required: false
        schema:
          type: string
      - in: query
        name: type
        required: false
        schema:
          type: array
          items:
            type: string
      - in: header
        name: Authorization
        required: true
        description: API key or OAuth access token
        schema:
          type: string
          default: Bearer YOUR_API_KEY_OR_OAUTH_TOKEN
      - in: header
        name: User-Agent
        required: true
        description: User Agent
        schema:
          type: string
          default: YOUR_CUSTOM_APP_DESCRIPTION
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedProductListResponseV2'
          description: A paginated list of products.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Bad request. The cursor parameter contains an invalid value.
      summary: List products
      tags:
      - Products
      security:
      - Authorization: []
    post:
      description: Creates a product with appropriate subresources based on product type.
      operationId: createProduct
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/CreateGiftCardProductRequest'
              - $ref: '#/components/schemas/CreatePhysicalProductRequest'
              - $ref: '#/components/schemas/CreateServiceProductRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductV2'
          description: The product was created successfully.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Bad request. The request body does not conform to the required specification.
        '405':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Method not allowed. The Product requested is not a supported product type for this operation.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Conflict. The request conflicts with the current state of the resource.
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Too many requests. The rate limit for this endpoint has been exceeded.
      summary: Create product
      tags:
      - Products
      parameters:
      - in: header
        name: Authorization
        required: true
        description: API key or OAuth access token
        schema:
          type: string
          default: Bearer YOUR_API_KEY_OR_OAUTH_TOKEN
      - in: header
        name: User-Agent
        required: true
        description: User Agent
        schema:
          type: string
          default: YOUR_CUSTOM_APP_DESCRIPTION
      security:
      - Authorization: []
    servers:
    - url: https://api.squarespace.com
      description: Commerce API
  /v2/commerce/products/{productIdCsvs}:
    get:
      description: Retrieves information for specific products, including information for any variants or images. Up to 50 products can be retrieved per request.
      operationId: getSpecificProducts
      parameters:
      - in: path
        name: productIdCsvs
        required: true
        schema:
          type: string
      - in: header
        name: Authorization
        required: true
        description: API key or OAuth access token
        schema:
          type: string
          default: Bearer YOUR_API_KEY_OR_OAUTH_TOKEN
      - in: header
        name: User-Agent
        required: true
        description: User Agent
        schema:
          type: string
          default: YOUR_CUSTOM_APP_DESCRIPTION
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductListResponseV2'
          description: The requested products.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Bad request. The provided product IDs are invalid or exceed the maximum of 50.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Not found. One or more requested Products were not found.
      summary: Get products
      tags:
      - Products
      security:
      - Authorization: []
    servers:
    - url: https://api.squarespace.com
      description: Commerce API
  /v2/commerce/products/{productId}:
    delete:
      description: Delete specified product
      operationId: deleteProduct
      parameters:
      - in: path
        name: productId
        required: true
        schema:
          type: string
      - in: header
        name: Authorization
        required: true
        description: API key or OAuth access token
        schema:
          type: string
          default: Bearer YOUR_API_KEY_OR_OAUTH_TOKEN
      - in: header
        name: User-Agent
        required: true
        description: User Agent
        schema:
          type: string
          default: YOUR_CUSTOM_APP_DESCRIPTION
      responses:
        '204':
          description: The Product was deleted successfully.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Not found. The requested Product was not found.
        '405':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Method not allowed. The Product requested is not a supported product type for this operation.
      summary: Delete specified product
      tags:
      - Products
      security:
      - Authorization: []
    post:
      description: Updates information for a product. The endpoint supports partial updates.
      operationId: updateProduct
      parameters:
      - in: path
        name: productId
        required: true
        schema:
          type: string
      - in: header
        name: Authorization
        required: true
        description: API key or OAuth access token
        schema:
          type: string
          default: Bearer YOUR_API_KEY_OR_OAUTH_TOKEN
      - in: header
        name: User-Agent
        required: true
        description: User Agent
        schema:
          type: string
          default: YOUR_CUSTOM_APP_DESCRIPTION
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateProductRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductV2'
          description: Return the updated Product
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Bad request. The request body does not conform to the required specification.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Not found. The requested Product was not found.
        '405':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Method not allowed. The Product requested is not a supported product type for this operation.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Conflict. The provided URL slug is already in use.
      summary: Update product
      tags:
      - Products
      security:
      - Authorization: []
    servers:
    - url: https://api.squarespace.com
      description: Commerce API
  /v2/commerce/products/{productId}/images:
    post:
      description: Uploads an image for a product. Uploading an image doesn't set the product's featured image. A successful request creates a ProductImage subresource of the Product.
      operationId: uploadProductImage
      parameters:
      - in: path
        name: productId
        required: true
        schema:
          type: string
      - in: header
        name: Authorization
        required: true
        description: API key or OAuth access token
        schema:
          type: string
          default: Bearer YOUR_API_KEY_OR_OAUTH_TOKEN
      - in: header
        name: User-Agent
        required: true
        description: User Agent
        schema:
          type: string
          default: YOUR_CUSTOM_APP_DESCRIPTION
      requestBody:
        content:
          multipart/form-data: {}
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadProductImageResponse'
          description: The request was accepted and the uploaded image is being processed.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Bad request. The request body does not conform to specification.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Not found. The requested Product was not found.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Conflict. The specified Product has reached its limit of 100 images.
      summary: Upload product image
      tags:
      - Products
      security:
      - Authorization: []
    servers:
    - url: https://api.squarespace.com
      description: Commerce API
  /v2/commerce/products/{productId}/images/{imageId}:
    delete:
      description: Delete one product image
      operationId: deleteProductImage
      parameters:
      - in: path
        name: productId
        required: true
        schema:
          type: string
      - in: path
        name: imageId
        required: true
        schema:
          type: string
      - in: header
        name: Authorization
        required: true
        description: API key or OAuth access token
        schema:
          type: string
          default: Bearer YOUR_API_KEY_OR_OAUTH_TOKEN
      - in: header
        name: User-Agent
        required: true
        description: User Agent
        schema:
          type: string
          default: YOUR_CUSTOM_APP_DESCRIPTION
      responses:
        '204':
          description: The ProductImage was deleted successfully.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Not found. Either the Product or the ProductImage was not found.
      summary: Delete one product image
      tags:
      - Products
      security:
      - Authorization: []
    post:
      description: Updates information for a product image. Currently, the endpoint only supports updates to the alt text for an image.
      operationId: updateProductImage
      parameters:
      - in: path
        name: productId
        required: true
        schema:
          type: string
      - in: path
        name: imageId
        required: true
        schema:
          type: string
      - in: header
        name: Authorization
        required: true
        description: API key or OAuth access token
        schema:
          type: string
          default: Bearer YOUR_API_KEY_OR_OAUTH_TOKEN
      - in: header
        name: User-Agent
        required: true
        description: User Agent
        schema:
          type: string
          default: YOUR_CUSTOM_APP_DESCRIPTION
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateProductImageRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductImage'
          description: Return the updated ProductImage
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Bad request. The request body does not conform to the required specification.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Not found. Either the Product or the ProductImage was not found.
      summary: Update product image
      tags:
      - Products
      security:
      - Authorization: []
    servers:
    - url: https://api.squarespace.com
      description: Commerce API
  /v2/commerce/products/{productId}/images/{imageId}/order:
    post:
      description: Updates the ordering of a product image on the product details page.
      operationId: updateProductImageOrder
      parameters:
      - in: path
        name: productId
        required: true
        schema:
          type: string
      - in: path
        name: imageId
        required: true
        schema:
          type: string
      - in: header
        name: Authorization
        required: true
        description: API key or OAuth access token
        schema:
          type: string
          default: Bearer YOUR_API_KEY_OR_OAUTH_TOKEN
      - in: header
        name: User-Agent
        required: true
        description: User Agent
        schema:
          type: string
          default: YOUR_CUSTOM_APP_DESCRIPTION
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateProductImageOrderRequest'
        required: true
      responses:
        '204':
          description: The request was successful.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Bad request. The request body does not conform to the required specification.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Not found. The ProductImage specified in the URL was not found.
        '405':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Method not allowed. The Product requested is not a supported product type for this operation.
      summary: Update product image order
      tags:
      - Products
      security:
      - Authorization: []
    servers:
    - url: https://api.squarespace.com
      description: Commerce API
  /v2/commerce/products/{productId}/images/{imageId}/status:
    get:
      description: Retrieves the processing status for an uploaded product image. A successful request indicates that a ProductImage is processing, ready, or in an error state.
      operationId: getProductImageProcessingStatus
      parameters:
      - in: path
        name: productId
        required: true
        schema:
          type: string
      - in: path
        name: imageId
        required: true
        schema:
          type: string
      - in: header
        name: Authorization
        required: true
        description: API key or OAuth access token
        schema:
          type: string
          default: Bearer YOUR_API_KEY_OR_OAUTH_TOKEN
      - in: header
        name: User-Agent
        required: true
        description: User Agent
        schema:
          type: string
          default: YOUR_CUSTOM_APP_DESCRIPTION
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductImageProcessingStatus'
          description: Return the processing status for the ProductImage
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Not found. Either the Product or the ProductImage was not found.
      summary: Get image processing status
      tags:
      - Products
      security:
      - Authorization: []
    servers:
    - url: https://api.squarespace.com
      description: Commerce API
  /v2/commerce/products/{productId}/variants:
    post:
      description: Creates a variant of a product. Creating a variant for a physical or service product requires that the product already has at least one attribute.
      operationId: createProductVariant
      parameters:
      - in: path
        name: productId
        required: true
        schema:
          type: string
      - in: header
        name: Authorization
        required: true
        description: API key or OAuth access token
        schema:
          type: string
          default: Bearer YOUR_API_KEY_OR_OAUTH_TOKEN
      - in: header
        name: User-Agent
        required: true
        description: User Agent
        schema:
          type: string
          default: YOUR_CUSTOM_APP_DESCRIPTION
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateVariantRequestV2'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductVariantV2'
          description: The ProductVariant was created successfully.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Bad request. The request body does not conform to the required specification.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Not found. The requested Product was not found.
        '405':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Method not allowed. The Product requested does not support variants.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Conflict. The provided SKU is already in use by the requested Product, or the Product has reached its limit of 250 variants.
      summary: Create product variant
      tags:
      - Products
      security:
      - Authorization: []
    servers:
    - url: https://api.squarespace.com
      description: Commerce API
  /v2/commerce/products/{productId}/variants/{variantId}:
    delete:
      description: Delete one product variant
      operationId: deleteProductVariant
      parameters:
      - in: path
        name: productId
        required: true
        schema:
          type: string
      - in: path
        name: variantId
        required: true
        schema:
          type: string
      - in: header
        name: Authorization
        required: true
        description: API key or OAuth access token
        schema:
          type: string
          default: Bearer YOUR_API_KEY_OR_OAUTH_TOKEN
      - in: header
        name: User-Agent
        required: true
        description: User Agent
        schema:
          type: string
          default: YOUR_CUSTOM_APP_DESCRIPTION
      responses:
        '204':
          description: The ProductVariant was deleted successfully.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Not found. Either the Product or the ProductVariant was not found.
        '405':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Method not allowed. The Product requested does not support variants.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Conflict. The ProductVariant requested is the only variant for the Product and cannot be deleted.
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Too many requests. The rate limit for this endpoint has been exceeded.
      summary: Delete one product variant
      tags:
      - Products
      security:
      - Authorization: []
    post:
      description: Updates a variant of a product. The endpoint supports partial updates.
      operationId: updateProductVariant
      parameters:
      - in: path
        name: productId
        required: true
        schema:
          type: string
      - in: path
        name: variantId
        required: true
        schema:
          type: string
      - in: header
        name: Authorization
        required: true
        description: API key or OAuth access token
        schema:
          type: string
          default: Bearer YOUR_API_KEY_OR_OAUTH_TOKEN
      - in: header
        name: User-Agent
        required: true
        description: User Agent
        schema:
          type: string
          default: YOUR_CUSTOM_APP_DESCRIPTION
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateVariantRequestV2'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductVariantV2'
          description: Return the updated ProductVariant
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Bad request. The request body does not conform to the required specification.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Not found. Either the Product or the ProductVariant was not found.
        '405':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Method not allowed. The Product requested does not support variants.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Conflict. The provided SKU is already in use by the requested Product.
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Too many requests. The rate limit for this endpoint has been exceeded.
      summary: Update product variant
      tags:
      - Products
      security:
      - Authorization: []
    servers:
    - url: https://api.squarespace.com
      description: Commerce API
  /v2/commerce/products/{productId}/variants/{variantId}/image:
    post:
      description: Assigns a product image to a product variant. Specifying imageId of null will delete the association.
      operationId: associateProductVariantImage
      parameters:
      - in: path
        name: productId
        required: true
        schema:
          type: string
      - in: path
        name: variantId
        required: true
        schema:
          type: string
      - in: header
        name: Authorization
        required: true
        description: API key or OAuth access token
        schema:
          type: string
          default: Bearer YOUR_API_KEY_OR_OAUTH_TOKEN
      - in: header
        name: User-Agent
        required: true
        description: User Agent
        schema:
          type: string
          default: YOUR_CUSTOM_APP_DESCRIPTION
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssociateProductImageToVariantRequest'
      responses:
        '204':
          description: The request was successful.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Bad request. The imageId field does not represent a ProductImage belonging to the specified Product.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Not found. Either the Product or the ProductVariant was not found.
        '405':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Method not allowed. The Product requested does not support variants.
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorPayload'
          description: Too many requests. The rate limit for this endpoint has been exceeded.
      summary: Associate variant image
      tags:
      - Products
      security:
      - Authorization: []
    servers:
    - url: https://api.squarespace.com
      description: Commerce API
  /commerce/products:
    get:
      operationId: listProducts
      summary: Retrieve All Products
      description: Returns a paginated list of products in the merchant's catalog. By default returns up to 50 products per page. Use the cursor parameter from the previous response's pagination.nextPageCursor to retrieve subsequent pages. Each product includes its basic metadata, variant information, and associated images.
      tags:
      - Products
      parameters:
      - $ref: '#/components/parameters/cursor'
      - name: type
        in: query
        description: Filter products by product type
        required: false
        schema:
          type: string
          enum:
          - PHYSICAL
          - DIGITAL
          - SERVICE
          - GIFT_CARD
      responses:
        '200':
          description: Successful response with paginated list of products
          content:
            application/json:
              schema:
                type: object
                properties:
                  products:
                    type: array
                    items:
                      $ref: '#/components/schemas/Product'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - bearerAuth: []
    post:
      operationId: createProduct
      summary: Create a Product
      description: Creates a new product in the merchant's catalog with appropriate subresources based on product type. Supports creation of physical, service, gift card, and digital download products. The request must include the product type, name, and at least one variant. Images can be added after the product is created using the product image endpoints.
      tags:
      - Products
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateProductRequest'
      responses:
        '200':
          description: Product created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Product'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - bearerAuth: []
    servers:
    - url: https://api.squarespace.com/1.0
      description: Production Server
  /commerce/products/{productIds}:
    get:
      operationId: getProducts
      summary: Retrieve Specific Products
      description: Retrieves detailed information for up to 50 specific products by their product IDs. Product IDs should be provided as a comma-separated list in the path. Returns full product data including all variants and images.
      tags:
      - Products
      parameters:
      - $ref: '#/components/parameters/productIds'
      responses:
        '200':
          description: Successful response with the requested products
          content:
            application/json:
              schema:
                type: object
                properties:
                  products:
                    type: array
                    items:
                      $ref: '#/components/schemas/Product'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - bearerAuth: []
    post:
      operationId: updateProduct
      summary: Update a Product
      description: Updates information for an existing product. The endpoint supports partial updates so any optional or conditional field may be omitted from the request. Only the fields provided in the request body will be updated. This endpoint accepts a single product ID in the path when updating.
      tags:
      - Products
      parameters:
      - $ref: '#/components/parameters/productIds'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateProductRequest_2'
      responses:
        '200':
          description: Product updated successfully
          content:
            application/json:
       

# --- truncated at 32 KB (77 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/squarespace/refs/heads/main/openapi/squarespace-products-api-openapi.yml