> This page is for Data API, version v2 Beta.
> For other versions, use one of these documentation indexes:
> - v2 (default): https://developers.webflow.com/data/v2.0.0/llms.txt
> - v2 Beta: https://developers.webflow.com/data/v2.0.0-beta/llms.txt
> - v1: https://developers.webflow.com/data/v1.0.0/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.webflow.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.webflow.com/_mcp/server.

# Get Page Content

GET https://api.webflow.com/beta/pages/{page_id}/dom

Get text and component instance content from a static page.LocalizationRequired scope | `pages:read`

Reference: https://developers.webflow.com/data/reference/pages-and-components/pages/get-content

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Request

### Path parameters

- `page_id` (string, required) — Unique identifier for a Page

### Query parameters

- `localeId` (string, optional) — Unique identifier for a specific Locale. [Learn more about localization.](/data/v2.0.0/docs/working-with-localization)
- `limit` (integer, optional) — Maximum number of records to be returned (max limit: 100)
- `offset` (integer, optional) — Offset used for pagination if the results have more than limit records
- `withBindings` (boolean, optional) — Include CMS binding information in the response. When set to true, nodes will include a `cmsBindings` property with collection binding details, and component property overrides may include properties of type 'CMS Binding'.
- `translatable` (string, optional) — Unique identifier for the secondary Locale you're translating **into**. Returns only content that hasn't been excluded from translation for that locale. This is independent of `localeId`, which selects which version of the content is returned. To fetch the source text to translate, request the primary locale's content and set `translatable` to the locale you're translating into: `?localeId={primary locale id}&translatable={target locale id}` Only exclusion rules scoped to manual translation are respected — rules scoped only to automatic translation don't affect this parameter's response. Omitting `translatable` returns the same response as if this parameter didn't exist. The value must be the id of one of the site's secondary locales — the primary locale id, or any other value, returns a `400` error. Requires translation exclusions to be enabled for the site; if they aren't, the request returns a `403` error. [Learn more about localization.](/data/v2.0.0/docs/working-with-localization)

## Response

### 200

Request was successful

- `pageId` (string, optional) — Page ID
- `branchId` (string, optional, nullable) — The unique identifier of a specific page branch.
- `nodes` (list of PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItems, optional)
- `pagination` (PagesPageIdDomGetResponsesContentApplicationJsonSchemaPagination, optional) — Pagination object
- `lastUpdated` (string, optional, nullable) — The date the page dom was most recently updated

## Errors

### 400 Bad Request Error

Request body was incorrectly formatted.

- `code` (enum, optional) — Error code
  - Allowed values: `aeo_input_validation`, `analyze_filter_conflict`, `analyze_input_validation`, `analyze_unsupported_filter`, `bad_request`, `batch_too_large`, `before_historical_floor`, `billing_provider_unavailable`, `branch_merge_conflict`, `branch_merge_in_progress`, `branch_not_found`, `branch_publish_failed`, `branch_sync_pending`, `branch_task_not_found`, `branch_update_in_progress`, `brand_not_configured`, `cannot_invite_self`, `cannot_remove_self`, `cannot_update_user_role`, `client_seats_unavailable`, `collection_not_found`, `competitors_not_configured`, `conflict`, `conflicting_scope_filters`, `default_site_role_required`, `duplicate_collection`, `duplicate_member_in_request`, `duplicate_site_in_request`, `duplicate_user_email`, `ecommerce_not_enabled`, `end_time_too_recent`, `enterprise_provisioning_upstream_error`, `enterprise_self_provisioning_not_entitled`, `forbidden`, `forms_require_republish`, `incompatible_webhook_filter`, `insufficient_permissions`, `insufficient_seats`, `internal_error`, `invalid_auth_version`, `invalid_credentials`, `invalid_domain`, `invalid_resolution`, `invalid_site_role`, `invalid_time_range`, `invalid_user_email`, `invalid_workspace_role`, `invite_expired`, `invite_role_conflict`, `item_not_found`, `managed_by_scim`, `member_already_has_access`, `member_has_no_site_access`, `member_is_paying_client`, `member_not_found`, `member_not_removable`, `member_role_conflict`, `missing_scopes`, `no_domains`, `no_members_or_invites`, `not_authorized`, `not_enterprise_plan_site`, `not_enterprise_plan_workspace`, `optimize_before_historical_floor`, `optimize_input_validation`, `optimize_invalid_interval`, `optimize_unknown_dimension`, `optimize_unknown_goal`, `optimize_unknown_optimization`, `optimize_unsupported_group_by`, `order_not_found`, `page_cannot_branch`, `resource_not_found`, `service_unavailable`, `site_access_not_applicable_to_member`, `site_access_not_scopable_for_role`, `site_access_roles_must_match`, `site_not_in_workspace`, `site_role_id_invalid`, `site_role_id_not_allowed`, `site_role_id_required`, `site_specific_access_disabled`, `site_specific_access_not_entitled`, `time_range_too_wide`, `too_many_requests`, `unsupported_bot_provider`, `unsupported_version`, `unsupported_webhook_trigger_type`, `user_limit_reached`, `user_not_found`, `users_not_enabled`, `validation_error`, `workspace_invite_not_found`, `workspace_member_managed_by_scim`, `workspace_member_not_found`, `workspace_member_not_removable`, `workspace_role_not_grantable`
