Webflow · Capability

Webflow Products and SKUs API — Products & SKUs

Webflow Products and SKUs API — Products & SKUs. 6 operations. Lead operation: Webflow List Products & SKUs. Self-contained Naftiko capability covering one Webflow business surface.

Run with Naftiko WebflowProducts & SKUs

What You Can Do

GET
Listproducts — Webflow List Products & SKUs
/v1/sites/{site-id}/products
POST
Createproduct — Webflow Create Product & SKU
/v1/sites/{site-id}/products
GET
Getproduct — Webflow Get Product and SKUs
/v1/sites/{site-id}/products/{product-id}
PATCH
Updateproduct — Webflow Update Product
/v1/sites/{site-id}/products/{product-id}
POST
Createskus — Webflow Create SKUs
/v1/sites/{site-id}/products/{product-id}/skus
PATCH
Updatesku — Webflow Update SKU
/v1/sites/{site-id}/products/{product-id}/skus/{sku-id}

MCP Tools

webflow-list-products-skus

Webflow List Products & SKUs

read-only idempotent
webflow-create-product-sku

Webflow Create Product & SKU

webflow-get-product-and-skus

Webflow Get Product and SKUs

read-only idempotent
webflow-update-product

Webflow Update Product

idempotent
webflow-create-skus

Webflow Create SKUs

webflow-update-sku

Webflow Update SKU

idempotent

Capability Spec

products-products-skus.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Webflow Products and SKUs API — Products & SKUs
  description: 'Webflow Products and SKUs API — Products & SKUs. 6 operations. Lead operation: Webflow List Products & SKUs.
    Self-contained Naftiko capability covering one Webflow business surface.'
  tags:
  - Webflow
  - Products & SKUs
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    WEBFLOW_API_KEY: WEBFLOW_API_KEY
capability:
  consumes:
  - type: http
    namespace: products-products-skus
    baseUri: https://api.webflow.com/v2
    description: Webflow Products and SKUs API — Products & SKUs business capability. Self-contained, no shared references.
    resources:
    - name: sites-site_id-products
      path: /sites/{site_id}/products
      operations:
      - name: listproducts
        method: GET
        description: Webflow List Products & SKUs
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: site_id
          in: path
          type: string
          description: Unique identifier for a Site
          required: true
        - name: offset
          in: query
          type: integer
          description: Offset used for pagination if the results have more than limit records
        - name: limit
          in: query
          type: integer
          description: 'Maximum number of records to be returned (max limit: 100)'
      - name: createproduct
        method: POST
        description: Webflow Create Product & SKU
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: site_id
          in: path
          type: string
          description: Unique identifier for a Site
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: sites-site_id-products-product_id
      path: /sites/{site_id}/products/{product_id}
      operations:
      - name: getproduct
        method: GET
        description: Webflow Get Product and SKUs
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: site_id
          in: path
          type: string
          description: Unique identifier for a Site
          required: true
        - name: product_id
          in: path
          type: string
          description: Unique identifier for a Product
          required: true
      - name: updateproduct
        method: PATCH
        description: Webflow Update Product
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: site_id
          in: path
          type: string
          description: Unique identifier for a Site
          required: true
        - name: product_id
          in: path
          type: string
          description: Unique identifier for a Product
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: sites-site_id-products-product_id-skus
      path: /sites/{site_id}/products/{product_id}/skus
      operations:
      - name: createskus
        method: POST
        description: Webflow Create SKUs
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: site_id
          in: path
          type: string
          description: Unique identifier for a Site
          required: true
        - name: product_id
          in: path
          type: string
          description: Unique identifier for a Product
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: sites-site_id-products-product_id-skus-sku_id
      path: /sites/{site_id}/products/{product_id}/skus/{sku_id}
      operations:
      - name: updatesku
        method: PATCH
        description: Webflow Update SKU
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: site_id
          in: path
          type: string
          description: Unique identifier for a Site
          required: true
        - name: product_id
          in: path
          type: string
          description: Unique identifier for a Product
          required: true
        - name: sku_id
          in: path
          type: string
          description: Unique identifier for a SKU
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: bearer
      token: '{{env.WEBFLOW_API_KEY}}'
  exposes:
  - type: rest
    namespace: products-products-skus-rest
    port: 8080
    description: REST adapter for Webflow Products and SKUs API — Products & SKUs. One Spectral-compliant resource per consumed
      operation, prefixed with /v1.
    resources:
    - path: /v1/sites/{site-id}/products
      name: sites-site-id-products
      description: REST surface for sites-site_id-products.
      operations:
      - method: GET
        name: listproducts
        description: Webflow List Products & SKUs
        call: products-products-skus.listproducts
        with:
          site_id: rest.site_id
          offset: rest.offset
          limit: rest.limit
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createproduct
        description: Webflow Create Product & SKU
        call: products-products-skus.createproduct
        with:
          site_id: rest.site_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/sites/{site-id}/products/{product-id}
      name: sites-site-id-products-product-id
      description: REST surface for sites-site_id-products-product_id.
      operations:
      - method: GET
        name: getproduct
        description: Webflow Get Product and SKUs
        call: products-products-skus.getproduct
        with:
          site_id: rest.site_id
          product_id: rest.product_id
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: updateproduct
        description: Webflow Update Product
        call: products-products-skus.updateproduct
        with:
          site_id: rest.site_id
          product_id: rest.product_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/sites/{site-id}/products/{product-id}/skus
      name: sites-site-id-products-product-id-skus
      description: REST surface for sites-site_id-products-product_id-skus.
      operations:
      - method: POST
        name: createskus
        description: Webflow Create SKUs
        call: products-products-skus.createskus
        with:
          site_id: rest.site_id
          product_id: rest.product_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/sites/{site-id}/products/{product-id}/skus/{sku-id}
      name: sites-site-id-products-product-id-skus-sku-id
      description: REST surface for sites-site_id-products-product_id-skus-sku_id.
      operations:
      - method: PATCH
        name: updatesku
        description: Webflow Update SKU
        call: products-products-skus.updatesku
        with:
          site_id: rest.site_id
          product_id: rest.product_id
          sku_id: rest.sku_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: products-products-skus-mcp
    port: 9090
    transport: http
    description: MCP adapter for Webflow Products and SKUs API — Products & SKUs. One tool per consumed operation, routed
      inline through this capability's consumes block.
    tools:
    - name: webflow-list-products-skus
      description: Webflow List Products & SKUs
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: products-products-skus.listproducts
      with:
        site_id: tools.site_id
        offset: tools.offset
        limit: tools.limit
      outputParameters:
      - type: object
        mapping: $.
    - name: webflow-create-product-sku
      description: Webflow Create Product & SKU
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: products-products-skus.createproduct
      with:
        site_id: tools.site_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: webflow-get-product-and-skus
      description: Webflow Get Product and SKUs
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: products-products-skus.getproduct
      with:
        site_id: tools.site_id
        product_id: tools.product_id
      outputParameters:
      - type: object
        mapping: $.
    - name: webflow-update-product
      description: Webflow Update Product
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: products-products-skus.updateproduct
      with:
        site_id: tools.site_id
        product_id: tools.product_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: webflow-create-skus
      description: Webflow Create SKUs
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: products-products-skus.createskus
      with:
        site_id: tools.site_id
        product_id: tools.product_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: webflow-update-sku
      description: Webflow Update SKU
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: products-products-skus.updatesku
      with:
        site_id: tools.site_id
        product_id: tools.product_id
        sku_id: tools.sku_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.