API v2: Changed endpoints

As part of the Webflow Developer Platform updates launched on August 29th, 2023, Webflow released version 2 of the Data API with significant improvements and standardizations. This document provides a comprehensive reference of all endpoint changes between API v1 and v2.

This document is for developers who are migrating from API v1 to v2. For new API v2 implementations, please refer to the API reference.

Token endpoints

  • Authorization User Info
    Replaces the /user endpoint from v1. Use the /token/authorized_by endpoint instead.
  • Authorization Info
    Replaces the /info endpoint from v1. Use the /token/introspect endpoint instead.

Sites endpoints

  • List Sites | GET /sites

    • New properties for the response:

      ChangePropertyDescription
      Addedsites (object)Array of site objects
      Renamed_ididUnique identifier for the Site
      AddedworkspaceIdUnique identifier for the Workspace
      RenamednamedisplayNameName given to Site
      AddedlastUpdatedDate the Site was last updated
      RenamedtimezonetimeZoneSite timezone set under Site Settings
      DeleteddatabaseDatabase property removed
  • Get Site | GET /sites/{site_id}

    • New properties for the response:

      ChangePropertyDescription
      Renamed_ididUnique identifier for the Site
      AddedworkspaceIdUnique identifier for the Workspace
      RenamednamedisplayNameName given to Site
      AddedlastUpdatedDate the Site was last updated
      RenamedtimezonetimeZoneSite timezone set under Site Settings
      AddedcustomDomainsCustom domains array
      DeleteddatabaseDatabase property removed
  • Publish Site | POST /sites/{site_id}/publish

    • New properties for the request:

      ChangePropertyDescription
      RenameddomainscustomDomainsArray of Custom Domain ids to publish
      AddedpublishToWebflowSubdomainChoice of whether to publish to the default Webflow Subdomain

CMS endpoints

  • List Collections | GET /sites/{site_id}/collections

    • New properties for the response:

      ChangePropertyDescription
      AddedcollectionsAn array of Collections
      Renamed_ididUnique identifier for a Collection
  • Get Collection | GET /collections/{collection_id}

    • New properties for the response:

      ChangePropertyDescription
      Renamed_ididUnique identifier for a Collection
      RenamednamedisplayNameName given to the Collection
      ChangedfieldsThe list of fields in the Collection
      Renamedfields._idfields.idUnique identifier for a field
      Renamedfields.editablefields.isEditableFlag to denote a field as editable
      Renamedfields.requiredfields.isRequiredFlag to denote a field as required
      Renamedfields.namefields.displayNameName given to the field
      Addedfields.helpTextHelp text for the field
  • List CMS Items | GET /collections/{collection_id}/items

    • New properties for the response:

      ChangePropertyDescription
      Renamed_ididUnique identifier for the Item
      Renamed_archivedisArchivedBoolean determining if the Item is set to archived
      Renamed_draftisDraftBoolean determining if the Item is set to draft
      Renamedcreated-onCreatedOnThe date the item was created
      Renamedupdated-onlastUpdatedThe date the item was last updated
      Renamedpublished-onlastPublishedThe date the item was last published
      AddedpaginationPagination object containing limit, offset, and total
      DeletedcountNumber of items returned
  • Create CMS Item | POST /collections/{collection_id}/items

    • Deleted query parameters for the request:

      ChangeQuery parameterDescription
      DeletedliveBoolean indicating if the items should be published/unpublished to/from the live site
    • New properties for the request:

      ChangePropertyDescription
      AddedisArchivedBoolean determining if the Item is set to archived
      AddedisDraftBoolean determining if the Item is set to draft
      AddedfieldDataObject containing item fields
      AddedfieldData.nameName of the Item
      AddedfieldData.slugURL structure of the Item in your site
      DeletedfieldsThe fields for the new item
    • New properties for the response:

      ChangePropertyDescription
      Renamed_ididUnique identifier for the Item
      Renamed_archivedisArchivedBoolean determining if the Item is set to archived
      Renamed_draftisDraftBoolean determining if the Item is set to draft
      Renamedcreated-onCreatedOnThe date the item was created
      Renamedupdated-onlastUpdatedThe date the item was last updated
      Renamedpublished-onlastPublishedThe date the item was last published
      AddedfieldDataObject containing item field data
      DeletednameName given to the Item
      DeletedslugURL structure of the Item in your site
  • Get CMS Item | GET /collections/{collection_id}/items/{item_id}

    • New properties for the response:

      ChangePropertyDescription
      Renamed_ididUnique identifier for the Item
      Renamed_archivedisArchivedBoolean determining if the Item is set to archived
      Renamed_draftisDraftBoolean determining if the Item is set to draft
      Renamedcreated-onCreatedOnThe date the item was created
      Renamedupdated-onlastUpdatedThe date the item was last updated
      Renamedpublished-onlastPublishedThe date the item was last published
      AddedfieldDataObject containing item field data
      DeleteditemsList of Items within the collection
      DeletedcountNumber of items returned
      DeletedlimitThe limit specified in the request
      DeletedoffsetThe offset specified for pagination
      DeletedtotalTotal number of items in the collection
  • Delete CMS Item | DELETE /collections/{collection_id}/items/{item_id}

    • Deleted query parameter for the request:

      ChangeQuery parameterDescription
      DeletedliveBoolean indicating if the items should be published/unpublished to/from the live site
  • Update CMS Item PATCH /collections/{collection_id}/items/{item_id}

    • Deleted query parameter for the request:

      ChangeQuery parameterDescription
      DeletedliveBoolean indicating if the items should be published/unpublished to/from the live site
    • New properties for the request:

      ChangePropertyDescription
      AddedisArchivedBoolean determining if the Item is set to archived
      AddedisDraftBoolean determining if the Item is set to draft
      AddedfieldDataObject containing item fields
      DeletedfieldsFields in your collection item
    • New properties for the response:

      ChangePropertyDescription
      Renamed_ididUnique identifier for the Item
      Renamed_archivedisArchivedBoolean determining if the Item is set to archived
      Renamed_draftisDraftBoolean determining if the Item is set to draft
      Renamedcreated-onCreatedOnThe date the item was created
      Renamedupdated-onlastUpdatedThe date the item was last updated
      Renamedpublished-onlastPublishedThe date the item was last published
      AddedfieldDataObject containing item field data
      Deleted_cidUnique identifier for the Collection the Item belongs within
      DeletednameName given to the Item
      DeletedslugURL structure of the Item in your site