- `message` (string, optional) — Error message
- `externalReference` (string, optional) — Link to more information
- `details` (list of PagesPageIdDomGetResponsesContentApplicationJsonSchemaDetailsItems, optional) — Array of errors

### 401 Unauthorized Error

Provided access token is invalid or does not have access to requested resource

- `code` (enum, optional) — Error code
  - Allowed values: `aeo_input_validation`, `analyze_filter_conflict`, `analyze_input_validation`, `analyze_unsupported_filter`, `bad_request`, `batch_too_large`, `before_historical_floor`, `billing_provider_unavailable`, `branch_merge_conflict`, `branch_merge_in_progress`, `branch_not_found`, `branch_publish_failed`, `branch_sync_pending`, `branch_task_not_found`, `branch_update_in_progress`, `brand_not_configured`, `cannot_invite_self`, `cannot_remove_self`, `cannot_update_user_role`, `client_seats_unavailable`, `collection_not_found`, `competitors_not_configured`, `conflict`, `conflicting_scope_filters`, `default_site_role_required`, `duplicate_collection`, `duplicate_member_in_request`, `duplicate_site_in_request`, `duplicate_user_email`, `ecommerce_not_enabled`, `end_time_too_recent`, `enterprise_provisioning_upstream_error`, `enterprise_self_provisioning_not_entitled`, `forbidden`, `forms_require_republish`, `incompatible_webhook_filter`, `insufficient_permissions`, `insufficient_seats`, `internal_error`, `invalid_auth_version`, `invalid_credentials`, `invalid_domain`, `invalid_resolution`, `invalid_site_role`, `invalid_time_range`, `invalid_user_email`, `invalid_workspace_role`, `invite_expired`, `invite_role_conflict`, `item_not_found`, `managed_by_scim`, `member_already_has_access`, `member_has_no_site_access`, `member_is_paying_client`, `member_not_found`, `member_not_removable`, `member_role_conflict`, `missing_scopes`, `no_domains`, `no_members_or_invites`, `not_authorized`, `not_enterprise_plan_site`, `not_enterprise_plan_workspace`, `optimize_before_historical_floor`, `optimize_input_validation`, `optimize_invalid_interval`, `optimize_unknown_dimension`, `optimize_unknown_goal`, `optimize_unknown_optimization`, `optimize_unsupported_group_by`, `order_not_found`, `page_cannot_branch`, `resource_not_found`, `service_unavailable`, `site_access_not_applicable_to_member`, `site_access_not_scopable_for_role`, `site_access_roles_must_match`, `site_not_in_workspace`, `site_role_id_invalid`, `site_role_id_not_allowed`, `site_role_id_required`, `site_specific_access_disabled`, `site_specific_access_not_entitled`, `time_range_too_wide`, `too_many_requests`, `unsupported_bot_provider`, `unsupported_version`, `unsupported_webhook_trigger_type`, `user_limit_reached`, `user_not_found`, `users_not_enabled`, `validation_error`, `workspace_invite_not_found`, `workspace_member_managed_by_scim`, `workspace_member_not_found`, `workspace_member_not_removable`, `workspace_role_not_grantable`
- `message` (string, optional) — Error message
- `externalReference` (string, optional) — Link to more information
- `details` (list of PagesPageIdDomGetResponsesContentApplicationJsonSchemaDetailsItems, optional) — Array of errors

### 403 Forbidden Error

