Webflow · Capability

Webflow Sites API — Sites

Webflow Sites API — Sites. 19 operations. Lead operation: Webflow List Sites. Self-contained Naftiko capability covering one Webflow business surface.

Run with Naftiko WebflowSites

What You Can Do

GET
Listsites — Webflow List Sites
/v1/sites
GET
Getsite — Webflow Get Site
/v1/sites/{site-id}
PATCH
Updatesite — Webflow Update Site
/v1/sites/{site-id}
DELETE
Deletesite — Webflow Delete Site
/v1/sites/{site-id}
GET
Getsiteactivitylogs — Webflow Get Site Activity Logs
/v1/sites/{site-id}/activity-logs
GET
Getcustomdomains — Webflow Get Custom Domains
/v1/sites/{site-id}/custom-domains
GET
Getsiteplan — Webflow Get Site Plan
/v1/sites/{site-id}/plan
POST
Sitepublish — Webflow Publish Site
/v1/sites/{site-id}/publish
GET
Getredirects — Webflow Get 301 redirects
/v1/sites/{site-id}/redirects
POST
Createredirect — Webflow Create a 301 redirect
/v1/sites/{site-id}/redirects
PATCH
Updateredirect — Webflow Update 301 redirect
/v1/sites/{site-id}/redirects/{redirect-id}
DELETE
Deleteredirects — Webflow Delete 301 redirects
/v1/sites/{site-id}/redirects/{redirect-id}
GET
Getrobotstxt — Webflow Get robots.txt
/v1/sites/{site-id}/robots-txt
PUT
Replacerobotstxt — Webflow Replace robots.txt
/v1/sites/{site-id}/robots-txt
PATCH
Updaterobotstxt — Webflow Update robots.txt
/v1/sites/{site-id}/robots-txt
DELETE
Deleterobotstxt — Webflow Delete robots.txt
/v1/sites/{site-id}/robots-txt
PUT
Setwellknown — Webflow Set a well-known file
/v1/sites/{site-id}/well-known
DELETE
Deletewellknown — Webflow Delete a well-known file
/v1/sites/{site-id}/well-known
POST
Createsite — Webflow Create Site
/v1/workspaces/{workspace-id}/sites

MCP Tools

webflow-list-sites

Webflow List Sites

read-only idempotent
webflow-get-site

Webflow Get Site

read-only idempotent
webflow-update-site

Webflow Update Site

idempotent
webflow-delete-site

Webflow Delete Site

idempotent
webflow-get-site-activity-logs

Webflow Get Site Activity Logs

read-only idempotent
webflow-get-custom-domains

Webflow Get Custom Domains

read-only idempotent
webflow-get-site-plan

Webflow Get Site Plan

read-only idempotent
webflow-publish-site

Webflow Publish Site

webflow-get-301-redirects

Webflow Get 301 redirects

read-only idempotent
webflow-create-301-redirect

Webflow Create a 301 redirect

webflow-update-301-redirect

Webflow Update 301 redirect

idempotent
webflow-delete-301-redirects

Webflow Delete 301 redirects

idempotent
webflow-get-robots-txt

Webflow Get robots.txt

read-only idempotent
webflow-replace-robots-txt

Webflow Replace robots.txt

idempotent
webflow-update-robots-txt

Webflow Update robots.txt

idempotent
webflow-delete-robots-txt

Webflow Delete robots.txt

idempotent
webflow-set-well-known-file

Webflow Set a well-known file

idempotent
webflow-delete-well-known-file

Webflow Delete a well-known file

idempotent
webflow-create-site

Webflow Create Site

Capability Spec

