naftiko: 1.0.0-alpha2 info: label: Webflow Data API — Sites description: 'Webflow Data API — Sites. 51 operations. Lead operation: Webflow Get Collection Details. Self-contained Naftiko capability covering one Webflow Api And Documentation Webflow business surface.' tags: - Webflow Api And Documentation Webflow - Sites created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: WEBFLOW_API_AND_DOCUMENTATION_WEBFLOW_API_KEY: WEBFLOW_API_AND_DOCUMENTATION_WEBFLOW_API_KEY capability: consumes: - type: http namespace: webflow-data-sites baseUri: https://api.webflow.com/v2 description: Webflow Data API — Sites business capability. Self-contained, no shared references. resources: - name: collections-collection_id path: /collections/{collection_id} operations: - name: collectiondetails method: GET description: Webflow Get Collection Details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection_id in: path type: string description: Unique identifier for a Collection required: true - name: deletecollection method: DELETE description: Webflow Delete Collection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection_id in: path type: string description: Unique identifier for a Collection required: true - name: collections-collection_id-fields path: /collections/{collection_id}/fields operations: - name: createfield method: POST description: Webflow Create Collection Field outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection_id in: path type: string description: Unique identifier for a Collection required: true - name: body in: body type: object description: Request body (JSON). required: true - name: collections-collection_id-fields-field_id path: /collections/{collection_id}/fields/{field_id} operations: - name: updatefield method: PATCH description: Webflow Update Collection Field outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection_id in: path type: string description: Unique identifier for a Collection required: true - name: field_id in: path type: string description: Unique identifier for a Field in a collection required: true - name: body in: body type: object description: Request body (JSON). required: false - name: deletefield method: DELETE description: Webflow Delete Collection Field outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection_id in: path type: string description: Unique identifier for a Collection required: true - name: field_id in: path type: string description: Unique identifier for a Field in a collection required: true - name: collections-collection_id-items path: /collections/{collection_id}/items operations: - name: listcollectionitems method: GET description: Webflow List Collection Items outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection_id in: path type: string description: Unique identifier for a Collection required: true - name: cmsLocaleId in: query type: string description: Unique identifier for a CMS Locale. This UID is different from the Site locale identifier and is listed as `cmsLocaleId` in the Sites response. To query multipl - 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: name in: query type: string description: Filter by the exact name of the item(s) - name: slug in: query type: string description: Filter by the exact slug of the item - name: lastPublished in: query type: object description: Filter by the last published date of the item(s) - name: sortBy in: query type: string description: Sort results by the provided value - name: sortOrder in: query type: string description: Sorts the results by asc or desc - name: createitem method: POST description: Webflow Create Collection Item(s) outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection_id in: path type: string description: Unique identifier for a Collection required: true - name: skipInvalidFiles in: query type: boolean description: When true, invalid files are skipped and processing continues. When false, the entire request fails if any file is invalid. - name: body in: body type: object description: Request body (JSON). required: false - name: updateitems method: PATCH description: Webflow Update Collection Items outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection_id in: path type: string description: Unique identifier for a Collection required: true - name: skipInvalidFiles in: query type: boolean description: When true, invalid files are skipped and processing continues. When false, the entire request fails if any file is invalid. - name: body in: body type: object description: Request body (JSON). required: false - name: deleteitems method: DELETE description: Webflow Delete Collection Items outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection_id in: path type: string description: Unique identifier for a Collection required: true - name: body in: body type: object description: Request body (JSON). required: false - name: collections-collection_id-items-bulk path: /collections/{collection_id}/items/bulk operations: - name: createitems method: POST description: Webflow Create Collection Items outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection_id in: path type: string description: Unique identifier for a Collection required: true - name: skipInvalidFiles in: query type: boolean description: When true, invalid files are skipped and processing continues. When false, the entire request fails if any file is invalid. - name: body in: body type: object description: Request body (JSON). required: false - name: collections-collection_id-items-live path: /collections/{collection_id}/items/live operations: - name: listcollectionitemslive method: GET description: Webflow List Live Collection Items outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection_id in: path type: string description: Unique identifier for a Collection required: true - name: cmsLocaleId in: query type: string description: Unique identifier for a CMS Locale. This UID is different from the Site locale identifier and is listed as `cmsLocaleId` in the Sites response. To query multipl - 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: name in: query type: string description: Filter by the exact name of the item(s) - name: slug in: query type: string description: Filter by the exact slug of the item - name: lastPublished in: query type: object description: Filter by the last published date of the item(s) - name: sortBy in: query type: string description: Sort results by the provided value - name: sortOrder in: query type: string description: Sorts the results by asc or desc - name: createitemlive method: POST description: Webflow Create Live Collection Item(s) outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection_id in: path type: string description: Unique identifier for a Collection required: true - name: skipInvalidFiles in: query type: boolean description: When true, invalid files are skipped and processing continues. When false, the entire request fails if any file is invalid. - name: body in: body type: object description: Request body (JSON). required: false - name: updateitemslive method: PATCH description: Webflow Update Live Collection Items outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection_id in: path type: string description: Unique identifier for a Collection required: true - name: skipInvalidFiles in: query type: boolean description: When true, invalid files are skipped and processing continues. When false, the entire request fails if any file is invalid. - name: body in: body type: object description: Request body (JSON). required: false - name: deleteitemslive method: DELETE description: Webflow Unpublish Live Collection Items outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection_id in: path type: string description: Unique identifier for a Collection required: true - name: body in: body type: object description: Request body (JSON). required: false - name: collections-collection_id-items-publish path: /collections/{collection_id}/items/publish operations: - name: publishitem method: POST description: Webflow Publish Collection Item outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection_id in: path type: string description: Unique identifier for a Collection required: true - name: body in: body type: object description: Request body (JSON). required: false - name: collections-collection_id-items-item_id path: /collections/{collection_id}/items/{item_id} operations: - name: getitem method: GET description: Webflow Get Collection Item outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection_id in: path type: string description: Unique identifier for a Collection required: true - name: item_id in: path type: string description: Unique identifier for an Item required: true - name: cmsLocaleId in: query type: string description: Unique identifier for a CMS Locale. This UID is different from the Site locale identifier and is listed as `cmsLocaleId` in the Sites response. To query multipl - name: updateitem method: PATCH description: Webflow Update Collection Item outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection_id in: path type: string description: Unique identifier for a Collection required: true - name: item_id in: path type: string description: Unique identifier for an Item required: true - name: skipInvalidFiles in: query type: boolean description: When true, invalid files are skipped and processing continues. When false, the entire request fails if any file is invalid. - name: body in: body type: object description: Request body (JSON). required: false - name: deleteitem method: DELETE description: Webflow Delete Collection Item outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection_id in: path type: string description: Unique identifier for a Collection required: true - name: item_id in: path type: string description: Unique identifier for an Item required: true - name: cmsLocaleId in: query type: string description: Unique identifier for a CMS Locale. This UID is different from the Site locale identifier and is listed as `cmsLocaleId` in the Sites response. To query multipl - name: collections-collection_id-items-item_id-live path: /collections/{collection_id}/items/{item_id}/live operations: - name: getitemlive method: GET description: Webflow Get Live Collection Item outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection_id in: path type: string description: Unique identifier for a Collection required: true - name: item_id in: path type: string description: Unique identifier for an Item required: true - name: cmsLocaleId in: query type: string description: Unique identifier for a CMS Locale. This UID is different from the Site locale identifier and is listed as `cmsLocaleId` in the Sites response. To query multipl - name: updateitemlive method: PATCH description: Webflow Update Live Collection Item outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection_id in: path type: string description: Unique identifier for a Collection required: true - name: item_id in: path type: string description: Unique identifier for an Item required: true - name: skipInvalidFiles in: query type: boolean description: When true, invalid files are skipped and processing continues. When false, the entire request fails if any file is invalid. - name: body in: body type: object description: Request body (JSON). required: false - name: deleteitemlive method: DELETE description: Webflow Unpublish Live Collection Item outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection_id in: path type: string description: Unique identifier for a Collection required: true - name: item_id in: path type: string description: Unique identifier for an Item required: true - name: cmsLocaleId in: query type: string description: Unique identifier for a CMS Locale. This UID is different from the Site locale identifier and is listed as `cmsLocaleId` in the Sites response. To query multipl - name: pages-page_id-custom_code path: /pages/{page_id}/custom_code operations: - name: getpagecustomcode method: GET description: Webflow Get Custom Code outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: page_id in: path type: string description: Unique identifier for a Page required: true - name: deletepagecustomcode method: DELETE description: Webflow Delete Custom Code outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: page_id in: path type: string description: Unique identifier for a Page required: true - name: addcustomcodetopage method: PUT description: Webflow Add/Update Custom Code outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: page_id in: path type: string description: Unique identifier for a Page required: true - name: body in: body type: object description: Request body (JSON). required: false - 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-collections path: /sites/{site_id}/collections operations: - name: listcollections method: GET description: Webflow List Collections 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: createcollection method: POST description: Webflow Create Collection 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-comments path: /sites/{site_id}/comments operations: - name: listcommentthreads method: GET description: Webflow List Comment Threads 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: localeId in: query type: string description: Unique identifier for a specific Locale. - 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: sortBy in: query type: string description: Sort results by the provided value. Only allowed when sortOrder is provided. - name: sortOrder in: query type: string description: Sorts the results by asc or desc - name: sites-site_id-comments-comment_thread_id path: /sites/{site_id}/comments/{comment_thread_id} operations: - name: getcommentthread method: GET description: Webflow Get Comment Thread 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: comment_thread_id in: path type: string description: Unique identifier for a Comment Thread required: true - name: localeId in: query type: string description: Unique identifier for a specific Locale. - 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: sortBy in: query type: string description: Sort results by the provided value. Only allowed when sortOrder is provided. - name: sortOrder in: query type: string description: Sorts the results by asc or desc - name: sites-site_id-comments-comment_thread_id-replies path: /sites/{site_id}/comments/{comment_thread_id}/replies operations: - name: listcommentreplies method: GET description: Webflow List Comment Replies 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: comment_thread_id in: path type: string description: Unique identifier for a Comment Thread required: true - name: localeId in: query type: string description: Unique identifier for a specific Locale. - 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: sortBy in: query type: string description: Sort results by the provided value. Only allowed when sortOrder is provided. - name: sortOrder in: query type: string description: Sorts the results by asc or desc - name: sites-site_id-custom_code path: /sites/{site_id}/custom_code operations: - name: getsitecustomcode method: GET description: Webflow Get Custom Code 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: deletesitecustomcode method: DELETE description: Webflow Delete Custom Code 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: addcustomcodetosite method: PUT description: Webflow Add/Update Custom Code 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-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_AND_DOCUMENTATION_WEBFLOW_API_KEY}}' exposes: - type: rest namespace: webflow-data-sites-rest port: 8080 description: REST adapter for Webflow Data API — Sites. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/collections/{collection-id} name: collections-collection-id description: REST surface for collections-collection_id. operations: - method: GET name: collectiondetails description: Webflow Get Collection Details call: webflow-data-sites.collectiondetails with: collection_id: rest.collection_id outputParameters: - type: object mapping: $. - method: DELETE name: deletecollection description: Webflow Delete Collection call: webflow-data-sites.deletecollection with: collection_id: rest.collection_id outputParameters: - type: object mapping: $. - path: /v1/collections/{collection-id}/fields name: collections-collection-id-fields description: REST surface for collections-collection_id-fields. operations: - method: POST name: createfield description: Webflow Create Collection Field call: webflow-data-sites.createfield with: collection_id: rest.collection_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/collections/{collection-id}/fields/{field-id} name: collections-collection-id-fields-field-id description: REST surface for collections-collection_id-fields-field_id. operations: - method: PATCH name: updatefield description: Webflow Update Collection Field call: webflow-data-sites.updatefield with: collection_id: rest.collection_id field_id: rest.field_id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletefield description: Webflow Delete Collection Field call: webflow-data-sites.deletefield with: collection_id: rest.collection_id field_id: rest.field_id outputParameters: - type: object mapping: $. - path: /v1/collections/{collection-id}/items name: collections-collection-id-items description: REST surface for collections-collection_id-items. operations: - method: GET name: listcollectionitems description: Webflow List Collection Items call: webflow-data-sites.listcollectionitems with: collection_id: rest.collection_id cmsLocaleId: rest.cmsLocaleId offset: rest.offset limit: rest.limit name: rest.name slug: rest.slug lastPublished: rest.lastPublished sortBy: rest.sortBy sortOrder: rest.sortOrder outputParameters: - type: object mapping: $. - method: POST name: createitem description: Webflow Create Collection Item(s) call: webflow-data-sites.createitem with: collection_id: rest.collection_id skipInvalidFiles: rest.skipInvalidFiles body: rest.body outputParameters: - type: object mapping: $. - method: PATCH name: updateitems description: Webflow Update Collection Items call: webflow-data-sites.updateitems with: collection_id: rest.collection_id skipInvalidFiles: rest.skipInvalidFiles body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteitems description: Webflow Delete Collection Items call: webflow-data-sites.deleteitems with: collection_id: rest.collection_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/collections/{collection-id}/items/bulk name: collections-collection-id-items-bulk description: REST surface for collections-collection_id-items-bulk. operations: - method: POST name: createitems description: Webflow Create Collection Items call: webflow-data-sites.createitems with: collection_id: rest.collection_id skipInvalidFiles: rest.skipInvalidFiles body: rest.body outputParameters: - type: object mapping: $. - path: /v1/collections/{collection-id}/items/live name: collections-collection-id-items-live description: REST surface for collections-collection_id-items-live. operations: - method: GET name: listcollectionitemslive description: Webflow List Live Collection Items call: webflow-data-sites.listcollectionitemslive with: collection_id: rest.collection_id cmsLocaleId: rest.cmsLocaleId offset: rest.offset limit: rest.limit name: rest.name slug: rest.slug lastPublished: rest.lastPublished sortBy: rest.sortBy sortOrder: rest.sortOrder outputParameters: - type: object mapping: $. - method: POST name: createitemlive description: Webflow Create Live Collection Item(s) call: webflow-data-sites.createitemlive with: collection_id: rest.collection_id skipInvalidFiles: rest.skipInvalidFiles body: rest.body outputParameters: - type: object mapping: $. - method: PATCH name: updateitemslive description: Webflow Update Live Collection Items call: webflow-data-sites.updateitemslive with: collection_id: rest.collection_id skipInvalidFiles: rest.skipInvalidFiles body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteitemslive description: Webflow Unpublish Live Collection Items call: webflow-data-sites.deleteitemslive with: collection_id: rest.collection_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/collections/{collection-id}/items/publish name: collections-collection-id-items-publish description: REST surface for collections-collection_id-items-publish. operations: - method: POST name: publishitem description: Webflow Publish Collection Item call: webflow-data-sites.publishitem with: collection_id: rest.collection_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/collections/{collection-id}/items/{item-id} name: collections-collection-id-items-item-id description: REST surface for collections-collection_id-items-item_id. operations: - method: GET name: getitem description: Webflow Get Collection Item call: webflow-data-sites.getitem with: collection_id: rest.collection_id item_id: rest.item_id cmsLocaleId: rest.cmsLocaleId outputParameters: - type: object mapping: $. - method: PATCH name: updateitem description: Webflow Update Collection Item call: webflow-data-sites.updateitem with: collection_id: rest.collection_id item_id: rest.item_id skipInvalidFiles: rest.skipInvalidFiles body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteitem description: Webflow Delete Collection Item call: webflow-data-sites.deleteitem with: collection_id: rest.collection_id item_id: rest.item_id cmsLocaleId: rest.cmsLocaleId outputParameters: - type: object mapping: $. - path: /v1/collections/{collection-id}/items/{item-id}/live name: collections-collection-id-items-item-id-live description: REST surface for collections-collection_id-items-item_id-live. operations: - method: GET name: getitemlive description: Webflow Get Live Collection Item call: webflow-data-sites.getitemlive with: collection_id: rest.collection_id item_id: rest.item_id cmsLocaleId: rest.cmsLocaleId outputParameters: - type: object mapping: $. - method: PATCH name: updateitemlive description: Webflow Update Live Collection Item call: webflow-data-sites.updateitemlive with: collection_id: rest.collection_id item_id: rest.item_id skipInvalidFiles: rest.skipInvalidFiles body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteitemlive description: Webflow Unpublish Live Collection Item call: webflow-data-sites.deleteitemlive with: collection_id: rest.collection_id item_id: rest.item_id cmsLocaleId: rest.cmsLocaleId outputParameters: - type: object mapping: $. - path: /v1/pages/{page-id}/custom-code name: pages-page-id-custom-code description: REST surface for pages-page_id-custom_code. operations: - method: GET name: getpagecustomcode description: Webflow Get Custom Code call: webflow-data-sites.getpagecustomcode with: page_id: rest.page_id outputParameters: - type: object mapping: $. - method: DELETE name: deletepagecustomcode description: Webflow Delete Custom Code call: webflow-data-sites.deletepagecustomcode with: page_id: rest.page_id outputParameters: - type: object mapping: $. - method: PUT name: addcustomcodetopage description: Webflow Add/Update Custom Code call: webflow-data-sites.addcustomcodetopage with: page_id: rest.page_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/sites name: sites description: REST surface for sites. operations: - method: GET name: listsites description: Webflow List Sites call: webflow-data-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: webflow-data-sites.getsite with: site_id: rest.site_id outputParameters: - type: object mapping: $. - method: PATCH name: updatesite description: Webflow Update Site call: webflow-data-sites.updatesite with: site_id: rest.site_id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletesite description: Webflow Delete Site call: webflow-data-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: webflow-data-sites.getsiteactivitylogs with: site_id: rest.site_id limit: rest.limit offset: rest.offset outputParameters: - type: object mapping: $. - path: /v1/sites/{site-id}/collections name: sites-site-id-collections description: REST surface for sites-site_id-collections. operations: - method: GET name: listcollections description: Webflow List Collections call: webflow-data-sites.listcollections with: site_id: rest.site_id outputParameters: - type: object mapping: $. - method: POST name: createcollection description: Webflow Create Collection call: webflow-data-sites.createcollection with: site_id: rest.site_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/sites/{site-id}/comments name: sites-site-id-comments description: REST surface for sites-site_id-comments. operations: - method: GET name: listcommentthreads description: Webflow List Comment Threads call: webflow-data-sites.listcommentthreads with: site_id: rest.site_id localeId: rest.localeId offset: rest.offset limit: rest.limit sortBy: rest.sortBy sortOrder: rest.sortOrder outputParameters: - type: object mapping: $. - path: /v1/sites/{site-id}/comments/{comment-thread-id} name: sites-site-id-comments-comment-thread-id description: REST surface for sites-site_id-comments-comment_thread_id. operations: - method: GET name: getcommentthread description: Webflow Get Comment Thread call: webflow-data-sites.getcommentthread with: site_id: rest.site_id comment_thread_id: rest.comment_thread_id localeId: rest.localeId offset: rest.offset limit: rest.limit sortBy: rest.sortBy sortOrder: rest.sortOrder outputParameters: - type: object mapping: $. - path: /v1/sites/{site-id}/comments/{comment-thread-id}/replies name: sites-site-id-comments-comment-thread-id-replies description: REST surface for sites-site_id-comments-comment_thread_id-replies. operations: - method: GET name: listcommentreplies description: Webflow List Comment Replies call: webflow-data-sites.listcommentreplies with: site_id: rest.site_id comment_thread_id: rest.comment_thread_id localeId: rest.localeId offset: rest.offset limit: rest.limit sortBy: rest.sortBy sortOrder: rest.sortOrder outputParameters: - type: object mapping: $. - path: /v1/sites/{site-id}/custom-code name: sites-site-id-custom-code description: REST surface for sites-site_id-custom_code. operations: - method: GET name: getsitecustomcode description: Webflow Get Custom Code call: webflow-data-sites.getsitecustomcode with: site_id: rest.site_id outputParameters: - type: object mapping: $. - method: DELETE name: deletesitecustomcode description: Webflow Delete Custom Code call: webflow-data-sites.deletesitecustomcode with: site_id: rest.site_id outputParameters: - type: object mapping: $. - method: PUT name: addcustomcodetosite description: Webflow Add/Update Custom Code call: webflow-data-sites.addcustomcodetosite with: site_id: rest.site_id body: rest.body 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: webflow-data-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: webflow-data-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: webflow-data-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: webflow-data-sites.getredirects with: site_id: rest.site_id outputParameters: - type: object mapping: $. - method: POST name: createredirect description: Webflow Create a 301 redirect call: webflow-data-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: webflow-data-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: webflow-data-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: webflow-data-sites.getrobotstxt with: site_id: rest.site_id outputParameters: - type: object mapping: $. - method: PUT name: replacerobotstxt description: Webflow Replace robots.txt call: webflow-data-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: webflow-data-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: webflow-data-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: webflow-data-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: webflow-data-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: webflow-data-sites.createsite with: workspace_id: rest.workspace_id body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: webflow-data-sites-mcp port: 9090 transport: http description: MCP adapter for Webflow Data API — Sites. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: webflow-get-collection-details description: Webflow Get Collection Details hints: readOnly: true destructive: false idempotent: true call: webflow-data-sites.collectiondetails with: collection_id: tools.collection_id outputParameters: - type: object mapping: $. - name: webflow-delete-collection description: Webflow Delete Collection hints: readOnly: false destructive: true idempotent: true call: webflow-data-sites.deletecollection with: collection_id: tools.collection_id outputParameters: - type: object mapping: $. - name: webflow-create-collection-field description: Webflow Create Collection Field hints: readOnly: false destructive: false idempotent: false call: webflow-data-sites.createfield with: collection_id: tools.collection_id body: tools.body outputParameters: - type: object mapping: $. - name: webflow-update-collection-field description: Webflow Update Collection Field hints: readOnly: false destructive: false idempotent: true call: webflow-data-sites.updatefield with: collection_id: tools.collection_id field_id: tools.field_id body: tools.body outputParameters: - type: object mapping: $. - name: webflow-delete-collection-field description: Webflow Delete Collection Field hints: readOnly: false destructive: true idempotent: true call: webflow-data-sites.deletefield with: collection_id: tools.collection_id field_id: tools.field_id outputParameters: - type: object mapping: $. - name: webflow-list-collection-items description: Webflow List Collection Items hints: readOnly: true destructive: false idempotent: true call: webflow-data-sites.listcollectionitems with: collection_id: tools.collection_id cmsLocaleId: tools.cmsLocaleId offset: tools.offset limit: tools.limit name: tools.name slug: tools.slug lastPublished: tools.lastPublished sortBy: tools.sortBy sortOrder: tools.sortOrder outputParameters: - type: object mapping: $. - name: webflow-create-collection-item-s description: Webflow Create Collection Item(s) hints: readOnly: false destructive: false idempotent: false call: webflow-data-sites.createitem with: collection_id: tools.collection_id skipInvalidFiles: tools.skipInvalidFiles body: tools.body outputParameters: - type: object mapping: $. - name: webflow-update-collection-items description: Webflow Update Collection Items hints: readOnly: false destructive: false idempotent: true call: webflow-data-sites.updateitems with: collection_id: tools.collection_id skipInvalidFiles: tools.skipInvalidFiles body: tools.body outputParameters: - type: object mapping: $. - name: webflow-delete-collection-items description: Webflow Delete Collection Items hints: readOnly: false destructive: true idempotent: true call: webflow-data-sites.deleteitems with: collection_id: tools.collection_id body: tools.body outputParameters: - type: object mapping: $. - name: webflow-create-collection-items description: Webflow Create Collection Items hints: readOnly: false destructive: false idempotent: false call: webflow-data-sites.createitems with: collection_id: tools.collection_id skipInvalidFiles: tools.skipInvalidFiles body: tools.body outputParameters: - type: object mapping: $. - name: webflow-list-live-collection-items description: Webflow List Live Collection Items hints: readOnly: true destructive: false idempotent: true call: webflow-data-sites.listcollectionitemslive with: collection_id: tools.collection_id cmsLocaleId: tools.cmsLocaleId offset: tools.offset limit: tools.limit name: tools.name slug: tools.slug lastPublished: tools.lastPublished sortBy: tools.sortBy sortOrder: tools.sortOrder outputParameters: - type: object mapping: $. - name: webflow-create-live-collection-item-s description: Webflow Create Live Collection Item(s) hints: readOnly: false destructive: false idempotent: false call: webflow-data-sites.createitemlive with: collection_id: tools.collection_id skipInvalidFiles: tools.skipInvalidFiles body: tools.body outputParameters: - type: object mapping: $. - name: webflow-update-live-collection-items description: Webflow Update Live Collection Items hints: readOnly: false destructive: false idempotent: true call: webflow-data-sites.updateitemslive with: collection_id: tools.collection_id skipInvalidFiles: tools.skipInvalidFiles body: tools.body outputParameters: - type: object mapping: $. - name: webflow-unpublish-live-collection-items description: Webflow Unpublish Live Collection Items hints: readOnly: false destructive: true idempotent: true call: webflow-data-sites.deleteitemslive with: collection_id: tools.collection_id body: tools.body outputParameters: - type: object mapping: $. - name: webflow-publish-collection-item description: Webflow Publish Collection Item hints: readOnly: false destructive: false idempotent: false call: webflow-data-sites.publishitem with: collection_id: tools.collection_id body: tools.body outputParameters: - type: object mapping: $. - name: webflow-get-collection-item description: Webflow Get Collection Item hints: readOnly: true destructive: false idempotent: true call: webflow-data-sites.getitem with: collection_id: tools.collection_id item_id: tools.item_id cmsLocaleId: tools.cmsLocaleId outputParameters: - type: object mapping: $. - name: webflow-update-collection-item description: Webflow Update Collection Item hints: readOnly: false destructive: false idempotent: true call: webflow-data-sites.updateitem with: collection_id: tools.collection_id item_id: tools.item_id skipInvalidFiles: tools.skipInvalidFiles body: tools.body outputParameters: - type: object mapping: $. - name: webflow-delete-collection-item description: Webflow Delete Collection Item hints: readOnly: false destructive: true idempotent: true call: webflow-data-sites.deleteitem with: collection_id: tools.collection_id item_id: tools.item_id cmsLocaleId: tools.cmsLocaleId outputParameters: - type: object mapping: $. - name: webflow-get-live-collection-item description: Webflow Get Live Collection Item hints: readOnly: true destructive: false idempotent: true call: webflow-data-sites.getitemlive with: collection_id: tools.collection_id item_id: tools.item_id cmsLocaleId: tools.cmsLocaleId outputParameters: - type: object mapping: $. - name: webflow-update-live-collection-item description: Webflow Update Live Collection Item hints: readOnly: false destructive: false idempotent: true call: webflow-data-sites.updateitemlive with: collection_id: tools.collection_id item_id: tools.item_id skipInvalidFiles: tools.skipInvalidFiles body: tools.body outputParameters: - type: object mapping: $. - name: webflow-unpublish-live-collection-item description: Webflow Unpublish Live Collection Item hints: readOnly: false destructive: true idempotent: true call: webflow-data-sites.deleteitemlive with: collection_id: tools.collection_id item_id: tools.item_id cmsLocaleId: tools.cmsLocaleId outputParameters: - type: object mapping: $. - name: webflow-get-custom-code description: Webflow Get Custom Code hints: readOnly: true destructive: false idempotent: true call: webflow-data-sites.getpagecustomcode with: page_id: tools.page_id outputParameters: - type: object mapping: $. - name: webflow-delete-custom-code description: Webflow Delete Custom Code hints: readOnly: false destructive: true idempotent: true call: webflow-data-sites.deletepagecustomcode with: page_id: tools.page_id outputParameters: - type: object mapping: $. - name: webflow-add-update-custom-code description: Webflow Add/Update Custom Code hints: readOnly: false destructive: false idempotent: true call: webflow-data-sites.addcustomcodetopage with: page_id: tools.page_id body: tools.body outputParameters: - type: object mapping: $. - name: webflow-list-sites description: Webflow List Sites hints: readOnly: true destructive: false idempotent: true call: webflow-data-sites.listsites outputParameters: - type: object mapping: $. - name: webflow-get-site description: Webflow Get Site hints: readOnly: true destructive: false idempotent: true call: webflow-data-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: webflow-data-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: webflow-data-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: webflow-data-sites.getsiteactivitylogs with: site_id: tools.site_id limit: tools.limit offset: tools.offset outputParameters: - type: object mapping: $. - name: webflow-list-collections description: Webflow List Collections hints: readOnly: true destructive: false idempotent: true call: webflow-data-sites.listcollections with: site_id: tools.site_id outputParameters: - type: object mapping: $. - name: webflow-create-collection description: Webflow Create Collection hints: readOnly: false destructive: false idempotent: false call: webflow-data-sites.createcollection with: site_id: tools.site_id body: tools.body outputParameters: - type: object mapping: $. - name: webflow-list-comment-threads description: Webflow List Comment Threads hints: readOnly: true destructive: false idempotent: true call: webflow-data-sites.listcommentthreads with: site_id: tools.site_id localeId: tools.localeId offset: tools.offset limit: tools.limit sortBy: tools.sortBy sortOrder: tools.sortOrder outputParameters: - type: object mapping: $. - name: webflow-get-comment-thread description: Webflow Get Comment Thread hints: readOnly: true destructive: false idempotent: true call: webflow-data-sites.getcommentthread with: site_id: tools.site_id comment_thread_id: tools.comment_thread_id localeId: tools.localeId offset: tools.offset limit: tools.limit sortBy: tools.sortBy sortOrder: tools.sortOrder outputParameters: - type: object mapping: $. - name: webflow-list-comment-replies description: Webflow List Comment Replies hints: readOnly: true destructive: false idempotent: true call: webflow-data-sites.listcommentreplies with: site_id: tools.site_id comment_thread_id: tools.comment_thread_id localeId: tools.localeId offset: tools.offset limit: tools.limit sortBy: tools.sortBy sortOrder: tools.sortOrder outputParameters: - type: object mapping: $. - name: webflow-get-custom-code-2 description: Webflow Get Custom Code hints: readOnly: true destructive: false idempotent: true call: webflow-data-sites.getsitecustomcode with: site_id: tools.site_id outputParameters: - type: object mapping: $. - name: webflow-delete-custom-code-2 description: Webflow Delete Custom Code hints: readOnly: false destructive: true idempotent: true call: webflow-data-sites.deletesitecustomcode with: site_id: tools.site_id outputParameters: - type: object mapping: $. - name: webflow-add-update-custom-code-2 description: Webflow Add/Update Custom Code hints: readOnly: false destructive: false idempotent: true call: webflow-data-sites.addcustomcodetosite with: site_id: tools.site_id body: tools.body outputParameters: - type: object mapping: $. - name: webflow-get-custom-domains description: Webflow Get Custom Domains hints: readOnly: true destructive: false idempotent: true call: webflow-data-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: webflow-data-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: webflow-data-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: webflow-data-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: webflow-data-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: webflow-data-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: webflow-data-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: webflow-data-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: webflow-data-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: webflow-data-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: webflow-data-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: webflow-data-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: webflow-data-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: webflow-data-sites.createsite with: workspace_id: tools.workspace_id body: tools.body outputParameters: - type: object mapping: $.