Forbidden

- `code` (enum, optional) — Error code
  - Allowed values: `aeo_input_validation`, `analyze_filter_conflict`, `analyze_input_validation`, `analyze_unsupported_filter`, `bad_request`, `batch_too_large`, `before_historical_floor`, `billing_provider_unavailable`, `branch_merge_conflict`, `branch_merge_in_progress`, `branch_not_found`, `branch_publish_failed`, `branch_sync_pending`, `branch_task_not_found`, `branch_update_in_progress`, `brand_not_configured`, `cannot_invite_self`, `cannot_remove_self`, `cannot_update_user_role`, `client_seats_unavailable`, `collection_not_found`, `competitors_not_configured`, `conflict`, `conflicting_scope_filters`, `default_site_role_required`, `duplicate_collection`, `duplicate_member_in_request`, `duplicate_site_in_request`, `duplicate_user_email`, `ecommerce_not_enabled`, `end_time_too_recent`, `enterprise_provisioning_upstream_error`, `enterprise_self_provisioning_not_entitled`, `forbidden`, `forms_require_republish`, `incompatible_webhook_filter`, `insufficient_permissions`, `insufficient_seats`, `internal_error`, `invalid_auth_version`, `invalid_credentials`, `invalid_domain`, `invalid_resolution`, `invalid_site_role`, `invalid_time_range`, `invalid_user_email`, `invalid_workspace_role`, `invite_expired`, `invite_role_conflict`, `item_not_found`, `managed_by_scim`, `member_already_has_access`, `member_has_no_site_access`, `member_is_paying_client`, `member_not_found`, `member_not_removable`, `member_role_conflict`, `missing_scopes`, `no_domains`, `no_members_or_invites`, `not_authorized`, `not_enterprise_plan_site`, `not_enterprise_plan_workspace`, `optimize_before_historical_floor`, `optimize_input_validation`, `optimize_invalid_interval`, `optimize_unknown_dimension`, `optimize_unknown_goal`, `optimize_unknown_optimization`, `optimize_unsupported_group_by`, `order_not_found`, `page_cannot_branch`, `resource_not_found`, `service_unavailable`, `site_access_not_applicable_to_member`, `site_access_not_scopable_for_role`, `site_access_roles_must_match`, `site_not_in_workspace`, `site_role_id_invalid`, `site_role_id_not_allowed`, `site_role_id_required`, `site_specific_access_disabled`, `site_specific_access_not_entitled`, `time_range_too_wide`, `too_many_requests`, `unsupported_bot_provider`, `unsupported_version`, `unsupported_webhook_trigger_type`, `user_limit_reached`, `user_not_found`, `users_not_enabled`, `validation_error`, `workspace_invite_not_found`, `workspace_member_managed_by_scim`, `workspace_member_not_found`, `workspace_member_not_removable`, `workspace_role_not_grantable`
- `message` (string, optional) — Error message
- `externalReference` (string, optional) — Link to more information
- `details` (list of PagesPageIdDomGetResponsesContentApplicationJsonSchemaDetailsItems, optional) — Array of errors

### 404 Not Found Error

Requested resource not found