User accounts endpoints

  • List Users | GET /sites/{site_id}/users
    This endpoint replaces the /sites/{site_id}/accessgroups endpoint.

    • New properties for the response:

      ChangePropertyDescription
      Renamed_ididUnique identifier for the User
      RenamedupdatedOnlastUpdatedThe date the item was last updated
      RenamedemailVerifiedisEmailVerifiedShows whether the user has verified their email address
      AddedaccessGroupsUser access groups
  • Get User | GET /sites/{site_id}/users/{user_id}

    • New properties for the response:

      ChangePropertyDescription
      Renamed_ididUnique identifier for the User
      RenamedupdatedOnlastUpdatedThe date the item was last updated
      RenamedemailVerifiedisEmailVerifiedShows whether the user has verified their email address
  • Update User | PATCH /sites/{site_id}/users/{user_id}

    • New properties for the request:

      ChangePropertyDescription
      AddeddataUser data object
      Addeddata.nameThe name of the user
      Addeddata.accept-privacyBoolean indicating if the user has accepted the privacy policy
      Addeddata.accept-communicationsBoolean indicating if the user has accepted to receive communications
      AddedaccessGroupsAn array of access group slugs
    • New properties for the response:

      ChangePropertyDescription
      Renamed_ididUnique identifier for the User
      RenamedupdatedOnlastUpdatedThe date the item was last updated
      RenamedemailVerifiedisEmailVerifiedShows whether the user has verified their email address
  • Invite User | POST /sites/{site_id}/users/invite

    • New properties for the response:

      ChangePropertyDescription
      Renamed_ididUnique identifier for the User
      RenamedupdatedOnlastUpdatedThe date the item was last updated
      RenamedemailVerifiedisEmailVerifiedShows whether the user has verified their email address
  • List Products | GET /sites/{site_id}/products

    • New properties for the response:

      ChangePropertyDescription
      AddedpaginationPagination object to replace pagination properties
      Addedpagination.limitThe limit used for pagination
      Addedpagination.offsetThe offset used for pagination
      Addedpagination.totalThe total number of records
      DeletedcountNumber of items returned
      ChangeditemsList of Item objects within the Collection
      Renameditems._iditems.idUnique identifier for the Product
      Addeditems.lastPublishedThe date the Product was last published

Ecommerce endpoints

