Webflow Products and SKUs API

The Webflow Products and SKUs API provides endpoints for managing ecommerce products and their SKU variants, including creating, listing, updating products and creating or updating SKUs.

OpenAPI Specification

webflow-products-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Webflow Products and SKUs API
  description: Webflow Data API v2 - Products and SKUs endpoints.
  version: 2.0.0
  contact:
    name: Webflow Developer Relations
    email: [email protected]
    url: https://developers.webflow.com
  termsOfService: https://webflow.com/legal/terms
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
  - url: https://api.webflow.com/v2
    description: Webflow API v2
    x-fern-server-name: Data API
security:
  - OAuth2: []
  - ApiKey: []
tags:
  - name: Products & SKUs
    description: Products & SKUs are the products and SKUs in your Webflow e-commerce site.
paths:
  /sites/{site_id}/products:
    get:
      x-fern-sdk-group-name: products
      x-fern-sdk-method-name: list
      security:
        - OAuth2:
            - ecommerce:read
      operationId: list-products
      summary: Webflow List Products & SKUs
      description: 'Retrieve all products for a site.


        Use `limit` and `offset` to page through all products with subsequent requests. All SKUs for each product

        will also be fetched and returned. The `limit`, `offset` and `total` values represent Products only and do not include any SKUs.


        Required scope | `ecommerce:read`

        '
      tags:
        - Products & SKUs
      parameters:
        - name: site_id
          in: path
          description: Unique identifier for a Site
          example: 580e63e98c9a982ac9b8b741
          required: true
          schema:
            type: string
            format: objectid
            default:
        - in: query
          example: 0
          allowEmptyValue: true
          name: offset
          description: Offset used for pagination if the results have more than limit records
          required: false
          schema:
            type: integer
        - in: query
          allowEmptyValue: true
          name: limit
          example: 100
          description: 'Maximum number of records to be returned (max limit: 100)'
          required: false
          schema:
            type: integer
      responses:
        '200':
          description: Request was successful
          content:
            application/json:
              schema:
                description: Results from product list
                type: object
                properties:
                  items:
                    type: array
                    description: List of Item objects within the Collection. Contains product and skus keys for each Item
                    items:
                      description: A product and its SKUs.
                      type: object
                      properties:
                        product:
                          description: The Product object
                          type: object
                          example:
                            id: 660eb7a486d1d6e0412292d7
                            cmsLocaleId: 653ad57de882f528b32e810e
                            lastPublished: '2024-04-04T14:24:19.467Z'
                            lastUpdated: '2024-04-04T14:30:19.282Z'
                            createdOn: '2024-04-04T14:22:28.547Z'
                            isArchived: false
                            isDraft: false
                            fieldData:
                              tax-category: standard-taxable
                              shippable: true
                              ec-product-type: b6ccc1830db4b1babeb06a9ac5f6dd76
                              sku-properties:
                                - id: 31b77fa66fa376c2c0abb458d5be39fb
                                  name: Size
                                  enum:
                                    - id: 8d21a625d655ab260e9941c27180c75b
                                      name: Small
                                      slug: small
                                    - id: ecdca17106ad86c0dfe3b5f3ac8be6c9
                                      name: Medium
                                      slug: medium
                                    - id: ec7877d6137ecf7ec86f726c135b1812
                                      name: Large
                                      slug: large
                                - id: 74d3738e62c568d5634dd6989daec5ec
                                  name: Color
                                  enum:
                                    - id: e539b0d6c3a609cd06ddb2da804f68f0
                                      name: Royal Blue
                                      slug: royal-blue
                                    - id: 68d98f2fbafc0fd45651cddc44798dd0
                                      name: Crimson Red
                                      slug: crimson-red
                                    - id: 996cd95c97fd5620d0a374c835b37205
                                      name: Forrest Green
                                      slug: forrest-green
                              name: T-Shirt
                              description: A plain t-shirt
                              slug: t-shirt
                              default-sku: 66072fb71b89448912e2681c
                          properties:
                            id:
                              type: string
                              readOnly: true
                              description: Unique identifier for the Product
                              example: 580e63fc8c9a982ac9b8b745
                            cmsLocaleId:
                              type: string
                              readOnly: true
                              example: 653ad57de882f528b32e810e
                              description: Identifier for the locale of the CMS item
                            lastPublished:
                              type: string
                              format: date-time
                              readOnly: true
                              description: The date the Product was last published
                              example: '2023-03-17T18:47:35.560Z'
                            lastUpdated:
                              type: string
                              format: date-time
                              readOnly: true
                              description: The date the Product was last updated
                              example: '2023-03-17T18:47:35.560Z'
                            createdOn:
                              type: string
                              format: date-time
                              readOnly: true
                              description: The date the Product was created
                              example: '2023-03-17T18:47:35.560Z'
                            isArchived:
                              type: boolean
                              default: false
                              description: Boolean determining if the Product is set to archived
                              example: false
                            isDraft:
                              type: boolean
                              default: false
                              description: Boolean determining if the Product is set to draft
                              example: false
                            fieldData:
                              description: Contains content-specific details for a product, covering both standard (e.g., title, description) and custom fields tailored to the product setup.
                              type: object
                              properties:
                                name:
                                  type: string
                                  description: Name of the Product
                                  example: T-Shirt
                                slug:
                                  type: string
                                  description: URL structure of the Product in your site.
                                  example: t-shirt
                                description:
                                  type: string
                                  description: A description of your product
                                  example: A plain cotton t-shirt.
                                shippable:
                                  type: boolean
                                  description: Boolean determining if the Product is shippable
                                  example: true
                                sku-properties:
                                  type: array
                                  description: Variant types to include in SKUs
                                  items:
                                    type: object
                                    description: A variant/option type for a SKU
                                    required:
                                      - id
                                      - name
                                      - enum
                                    properties:
                                      id:
                                        type: string
                                        description: Unique identifier for a collection of Product Variants
                                        default:
                                        example: Color
                                      name:
                                        type: string
                                        description: Name of the collection of Product Variants
                                        example: Color
                                      enum:
                                        description: The individual Product variants that are contained within the collection
                                        type: array
                                        items:
                                          description: Enumerated Product variants/Options for the SKU
                                          type: object
                                          required:
                                            - id
                                            - name
                                            - slug
                                          properties:
                                            id:
                                              type: string
                                              description: Unique identifier for a Product variant/Option
                                              default:
                                              examples:
                                                - royal-blue
                                                - crimson-red
                                                - forrest-green
                                            name:
                                              type: string
                                              description: Name of the Product variant/Option
                                              examples:
                                                - Royal Blue
                                                - Crimson Red
                                                - Forrest Green
                                            slug:
                                              type: string
                                              description: Slug for the Product variant/Option in the Site URL structure
                                              examples:
                                                - royal-blue
                                                - crimson-red
                                                - forrest-green
                                category:
                                  type: array
                                  description: The category your product belongs to.
                                  items:
                                    type: string
                                tax-category:
                                  type: string
                                  description: Product tax class
                                  enum:
                                    - standard-taxable
                                    - standard-exempt
                                    - books-religious
                                    - books-textbook
                                    - clothing
                                    - clothing-swimwear
                                    - digital-goods
                                    - digital-service
                                    - drugs-non-prescription
                                    - drugs-prescription
                                    - food-bottled-water
                                    - food-candy
                                    - food-groceries
                                    - food-prepared
                                    - food-soda
                                    - food-supplements
                                    - magazine-individual
                                    - magazine-subscription
                                    - service-admission
                                    - service-advertising
                                    - service-dry-cleaning
                                    - service-hairdressing
                                    - service-installation
                                    - service-miscellaneous
                                    - service-parking
                                    - service-printing
                                    - service-professional
                                    - service-repair
                                    - service-training
                                default-sku:
                                  type: string
                                  format: objectid
                                  description: The default SKU associated with this product.
                                ec-product-type:
                                  description: '<a href="https://university.webflow.com/lesson/add-and-manage-products-and-categories?topics=ecommerce#how-to-understand-product-types">Product types.</a> Enums reflect the following values in order: Physical, Digital, Service, Advanced"'
                                  type: string
                                  enum:
                                    - ff42fee0113744f693a764e3431a9cc2
                                    - f22027db68002190aef89a4a2b7ac8a1
                                    - c599e43b1a1c34d5a323aedf75d3adf6
                                    - b6ccc1830db4b1babeb06a9ac5f6dd76
                              additionalProperties:
                                type: string
                                description: Custom fields for your product.
                        skus:
                          description: A list of SKU Objects
                          type: array
                          items:
                            description: The SKU object
                            type: object
                            properties:
                              id:
                                type: string
                                readOnly: true
                                format: objectid
                                description: Unique identifier for the Product
                                example: 580e63fc8c9a982ac9b8b745
                              cmsLocaleId:
                                type: string
                                readOnly: true
                                example: 653ad57de882f528b32e810e
                                description: Identifier for the locale of the CMS item
                              lastPublished:
                                type: string
                                format: date-time
                                readOnly: true
                                description: The date the Product was last published
                                example: '2023-03-17T18:47:35.560Z'
                              lastUpdated:
                                type: string
                                format: date-time
                                readOnly: true
                                description: The date the Product was last updated
                                example: '2023-03-17T18:47:35.560Z'
                              createdOn:
                                type: string
                                format: date-time
                                readOnly: true
                                description: The date the Product was created
                                example: '2023-03-17T18:47:35.560Z'
                              fieldData:
                                description: Standard and Custom fields for a SKU
                                type: object
                                required:
                                  - name
                                  - slug
                                  - price
                                properties:
                                  sku-values:
                                    type: object
                                    description: 'A mapping between SKU properties and their values, represented as key-value pairs. Each key represents a SKU Property ID (e.g. "color") and maps to its corresponding SKU Value ID (e.g. "blue"). This structure defines the specific variant combination for a SKU.

                                      '
                                    additionalProperties:
                                      type: string
                                    example:
                                      color: blue
                                      size: small
                                  name:
                                    type: string
                                    description: Name of the Product
                                    example: Blue T-shirt
                                  slug:
                                    type: string
                                    description: URL structure of the Product in your site.
                                    example: t-shirt-blue
                                  price:
                                    type: object
                                    description: price of SKU
                                    properties:
                                      value:
                                        description: Price of SKU
                                        isRequired: true
                                        type: number
                                        example: 2499
                                      unit:
                                        type: string
                                        isRequired: true
                                        description: Currency of Item
                                        example: USD
                                      currency:
                                        type: string
                                        description: Currency of Item (alternative representation)
                                        example: USD
                                  compare-at-price:
                                    type: object
                                    description: comparison price of SKU
                                    properties:
                                      value:
                                        description: Price of SKU
                                        type: number
                                        example: 100
                                      unit:
                                        type: string
                                        description: Currency of Item
                                        example: USD
                                  ec-sku-billing-method:
                                    description: '[Billing method](https://help.webflow.com/hc/en-us/articles/33961432087955-Add-and-manage-products-and-categories#billing-methods)for the SKU'
                                    type: string
                                    enum:
                                      - one-time
                                      - subscription
                                  ec-sku-subscription-plan:
                                    description: '[Subscription plan](https://help.webflow.com/hc/en-us/articles/33961432087955-Add-and-manage-products-and-categories#subscription) for the SKU'
                                    type: object
                                    properties:
                                      interval:
                                        type: string
                                        description: Interval of subscription renewal
                                        enum:
                                          - day
                                          - week
                                          - month
                                          - year
                                      frequency:
                                        type: number
                                        description: Frequncy of billing within interval
                                        example: 1
                                      trial:
                                        type: number
                                        description: Number of days of a trial
                                        example: 7
                                      plans:
                                        readOnly: true
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            platform:
                                              type: string
                                              enum:
                                                - stripe
                                              description: The platform of the subscription plan
                                            id:
                                              type: string
                                              description: The unique identifier of the plan
                                            status:
                                              type: string
                                              enum:
                                                - active
                                                - inactive
                                                - canceled
                                              description: The status of the plan
                                  main-image:
                                    type: string
                                    description: The URL for the main image of the SKU
                                    example: https://www.example.com/image.jpg
                                  sku:
                                    type: string
                                    description: A unique identifier for the SKU
                                    example: '1234567890'
                                  sku-properties:
                                    type: array
                                    description: The properties of the SKU
                                    items:
                                      type: object
                                      description: A variant/option type for a SKU
                                      required:
                                        - id
                                        - name
                                        - enum
                                      properties:
                                        id:
                                          type: string
                                          description: Unique identifier for a collection of Product Variants
                                          default:
                                          example: Color
                                        name:
                                          type: string
                                          description: Name of the collection of Product Variants
                                          example: Color
                                        enum:
                                          description: The individual Product variants that are contained within the collection
                                          type: array
                                          items:
                                            description: Enumerated Product variants/Options for the SKU
                                            type: object
                                            required:
                                              - id
                                              - name
                                              - slug
                                            properties:
                                              id:
                                                type: string
                                                description: Unique identifier for a Product variant/Option
                                                default:
                                                examples:
                                                  - royal-blue
                                                  - crimson-red
                                                  - forrest-green
                                              name:
                                                type: string
                                                description: Name of the Product variant/Option
                                                examples:
                                                  - Royal Blue
                                                  - Crimson Red
                                                  - Forrest Green
                                              slug:
                                                type: string
                                                description: Slug for the Product variant/Option in the Site URL structure
                                                examples:
                                                  - royal-blue
                                                  - crimson-red
                                                  - forrest-green
                                additionalProperties:
                                  type: string
                                  description: Custom fields for your SKU.
                            example:
                              id: 66072fb71b89448912e2681c
                              cmsLocaleId: 653ad57de882f528b32e810e
                              lastPublished: '2023-03-17T18:47:35.560Z'
                              lastUpdated: '2023-03-17T18:47:35.560Z'
                              createdOn: '2023-03-17T18:47:35.560Z'
                              fieldData:
                                name: Colorful T-shirt - Default
                                slug: colorful-t-shirt-default
                                price:
                                  value: 2499
                                  currency: USD
                                  unit: USD
                              sku-values:
                                color: red
                                size: small
                              main-image: https://rocketamp-sample-store.myshopify.com/cdn/shop/products/Gildan_2000_Antique_Cherry_Red_Front_1024x1024.jpg?v=1527232987
                  pagination:
                    description: Pagination object
                    type: object
                    required:
                      - limit
                      - offset
                      - total
                    properties:
                      limit:
                        type: integer
                        description: The limit used for pagination
                        example: 100
                        readOnly: true
                      offset:
                        type: integer
                        description: The offset used for pagination
                        example: 0
                        readOnly: true
                      total:
                        type: integer
                        description: The total number of records
                        example: 100
                        readOnly: true
        '400':
          description: Validation failure
          x-logErrorCode: 400
          content:
            application/json:
              schema:
                type: object
                example:
                  code: not_authorized
                  message: Request not authorized
                  externalReference:
                  details: []
                properties:
                  code:
                    type: string
                    description: Error code
                    example: not_authorized
                    enum:
                      - bad_request
                      - collection_not_found
                      - conflict
                      - duplicate_collection
                      - duplicate_user_email
                      - ecommerce_not_enabled
                      - forbidden
                      - forms_require_republish
                      - incompatible_webhook_filter
                      - internal_error
                      - invalid_auth_version
                      - invalid_credentials
                      - invalid_domain
                      - invalid_user_email
                      - item_not_found
                      - missing_scopes
                      - no_domains
                      - not_authorized
                      - not_enterprise_plan_site
                      - not_enterprise_plan_workspace
                      - order_not_found
                      - resource_not_found
                      - too_many_requests
                      - unsupported_version
                      - unsupported_webhook_trigger_type
                      - user_limit_reached
                      - user_not_found
                      - users_not_enabled
                      - validation_error
                  message:
                    type: string
                    description: Error message
                    example: Request not authorized
                  externalReference:
                    type: string
                    description: Link to more information
                    example: ''
                  details:
                    type: array
                    description: Array of errors
                    items:
                      - type: string
                        example: Invalid email address
                        description: Error message
                      - type: object
                        example:
                          field: email
                          message: Invalid email address
                        description: Error message
                    example: []
              example:
                code: validation_error
                message: 'Validation Error: Provided ID is invalid'
                externalReference:
                details: []
        '401':
          description: Provided access token is invalid or does not have access to requested resource
          x-logErrorCode: 401
          content:
            application/json:
              schema:
                type: object
                example:
                  code: not_authorized
                  message: Request not authorized
                  externalReference:
                  details: []
                properties:
                  code:
                    type: string
                    description: Error code
                    example: not_authorized
                    enum:
                      - bad_request
                      - collection_not_found
                      - conflict
                      - duplicate_collection
                      - duplicate_user_email
                      - ecommerce_not_enabled
                      - forbidden
                      - forms_require_republish
                      - incompatible_webhook_filter
                      - internal_error
                  

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