sites-sites.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Webflow Sites API — Sites
  description: 'Webflow Sites API — Sites. 19 operations. Lead operation: Webflow List Sites. Self-contained Naftiko capability
    covering one Webflow business surface.'
  tags:
  - Webflow
  - Sites
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    WEBFLOW_API_KEY: WEBFLOW_API_KEY
capability:
  consumes:
  - type: http
    namespace: sites-sites
    baseUri: https://api.webflow.com/v2
    description: Webflow Sites API — Sites business capability. Self-contained, no shared references.
    resources:
    - name: sites
      path: /sites
      operations:
      - name: listsites
        method: GET
        description: Webflow List Sites
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: sites-site_id
      path: /sites/{site_id}
      operations:
      - name: getsite
        method: GET
        description: Webflow Get Site
        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: updatesite
        method: PATCH
        description: Webflow Update Site
        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: false
      - name: deletesite
        method: DELETE
        description: Webflow Delete Site
        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: sites-site_id-activity_logs
      path: /sites/{site_id}/activity_logs
      operations:
      - name: getsiteactivitylogs
        method: GET
        description: Webflow Get Site Activity Logs
        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: limit
          in: query
          type: integer
          description: 'Maximum number of records to be returned (max limit: 100)'
        - name: offset
          in: query
          type: integer
          description: Offset used for pagination if the results have more than limit records
    - name: sites-site_id-custom_domains
      path: /sites/{site_id}/custom_domains
      operations:
      - name: getcustomdomains
        method: GET
        description: Webflow Get Custom Domains
        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: sites-site_id-plan
      path: /sites/{site_id}/plan
      operations:
      - name: getsiteplan
        method: GET
        description: Webflow Get Site Plan
        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: sites-site_id-publish
      path: /sites/{site_id}/publish
      operations:
      - name: sitepublish
        method: POST
        description: Webflow Publish Site
        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: false
    - name: sites-site_id-redirects
      path: /sites/{site_id}/redirects
      operations:
      - name: getredirects
        method: GET
        description: Webflow Get 301 redirects
        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: createredirect
        method: POST
        description: Webflow Create a 301 redirect
        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: false
    - name: sites-site_id-redirects-redirect_id
      path: /sites/{site_id}/redirects/{redirect_id}
      operations:
      - name: updateredirect
        method: PATCH
        description: Webflow Update 301 redirect
        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: redirect_id
          in: path
          type: string
          description: Unique identifier site redirect
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: deleteredirects
        method: DELETE
        description: Webflow Delete 301 redirects
        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: redirect_id
          in: path
          type: string
          description: Unique identifier site redirect
          required: true
    - name: sites-site_id-robots_txt
      path: /sites/{site_id}/robots_txt
      operations:
      - name: getrobotstxt
        method: GET
        description: Webflow Get robots.txt
        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: replacerobotstxt
        method: PUT
        description: Webflow Replace robots.txt
        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: false
      - name: updaterobotstxt
        method: PATCH
        description: Webflow Update robots.txt
        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: false
      - name: deleterobotstxt
        method: DELETE
        description: Webflow Delete robots.txt
        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: false
    - name: sites-site_id-well_known
      path: /sites/{site_id}/well_known
      operations:
      - name: setwellknown
        method: PUT
        description: Webflow Set a well-known file
        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: false
      - name: deletewellknown
        method: DELETE
        description: Webflow Delete a well-known file
        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: false
    - name: workspaces-workspace_id-sites
      path: /workspaces/{workspace_id}/sites
      operations:
      - name: createsite
        method: POST
        description: Webflow Create Site
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: workspace_id
          in: path
          type: string
          description: Unique identifier for a Workspace
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    authentication:
      type: bearer
      token: '{{env.WEBFLOW_API_KEY}}'
  exposes:
  - type: rest
    namespace: sites-sites-rest
    port: 8080
    description: REST adapter for Webflow Sites API — Sites. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/sites
      name: sites
      description: REST surface for sites.
      operations:
      - method: GET
        name: listsites
        description: Webflow List Sites
        call: sites-sites.listsites
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/sites/{site-id}
      name: sites-site-id
      description: REST surface for sites-site_id.
      operations:
      - method: GET
        name: getsite
        description: Webflow Get Site
        call: sites-sites.getsite
        with:
          site_id: rest.site_id
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: updatesite
        description: Webflow Update Site
        call: sites-sites.updatesite
        with:
          site_id: rest.site_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletesite
        description: Webflow Delete Site
        call: sites-sites.deletesite
        with:
          site_id: rest.site_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/sites/{site-id}/activity-logs
      name: sites-site-id-activity-logs
      description: REST surface for sites-site_id-activity_logs.
      operations:
      - method: GET
        name: getsiteactivitylogs
        description: Webflow Get Site Activity Logs
        call: sites-sites.getsiteactivitylogs
        with:
          site_id: rest.site_id
          limit: rest.limit
          offset: rest.offset
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/sites/{site-id}/custom-domains
      name: sites-site-id-custom-domains
      description: REST surface for sites-site_id-custom_domains.
      operations:
      - method: GET
        name: getcustomdomains
        description: Webflow Get Custom Domains
        call: sites-sites.getcustomdomains
        with:
          site_id: rest.site_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/sites/{site-id}/plan
      name: sites-site-id-plan
      description: REST surface for sites-site_id-plan.
      operations:
      - method: GET
        name: getsiteplan
        description: Webflow Get Site Plan
        call: sites-sites.getsiteplan
        with:
          site_id: rest.site_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/sites/{site-id}/publish
      name: sites-site-id-publish
      description: REST surface for sites-site_id-publish.
      operations:
      - method: POST
        name: sitepublish
        description: Webflow Publish Site
        call: sites-sites.sitepublish
        with:
          site_id: rest.site_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/sites/{site-id}/redirects
      name: sites-site-id-redirects
      description: REST surface for sites-site_id-redirects.
      operations:
      - method: GET
        name: getredirects
        description: Webflow Get 301 redirects
        call: sites-sites.getredirects
        with:
          site_id: rest.site_id
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createredirect
        description: Webflow Create a 301 redirect
        call: sites-sites.createredirect
        with:
          site_id: rest.site_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/sites/{site-id}/redirects/{redirect-id}
      name: sites-site-id-redirects-redirect-id
      description: REST surface for sites-site_id-redirects-redirect_id.
      operations:
      - method: PATCH
        name: updateredirect
        description: Webflow Update 301 redirect
        call: sites-sites.updateredirect
        with:
          site_id: rest.site_id
          redirect_id: rest.redirect_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deleteredirects
        description: Webflow Delete 301 redirects
        call: sites-sites.deleteredirects
        with:
          site_id: rest.site_id
          redirect_id: rest.redirect_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/sites/{site-id}/robots-txt
      name: sites-site-id-robots-txt
      description: REST surface for sites-site_id-robots_txt.
      operations:
      - method: GET
        name: getrobotstxt
        description: Webflow Get robots.txt
        call: sites-sites.getrobotstxt
        with:
          site_id: rest.site_id
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: replacerobotstxt
        description: Webflow Replace robots.txt
        call: sites-sites.replacerobotstxt
        with:
          site_id: rest.site_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: updaterobotstxt
        description: Webflow Update robots.txt
        call: sites-sites.updaterobotstxt
        with:
          site_id: rest.site_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deleterobotstxt
        description: Webflow Delete robots.txt
        call: sites-sites.deleterobotstxt
        with:
          site_id: rest.site_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/sites/{site-id}/well-known
      name: sites-site-id-well-known
      description: REST surface for sites-site_id-well_known.
      operations:
      - method: PUT
        name: setwellknown
        description: Webflow Set a well-known file
        call: sites-sites.setwellknown
        with:
          site_id: rest.site_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletewellknown
        description: Webflow Delete a well-known file
        call: sites-sites.deletewellknown
        with:
          site_id: rest.site_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/workspaces/{workspace-id}/sites
      name: workspaces-workspace-id-sites
      description: REST surface for workspaces-workspace_id-sites.
      operations:
      - method: POST
        name: createsite
        description: Webflow Create Site
        call: sites-sites.createsite
        with:
          workspace_id: rest.workspace_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: sites-sites-mcp
    port: 9090
    transport: http
    description: MCP adapter for Webflow Sites API — Sites. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: webflow-list-sites
      description: Webflow List Sites
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: sites-sites.listsites
      outputParameters:
      - type: object
        mapping: $.
    - name: webflow-get-site
      description: Webflow Get Site
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: sites-sites.getsite
      with:
        site_id: tools.site_id
      outputParameters:
      - type: object
        mapping: $.
    - name: webflow-update-site
      description: Webflow Update Site
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: sites-sites.updatesite
      with:
        site_id: tools.site_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: webflow-delete-site
      description: Webflow Delete Site
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: sites-sites.deletesite
      with:
        site_id: tools.site_id
      outputParameters:
      - type: object
        mapping: $.
    - name: webflow-get-site-activity-logs
      description: Webflow Get Site Activity Logs
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: sites-sites.getsiteactivitylogs
      with:
        site_id: tools.site_id
        limit: tools.limit
        offset: tools.offset
      outputParameters:
      - type: object
        mapping: $.
    - name: webflow-get-custom-domains
      description: Webflow Get Custom Domains
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: sites-sites.getcustomdomains
      with:
        site_id: tools.site_id
      outputParameters:
      - type: object
        mapping: $.
    - name: webflow-get-site-plan
      description: Webflow Get Site Plan
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: sites-sites.getsiteplan
      with:
        site_id: tools.site_id
      outputParameters:
      - type: object
        mapping: $.
    - name: webflow-publish-site
      description: Webflow Publish Site
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: sites-sites.sitepublish
      with:
        site_id: tools.site_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: webflow-get-301-redirects
      description: Webflow Get 301 redirects
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: sites-sites.getredirects
      with:
        site_id: tools.site_id
      outputParameters:
      - type: object
        mapping: $.
    - name: webflow-create-301-redirect
      description: Webflow Create a 301 redirect
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: sites-sites.createredirect
      with:
        site_id: tools.site_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: webflow-update-301-redirect
      description: Webflow Update 301 redirect
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: sites-sites.updateredirect
      with:
        site_id: tools.site_id
        redirect_id: tools.redirect_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: webflow-delete-301-redirects
      description: Webflow Delete 301 redirects
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: sites-sites.deleteredirects
      with:
        site_id: tools.site_id
        redirect_id: tools.redirect_id
      outputParameters:
      - type: object
        mapping: $.
    - name: webflow-get-robots-txt
      description: Webflow Get robots.txt
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: sites-sites.getrobotstxt
      with:
        site_id: tools.site_id
      outputParameters:
      - type: object
        mapping: $.
    - name: webflow-replace-robots-txt
      description: Webflow Replace robots.txt
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: sites-sites.replacerobotstxt
      with:
        site_id: tools.site_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: webflow-update-robots-txt
      description: Webflow Update robots.txt
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: sites-sites.updaterobotstxt
      with:
        site_id: tools.site_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: webflow-delete-robots-txt
      description: Webflow Delete robots.txt
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: sites-sites.deleterobotstxt
      with:
        site_id: tools.site_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: webflow-set-well-known-file
      description: Webflow Set a well-known file
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: sites-sites.setwellknown
      with:
        site_id: tools.site_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: webflow-delete-well-known-file
      description: Webflow Delete a well-known file
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: sites-sites.deletewellknown
      with:
        site_id: tools.site_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: webflow-create-site
      description: Webflow Create Site
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: sites-sites.createsite
      with:
        workspace_id: tools.workspace_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.