Products

  • Create Product | POST /sites/{site_id}/products

    • New properties for the request:

      ChangePropertyDescription
      Added (Required)productThe Product object
      Added (Required)skuThe SKU object
      AddedpublishStatusPublish target (enum: staging, live)
      ChangedproductModified Product object structure
      Renamedproduct._idproduct.idUnique identifier for the Product
      Addedproduct.isArchivedBoolean determining if the Product is set to archived
      Addedproduct.isDraftBoolean determining if the Product is set to draft
      Addedproduct.fieldDataContainer for product fields
      Addedproduct.fieldData.nameName of the Product
      Addedproduct.fieldData.slugURL structure of the Product in your site
      Addedproduct.fieldData.sku-propertiesVariant/Options types to include in SKUs
      Deletedproduct.fieldsFields in your product object
      ChangedskuModified SKU object structure
      Added (Optional)sku._idSKU identifier
      Added (Optional)sku.fieldsSKU fields
      Added (Optional)sku.nameSKU name
      Added (Optional)sku.slugSKU slug
      Addedsku.fieldDataContainer for SKU fields
      Addedsku.fieldData.nameName of the Product
      Addedsku.fieldData.slugURL structure of the Product in your site
      Addedsku.fieldData.pricePrice information
      Addedsku.fieldData.price.valuePrice of SKU
      Addedsku.fieldData.price.unitCurrency of Item
      Addedsku.fieldData.sku-valuesDictionary mapping SKU properties to values
      Deletedsku.fieldsFields in your SKU object
    • New properties for the response:

      ChangePropertyDescription
      RenamedskuskusThe SKU object
      ChangedproductThe Product object
      Renamedproduct._idproduct.idUnique identifier for the Product
      Renamedproduct._archivedproduct.isArchivedBoolean determining if the Item is set to archived
      Renamedproduct._draftproduct.isDraftBoolean determining if the Item is set to draft
      Renamedproduct.created-onproduct.CreatedOnThe date the item was created
      Renamedproduct.updated-onproduct.lastUpdatedThe date the item was last updated
      Renamedproduct.published-onproduct.lastPublishedThe date the item was last published
      Renamedproduct.fieldsproduct.fieldDataFields in your product object
      Deletedproduct.slugSlug of Collection in Site URL structure
      Deletedproduct.singularNameThe name of one Item in Collection (for example “product” if the Collection is called “Product”)
  • Get Product | GET /sites/{site_id}/products/{product_id}

    • New properties for the response:

      ChangePropertyDescription
      AddedproductThe Product object
      Renamedproduct._idproduct.idUnique identifier for the Product
      Renamedproduct._archivedproduct.isArchivedBoolean determining if the Item is set to archived
      Renamedproduct._draftproduct.isDraftBoolean determining if the Item is set to draft
      Renamedproduct.created-onproduct.CreatedOnThe date the item was created
      Renamedproduct.updated-onproduct.lastUpdatedThe date the item was last updated
      Renamedproduct.published-onproduct.lastPublishedThe date the item was last published
      Movedsku-propertiesNow a child object of fieldData
      AddedskusSKUs array
      DeleteditemsList of SKUs for a Product
      DeletedcountNumber of items returned
      DeletedlimitThe limit specified in the request
      DeletedoffsetThe offset specified for pagination
      DeletedtotalTotal number of items in the collection
  • Update Product | PATCH /sites/{site_id}/products/{product_id}

    • New properties for the request:

      ChangePropertyDescription
      AddedproductThe Product object
      AddedpublishStatusPublish target
      AddedproductThe Product object
      DeletedfieldsFields in your collection item
    • New properties for the response:

      ChangePropertyDescription
      AddedfieldDataField data object
      Renamed_ididUnique identifier for the Product
      Renamed_archivedisArchivedBoolean determining if the Item is set to archived
      Renamed_draftisDraftBoolean determining if the Item is set to draft
      Renamedpublished-onlastPublishedThe date the item was last published
      DeletednameName given to Collection
      DeletedslugSlug of Collection in Site URL structure
      DeletedsingularNameThe name of one Item in Collection (for example “product” if the Collection is called “Product”)
      DeletedfieldsFields in your product object

Orders

  • List Orders | GET /sites/{site_id}/orders
    New properties for the response:

    ChangePropertyDescription
    AddeditemsList of orders
    AddedpaginationPagination object
  • Get Order | GET /sites/{site_id}/orders/{order_id}
    Replaces the /sites/{site_id}/orders/{order_id} endpoint.

  • Update Order | PATCH /sites/{site_id}/orders/{order_id}

    Replaces the /sites/{site_id}/orders/{order_id} endpoint.

  • Get Custom Domains | GET /sites/{site_id}/custom_domains
    Replaces the /sites/{site_id}/custom_domains endpoint.

  • Fulfill Order | POST /sites/{site_id}/orders/{order_id}/fulfill
    Replaces the /sites/{site_id}/orders/{order_id}/fulfill endpoint.

  • Unfulfill Order | POST /sites/{site_id}/orders/{order_id}/unfulfill
    Replaces the /sites/{site_id}/orders/{order_id}/unfulfill endpoint.

  • Refund Order | POST /sites/{site_id}/orders/{order_id}/refund
    Replaces the /sites/{site_id}/orders/{order_id}/refund endpoint.