- `code` (enum, optional) — Error code
  - Allowed values: `aeo_input_validation`, `analyze_filter_conflict`, `analyze_input_validation`, `analyze_unsupported_filter`, `bad_request`, `batch_too_large`, `before_historical_floor`, `billing_provider_unavailable`, `branch_merge_conflict`, `branch_merge_in_progress`, `branch_not_found`, `branch_publish_failed`, `branch_sync_pending`, `branch_task_not_found`, `branch_update_in_progress`, `brand_not_configured`, `cannot_invite_self`, `cannot_remove_self`, `cannot_update_user_role`, `client_seats_unavailable`, `collection_not_found`, `competitors_not_configured`, `conflict`, `conflicting_scope_filters`, `default_site_role_required`, `duplicate_collection`, `duplicate_member_in_request`, `duplicate_site_in_request`, `duplicate_user_email`, `ecommerce_not_enabled`, `end_time_too_recent`, `enterprise_provisioning_upstream_error`, `enterprise_self_provisioning_not_entitled`, `forbidden`, `forms_require_republish`, `incompatible_webhook_filter`, `insufficient_permissions`, `insufficient_seats`, `internal_error`, `invalid_auth_version`, `invalid_credentials`, `invalid_domain`, `invalid_resolution`, `invalid_site_role`, `invalid_time_range`, `invalid_user_email`, `invalid_workspace_role`, `invite_expired`, `invite_role_conflict`, `item_not_found`, `managed_by_scim`, `member_already_has_access`, `member_has_no_site_access`, `member_is_paying_client`, `member_not_found`, `member_not_removable`, `member_role_conflict`, `missing_scopes`, `no_domains`, `no_members_or_invites`, `not_authorized`, `not_enterprise_plan_site`, `not_enterprise_plan_workspace`, `optimize_before_historical_floor`, `optimize_input_validation`, `optimize_invalid_interval`, `optimize_unknown_dimension`, `optimize_unknown_goal`, `optimize_unknown_optimization`, `optimize_unsupported_group_by`, `order_not_found`, `page_cannot_branch`, `resource_not_found`, `service_unavailable`, `site_access_not_applicable_to_member`, `site_access_not_scopable_for_role`, `site_access_roles_must_match`, `site_not_in_workspace`, `site_role_id_invalid`, `site_role_id_not_allowed`, `site_role_id_required`, `site_specific_access_disabled`, `site_specific_access_not_entitled`, `time_range_too_wide`, `too_many_requests`, `unsupported_bot_provider`, `unsupported_version`, `unsupported_webhook_trigger_type`, `user_limit_reached`, `user_not_found`, `users_not_enabled`, `validation_error`, `workspace_invite_not_found`, `workspace_member_managed_by_scim`, `workspace_member_not_found`, `workspace_member_not_removable`, `workspace_role_not_grantable`
- `message` (string, optional) — Error message
- `externalReference` (string, optional) — Link to more information
- `details` (list of PagesPageIdDomGetResponsesContentApplicationJsonSchemaDetailsItems, optional) — Array of errors

### 429 Too Many Requests Error

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.

- `code` (enum, optional) — Error code
  - Allowed values: `aeo_input_validation`, `analyze_filter_conflict`, `analyze_input_validation`, `analyze_unsupported_filter`, `bad_request`, `batch_too_large`, `before_historical_floor`, `billing_provider_unavailable`, `branch_merge_conflict`, `branch_merge_in_progress`, `branch_not_found`, `branch_publish_failed`, `branch_sync_pending`, `branch_task_not_found`, `branch_update_in_progress`, `brand_not_configured`, `cannot_invite_self`, `cannot_remove_self`, `cannot_update_user_role`, `client_seats_unavailable`, `collection_not_found`, `competitors_not_configured`, `conflict`, `conflicting_scope_filters`, `default_site_role_required`, `duplicate_collection`, `duplicate_member_in_request`, `duplicate_site_in_request`, `duplicate_user_email`, `ecommerce_not_enabled`, `end_time_too_recent`, `enterprise_provisioning_upstream_error`, `enterprise_self_provisioning_not_entitled`, `forbidden`, `forms_require_republish`, `incompatible_webhook_filter`, `insufficient_permissions`, `insufficient_seats`, `internal_error`, `invalid_auth_version`, `invalid_credentials`, `invalid_domain`, `invalid_resolution`, `invalid_site_role`, `invalid_time_range`, `invalid_user_email`, `invalid_workspace_role`, `invite_expired`, `invite_role_conflict`, `item_not_found`, `managed_by_scim`, `member_already_has_access`, `member_has_no_site_access`, `member_is_paying_client`, `member_not_found`, `member_not_removable`, `member_role_conflict`, `missing_scopes`, `no_domains`, `no_members_or_invites`, `not_authorized`, `not_enterprise_plan_site`, `not_enterprise_plan_workspace`, `optimize_before_historical_floor`, `optimize_input_validation`, `optimize_invalid_interval`, `optimize_unknown_dimension`, `optimize_unknown_goal`, `optimize_unknown_optimization`, `optimize_unsupported_group_by`, `order_not_found`, `page_cannot_branch`, `resource_not_found`, `service_unavailable`, `site_access_not_applicable_to_member`, `site_access_not_scopable_for_role`, `site_access_roles_must_match`, `site_not_in_workspace`, `site_role_id_invalid`, `site_role_id_not_allowed`, `site_role_id_required`, `site_specific_access_disabled`, `site_specific_access_not_entitled`, `time_range_too_wide`, `too_many_requests`, `unsupported_bot_provider`, `unsupported_version`, `unsupported_webhook_trigger_type`, `user_limit_reached`, `user_not_found`, `users_not_enabled`, `validation_error`, `workspace_invite_not_found`, `workspace_member_managed_by_scim`, `workspace_member_not_found`, `workspace_member_not_removable`, `workspace_role_not_grantable`
