Webflow Pages API
The Webflow Pages API provides endpoints for listing, retrieving, and updating page metadata and DOM content for pages within a Webflow site.
The Webflow Pages API provides endpoints for listing, retrieving, and updating page metadata and DOM content for pages within a Webflow site.
openapi: 3.1.0
info:
title: Webflow Pages API
description: Webflow Data API v2 - Pages endpoints.
version: 2.0.0
contact:
name: Webflow Developer Relations
email: [email protected]
url: https://developers.webflow.com
termsOfService: https://webflow.com/legal/terms
license:
name: MIT
url: https://opensource.org/licenses/MIT
servers:
- url: https://api.webflow.com/v2
description: Webflow API v2
x-fern-server-name: Data API
security:
- OAuth2: []
- ApiKey: []
tags:
- name: Pages
description: Pages are the pages in your Webflow site.
paths:
/sites/{site_id}/pages:
get:
x-fern-sdk-group-name: pages
x-fern-sdk-method-name: list
security:
- OAuth2:
- page:read
operationId: list-pages
summary: Webflow List Pages
description: 'List of all pages for a site.
Required scope | `pages:read`
'
tags:
- Pages
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default:
- name: localeId
in: query
allowEmptyValue: true
example: 65427cf400e02b306eaa04a0
description: 'Unique identifier for a specific Locale.
[Lear more about localization.](/data/v2.0.0/docs/working-with-localization)
'
schema:
type: string
- in: query
allowEmptyValue: true
name: limit
example: 100
description: 'Maximum number of records to be returned (max limit: 100)'
required: false
schema:
type: integer
- in: query
example: 0
allowEmptyValue: true
name: offset
description: Offset used for pagination if the results have more than limit records
required: false
schema:
type: integer
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: The Page object
type: object
example:
pages:
- id: 6596da6045e56dee495bcbba
siteId: 6258612d1ee792848f805dcf
parentId:
collectionId:
title: Guide to the Galaxy
slug: guide-to-the-galaxy
createdOn: '2024-03-11T10:42:00.000Z'
lastUpdated: '2024-03-11T10:42:42.000Z'
archived: false
draft: false
canBranch: false
isBranch: true
branchId: 68026fa68ef6dc744c75b833
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
localeId: 653fd9af6a07fc9cfd7a5e57
publishedPath: /en-us/guide-to-the-galaxy
- id: 6596da6045e56dee495bcbad
siteId: 6258612d1ee792848f805dcf
parentId:
collectionId:
title: Towel Day Celebrations
slug: towel-day
createdOn: '2024-05-25T09:00:00.000Z'
lastUpdated: '2024-05-25T09:42:00.000Z'
archived: false
draft: false
canBranch: true
isBranch: false
branchId:
seo:
title: Celebrate Towel Day - The Hitchhiker's Guide to the Galaxy
description: A guide to celebrating Towel Day, in honor of the most massively useful thing an interstellar hitchhiker can have.
openGraph:
title: Towel Day - Don't Panic
titleCopied: false
description: Join the galaxy in celebrating Towel Day, the day dedicated to carrying towels everywhere in memory of Douglas Adams.
descriptionCopied: false
localeId: 653fd9af6a07fc9cfd7a5e57
publishedPath: /en-us/towel-day
pagination:
limit: 20
offset: 0
total: 2
properties:
pages:
type: array
items:
description: The Page object
type: object
required:
- id
example:
id: 6596da6045e56dee495bcbba
siteId: 6258612d1ee792848f805dcf
parentId:
collectionId:
title: Guide to the Galaxy
slug: guide-to-the-galaxy
createdOn: '2024-03-11T10:42:00.000Z'
lastUpdated: '2024-03-11T10:42:42.000Z'
archived: false
draft: false
canBranch: false
isBranch: true
branchId: 68026fa68ef6dc744c75b833
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
localeId: 653fd9af6a07fc9cfd7a5e57
publishedPath: /en-us/guide-to-the-galaxy
properties:
id:
type: string
format: objectid
description: Unique identifier for the Page
example: 63499e4e6e9ed5abbfe42b69
siteId:
type: string
format: objectid
readOnly: true
description: Unique identifier for the Site
example: 580e63e98c9a982ac9b8b741
title:
type: string
description: Title of the Page
example: My New Page
slug:
type: string
description: slug of the Page (derived from title)
example: my-new-page
parentId:
type: string
format: objectid
description: Identifier of the parent folder
readOnly: true
example: 6419db964a9c435aa3af6251
collectionId:
type: string
format: objectid
readOnly: true
description: Unique identifier for a linked Collection, value will be null if the Page is not part of a Collection.
example: 6390c49774a71f12831a08e3
createdOn:
type: string
format: date-time
readOnly: true
description: The date the Page was created
example: '2016-10-24T19:42:38.929Z'
lastUpdated:
type: string
format: date-time
readOnly: true
description: The date the Page was most recently updated
example: '2016-10-24T19:42:38.929Z'
archived:
type: boolean
description: Whether the Page has been archived
default: false
example: false
readOnly: true
draft:
type: boolean
description: Whether the Page is a draft
default: false
example: false
readOnly: true
canBranch:
type: boolean
description: Indicates whether the Page supports [Page Branching](https://university.webflow.com/lesson/page-branching). Pages that are already branches cannot be branched again.
readOnly: true
default: false
example: false
isBranch:
type: boolean
description: Indicates whether the Page is a Branch of another Page [Page Branching](https://university.webflow.com/lesson/page-branching)
readOnly: true
default: false
example: false
branchId:
type: string
format: objectid
nullable: true
description: If the Page is a Branch of another Page, this is the ID of the Branch
example: 68026fa68ef6dc744c75b833
seo:
type: object
description: SEO-related fields for the Page
properties:
title:
type: string
description: The Page title shown in search engine results
example: CoffeeStyle eCommerce - Webflow HTML website template
description:
type: string
description: The Page description shown in search engine results
example: This Webflow template offers a quick start into an ecommerce / memberships site
openGraph:
type: object
description: Open Graph fields for the Page
properties:
title:
type: string
description: The title supplied to Open Graph annotations
example: My snazzy Open Graph title
titleCopied:
type: boolean
description: Indicates the Open Graph title was copied from the SEO title
readOnly: true
default: true
description:
type: string
description: The description supplied to Open Graph annotations
example: My informative Open Graph description
descriptionCopied:
type: boolean
description: Indicates the Open Graph description was copied from the SEO description
readOnly: true
default: true
localeId:
description: Unique ID of the page locale
type: string
format: objectid
nullable: true
readOnly: true
example: 653fd9af6a07fc9cfd7a5e57
publishedPath:
description: Relative path of the published page URL
type: string
readOnly: true
example: /heart-of-gold
pagination:
description: Pagination object
type: object
required:
- limit
- offset
- total
properties:
limit:
type: integer
description: The limit used for pagination
example: 100
readOnly: true
offset:
type: integer
description: The offset used for pagination
example: 0
readOnly: true
total:
type: integer
description: The total number of records
example: 100
readOnly: true
'400':
description: Request body was incorrectly formatted.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference:
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- bad_request
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: bad_request
message: 'Bad Request: Request is malformed'
externalReference:
details: []
'401':
description: Provided access token is invalid or does not have access to requested resource
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference:
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- bad_request
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference:
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference:
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- bad_request
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference:
details: []
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
x-logErrorCode: 429
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference:
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- bad_request
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference:
details: []
'500':
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference:
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- bad_request
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference:
details: []
/pages/{page_id}:
get:
x-fern-sdk-group-name: pages
x-fern-sdk-method-name: get-metadata
security:
- OAuth2:
- page:read
operationId: get-page-metadata
summary: Webflow Get Page Metadata
description: 'Get metadata information for a single page.
Required scope | `pages:read`
'
tags:
- Pages
parameters:
- name: page_id
in: path
description: Unique identifier for a Page
example: 63c720f9347c2139b248e552
required: true
schema:
type: string
format: objectid
default:
- name: localeId
in: query
allowEmptyValue: true
example: 65427cf400e02b306eaa04a0
description: 'Unique identifier for a specific Locale.
[Lear more about localization.](/data/v2.0.0/docs/working-with-localization)
'
schema:
type: string
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: The Page object
type: object
required:
- id
example:
id: 6596da6045e56dee495bcbba
siteId: 6258612d1ee792848f805dcf
parentId:
collectionId:
title: Guide to the Galaxy
slug: guide-to-the-galaxy
createdOn: '2024-03-11T10:42:00.000Z'
lastUpdated: '2024-03-11T10:42:42.000Z'
archived: false
draft: false
canBranch: false
isBranch: true
branchId: 68026fa68ef6dc744c75b833
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
localeId: 653fd9af6a07fc9cfd7a5e57
publishedPath: /en-us/guide-to-the-galaxy
properties:
id:
type: string
format: objectid
description: Unique identifier for the Page
example: 63499e4e6e9ed5abbfe42b69
siteId:
type: string
format: objectid
readOnly: true
description: Unique identifier for the Site
example: 580e63e98c9a982ac9b8b741
title:
type: string
description: Title of the Page
example: My New Page
slug:
type: string
description: slug of the Page (derived from title)
example: my-new-page
parentId:
type: string
format: objectid
description: Identifier of the parent folder
readOnly: true
example: 6419db964a9c435aa3af6251
collectionId:
type: string
format: objectid
readOnly: true
description: Unique identifier for a linked Collection, value will be null if the Page is not part of a Collection.
example: 6390c49774a71f12831a08e3
createdOn:
type: string
format: date-time
readOnly: true
description: The date the Page was creat
# --- truncated at 32 KB (144 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/webflow/refs/heads/main/openapi/webflow-pages-openapi.yml