client.token.authorizedBy() -> Webflow.AuthorizedUser
-
-
-
Information about the Authorized User
Required Scope |
authorized_user:read
-
-
-
await client.token.authorizedBy();
-
-
-
requestOptions:
Token.RequestOptions
-
-
client.token.introspect() -> Webflow.Authorization
-
-
-
Information about the authorization token
Access to this endpoint requires a bearer token from a Data Client App.
-
-
-
await client.token.introspect();
-
-
-
requestOptions:
Token.RequestOptions
-
-
client.sites.create(workspaceId, { ...params }) -> Webflow.Site
-
-
-
Create a site.
This endpoint requires an Enterprise workspace.
Required scope |
workspace:write
-
-
-
await client.sites.create("580e63e98c9a982ac9b8b741", { name: "The Hitchhiker's Guide to the Galaxy", });
-
-
-
workspaceId:
string— Unique identifier for a Workspace
-
request:
Webflow.SitesCreateRequest
-
requestOptions:
Sites.RequestOptions
-
-
client.sites.list() -> Webflow.Sites
-
-
-
List of all sites the provided access token is able to access.
Required scope |
sites:read
-
-
-
await client.sites.list();
-
-
-
requestOptions:
Sites.RequestOptions
-
-
client.sites.get(siteId) -> Webflow.Site
-
-
-
Get details of a site.
Required scope |
sites:read
-
-
-
await client.sites.get("580e63e98c9a982ac9b8b741");
-
-
-
siteId:
string— Unique identifier for a Site
-
requestOptions:
Sites.RequestOptions
-
-
client.sites.delete(siteId) -> void
-
-
-
Delete a site.
This endpoint requires an Enterprise workspace.
Required scope |
sites:write
-
-
-
await client.sites.delete("580e63e98c9a982ac9b8b741");
-
-
-
siteId:
string— Unique identifier for a Site
-
requestOptions:
Sites.RequestOptions
-
-
client.sites.update(siteId, { ...params }) -> Webflow.Site
-
-
-
Update a site.
This endpoint requires an Enterprise workspace.
Required scope |
sites:write
-
-
-
await client.sites.update("580e63e98c9a982ac9b8b741");
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.SitesUpdateRequest
-
requestOptions:
Sites.RequestOptions
-
-
client.sites.getCustomDomain(siteId) -> Webflow.Domains
-
-
-
Get a list of all custom domains related to site.
Required scope |
sites:read
-
-
-
await client.sites.getCustomDomain("580e63e98c9a982ac9b8b741");
-
-
-
siteId:
string— Unique identifier for a Site
-
requestOptions:
Sites.RequestOptions
-
-
client.sites.publish(siteId, { ...params }) -> Webflow.SitesPublishResponse
-
-
-
Publishes a site to one or more more domains.
To publish to a specific custom domain, use the domain IDs from the Get Custom Domains endpoint.
This endpoint has a specific rate limit of one successful publish queue per minute.
Required scope |
sites:write
-
-
-
await client.sites.publish("580e63e98c9a982ac9b8b741", { customDomains: ["660c6449dd97ebc7346ac629", "660c6449dd97ebc7346ac62f"], publishToWebflowSubdomain: false, });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.SitesPublishRequest
-
requestOptions:
Sites.RequestOptions
-
-
client.collections.list(siteId) -> Webflow.CollectionList
-
-
-
List of all Collections within a Site.
Required scope |
cms:read
-
-
-
await client.collections.list("580e63e98c9a982ac9b8b741");
-
-
-
siteId:
string— Unique identifier for a Site
-
requestOptions:
Collections.RequestOptions
-
-
client.collections.create(siteId, { ...params }) -> Webflow.Collection
-
-
-
Create a Collection for a site with collection fields.
Each collection includes the required name and slug fields, which are generated automatically. You can update the
displayNameof these fields, but the slug for them cannot be changed. Fields slugs are automatically converted to lowercase. Spaces in slugs are replaced with hyphens.Required scope |
cms:write
-
-
-
await client.collections.create("580e63e98c9a982ac9b8b741", { displayName: "Blog Posts", singularName: "Blog Post", slug: "posts", fields: [ { isRequired: true, type: "PlainText", displayName: "Title", helpText: "The title of the blog post", }, { isRequired: true, type: "RichText", displayName: "Content", helpText: "The content of the blog post", }, { isRequired: true, type: "Reference", displayName: "Author", helpText: "The author of the blog post", metadata: { collectionId: "23cc2d952d4e4631ffd4345d2743db4e", }, }, ], });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.CollectionsCreateRequest
-
requestOptions:
Collections.RequestOptions
-
-
client.collections.get(collectionId) -> Webflow.Collection
-
-
-
Get the full details of a collection from its ID.
Required scope |
cms:read
-
-
-
await client.collections.get("580e63fc8c9a982ac9b8b745");
-
-
-
collectionId:
string— Unique identifier for a Collection
-
requestOptions:
Collections.RequestOptions
-
-
client.collections.delete(collectionId) -> void
-
-
-
Delete a collection using its ID.
Required scope |
cms:write
-
-
-
await client.collections.delete("580e63fc8c9a982ac9b8b745");
-
-
-
collectionId:
string— Unique identifier for a Collection
-
requestOptions:
Collections.RequestOptions
-
-
client.pages.list(siteId, { ...params }) -> Webflow.PageList
-
-
-
List of all pages for a site.
Required scope |
pages:read
-
-
-
await client.pages.list("580e63e98c9a982ac9b8b741", { localeId: "65427cf400e02b306eaa04a0", limit: 1, offset: 1, });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.PagesListRequest
-
requestOptions:
Pages.RequestOptions
-
-
client.pages.getMetadata(pageId, { ...params }) -> Webflow.Page
-
-
-
Get metadata information for a single page.
Required scope |
pages:read
-
-
-
await client.pages.getMetadata("63c720f9347c2139b248e552", { localeId: "65427cf400e02b306eaa04a0", });
-
-
-
pageId:
string— Unique identifier for a Page
-
request:
Webflow.PagesGetMetadataRequest
-
requestOptions:
Pages.RequestOptions
-
-
client.pages.updatePageSettings(pageId, { ...params }) -> Webflow.Page
-
-
-
Update Page-level metadata, including SEO and Open Graph fields.
Required scope |
pages:write
-
-
-
await client.pages.updatePageSettings("63c720f9347c2139b248e552", { localeId: "65427cf400e02b306eaa04a0", title: "Guide to the Galaxy", slug: "guide-to-the-galaxy", seo: { title: "The Ultimate Hitchhiker's Guide to the Galaxy", description: "Everything you need to know about the galaxy, from avoiding Vogon poetry to the importance of towels.", }, openGraph: { title: "Explore the Cosmos with The Ultimate Guide", titleCopied: false, description: "Dive deep into the mysteries of the universe with your guide to everything galactic.", descriptionCopied: false, }, });
-
-
-
pageId:
string— Unique identifier for a Page
-
request:
Webflow.PageMetadataWrite
-
requestOptions:
Pages.RequestOptions
-
-
client.pages.getContent(pageId, { ...params }) -> Webflow.Dom
-
-
-
Get text and component instance content from a static page.
Localization
Required scope |
pages:read
-
-
-
await client.pages.getContent("63c720f9347c2139b248e552", { localeId: "65427cf400e02b306eaa04a0", limit: 1, offset: 1, });
-
-
-
pageId:
string— Unique identifier for a Page
-
request:
Webflow.PagesGetContentRequest
-
requestOptions:
Pages.RequestOptions
-
-
client.pages.updateStaticContent(pageId, { ...params }) -> Webflow.UpdateStaticContentResponse
-
-
-
This endpoint updates content on a static page in secondary locales. It supports updating up to 1000 nodes in a single request.
Before making updates:
- Use the get page content endpoint to identify available content nodes and their types.
- If the page has component instances, retrieve the component's properties that you'll override using the get component properties endpoint.
- DOM elements may include a
data-w-idattribute. This attribute is used by Webflow to maintain custom attributes and links across locales. Always include the originaldata-w-idvalue in your update requests to ensure consistent behavior across all locales.
Required scope |
pages:write
-
-
-
await client.pages.updateStaticContent("63c720f9347c2139b248e552", { localeId: "localeId", nodes: [ { nodeId: "a245c12d-995b-55ee-5ec7-aa36a6cad623", text: "<h1>The Hitchhiker's Guide to the Galaxy</h1>", }, { nodeId: "a245c12d-995b-55ee-5ec7-aa36a6cad627", text: "<div><h3>Don't Panic!</h3><p>Always know where your towel is.</p></div>", }, { nodeId: "a245c12d-995b-55ee-5ec7-aa36a6cad635", choices: [ { value: "choice-1", text: "First choice", }, { value: "choice-2", text: "Second choice", }, ], }, { nodeId: "a245c12d-995b-55ee-5ec7-aa36a6cad642", placeholder: "Enter something here...", }, { nodeId: "a245c12d-995b-55ee-5ec7-aa36a6cad671", value: "Submit", waitingText: "Submitting...", }, { nodeId: "a245c12d-995b-55ee-5ec7-aa36a6cad629", propertyOverrides: [ { propertyId: "7dd14c08-2e96-8d3d-2b19-b5c03642a0f0", text: "<div><h1>Time is an <em>illusion</em></h1></div>", }, { propertyId: "7dd14c08-2e96-8d3d-2b19-b5c03642a0f1", text: "Life, the Universe and Everything", }, ], }, ], });
-
-
-
pageId:
string— Unique identifier for a Page
-
request:
Webflow.PageDomWrite
-
requestOptions:
Pages.RequestOptions
-
-
client.components.list(siteId, { ...params }) -> Webflow.ComponentList
-
-
-
List of all components for a site.
Required scope |
components:read
-
-
-
await client.components.list("580e63e98c9a982ac9b8b741", { branchId: "68026fa68ef6dc744c75b833", limit: 1, offset: 1, });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.ComponentsListRequest
-
requestOptions:
Components.RequestOptions
-
-
client.components.getContent(siteId, componentId, { ...params }) -> Webflow.ComponentDom
-
-
-
Get static content from a component definition. This includes text nodes, image nodes, select nodes, text input nodes, submit button nodes, and nested component instances. To retrieve dynamic content set by component properties, use the get component properties endpoint.
If you do not provide a Locale ID in your request, the response will return any content that can be localized from the Primary locale.
Required scope |
components:read
-
-
-
await client.components.getContent("580e63e98c9a982ac9b8b741", "8505ba55-ef72-629e-f85c-33e4b703d48b", { localeId: "65427cf400e02b306eaa04a0", branchId: "68026fa68ef6dc744c75b833", limit: 1, offset: 1, });
-
-
-
siteId:
string— Unique identifier for a Site
-
componentId:
string— Unique identifier for a Component
-
request:
Webflow.ComponentsGetContentRequest
-
requestOptions:
Components.RequestOptions
-
-
client.components.updateContent(siteId, componentId, { ...params }) -> Webflow.ComponentsUpdateContentResponse
-
-
-
This endpoint updates content within a component defintion for secondary locales. It supports updating up to 1000 nodes in a single request.
Before making updates:
- Use the get component content endpoint to identify available content nodes and their types.
- If your component definition has a component instance nested within it, retrieve the nested component instance's properties that you'll override using the get component properties endpoint.
- DOM elements may include a
data-w-idattribute. This attribute is used by Webflow to maintain custom attributes and links across locales. Always include the originaldata-w-idvalue in your update requests to ensure consistent behavior across all locales.
Required scope |
components:write
-
-
-
await client.components.updateContent("580e63e98c9a982ac9b8b741", "8505ba55-ef72-629e-f85c-33e4b703d48b", { localeId: "65427cf400e02b306eaa04a0", branchId: "68026fa68ef6dc744c75b833", nodes: [ { nodeId: "a245c12d-995b-55ee-5ec7-aa36a6cad623", text: "<h1>The Hitchhiker's Guide to the Galaxy</h1>", }, { nodeId: "a245c12d-995b-55ee-5ec7-aa36a6cad627", text: "<div><h3>Don't Panic!</h3><p>Always know where your towel is.</p></div>", }, { nodeId: "a245c12d-995b-55ee-5ec7-aa36a6cad635", choices: [ { value: "choice-1", text: "First choice", }, { value: "choice-2", text: "Second choice", }, ], }, { nodeId: "a245c12d-995b-55ee-5ec7-aa36a6cad642", placeholder: "Enter something here...", }, { nodeId: "a245c12d-995b-55ee-5ec7-aa36a6cad671", value: "Submit", waitingText: "Submitting...", }, { nodeId: "a245c12d-995b-55ee-5ec7-aa36a6cad629", propertyOverrides: [ { propertyId: "7dd14c08-2e96-8d3d-2b19-b5c03642a0f0", text: "<div><h1>Time is an <em>illusion</em></h1></div>", }, { propertyId: "7dd14c08-2e96-8d3d-2b19-b5c03642a0f1", text: "Life, the Universe and Everything", }, ], }, ], });
-
-
-
siteId:
string— Unique identifier for a Site
-
componentId:
string— Unique identifier for a Component
-
request:
Webflow.ComponentDomWrite
-
requestOptions:
Components.RequestOptions
-
-
client.components.getProperties(siteId, componentId, { ...params }) -> Webflow.ComponentProperties
-
-
-
Get the default property values of a component definition.
If you do not include a
localeIdin your request, the response will return any properties that can be localized from the Primary locale.Required scope |
components:read
-
-
-
await client.components.getProperties("580e63e98c9a982ac9b8b741", "8505ba55-ef72-629e-f85c-33e4b703d48b", { localeId: "65427cf400e02b306eaa04a0", branchId: "68026fa68ef6dc744c75b833", limit: 1, offset: 1, });
-
-
-
siteId:
string— Unique identifier for a Site
-
componentId:
string— Unique identifier for a Component
-
request:
Webflow.ComponentsGetPropertiesRequest
-
requestOptions:
Components.RequestOptions
-
-
client.components.updateProperties(siteId, componentId, { ...params }) -> Webflow.ComponentsUpdatePropertiesResponse
-
-
-
Update the default property values of a component definition in a specificed locale.
Before making updates:
- Use the get component properties endpoint to identify properties that can be updated in a secondary locale.
- Rich Text properties may include a
data-w-idattribute. This attribute is used by Webflow to maintain links across locales. Always include the originaldata-w-idvalue in your update requests to ensure consistent behavior across all locales.
The request requires a secondary locale ID. If a
localeIdis missing, the request will not be processed and will result in an error.Required scope |
components:write
-
-
-
await client.components.updateProperties("580e63e98c9a982ac9b8b741", "8505ba55-ef72-629e-f85c-33e4b703d48b", { localeId: "65427cf400e02b306eaa04a0", branchId: "68026fa68ef6dc744c75b833", properties: [ { propertyId: "a245c12d-995b-55ee-5ec7-aa36a6cad623", text: "The Hitchhiker\u2019s Guide to the Galaxy", }, { propertyId: "a245c12d-995b-55ee-5ec7-aa36a6cad627", text: "<div><h3>Dont Panic!</h3><p>Always know where your towel is.</p></div>", }, ], });
-
-
-
siteId:
string— Unique identifier for a Site
-
componentId:
string— Unique identifier for a Component
-
request:
Webflow.ComponentPropertiesWrite
-
requestOptions:
Components.RequestOptions
-
-
client.scripts.list(siteId) -> Webflow.RegisteredScriptList
-
-
-
Get a list of scripts that have been registered to a site. A site can have a maximum of 800 registered scripts.
To apply a script to a site or page, the script must first be registered to a site via the [Register Script](/data/reference/custom-code/custom-code/register-hosted) endpoints. Once registered, the script can be applied to a Site or Page using the appropriate endpoints. See the documentation on [working with Custom Code](/data/docs/custom-code) for more information.Required scope |
custom_code:read
-
-
-
await client.scripts.list("580e63e98c9a982ac9b8b741");
-
-
-
siteId:
string— Unique identifier for a Site
-
requestOptions:
Scripts.RequestOptions
-
-
client.scripts.registerHosted(siteId, { ...params }) -> Webflow.CustomCodeHostedResponse
-
-
-
Register a hosted script to a site.
To apply a script to a site or page, the script must first be registered to a site via the [Register Script](/data/reference/custom-code/custom-code/register-hosted) endpoints. Once registered, the script can be applied to a Site or Page using the appropriate endpoints. See the documentation on [working with Custom Code](/data/docs/custom-code) for more information.Required scope |
custom_code:write
-
-
-
await client.scripts.registerHosted("580e63e98c9a982ac9b8b741", { hostedLocation: "hostedLocation", integrityHash: "integrityHash", version: "version", displayName: "displayName", });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.CustomCodeHostedRequest
-
requestOptions:
Scripts.RequestOptions
-
-
client.scripts.registerInline(siteId, { ...params }) -> Webflow.CustomCodeInlineResponse
-
-
-
Register an inline script to a site. Inline scripts are limited to 2000 characters.
To apply a script to a site or page, the script must first be registered to a site via the [Register Script](/data/reference/custom-code/custom-code/register-hosted) endpoints. Once registered, the script can be applied to a Site or Page using the appropriate endpoints. See the documentation on [working with Custom Code](/data/docs/custom-code) for more information.Required scope |
custom_code:write
-
-
-
await client.scripts.registerInline("580e63e98c9a982ac9b8b741", { sourceCode: "alert('hello world');", version: "0.0.1", displayName: "Alert", });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.CustomCodeInlineRequest
-
requestOptions:
Scripts.RequestOptions
-
-
client.assets.list(siteId, { ...params }) -> Webflow.Assets
-
-
-
List of assets uploaded to a site
Required scope |
assets:read
-
-
-
await client.assets.list("580e63e98c9a982ac9b8b741", { offset: 1, limit: 1, });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.AssetsListRequest
-
requestOptions:
Assets.RequestOptions
-
-
client.assets.create(siteId, { ...params }) -> Webflow.AssetUpload
-
-
-
The first step in uploading an asset to a site.
This endpoint generates a response with the following information:
uploadUrlanduploadDetails.Use these properties in the header of a POST request to Amazson s3 to complete the upload.
To learn more about how to upload assets to Webflow, see our assets guide.
Required scope |
assets:write
-
-
-
await client.assets.create("580e63e98c9a982ac9b8b741", { fileName: "file.png", fileHash: "3c7d87c9575702bc3b1e991f4d3c638e", });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.AssetsCreateRequest
-
requestOptions:
Assets.RequestOptions
-
-
client.assets.get(assetId) -> Webflow.Asset
-
-
-
Get details about an asset
Required scope |
assets:read
-
-
-
await client.assets.get("580e63fc8c9a982ac9b8b745");
-
-
-
assetId:
string— Unique identifier for an Asset on a site
-
requestOptions:
Assets.RequestOptions
-
-
client.assets.delete(assetId) -> void
-
-
-
Delete an Asset
Required Scope:
assets: write
-
-
-
await client.assets.delete("580e63fc8c9a982ac9b8b745");
-
-
-
assetId:
string— Unique identifier for an Asset on a site
-
requestOptions:
Assets.RequestOptions
-
-
client.assets.update(assetId, { ...params }) -> Webflow.Asset
-
-
-
Update details of an Asset.
Required scope |
assets:write
-
-
-
await client.assets.update("580e63fc8c9a982ac9b8b745");
-
-
-
assetId:
string— Unique identifier for an Asset on a site
-
request:
Webflow.AssetsUpdateRequest
-
requestOptions:
Assets.RequestOptions
-
-
client.assets.listFolders(siteId) -> Webflow.AssetFolderList
-
-
-
List Asset Folders within a given site
Required scope |
assets:read
-
-
-
await client.assets.listFolders("580e63e98c9a982ac9b8b741");
-
-
-
siteId:
string— Unique identifier for a Site
-
requestOptions:
Assets.RequestOptions
-
-
client.assets.createFolder(siteId, { ...params }) -> Webflow.AssetFolder
-
-
-
Create an Asset Folder within a given site
Required scope |
assets:write
-
-
-
await client.assets.createFolder("580e63e98c9a982ac9b8b741", { displayName: "my asset folder", });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.AssetsCreateFolderRequest
-
requestOptions:
Assets.RequestOptions
-
-
client.assets.getFolder(assetFolderId) -> Webflow.AssetFolder
-
-
-
Get details about a specific Asset Folder
Required scope |
assets:read
-
-
-
await client.assets.getFolder("6390c49774a71f0e3c1a08ee");
-
-
-
assetFolderId:
string— Unique identifier for an Asset Folder
-
requestOptions:
Assets.RequestOptions
-
-
client.webhooks.list(siteId) -> Webflow.WebhookList
-
-
-
List all App-created Webhooks registered for a given site
Required scope |
sites:read
-
-
-
await client.webhooks.list("580e63e98c9a982ac9b8b741");
-
-
-
siteId:
string— Unique identifier for a Site
-
requestOptions:
Webhooks.RequestOptions
-
-
client.webhooks.create(siteId, { ...params }) -> Webflow.Webhook
-
-
-
Create a new Webhook.
Limit of 75 registrations per
triggerType, per site.Access to this endpoint requires a bearer token from a Data Client App. Required scope |
sites:write
-
-
-
await client.webhooks.create("580e63e98c9a982ac9b8b741", { id: "582266e0cd48de0f0e3c6d8b", triggerType: "form_submission", url: "https://webhook.site/7f7f7f7f-7f7f-7f7f-7f7f-7f7f7f7f7f7f", workspaceId: "4f4e46fd476ea8c507000001", siteId: "562ac0395358780a1f5e6fbd", lastTriggered: new Date("2023-02-08T23:59:28.000Z"), createdOn: new Date("2022-11-08T23:59:28.000Z"), });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.Webhook
-
requestOptions:
Webhooks.RequestOptions
-
-
client.webhooks.get(webhookId) -> Webflow.Webhook
-
-
-
Get a specific Webhook instance
Required scope:
sites:read
-
-
-
await client.webhooks.get("580e64008c9a982ac9b8b754");
-
-
-
webhookId:
string— Unique identifier for a Webhook
-
requestOptions:
Webhooks.RequestOptions
-
-
client.webhooks.delete(webhookId) -> void
-
-
-
Remove a Webhook
Required scope:
sites:read
-
-
-
await client.webhooks.delete("580e64008c9a982ac9b8b754");
-
-
-
webhookId:
string— Unique identifier for a Webhook
-
requestOptions:
Webhooks.RequestOptions
-
-
client.forms.list(siteId, { ...params }) -> Webflow.FormList
-
-
-
List forms for a given site.
Required scope |
forms:read
-
-
-
await client.forms.list("580e63e98c9a982ac9b8b741", { limit: 1, offset: 1, });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.FormsListRequest
-
requestOptions:
Forms.RequestOptions
-
-
client.forms.get(formId) -> Webflow.Form
-
-
-
Get information about a given form.
Required scope |
forms:read
-
-
-
await client.forms.get("580e63e98c9a982ac9b8b741");
-
-
-
formId:
string— Unique identifier for a Form
-
requestOptions:
Forms.RequestOptions
-
-
client.forms.listSubmissions(formId, { ...params }) -> Webflow.FormSubmissionList
-
-
-
List form submissions for a given form
When a form is used in a component definition, each instance of the form is considered a unique form.To get a combined list of submissions for a form that appears across multiple component instances, use the List Form Submissions by Site endpoint.
Required scope |
forms:read
-
-
-
await client.forms.listSubmissions("580e63e98c9a982ac9b8b741", { offset: 1, limit: 1, });
-
-
-
formId:
string— Unique identifier for a Form
-
request:
Webflow.FormsListSubmissionsRequest
-
requestOptions:
Forms.RequestOptions
-
-
client.forms.getSubmission(formSubmissionId) -> Webflow.FormSubmission
-
-
-
Get information about a given form submissio.
Required scope |
forms:read
-
-
-
await client.forms.getSubmission("580e63e98c9a982ac9b8b741");
-
-
-
formSubmissionId:
string— Unique identifier for a Form Submission
-
requestOptions:
Forms.RequestOptions
-
-
client.forms.deleteSubmission(formSubmissionId) -> void
-
-
-
Delete a form submission
Required scope |
forms:write
-
-
-
await client.forms.deleteSubmission("580e63e98c9a982ac9b8b741");
-
-
-
formSubmissionId:
string— Unique identifier for a Form Submission
-
requestOptions:
Forms.RequestOptions
-
-
client.forms.updateSubmission(formSubmissionId, { ...params }) -> Webflow.FormSubmission
-
-
-
Update hidden fields on a form submission
Required scope |
forms:write
-
-
-
await client.forms.updateSubmission("580e63e98c9a982ac9b8b741");
-
-
-
formSubmissionId:
string— Unique identifier for a Form Submission
-
request:
Webflow.FormsUpdateSubmissionRequest
-
requestOptions:
Forms.RequestOptions
-
-
client.users.list(siteId, { ...params }) -> Webflow.UserList
-
-
-
As of January 29, 2026, User Accounts functionality has been disabled on all Webflow sites. This endpoint is no longer available.
Get a list of users for a site
Required scope |
users:read
-
-
-
await client.users.list("580e63e98c9a982ac9b8b741", { offset: 1, limit: 1, sort: "CreatedOn", });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.UsersListRequest
-
requestOptions:
Users.RequestOptions
-
-
client.users.get(siteId, userId) -> Webflow.User
-
-
-
As of January 29, 2026, User Accounts functionality has been disabled on all Webflow sites. This endpoint is no longer available.
Get a User by ID
Required scope |
users:read
-
-
-
await client.users.get("580e63e98c9a982ac9b8b741", "580e63e98c9a982ac9b8b741");
-
-
-
siteId:
string— Unique identifier for a Site
-
userId:
string— Unique identifier for a User
-
requestOptions:
Users.RequestOptions
-
-
client.users.delete(siteId, userId) -> void
-
-
-
As of January 29, 2026, User Accounts functionality has been disabled on all Webflow sites. This endpoint is no longer available.
Delete a User by ID
Required scope |
users:write
-
-
-
await client.users.delete("580e63e98c9a982ac9b8b741", "580e63e98c9a982ac9b8b741");
-
-
-
siteId:
string— Unique identifier for a Site
-
userId:
string— Unique identifier for a User
-
requestOptions:
Users.RequestOptions
-
-
client.users.update(siteId, userId, { ...params }) -> Webflow.User
-
-
-
As of January 29, 2026, User Accounts functionality has been disabled on all Webflow sites. This endpoint is no longer available.
Update a User by ID
Required scope |
users:writeThe
emailandpasswordfields cannot be updated using this endpoint
-
-
-
await client.users.update("580e63e98c9a982ac9b8b741", "580e63e98c9a982ac9b8b741", { id: "6287ec36a841b25637c663df", isEmailVerified: true, lastUpdated: new Date("2022-05-20T13:46:12.000Z"), invitedOn: new Date("2022-05-20T13:46:12.000Z"), createdOn: new Date("2022-05-20T13:46:12.000Z"), lastLogin: new Date("2022-05-20T13:46:12.000Z"), status: "verified", accessGroups: [ { slug: "webflowers", type: "admin", }, ], });
-
-
-
siteId:
string— Unique identifier for a Site
-
userId:
string— Unique identifier for a User
-
request:
Webflow.User
-
requestOptions:
Users.RequestOptions
-
-
client.users.invite(siteId, { ...params }) -> Webflow.User
-
-
-
As of January 29, 2026, User Accounts functionality has been disabled on all Webflow sites. This endpoint is no longer available.
Create and invite a user with an email address.
The user will be sent and invite via email, which they will need to accept in order to join paid any paid access group.
Required scope |
users:write
-
-
-
await client.users.invite("580e63e98c9a982ac9b8b741", { email: "some.one@home.com", accessGroups: ["accessGroups"], });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.UsersInviteRequest
-
requestOptions:
Users.RequestOptions
-
-
client.accessGroups.list(siteId, { ...params }) -> Webflow.AccessGroupList
-
-
-
As of January 29, 2026, User Accounts functionality has been disabled on all Webflow sites. This endpoint is no longer available.
Get a list of access groups for a site
Required scope |
users:read
-
-
-
await client.accessGroups.list("580e63e98c9a982ac9b8b741", { offset: 1, limit: 1, sort: "CreatedOn", });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.AccessGroupsListRequest
-
requestOptions:
AccessGroups.RequestOptions
-
-
client.products.list(siteId, { ...params }) -> Webflow.ProductAndSkUsList
-
-
-
Retrieve all products for a site.
Use
limitandoffsetto page through all products with subsequent requests. All SKUs for each product will also be fetched and returned. Thelimit,offsetandtotalvalues represent Products only and do not include any SKUs.Required scope |
ecommerce:read
-
-
-
await client.products.list("580e63e98c9a982ac9b8b741", { offset: 1, limit: 1, });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.ProductsListRequest
-
requestOptions:
Products.RequestOptions
-
-
client.products.create(siteId, { ...params }) -> Webflow.ProductAndSkUs
-
-
-
Create a new ecommerce product and defaultSKU. A product, at minimum, must have a single SKU.
To create a product with multiple SKUs:
- First, create a list of
sku-properties, also known as product options. For example, a T-shirt product may have a "color"sku-property, with a list of enum values: red, yellow, and blue, anothersku-propertymay be "size", with a list of enum values: small, medium, and large. - Once, a product is created with a list of
sku-properties, Webflow will create a default SKU, which is always a combination of the firstenumvalues of eachsku-property. (e.g. Small - Red - T-Shirt) - After creation, you can create additional SKUs for the product, using the Create SKUs endpoint.
Upon creation, the default product type will be
Advanced, which ensures all Product and SKU fields will be shown to users in the Designer.Required scope |
ecommerce:write - First, create a list of
-
-
-
await client.products.create("580e63e98c9a982ac9b8b741", { publishStatus: "staging", product: { fieldData: { name: "Colorful T-shirt", slug: "colorful-t-shirt", description: "Our best-selling t-shirt available in multiple colors and sizes", skuProperties: [ { id: "color", name: "Color", enum: [ { id: "red", name: "Red", slug: "red", }, { id: "yellow", name: "Yellow", slug: "yellow", }, { id: "blue", name: "Blue", slug: "blue", }, ], }, { id: "size", name: "Size", enum: [ { id: "small", name: "Small", slug: "small", }, { id: "medium", name: "Medium", slug: "medium", }, { id: "large", name: "Large", slug: "large", }, ], }, ], }, }, sku: { fieldData: { name: "Colorful T-shirt - Red Small", slug: "colorful-t-shirt-red-small", price: { value: 2499, unit: "USD", currency: "USD", }, mainImage: "https://rocketamp-sample-store.myshopify.com/cdn/shop/products/Gildan_2000_Antique_Cherry_Red_Front_1024x1024.jpg?v=1527232987", }, }, });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.ProductSkuCreate
-
requestOptions:
Products.RequestOptions
-
-
client.products.get(siteId, productId) -> Webflow.ProductAndSkUs
-
-
-
Retrieve a single product by its ID. All of its SKUs will also be retrieved.
Required scope |
ecommerce:read
-
-
-
await client.products.get("580e63e98c9a982ac9b8b741", "580e63fc8c9a982ac9b8b745");
-
-
-
siteId:
string— Unique identifier for a Site
-
productId:
string— Unique identifier for a Product
-
requestOptions:
Products.RequestOptions
-
-
client.products.update(siteId, productId, { ...params }) -> Webflow.Product
-
-
-
Update an existing Product.
Updating an existing Product will set the product type to
Advanced, which ensures all Product and SKU fields will be shown to users in the Designer.Required scope |
ecommerce:write
-
-
-
await client.products.update("580e63e98c9a982ac9b8b741", "580e63fc8c9a982ac9b8b745");
-
-
-
siteId:
string— Unique identifier for a Site
-
productId:
string— Unique identifier for a Product
-
request:
Webflow.ProductSkuUpdate
-
requestOptions:
Products.RequestOptions
-
-
client.products.createSku(siteId, productId, { ...params }) -> Webflow.ProductsCreateSkuResponse
-
-
-
Create additional SKUs to manage every option and variant of your Product.
Creating SKUs through the API will set the product type to
Advanced, which ensures all Product and SKU fields will be shown to users in the Designer.Required scope |
ecommerce:write
-
-
-
await client.products.createSku("580e63e98c9a982ac9b8b741", "580e63fc8c9a982ac9b8b745", { skus: [ { id: "66072fb71b89448912e2681c", cmsLocaleId: "653ad57de882f528b32e810e", lastPublished: new Date("2023-03-17T18:47:35.000Z"), lastUpdated: new Date("2023-03-17T18:47:35.000Z"), createdOn: new Date("2023-03-17T18:47:35.000Z"), fieldData: { name: "Colorful T-shirt - Default", slug: "colorful-t-shirt-default", price: { value: 2499, unit: "USD", currency: "USD", }, }, }, ], });
-
-
-
siteId:
string— Unique identifier for a Site
-
productId:
string— Unique identifier for a Product
-
request:
Webflow.ProductsCreateSkuRequest
-
requestOptions:
Products.RequestOptions
-
-
client.products.updateSku(siteId, productId, skuId, { ...params }) -> Webflow.Sku
-
-
-
Update a specified SKU.
Updating an existing SKU will set the Product type to
Advanced, which ensures all Product and SKU fields will be shown to users in the Designer.Required scope |
ecommerce:write
-
-
-
await client.products.updateSku("580e63e98c9a982ac9b8b741", "580e63fc8c9a982ac9b8b745", "5e8518516e147040726cc415", { sku: { id: "66072fb71b89448912e2681c", cmsLocaleId: "653ad57de882f528b32e810e", lastPublished: new Date("2023-03-17T18:47:35.000Z"), lastUpdated: new Date("2023-03-17T18:47:35.000Z"), createdOn: new Date("2023-03-17T18:47:35.000Z"), fieldData: { name: "Colorful T-shirt - Default", slug: "colorful-t-shirt-default", price: { value: 2499, unit: "USD", currency: "USD", }, }, }, });
-
-
-
siteId:
string— Unique identifier for a Site
-
productId:
string— Unique identifier for a Product
-
skuId:
string— Unique identifier for a SKU
-
request:
Webflow.ProductsUpdateSkuRequest
-
requestOptions:
Products.RequestOptions
-
-
client.orders.list(siteId, { ...params }) -> Webflow.OrderList
-
-
-
List all orders created for a given site.
Required scope |
ecommerce:read
-
-
-
await client.orders.list("580e63e98c9a982ac9b8b741", { status: "pending", offset: 1, limit: 1, });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.OrdersListRequest
-
requestOptions:
Orders.RequestOptions
-
-
client.orders.get(siteId, orderId) -> Webflow.Order
-
-
-
Retrieve a single product by its ID. All of its SKUs will also be retrieved.
Required scope |
ecommerce:read
-
-
-
await client.orders.get("580e63e98c9a982ac9b8b741", "5e8518516e147040726cc415");
-
-
-
siteId:
string— Unique identifier for a Site
-
orderId:
string— Unique identifier for an Order
-
requestOptions:
Orders.RequestOptions
-
-
client.orders.update(siteId, orderId, { ...params }) -> Webflow.Order
-
-
-
This API lets you update the fields,
comment,shippingProvider, and/orshippingTrackingfor a given order. All three fields can be updated simultaneously or independently.Required scope |
ecommerce:write
-
-
-
await client.orders.update("580e63e98c9a982ac9b8b741", "5e8518516e147040726cc415");
-
-
-
siteId:
string— Unique identifier for a Site
-
orderId:
string— Unique identifier for an Order
-
request:
Webflow.OrdersUpdateRequest
-
requestOptions:
Orders.RequestOptions
-
-
client.orders.updateFulfill(siteId, orderId, { ...params }) -> Webflow.Order
-
-
-
Updates an order's status to fulfilled
Required scope |
ecommerce:write
-
-
-
await client.orders.updateFulfill("580e63e98c9a982ac9b8b741", "5e8518516e147040726cc415");
-
-
-
siteId:
string— Unique identifier for a Site
-
orderId:
string— Unique identifier for an Order
-
request:
Webflow.OrdersUpdateFulfillRequest
-
requestOptions:
Orders.RequestOptions
-
-
client.orders.updateUnfulfill(siteId, orderId) -> Webflow.Order
-
-
-
Updates an order's status to unfulfilled
Required scope |
ecommerce:write
-
-
-
await client.orders.updateUnfulfill("580e63e98c9a982ac9b8b741", "5e8518516e147040726cc415");
-
-
-
siteId:
string— Unique identifier for a Site
-
orderId:
string— Unique identifier for an Order
-
requestOptions:
Orders.RequestOptions
-
-
client.orders.refund(siteId, orderId, { ...params }) -> Webflow.Order
-
-
-
This API will reverse a Stripe charge and refund an order back to a customer. It will also set the order's status to
refunded.Required scope |
ecommerce:write
-
-
-
await client.orders.refund("580e63e98c9a982ac9b8b741", "5e8518516e147040726cc415");
-
-
-
siteId:
string— Unique identifier for a Site
-
orderId:
string— Unique identifier for an Order
-
request:
Webflow.OrdersRefundRequest
-
requestOptions:
Orders.RequestOptions
-
-
client.inventory.list(skuCollectionId, skuId) -> Webflow.InventoryItem
-
-
-
List the current inventory levels for a particular SKU item.
Required scope |
ecommerce:read
-
-
-
await client.inventory.list("6377a7c4b7a79608c34a46f7", "5e8518516e147040726cc415");
-
-
-
skuCollectionId:
string— Unique identifier for a SKU collection. Use the List Collections API to find this ID.
-
skuId:
string— Unique identifier for a SKU
-
requestOptions:
Inventory.RequestOptions
-
-
client.inventory.update(skuCollectionId, skuId, { ...params }) -> Webflow.InventoryItem
-
-
-
Updates the current inventory levels for a particular SKU item.
Updates may be given in one or two methods, absolutely or incrementally.
- Absolute updates are done by setting
quantitydirectly. - Incremental updates are by specifying the inventory delta in
updateQuantitywhich is then added to thequantitystored on the server.
Required scope |
ecommerce:write - Absolute updates are done by setting
-
-
-
await client.inventory.update("6377a7c4b7a79608c34a46f7", "5e8518516e147040726cc415", { inventoryType: "infinite", });
-
-
-
skuCollectionId:
string— Unique identifier for a SKU collection. Use the List Collections API to find this ID.
-
skuId:
string— Unique identifier for a SKU
-
request:
Webflow.InventoryUpdateRequest
-
requestOptions:
Inventory.RequestOptions
-
-
client.ecommerce.getSettings(siteId) -> Webflow.EcommerceSettings
-
-
-
Retrieve ecommerce settings for a site.
Required scope |
ecommerce:read
-
-
-
await client.ecommerce.getSettings("580e63e98c9a982ac9b8b741");
-
-
-
siteId:
string— Unique identifier for a Site
-
requestOptions:
Ecommerce.RequestOptions
-
-
client.collections.fields.create(collectionId, { ...params }) -> Webflow.FieldCreate
-
-
-
Create a custom field in a collection.
Field validation is currently not available through the API.
Bulk creation of fields is not supported with this endpoint. To add multiple fields at once, include them when you create the collection.
Required scope |
cms:write
-
-
-
await client.collections.fields.create("580e63fc8c9a982ac9b8b745", { id: "562ac0395358780a1f5e6fbc", isEditable: true, isRequired: false, type: "RichText", displayName: "Post Body", helpText: "Add the body of your post here", });
-
-
-
collectionId:
string— Unique identifier for a Collection
-
request:
Webflow.FieldCreate
-
requestOptions:
Fields.RequestOptions
-
-
client.collections.fields.delete(collectionId, fieldId) -> void
-
-
-
Delete a custom field in a collection. This endpoint does not currently support bulk deletion.
Required scope |
cms:write
-
-
-
await client.collections.fields.delete("580e63fc8c9a982ac9b8b745", "580e63fc8c9a982ac9b8b745");
-
-
-
collectionId:
string— Unique identifier for a Collection
-
fieldId:
string— Unique identifier for a Field in a collection
-
requestOptions:
Fields.RequestOptions
-
-
client.collections.fields.update(collectionId, fieldId, { ...params }) -> Webflow.Field
-
-
-
Update a custom field in a collection.
Required scope |
cms:write
-
-
-
await client.collections.fields.update("580e63fc8c9a982ac9b8b745", "580e63fc8c9a982ac9b8b745", { isRequired: false, displayName: "Post Body", helpText: "Add the body of your post here", });
-
-
-
collectionId:
string— Unique identifier for a Collection
-
fieldId:
string— Unique identifier for a Field in a collection
-
request:
Webflow.collections.FieldUpdate
-
requestOptions:
Fields.RequestOptions
-
-
client.collections.items.listItems(collectionId, { ...params }) -> Webflow.CollectionItemList
-
-
-
List of all Items within a Collection.
Required scope |
CMS:read
-
-
-
await client.collections.items.listItems("580e63fc8c9a982ac9b8b745", { cmsLocaleId: "cmsLocaleId", offset: 1, limit: 1, name: "name", slug: "slug", sortBy: "lastPublished", sortOrder: "asc", });
-
-
-
collectionId:
string— Unique identifier for a Collection
-
request:
Webflow.collections.ItemsListItemsRequest
-
requestOptions:
Items.RequestOptions
-
-
client.collections.items.createItem(collectionId, { ...params }) -> Webflow.CollectionItem
-
-
-
Create Item(s) in a Collection.
To create items across multiple locales, please use this endpoint.
Required scope |
CMS:write
-
-
-
await client.collections.items.createItem("580e63fc8c9a982ac9b8b745", { skipInvalidFiles: true, body: { isArchived: false, isDraft: false, fieldData: { name: "The Hitchhiker's Guide to the Galaxy", slug: "hitchhikers-guide-to-the-galaxy", }, }, });
-
-
-
collectionId:
string— Unique identifier for a Collection
-
request:
Webflow.collections.ItemsCreateItemRequest
-
requestOptions:
Items.RequestOptions
-
-
client.collections.items.deleteItems(collectionId, { ...params }) -> void
-
-
-
Delete Items from a Collection.
Items will only be deleted in the primary locale unless a
cmsLocaleIdis included in the request.Required scope |
CMS:write
-
-
-
await client.collections.items.deleteItems("580e63fc8c9a982ac9b8b745", { items: [ { id: "580e64008c9a982ac9b8b754", }, ], });
-
-
-
collectionId:
string— Unique identifier for a Collection
-
request:
Webflow.collections.ItemsDeleteItemsRequest
-
requestOptions:
Items.RequestOptions
-
-
client.collections.items.updateItems(collectionId, { ...params }) -> Webflow.ItemsUpdateItemsResponse
-
-
-
Update a single item or multiple items in a Collection.
The limit for this endpoint is 100 items.
Items will only be updated in the primary locale, unless a
cmsLocaleIdis included in the request.Required scope |
CMS:write
-
-
-
await client.collections.items.updateItems("580e63fc8c9a982ac9b8b745", { skipInvalidFiles: true, items: [ { id: "66f6ed9576ddacf3149d5ea6", cmsLocaleId: "66f6e966c9e1dc700a857ca5", fieldData: { name: "Ne Paniquez Pas", slug: "ne-paniquez-pas", }, }, { id: "66f6ed9576ddacf3149d5ea6", cmsLocaleId: "66f6e966c9e1dc700a857ca4", fieldData: { name: "No Entrar en P\u00E1nico", slug: "no-entrar-en-panico", }, }, { id: "66f6ed9576ddacf3149d5eaa", cmsLocaleId: "66f6e966c9e1dc700a857ca5", fieldData: { name: "Au Revoir et Merci pour Tous les Poissons", slug: "au-revoir-et-merci", }, }, { id: "66f6ed9576ddacf3149d5eaa", cmsLocaleId: "66f6e966c9e1dc700a857ca4", fieldData: { name: "Hasta Luego y Gracias por Todo el Pescado", slug: "hasta-luego-y-gracias", }, }, ], });
-
-
-
collectionId:
string— Unique identifier for a Collection
-
request:
Webflow.collections.ItemsUpdateItemsRequest
-
requestOptions:
Items.RequestOptions
-
-
client.collections.items.listItemsLive(collectionId, { ...params }) -> Webflow.CollectionItemList
-
-
-
List all published items in a collection.
Serving data to applications in real-time? Use the Content Delivery API at `api-cdn.webflow.com` for better performance. The CDN-backed endpoint is optimized for high-volume reads, while the Data API is designed for writes and management operations.Required scope |
CMS:read
-
-
-
await client.collections.items.listItemsLive("580e63fc8c9a982ac9b8b745", { cmsLocaleId: "cmsLocaleId", offset: 1, limit: 1, name: "name", slug: "slug", sortBy: "lastPublished", sortOrder: "asc", });
-
-
-
collectionId:
string— Unique identifier for a Collection
-
request:
Webflow.collections.ItemsListItemsLiveRequest
-
requestOptions:
Items.RequestOptions
-
-
client.collections.items.createItemLive(collectionId, { ...params }) -> Webflow.CollectionItem
-
-
-
Create item(s) in a collection that will be immediately published to the live site.
To create items across multiple locales, please use this endpoint.
Required scope |
CMS:write
-
-
-
await client.collections.items.createItemLive("580e63fc8c9a982ac9b8b745", { skipInvalidFiles: true, body: { isArchived: false, isDraft: false, fieldData: { name: "The Hitchhiker's Guide to the Galaxy", slug: "hitchhikers-guide-to-the-galaxy", }, }, });
-
-
-
collectionId:
string— Unique identifier for a Collection
-
request:
Webflow.collections.ItemsCreateItemLiveRequest
-
requestOptions:
Items.RequestOptions
-
-
client.collections.items.deleteItemsLive(collectionId, { ...params }) -> void
-
-
-
Unpublish up to 100 items from the live site and set the
isDraftproperty totrue.Items will only be unpublished in the primary locale unless a
cmsLocaleIdis included in the request.Required scope |
CMS:write
-
-
-
await client.collections.items.deleteItemsLive("580e63fc8c9a982ac9b8b745", { items: [ { id: "580e64008c9a982ac9b8b754", }, ], });
-
-
-
collectionId:
string— Unique identifier for a Collection
-
request:
Webflow.collections.ItemsDeleteItemsLiveRequest
-
requestOptions:
Items.RequestOptions
-
-
client.collections.items.updateItemsLive(collectionId, { ...params }) -> Webflow.CollectionItemListNoPagination
-
-
-
Update a single published item or multiple published items (up to 100) in a Collection
Items will only be updated in the primary locale, unless a
cmsLocaleIdis included in the request.Required scope |
CMS:write
-
-
-
await client.collections.items.updateItemsLive("580e63fc8c9a982ac9b8b745", { skipInvalidFiles: true, items: [ { id: "66f6ed9576ddacf3149d5ea6", cmsLocaleId: "66f6e966c9e1dc700a857ca5", fieldData: { name: "Ne Paniquez Pas", slug: "ne-paniquez-pas", }, }, { id: "66f6ed9576ddacf3149d5ea6", cmsLocaleId: "66f6e966c9e1dc700a857ca4", fieldData: { name: "No Entrar en P\u00E1nico", slug: "no-entrar-en-panico", }, }, { id: "66f6ed9576ddacf3149d5eaa", cmsLocaleId: "66f6e966c9e1dc700a857ca5", fieldData: { name: "Au Revoir et Merci pour Tous les Poissons", slug: "au-revoir-et-merci", }, }, { id: "66f6ed9576ddacf3149d5eaa", cmsLocaleId: "66f6e966c9e1dc700a857ca4", fieldData: { name: "Hasta Luego y Gracias por Todo el Pescado", slug: "hasta-luego-y-gracias", }, }, ], });
-
-
-
collectionId:
string— Unique identifier for a Collection
-
request:
Webflow.collections.ItemsUpdateItemsLiveRequest
-
requestOptions:
Items.RequestOptions
-
-
client.collections.items.createItems(collectionId, { ...params }) -> Webflow.BulkCollectionItem
-
-
-
Create an item or multiple items in a CMS Collection across multiple corresponding locales.
- This endpoint can create up to 100 items in a request. - If the `cmsLocaleIds` parameter is not included in the request, an item will only be created in the primary locale.Required scope |
CMS:write
-
-
-
await client.collections.items.createItems("580e63fc8c9a982ac9b8b745", { skipInvalidFiles: true, cmsLocaleIds: ["66f6e966c9e1dc700a857ca3", "66f6e966c9e1dc700a857ca4", "66f6e966c9e1dc700a857ca5"], isArchived: false, isDraft: false, fieldData: { name: "Don\u2019t Panic", slug: "dont-panic", }, });
-
-
-
collectionId:
string— Unique identifier for a Collection
-
request:
Webflow.collections.CreateBulkCollectionItemRequestBody
-
requestOptions:
Items.RequestOptions
-
-
client.collections.items.getItem(collectionId, itemId, { ...params }) -> Webflow.CollectionItem
-
-
-
Get details of a selected Collection Item.
Required scope |
CMS:read
-
-
-
await client.collections.items.getItem("580e63fc8c9a982ac9b8b745", "580e64008c9a982ac9b8b754", { cmsLocaleId: "cmsLocaleId", });
-
-
-
collectionId:
string— Unique identifier for a Collection
-
itemId:
string— Unique identifier for an Item
-
request:
Webflow.collections.ItemsGetItemRequest
-
requestOptions:
Items.RequestOptions
-
-
client.collections.items.deleteItem(collectionId, itemId, { ...params }) -> void
-
-
-
Delete an item from a collection.
Required scope |
CMS:write
-
-
-
await client.collections.items.deleteItem("580e63fc8c9a982ac9b8b745", "580e64008c9a982ac9b8b754", { cmsLocaleId: "cmsLocaleId", });
-
-
-
collectionId:
string— Unique identifier for a Collection
-
itemId:
string— Unique identifier for an Item
-
request:
Webflow.collections.ItemsDeleteItemRequest
-
requestOptions:
Items.RequestOptions
-
-
client.collections.items.updateItem(collectionId, itemId, { ...params }) -> Webflow.CollectionItem
-
-
-
Update a selected Item in a Collection.
Required scope |
CMS:write
-
-
-
await client.collections.items.updateItem("580e63fc8c9a982ac9b8b745", "580e64008c9a982ac9b8b754", { skipInvalidFiles: true, body: { isArchived: false, isDraft: false, fieldData: { name: "The Hitchhiker's Guide to the Galaxy", slug: "hitchhikers-guide-to-the-galaxy", }, }, });
-
-
-
collectionId:
string— Unique identifier for a Collection
-
itemId:
string— Unique identifier for an Item
-
request:
Webflow.collections.ItemsUpdateItemRequest
-
requestOptions:
Items.RequestOptions
-
-
client.collections.items.getItemLive(collectionId, itemId, { ...params }) -> Webflow.CollectionItem
-
-
-
Get details of a selected Collection live Item.
Serving data to applications in real-time? Use the Content Delivery API at `api-cdn.webflow.com` for better performance. The CDN-backed endpoint is optimized for high-volume reads, while the Data API is designed for writes and management operations.Required scope |
CMS:read
-
-
-
await client.collections.items.getItemLive("580e63fc8c9a982ac9b8b745", "580e64008c9a982ac9b8b754", { cmsLocaleId: "cmsLocaleId", });
-
-
-
collectionId:
string— Unique identifier for a Collection
-
itemId:
string— Unique identifier for an Item
-
request:
Webflow.collections.ItemsGetItemLiveRequest
-
requestOptions:
Items.RequestOptions
-
-
client.collections.items.deleteItemLive(collectionId, itemId, { ...params }) -> void
-
-
-
Unpublish a live item from the site and set the
isDraftproperty totrue.For bulk unpublishing, please use this endpoint.
Required scope |
CMS:write
-
-
-
await client.collections.items.deleteItemLive("580e63fc8c9a982ac9b8b745", "580e64008c9a982ac9b8b754", { cmsLocaleId: "cmsLocaleId", });
-
-
-
collectionId:
string— Unique identifier for a Collection
-
itemId:
string— Unique identifier for an Item
-
request:
Webflow.collections.ItemsDeleteItemLiveRequest
-
requestOptions:
Items.RequestOptions
-
-
client.collections.items.updateItemLive(collectionId, itemId, { ...params }) -> Webflow.CollectionItem
-
-
-
Update a selected live Item in a Collection. The updates for this Item will be published to the live site.
Required scope |
CMS:write
-
-
-
await client.collections.items.updateItemLive("580e63fc8c9a982ac9b8b745", "580e64008c9a982ac9b8b754", { skipInvalidFiles: true, body: { isArchived: false, isDraft: false, fieldData: { name: "The Hitchhiker's Guide to the Galaxy", slug: "hitchhikers-guide-to-the-galaxy", }, }, });
-
-
-
collectionId:
string— Unique identifier for a Collection
-
itemId:
string— Unique identifier for an Item
-
request:
Webflow.collections.ItemsUpdateItemLiveRequest
-
requestOptions:
Items.RequestOptions
-
-
client.collections.items.publishItem(collectionId, { ...params }) -> Webflow.ItemsPublishItemResponse
-
-
-
Publish an item or multiple items.
Required scope |
cms:write
-
-
-
await client.collections.items.publishItem("580e63fc8c9a982ac9b8b745", { itemIds: ["643fd856d66b6528195ee2ca", "643fd856d66b6528195ee2cb", "643fd856d66b6528195ee2cc"], });
-
-
-
collectionId:
string— Unique identifier for a Collection
-
request:
Webflow.ItemsPublishItemRequest
-
requestOptions:
Items.RequestOptions
-
-
client.pages.scripts.getCustomCode(pageId) -> Webflow.ScriptApplyList
-
-
-
Get all scripts applied to a page.
Required scope |
custom_code:read
-
-
-
await client.pages.scripts.getCustomCode("63c720f9347c2139b248e552");
-
-
-
pageId:
string— Unique identifier for a Page
-
requestOptions:
Scripts.RequestOptions
-
-
client.pages.scripts.upsertCustomCode(pageId, { ...params }) -> Webflow.ScriptApplyList
-
-
-
Apply registered scripts to a page. If you have multiple scripts your App needs to apply or maintain on a page, ensure they are always included in the request body for this endpoint. To remove individual scripts, simply call this endpoint without the script in the request body.
To apply a script to a page, the script must first be registered to a Site via the [Register Script](/data/reference/custom-code/custom-code/register-hosted) endpoints. Once registered, the script can be applied to a Site or Page using the appropriate endpoints. See the documentation on [working with Custom Code](/data/docs/custom-code) for more information.Required scope |
custom_code:write
-
-
-
await client.pages.scripts.upsertCustomCode("63c720f9347c2139b248e552", { scripts: [ { id: "cms_slider", location: "header", version: "1.0.0", attributes: { "my-attribute": "some-value", }, }, { id: "alert", location: "header", version: "0.0.1", }, ], });
-
-
-
pageId:
string— Unique identifier for a Page
-
request:
Webflow.ScriptApplyList
-
requestOptions:
Scripts.RequestOptions
-
-
client.pages.scripts.deleteCustomCode(pageId) -> void
-
-
-
Remove all scripts from a page applied by the App. This endpoint will not remove scripts from the site's registered scripts.
To remove individual scripts applied by the App, use the Add/Update Custom Code endpoint.
Access to this endpoint requires a bearer token obtained from an OAuth Code Grant Flow.
Required scope |
custom_code:write
-
-
-
await client.pages.scripts.deleteCustomCode("63c720f9347c2139b248e552");
-
-
-
pageId:
string— Unique identifier for a Page
-
requestOptions:
Scripts.RequestOptions
-
-
client.sites.redirects.list(siteId) -> Webflow.Redirects
-
-
-
Fetch a list of all 301 redirect rules configured for a specific site.
Use this endpoint to review, audit, or manage the redirection rules that control how traffic is rerouted on your site.
This endpoint requires an Enterprise workspace.
Required scope:
sites:read
-
-
-
await client.sites.redirects.list("580e63e98c9a982ac9b8b741");
-
-
-
siteId:
string— Unique identifier for a Site
-
requestOptions:
Redirects.RequestOptions
-
-
client.sites.redirects.create(siteId, { ...params }) -> Webflow.Redirect
-
-
-
Add a new 301 redirection rule to a site.
This endpoint allows you to define a source path (
fromUrl) and its corresponding destination path (toUrl), which will dictate how traffic is rerouted on your site. This is useful for managing site changes, restructuring URLs, or handling outdated links.This endpoint requires an Enterprise workspace.
Required scope:
sites:write
-
-
-
await client.sites.redirects.create("580e63e98c9a982ac9b8b741", { id: "42e1a2b7aa1a13f768a0042a", fromUrl: "/mostly-harmless", toUrl: "/earth", });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.Redirect
-
requestOptions:
Redirects.RequestOptions
-
-
client.sites.redirects.delete(siteId, redirectId) -> Webflow.Redirects
-
-
-
Remove a 301 redirection rule from a site.
This is useful for cleaning up outdated or unnecessary redirects, ensuring that your site's routing behavior remains efficient and up-to-date.
This endpoint requires an Enterprise workspace.
Required scope:
sites:write
-
-
-
await client.sites.redirects.delete("580e63e98c9a982ac9b8b741", "66c4cb9a20cac35ed19500e6");
-
-
-
siteId:
string— Unique identifier for a Site
-
redirectId:
string— Unique identifier site rediect
-
requestOptions:
Redirects.RequestOptions
-
-
client.sites.redirects.update(siteId, redirectId, { ...params }) -> Webflow.Redirect
-
-
-
Update a 301 redirection rule from a site.
This endpoint requires an Enterprise workspace.
Required scope:
sites:write
-
-
-
await client.sites.redirects.update("580e63e98c9a982ac9b8b741", "66c4cb9a20cac35ed19500e6", { id: "42e1a2b7aa1a13f768a0042a", fromUrl: "/mostly-harmless", toUrl: "/earth", });
-
-
-
siteId:
string— Unique identifier for a Site
-
redirectId:
string— Unique identifier site rediect
-
request:
Webflow.Redirect
-
requestOptions:
Redirects.RequestOptions
-
-
client.sites.plans.getSitePlan(siteId) -> Webflow.SitePlan
-
-
-
Get site plan details for the specified Site.
This endpoint requires an Enterprise workspace.
Required scope |
sites:read
-
-
-
await client.sites.plans.getSitePlan("580e63e98c9a982ac9b8b741");
-
-
-
siteId:
string— Unique identifier for a Site
-
requestOptions:
Plans.RequestOptions
-
-
client.sites.robotsTxt.get(siteId) -> Webflow.Robots
-
-
-
Retrieve the robots.txt configuration for various user agents.
This endpoint requires an Enterprise workspace.
Required scope:
site_config:read
-
-
-
await client.sites.robotsTxt.get("580e63e98c9a982ac9b8b741");
-
-
-
siteId:
string— Unique identifier for a Site
-
requestOptions:
RobotsTxt.RequestOptions
-
-
client.sites.robotsTxt.put(siteId, { ...params }) -> Webflow.Robots
-
-
-
Replace the
robots.txtconfiguration for various user agents.This endpoint requires an Enterprise workspace.
Required scope |
site_config:write
-
-
-
await client.sites.robotsTxt.put("580e63e98c9a982ac9b8b741", { rules: [ { userAgent: "googlebot", allows: ["/public"], disallows: ["/vogon-poetry", "/total-perspective-vortex"], }, ], sitemap: "https://heartofgold.ship/sitemap.xml", });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.Robots
-
requestOptions:
RobotsTxt.RequestOptions
-
-
client.sites.robotsTxt.delete(siteId, { ...params }) -> Webflow.Robots
-
-
-
Remove specific rules for a user-agent in your
robots.txtfile. To delete all rules for a user-agent, provide an empty rule set. This will remove the user-agent's entry entirely, leaving it subject to your site's default crawling behavior.Note: Deleting a user-agent with no rules will make the user-agent's access unrestricted unless other directives apply.
This endpoint requires an Enterprise workspace.
Required scope:
site_config:write
-
-
-
await client.sites.robotsTxt.delete("580e63e98c9a982ac9b8b741", { rules: [ { userAgent: "*", allows: ["/public"], disallows: ["/bubbles"], }, ], });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.Robots
-
requestOptions:
RobotsTxt.RequestOptions
-
-
client.sites.robotsTxt.patch(siteId, { ...params }) -> Webflow.Robots
-
-
-
Update the
robots.txtconfiguration for various user agents.This endpoint requires an Enterprise workspace.
Required scope |
site_config:write
-
-
-
await client.sites.robotsTxt.patch("580e63e98c9a982ac9b8b741", { rules: [ { userAgent: "googlebot", allows: ["/public"], disallows: ["/vogon-poetry", "/total-perspective-vortex"], }, ], sitemap: "https://heartofgold.ship/sitemap.xml", });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.Robots
-
requestOptions:
RobotsTxt.RequestOptions
-
-
client.sites.wellKnown.put(siteId, { ...params }) -> void
-
-
-
Upload a supported well-known file to a site.
The current restrictions on well-known files are as follows:
-
Each file must be smaller than 100kb
-
Less than 30 total files
-
Have one of the following file extensions (or no extension):
`.noext` is a special file extension that removes other extensions. For example, `apple-app-site-association.noext.txt` will be uploaded as `apple-app-site-association`. Use this extension for tools that have trouble uploading extensionless files..txt,.json,.noext
This endpoint requires an Enterprise workspace.
Required scope:
site_config:write -
-
-
-
await client.sites.wellKnown.put("580e63e98c9a982ac9b8b741", { fileName: "apple-app-site-association.txt", fileData: '{\n "applinks": {\n "apps": [],\n "details": [\n {\n "appID": "ABCDE12345.com.example.app",\n "paths": [ "/*", "/some/path/*" ]\n }\n ]\n }\n}\n', contentType: "application/json", });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.sites.WellKnownFile
-
requestOptions:
WellKnown.RequestOptions
-
-
client.sites.wellKnown.delete(siteId, { ...params }) -> void
-
-
-
Delete existing well-known files from a site.
This endpoint requires an Enterprise workspace.
Required scope:
site_config:write
-
-
-
await client.sites.wellKnown.delete("580e63e98c9a982ac9b8b741");
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.sites.WellKnownDeleteRequest
-
requestOptions:
WellKnown.RequestOptions
-
-
client.sites.activityLogs.list(siteId, { ...params }) -> Webflow.SiteActivityLogResponse
-
-
-
Retrieve Activity Logs for a specific Site.
This endpoint requires an Enterprise workspace.
Required scope:
site_activity:read
-
-
-
await client.sites.activityLogs.list("580e63e98c9a982ac9b8b741", { limit: 1, offset: 1, });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.sites.ActivityLogsListRequest
-
requestOptions:
ActivityLogs.RequestOptions
-
-
client.sites.comments.listCommentThreads(siteId, { ...params }) -> Webflow.CommentThreadList
-
-
-
List all comment threads for a site.
There may be a delay of up to 5 minutes before new comments appear in the system.Required scope |
comments:read
-
-
-
await client.sites.comments.listCommentThreads("580e63e98c9a982ac9b8b741", { localeId: "65427cf400e02b306eaa04a0", offset: 1, limit: 1, sortBy: "createdOn", sortOrder: "asc", });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.sites.CommentsListCommentThreadsRequest
-
requestOptions:
Comments.RequestOptions
-
-
client.sites.comments.getCommentThread(siteId, commentThreadId, { ...params }) -> Webflow.CommentThread
-
-
-
Get details of a specific comment thread.
There may be a delay of up to 5 minutes before new comments appear in the system.Required scope |
comments:read
-
-
-
await client.sites.comments.getCommentThread("580e63e98c9a982ac9b8b741", "580e63e98c9a982ac9b8b741", { localeId: "65427cf400e02b306eaa04a0", offset: 1, limit: 1, sortBy: "createdOn", sortOrder: "asc", });
-
-
-
siteId:
string— Unique identifier for a Site
-
commentThreadId:
string— Unique identifier for a Comment Thread
-
request:
Webflow.sites.CommentsGetCommentThreadRequest
-
requestOptions:
Comments.RequestOptions
-
-
client.sites.comments.listCommentReplies(siteId, commentThreadId, { ...params }) -> Webflow.CommentReplyList
-
-
-
List all replies to a specific comment thread.
There may be a delay of up to 5 minutes before new comments appear in the system.Required scope |
comments:read
-
-
-
await client.sites.comments.listCommentReplies("580e63e98c9a982ac9b8b741", "580e63e98c9a982ac9b8b741", { localeId: "65427cf400e02b306eaa04a0", offset: 1, limit: 1, sortBy: "createdOn", sortOrder: "asc", });
-
-
-
siteId:
string— Unique identifier for a Site
-
commentThreadId:
string— Unique identifier for a Comment Thread
-
request:
Webflow.sites.CommentsListCommentRepliesRequest
-
requestOptions:
Comments.RequestOptions
-
-
client.sites.scripts.getCustomCode(siteId) -> Webflow.ScriptApplyList
-
-
-
Get all scripts applied to a site by the App.
To apply a script to a site or page, the script must first be registered to a site via the [Register Script](/data/reference/custom-code/custom-code/register-hosted) endpoints. Once registered, the script can be applied to a Site or Page using the appropriate endpoints. See the documentation on [working with Custom Code](/data/docs/custom-code) for more information.Required scope |
custom_code:read
-
-
-
await client.sites.scripts.getCustomCode("580e63e98c9a982ac9b8b741");
-
-
-
siteId:
string— Unique identifier for a Site
-
requestOptions:
Scripts.RequestOptions
-
-
client.sites.scripts.upsertCustomCode(siteId, { ...params }) -> Webflow.ScriptApplyList
-
-
-
Apply registered scripts to a site. If you have multiple scripts your App needs to apply or maintain on a site, ensure they are always included in the request body for this endpoint. To remove individual scripts, simply call this endpoint without the script in the request body.
To apply a script to a site or page, the script must first be registered to a site via the [Register Script](/data/reference/custom-code/custom-code/register-hosted) endpoints. Once registered, the script can be applied to a Site or Page using the appropriate endpoints. See the documentation on [working with Custom Code](/data/docs/custom-code) for more information.Required scope |
custom_code:write
-
-
-
await client.sites.scripts.upsertCustomCode("580e63e98c9a982ac9b8b741", { scripts: [ { id: "cms_slider", location: "header", version: "1.0.0", attributes: { "my-attribute": "some-value", }, }, { id: "alert", location: "header", version: "0.0.1", }, ], });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.ScriptApplyList
-
requestOptions:
Scripts.RequestOptions
-
-
client.sites.scripts.deleteCustomCode(siteId) -> void
-
-
-
Remove all scripts from a site applied by the App. This endpoint will not remove scripts from the site's registered scripts.
To remove individual scripts applied by the App, use the Add/Update Custom Code endpoint.
Access to this endpoint requires a bearer token obtained from an OAuth Code Grant Flow.
Required scope |
custom_code:write
-
-
-
await client.sites.scripts.deleteCustomCode("580e63e98c9a982ac9b8b741");
-
-
-
siteId:
string— Unique identifier for a Site
-
requestOptions:
Scripts.RequestOptions
-
-
client.sites.scripts.listCustomCodeBlocks(siteId, { ...params }) -> Webflow.ListCustomCodeBlocks
-
-
-
Get a list of scripts that have been applied to a site and/or individual pages.
To apply a script to a site or page, the script must first be registered to a site via the [Register Script](/data/reference/custom-code/custom-code/register-hosted) endpoints. Once registered, the script can be applied to a Site or Page using the appropriate endpoints.See the documentation on working with Custom Code for more information.
Required scope |
custom_code:read
-
-
-
await client.sites.scripts.listCustomCodeBlocks("580e63e98c9a982ac9b8b741", { offset: 1, limit: 1, });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.sites.ScriptsListCustomCodeBlocksRequest
-
requestOptions:
Scripts.RequestOptions
-
-
client.sites.forms.listSubmissionsBySite(siteId, { ...params }) -> Webflow.FormSubmissionList
-
-
-
List all form submissions for a given site with the ability to filter submissions by a centralized
elementId.Add
When a form is used in a Webflow component definition, each instance of the component will yield a unique form. Adding the `elementId` in this request ensures this API response includes all submissions from that core form, wherever that form is used in instantiated components.elementIdwhen you want to filter form submissions to a specific form in a site. You can get theelementIdfrom the List forms endpoint (displayed asformElementIdin the response).Use the List Form Submissions endpoint to list form submissions for a given form ID.
Required scope |
forms:read
-
-
-
await client.sites.forms.listSubmissionsBySite("580e63e98c9a982ac9b8b741", { elementId: "18259716-3e5a-646a-5f41-5dc4b9405aa0", offset: 1, limit: 1, });
-
-
-
siteId:
string— Unique identifier for a Site
-
request:
Webflow.sites.FormsListSubmissionsBySiteRequest
-
requestOptions:
Forms.RequestOptions
-
-
client.sites.forms.listSubmissions(siteId, formId, { ...params }) -> Webflow.FormSubmissionList
-
-
-
List form submissions for a given form ID within a specific site.
Use the List Form Submissions by Site endpoint to list form submissions for a given site with the ability to filter by a
formElementId.Required scope |
forms:read
-
-
-
await client.sites.forms.listSubmissions("580e63e98c9a982ac9b8b741", "580e63e98c9a982ac9b8b741", { offset: 1, limit: 1, });
-
-
-
siteId:
string— Unique identifier for a Site
-
formId:
string— Unique identifier for a Form
-
request:
Webflow.sites.FormsListSubmissionsRequest
-
requestOptions:
Forms.RequestOptions
-
-
client.sites.forms.getSubmission(siteId, formSubmissionId) -> Webflow.FormSubmission
-
-
-
Get information about a form submission within a specific site.
Required scope |
forms:read
-
-
-
await client.sites.forms.getSubmission("580e63e98c9a982ac9b8b741", "580e63e98c9a982ac9b8b741");
-
-
-
siteId:
string— Unique identifier for a Site
-
formSubmissionId:
string— Unique identifier for a Form Submission
-
requestOptions:
Forms.RequestOptions
-
-
client.sites.forms.deleteSubmission(siteId, formSubmissionId) -> void
-
-
-
Delete a form submission within a specific site.
Required scope |
forms:write
-
-
-
await client.sites.forms.deleteSubmission("580e63e98c9a982ac9b8b741", "580e63e98c9a982ac9b8b741");
-
-
-
siteId:
string— Unique identifier for a Site
-
formSubmissionId:
string— Unique identifier for a Form Submission
-
requestOptions:
Forms.RequestOptions
-
-
client.sites.forms.updateSubmission(siteId, formSubmissionId, { ...params }) -> Webflow.FormSubmission
-
-
-
Update hidden fields on a form submission within a specific site.
Required scope |
forms:write
-
-
-
await client.sites.forms.updateSubmission("580e63e98c9a982ac9b8b741", "580e63e98c9a982ac9b8b741");
-
-
-
siteId:
string— Unique identifier for a Site
-
formSubmissionId:
string— Unique identifier for a Form Submission
-
request:
Webflow.sites.FormsUpdateSubmissionRequest
-
requestOptions:
Forms.RequestOptions
-
-
client.workspaces.auditLogs.getWorkspaceAuditLogs(workspaceIdOrSlug, { ...params }) -> Webflow.WorkspaceAuditLogResponse
-
-
-
Get audit logs for a workspace.
This endpoint requires an Enterprise workspace and a workspace token with the
workspace_activity:readscope. Create a workspace token from your workspace dashboard integrations page to use this endpoint.Required scope |
workspace_activity:read
-
-
-
await client.workspaces.auditLogs.getWorkspaceAuditLogs("hitchhikers-workspace", { limit: 1, offset: 1, sortOrder: "asc", eventType: "user_access", from: new Date("2025-06-22T16:00:31.000Z"), to: new Date("2025-07-22T16:00:31.000Z"), });
-
-
-
workspaceIdOrSlug:
string— Unique identifier or slug for a Workspace
-
request:
Webflow.workspaces.AuditLogsGetWorkspaceAuditLogsRequest
-
requestOptions:
AuditLogs.RequestOptions
-
-