- `message` (string, optional) — Error message
- `externalReference` (string, optional) — Link to more information
- `details` (list of PagesPageIdDomGetResponsesContentApplicationJsonSchemaDetailsItems, optional) — Array of errors

### 500 Internal Server Error

We had a problem with our server. Try again later.

- `code` (enum, optional) — Error code
  - Allowed values: `aeo_input_validation`, `analyze_filter_conflict`, `analyze_input_validation`, `analyze_unsupported_filter`, `bad_request`, `batch_too_large`, `before_historical_floor`, `billing_provider_unavailable`, `branch_merge_conflict`, `branch_merge_in_progress`, `branch_not_found`, `branch_publish_failed`, `branch_sync_pending`, `branch_task_not_found`, `branch_update_in_progress`, `brand_not_configured`, `cannot_invite_self`, `cannot_remove_self`, `cannot_update_user_role`, `client_seats_unavailable`, `collection_not_found`, `competitors_not_configured`, `conflict`, `conflicting_scope_filters`, `default_site_role_required`, `duplicate_collection`, `duplicate_member_in_request`, `duplicate_site_in_request`, `duplicate_user_email`, `ecommerce_not_enabled`, `end_time_too_recent`, `enterprise_provisioning_upstream_error`, `enterprise_self_provisioning_not_entitled`, `forbidden`, `forms_require_republish`, `incompatible_webhook_filter`, `insufficient_permissions`, `insufficient_seats`, `internal_error`, `invalid_auth_version`, `invalid_credentials`, `invalid_domain`, `invalid_resolution`, `invalid_site_role`, `invalid_time_range`, `invalid_user_email`, `invalid_workspace_role`, `invite_expired`, `invite_role_conflict`, `item_not_found`, `managed_by_scim`, `member_already_has_access`, `member_has_no_site_access`, `member_is_paying_client`, `member_not_found`, `member_not_removable`, `member_role_conflict`, `missing_scopes`, `no_domains`, `no_members_or_invites`, `not_authorized`, `not_enterprise_plan_site`, `not_enterprise_plan_workspace`, `optimize_before_historical_floor`, `optimize_input_validation`, `optimize_invalid_interval`, `optimize_unknown_dimension`, `optimize_unknown_goal`, `optimize_unknown_optimization`, `optimize_unsupported_group_by`, `order_not_found`, `page_cannot_branch`, `resource_not_found`, `service_unavailable`, `site_access_not_applicable_to_member`, `site_access_not_scopable_for_role`, `site_access_roles_must_match`, `site_not_in_workspace`, `site_role_id_invalid`, `site_role_id_not_allowed`, `site_role_id_required`, `site_specific_access_disabled`, `site_specific_access_not_entitled`, `time_range_too_wide`, `too_many_requests`, `unsupported_bot_provider`, `unsupported_version`, `unsupported_webhook_trigger_type`, `user_limit_reached`, `user_not_found`, `users_not_enabled`, `validation_error`, `workspace_invite_not_found`, `workspace_member_managed_by_scim`, `workspace_member_not_found`, `workspace_member_not_removable`, `workspace_role_not_grantable`
- `message` (string, optional) — Error message
- `externalReference` (string, optional) — Link to more information
- `details` (list of PagesPageIdDomGetResponsesContentApplicationJsonSchemaDetailsItems, optional) — Array of errors

## Types

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItems

A generic representation of a content element within the Document Object Model (DOM) with optional CMS binding information. Each node has a unique identifier and a specific type that determines its content structure and attributes.

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaPagination

Pagination object

- `limit` (integer, required) — The limit used for pagination
- `offset` (integer, required) — The offset used for pagination
- `total` (integer, required) — The total number of records

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaDetailsItems

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItems0

Represents text content within the DOM. It contains both the raw text and its HTML representation. Additional attributes can be associated with the text for styling or other purposes.

- `id` (string, required) — Node UUID
- `type` (enum, required, default: text) — The type of the node
  - Allowed values: `text`