Inventory

  • Get Inventory | GET /collections/{collection_id}/items/{item_id}/inventory
    Replaces the /collections/{collection_id}/items/{item_id}/inventory endpoint.

    New properties for the response:

    ChangePropertyDescription
    Renamed_ididUnique identifier for the Product
  • Update Inventory | PATCH /collections/{collection_id}/items/{item_id}/inventory
    Replaces the /collections/{collection_id}/items/{item_id}/inventory endpoint.

  • Update Inventory PATCH /collections/{collection_id}/items/{item_id}/inventory

    New properties for the request:

    ChangePropertyDescription
    AddedinventoryTypeType of inventory finite or infinite
    AddedupdateQuantityQuantity to update
    AddedquantityQuantity to set
    DeletedfieldsFields in your inventory object

    New properties for the response:

    ChangePropertyDescription
    Renamed_ididUnique identifier for the Product

Ecommerce Settings

  • Get Ecommerce Settings | GET /sites/{site_id}/ecommerce/settings
    Replaces the /sites/{site_id}/ecommerce/settings endpoint.

    New properties for the response:

    ChangePropertyDescription
    RenamedsitesiteIdThe identifier of the Site

Webhooks

  • Get Webhook | GET /webhooks/{webhook_id}
    Replaces the /webhooks/{webhook_id} endpoint.

    New properties for the response:

    ChangePropertyDescription
    Renamed_ididThe identifier of the Webhook
    RenamedsitesiteIdThe identifier of the Site
    AddedworkspaceIdIdentifier of the workspace
    DeletedtriggerIdTrigger ID property removed
    RenamedlastUsedlastTriggeredDate the Webhook instance was last triggered
    AddedurlURL to send the Webhook payload to
  • List Webhooks | GET /sites/{site_id}/webhooks
    Replaces the /sites/{site_id}/webhooks endpoint.

    New properties for the response:

    ChangePropertyDescription
    AddedwebhooksAll webhooks are in an array in this object
    Renamedwebhooks._idwebhooks.idThe identifier of the Webhook
    Renamedwebhooks.sitewebhooks.siteIdThe identifier of the Site
    Addedwebhooks.workspaceIdIdentifier of the workspace
    Deletedwebhooks.triggerIdTrigger ID property removed
    Renamedwebhooks.lastUsedwebhooks.lastTriggeredDate the Webhook instance was last triggered
    Addedwebhooks.urlURL to send the Webhook payload to
  • Create Webhook | POST /sites/{site_id}/webhooks
    Replaces the /sites/{site_id}/webhooks endpoint.

    • New properties for the request:

      ChangePropertyDescription
      AddedtriggerTypeType of webhook trigger
      AddedfilterFilter for selecting which events you want Webhooks to be sent for. Only available for form_submission trigger types.

      List of triggerType values for Webhook events:

      • form_submission - Form submission events
      • site_publish - Site publish events
      • page_created - Page creation events
      • page_metadata_updated - Page metadata update events
      • page_deleted - Page deletion events
      • ecomm_new_order - New order events
      • ecomm_order_changed - Order changed events
      • ecomm_inventory_changed - Inventory changed events
      • user_account_added - User account added events
      • user_account_updated - User account updated events
      • user_account_deleted - User account deleted events

      New trigger types:

      • collection_item_created - CMS item creation events
      • collection_item_changed - CMS item update events
      • collection_item_deleted - CMS item deletion events
      • collection_item_unpublished - CMS item unpublish events

      Changed trigger types:

      • memberships_user_account_addeduser_account_added
      • memberships_user_account_updateduser_account_updated
      • memberships_user_account_deleteduser_account_deleted
    • New properties for the response:

      ChangePropertyDescription
      Renamed_ididThe identifier of the Webhook
      RenamedsitesiteIdThe identifier of the Site
      AddedworkspaceIdIdentifier of the workspace
      DeletedtriggerIdTrigger ID property removed
      RenamedlastUsedlastTriggeredDate the Webhook instance was last triggered
      AddedurlURL to send the Webhook payload to
      AddedfilterFilter for selecting which events you want Webhooks to be sent for
  • Delete Webhook | DELETE /webhooks/{webhook_id}
    Replaces the /webhooks/{webhook_id} endpoint.