- `text` (PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf0Text, required) — The text content of the node
- `attributes` (map from string to string, optional) — The custom attributes of the node
- `cmsBindings` (PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf0CmsBindings, optional) — CMS binding information for this node. Only present when the `withBindings` query parameter is set to true.

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItems1

Represents an image within the DOM. It contains details about the image, such as its alternative text (alt) for accessibility and an asset identifier for fetching the actual image resource. Additional attributes can be associated with the image for styling or other purposes.

- `id` (string, required) — Node UUID
- `type` (enum, required, default: image) — The type of the node
  - Allowed values: `image`
- `image` (PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf1Image, required) — The image details of the node
- `attributes` (map from string to string, optional) — The custom attributes of the node
- `cmsBindings` (PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf1CmsBindings, optional) — CMS binding information for this node. Only present when the `withBindings` query parameter is set to true.

### Component Node

Represents a component instance within the DOM. It contains details about the component instance, such as its type and properties.

- `id` (string, required) — The unique identifier of the component instance node
- `type` (enum, required, default: component-instance) — The type of the node
  - Allowed values: `component-instance`
- `componentId` (string, required) — The unique identifier of the component
- `propertyOverrides` (list of PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf2PropertyOverridesItems, required) — List of component properties with overrides for a component instance.

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItems3

Represents text input and textarea elements within the DOM. It contains the placeholder text in the input. Additional attributes can be associated with the text for styling or other purposes.

- `id` (string, required) — Node UUID
- `type` (enum, required, default: text-input) — The type of the node
  - Allowed values: `text-input`
- `placeholder` (string, required) — The placeholder text of the input node
- `attributes` (map from string to string, optional) — The custom attributes of the node
- `cmsBindings` (PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf3CmsBindings, optional) — CMS binding information for this node. Only present when the `withBindings` query parameter is set to true.

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItems4

Represents select elements within the DOM. It contains the list of choices in the select. Additional attributes can be associated with the text for styling or other purposes.

- `id` (string, required) — Node UUID
- `type` (enum, required, default: select) — The type of the node
  - Allowed values: `select`
- `choices` (list of PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf4ChoicesItems, required) — The list of choices in this select node.
- `attributes` (map from string to string, optional) — The custom attributes of the node
- `cmsBindings` (PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf4CmsBindings, optional) — CMS binding information for this node. Only present when the `withBindings` query parameter is set to true.

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItems5

Represents submit button elements within the DOM. It contains the text and waiting text of the button. Additional attributes can be associated with the text for styling or other purposes.

- `id` (string, required) — Node UUID
- `type` (enum, required, default: submit-button) — The type of the node
  - Allowed values: `submit-button`
- `value` (string, required) — The text content of the submit button.
- `waitingText` (string, required) — The text to show while the form is submitting.
- `attributes` (map from string to string, optional) — The custom attributes of the node
- `cmsBindings` (PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf5CmsBindings, optional) — CMS binding information for this node. Only present when the `withBindings` query parameter is set to true.

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItems6

Represents search button elements within the DOM. It contains the text of the button. Additional attributes can be associated with the text for styling or other purposes.

- `id` (string, required) — Node UUID
- `type` (enum, required, default: search-button) — The type of the node
  - Allowed values: `search-button`
- `value` (string, required) — The text content of the search button.
- `attributes` (map from string to string, optional) — The custom attributes of the node
- `cmsBindings` (PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf6CmsBindings, optional) — CMS binding information for this node. Only present when the `withBindings` query parameter is set to true.

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf0Text

The text content of the node

- `html` (string, optional, nullable) — The HTML content of the text node.
- `text` (string, optional, nullable) — The raw text content of the text node.

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf0CmsBindings

CMS binding information for this node. Only present when the `withBindings` query parameter is set to true.

- `isPageItem` (boolean, required) — Indicates whether this binding is for a page item
- `collectionId` (string, required) — The ID of the CMS collection this node is bound to
- `bindings` (PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf0CmsBindingsBindings, required) — The binding configuration for this text node

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf1Image

The image details of the node

- `alt` (string, optional, nullable)
- `assetId` (string, optional)

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf1CmsBindings

CMS binding information for this node. Only present when the `withBindings` query parameter is set to true.

- `isPageItem` (boolean, required) — Indicates whether this binding is for a page item
- `collectionId` (string, required) — The ID of the CMS collection this node is bound to
- `bindings` (PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf1CmsBindingsBindings, required) — The binding configuration for this image node

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf2PropertyOverridesItems

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf3CmsBindings

CMS binding information for this node. Only present when the `withBindings` query parameter is set to true.

- `isPageItem` (boolean, required) — Indicates whether this binding is for a page item
- `collectionId` (string, required) — The ID of the CMS collection this node is bound to
- `bindings` (PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf3CmsBindingsBindings, required) — The binding configuration for this text input node

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf4ChoicesItems

- `value` (string, required) — The value of the choice when selected.
- `text` (string, required) — The text to display for the choice.

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf4CmsBindings

CMS binding information for this node. Only present when the `withBindings` query parameter is set to true.

- `isPageItem` (boolean, required) — Indicates whether this binding is for a page item
- `collectionId` (string, required) — The ID of the CMS collection this node is bound to
- `bindings` (PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf4CmsBindingsBindings, required) — The binding configuration for this select node

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf5CmsBindings

CMS binding information for this node. Only present when the `withBindings` query parameter is set to true.

- `isPageItem` (boolean, required) — Indicates whether this binding is for a page item
- `collectionId` (string, required) — The ID of the CMS collection this node is bound to
- `bindings` (PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf5CmsBindingsBindings, required) — The binding configuration for this submit button node

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf6CmsBindings

CMS binding information for this node. Only present when the `withBindings` query parameter is set to true.

- `isPageItem` (boolean, required) — Indicates whether this binding is for a page item
- `collectionId` (string, required) — The ID of the CMS collection this node is bound to
- `bindings` (PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf6CmsBindingsBindings, required) — The binding configuration for this search button node

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf0CmsBindingsBindings

The binding configuration for this text node

- `text` (string, optional, nullable) — The field slug for the text binding
- `attributes` (map from string to string, optional) — Custom attribute bindings with the attribute names as keys and the field slugs as values

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf1CmsBindingsBindings

The binding configuration for this image node

- `alt` (string, optional, nullable) — The field slug for the alt text binding
- `assetId` (string, optional, nullable) — The field slug for the asset ID binding
- `attributes` (map from string to string, optional) — Custom attribute bindings with the attribute names as keys and the field slugs as values

### Component Property Text

A text-based component property containing raw text and HTML representation.

- `propertyId` (string, required) — The ID of the property.
- `type` (enum, required) — The type of the property.
  - Allowed values: `Plain Text`, `Rich Text`, `Alt Text`
- `label` (string, required) — The label of the property in the UI.
- `text` (PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf2PropertyOverridesItemsOneOf0Text, required) — Represents text content within the DOM. It contains both the raw text and its HTML representation.

### Component Property CMS Binding

A CMS binding property that connects a component property to a CMS collection field. Only present when the `withBindings` query parameter is set to true.

- `propertyId` (string, required) — The ID of the property.
- `type` (enum, required) — The type of the property.
  - Allowed values: `CMS Binding`
- `label` (string, required) — The label of the property in the UI.
- `collectionId` (string, required) — The ID of the CMS collection this property is bound to
- `isPageItem` (boolean, required) — Indicates whether this binding is for a page item
- `fieldSlug` (string, required) — The slug of the field in the CMS collection

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf3CmsBindingsBindings

The binding configuration for this text input node

- `attributes` (map from string to string, optional) — Custom attribute bindings with the attribute names as keys and the field slugs as values

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf4CmsBindingsBindings

The binding configuration for this select node

- `attributes` (map from string to string, optional) — Custom attribute bindings with the attribute names as keys and the field slugs as values

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf5CmsBindingsBindings

The binding configuration for this submit button node

- `value` (string, optional, nullable) — The field slug for the button value binding
- `waitingText` (string, optional, nullable) — The field slug for the waiting text binding
- `attributes` (map from string to string, optional) — Custom attribute bindings with the attribute names as keys and the field slugs as values

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf6CmsBindingsBindings

The binding configuration for this search button node

- `value` (string, optional, nullable) — The field slug for the button value binding
- `attributes` (map from string to string, optional) — Custom attribute bindings with the attribute names as keys and the field slugs as values

### PagesPageIdDomGetResponsesContentApplicationJsonSchemaNodesItemsOneOf2PropertyOverridesItemsOneOf0Text

Represents text content within the DOM. It contains both the raw text and its HTML representation.

- `html` (string, optional, nullable) — The HTML content of the text node.
- `text` (string, optional, nullable) — The raw text content of the text node.

## Examples

**Response**

```json
{
  "value": {
    "pageId": "658205daa3e8206a523b5ad4",
    "nodes": [
      {
        "id": "a245c12d-995b-55ee-5ec7-aa36a6cad623",
        "type": "text",
        "text": {
          "html": null,
          "text": null
        },
        "attributes": {},
        "cmsBindings": {
          "isPageItem": true,
          "collectionId": "580e63fc8c9a982ac9b8b745",
          "bindings": {
            "text": "post-title",
            "attributes": {}
          }
        }
      },
      {
        "id": "a245c12d-995b-55ee-5ec7-aa36a6cad629",
        "type": "image",
        "image": {
          "alt": "",
          "assetId": null
        },
        "attributes": {},
        "cmsBindings": {
          "isPageItem": true,
          "collectionId": "580e63fc8c9a982ac9b8b745",
          "bindings": {
            "alt": "image-alt-text",
            "assetId": "featured-image",
            "attributes": {}
          }
        }
      },
      {
        "id": "a245c12d-995b-55ee-5ec7-aa36a6cad671",
        "type": "submit-button",
        "value": "",
        "waitingText": "",
        "attributes": {},
        "cmsBindings": {
          "isPageItem": false,
          "collectionId": "580e63fc8c9a982ac9b8b746",
          "bindings": {
            "value": "button-text",
            "waitingText": "button-waiting-text",
            "attributes": {}
          }
        }
      },
      {
        "id": "a245c12d-995b-55ee-5ec7-aa36a6cad631",
        "type": "component-instance",
        "componentId": "17611da9-08ec-4e13-9d26-41a356c57916",
        "propertyOverrides": [
          {
            "propertyId": "a245c12d-995b-55ee-5ec7-aa36a6cad633",
            "type": "Plain Text",
            "label": "Catchphrase",
            "text": {
              "html": null,
              "text": "Don't Panic!"
            }
          },
          {
            "propertyId": "a245c12d-995b-55ee-5ec7-aa36a6cad636",
            "type": "CMS Binding",
            "label": "Author Name",
            "collectionId": "580e63fc8c9a982ac9b8b747",
            "isPageItem": true,
            "fieldSlug": "author-name"
          }
        ]
      }
    ],
    "pagination": {
      "limit": 4,
      "offset": 0,
      "total": 4
    },
    "lastUpdated": "2016-10-24T19:42:38.929Z"
  }
}
```

**SDK Code**

```python
import requests

url = "https://api.webflow.com/beta/pages/63c720f9347c2139b248e552/dom"

querystring = {"localeId":"65427cf400e02b306eaa04a0","limit":"100","offset":"0","withBindings":"true","translatable":"65427cf400e02b306eaa04a0"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript
const url = 'https://api.webflow.com/beta/pages/63c720f9347c2139b248e552/dom?localeId=65427cf400e02b306eaa04a0&limit=100&offset=0&withBindings=true&translatable=65427cf400e02b306eaa04a0';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.webflow.com/beta/pages/63c720f9347c2139b248e552/dom?localeId=65427cf400e02b306eaa04a0&limit=100&offset=0&withBindings=true&translatable=65427cf400e02b306eaa04a0"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.webflow.com/beta/pages/63c720f9347c2139b248e552/dom?localeId=65427cf400e02b306eaa04a0&limit=100&offset=0&withBindings=true&translatable=65427cf400e02b306eaa04a0")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.webflow.com/beta/pages/63c720f9347c2139b248e552/dom?localeId=65427cf400e02b306eaa04a0&limit=100&offset=0&withBindings=true&translatable=65427cf400e02b306eaa04a0")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.webflow.com/beta/pages/63c720f9347c2139b248e552/dom?localeId=65427cf400e02b306eaa04a0&limit=100&offset=0&withBindings=true&translatable=65427cf400e02b306eaa04a0', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.webflow.com/beta/pages/63c720f9347c2139b248e552/dom?localeId=65427cf400e02b306eaa04a0&limit=100&offset=0&withBindings=true&translatable=65427cf400e02b306eaa04a0");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.webflow.com/beta/pages/63c720f9347c2139b248e552/dom?localeId=65427cf400e02b306eaa04a0&limit=100&offset=0&withBindings=true&translatable=65427cf400e02b306eaa04a0")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```