ClickFunnels Page API

> Page offers extra information about ClickFunnels pages, like those that are part of funnels. It's the main element that the user modifies when editing a Page in the ClickFunnels editor. You can also learn how to source Page name and public ID from your ClickFunnels UI [here](https://developers.myclickfunnels.com/docs/filtering-by-page). See the [Pages Skill](https://accounts.myclickfunnels.com/.well-known/pages/skill.md) for [building a page](https://accounts.myclickfunnels.com/.well-known/pages/skill.md#building-a-page) and [positioning it within a funnel](https://accounts.myclickfunnels.com/.well-known/pages/skill.md#positioning-a-page-within-a-funnel); the page body is authored in PML — see the [Page Markup Skill](https://accounts.myclickfunnels.com/.well-known/page-markup/skill.md). For pages you host yourself, see [Create an External Page](https://accounts.myclickfunnels.com/.well-known/sdk/create-external-page/skill.md) and [Add Checkout to an External Page](https://accounts.myclickfunnels.com/.well-known/sdk/add-checkout/skill.md). To move those externally-hosted pages to a new domain, see [Migrate an External Page Domain](https://accounts.myclickfunnels.com/.well-known/sdk/migrate-external-page-domain/skill.md).

Operations 8

GET /workspaces/{workspace_id}/pages List Pages #
POST /workspaces/{workspace_id}/pages Create Page #
POST /workspaces/{workspace_id}/pages/external Create External Page #
GET /pages/{id} Fetch Page #
PUT /pages/{id} Update Page #
DELETE /pages/{id} Delete Page #
DELETE /pages/{id}/products Remove Products from Page #
GET /pages/{page_id}/stats Fetch Page Stats #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/clickfunnels-page-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

clickfunnels-page-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ClickFunnels Page API
  termsOfService: https://www.clickfunnels.com/terms-of-service
  contact:
    name: ClickFunnels API Team
    url: https://developers.myclickfunnels.com
  x-logo:
    url: https://statics.myclickfunnels.com/image/1126065/file/31edf05760fafe41a82f16a668ab251f.png
  description: 'The ClickFunnels REST API that powers webhooks, native integrations, and Zapier lets you manage your ClickFunnels data, automate your workflows, and recreate ClickFunnels functionality in your own apps.

    '
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  version: 2.0.0
servers:
- url: https://{subdomain}.myclickfunnels.com/api/v2
  description: ClickFunnels API
  variables:
    subdomain:
      default: myworkspace
security:
- BearerAuth: []
tags:
- name: Page
  description: '> Page offers extra information about ClickFunnels pages, like those that are part of funnels.


    It''s the main element that the user modifies when editing a Page in the ClickFunnels editor.


    You can also learn how to source Page name and public ID from your ClickFunnels UI

    [here](https://developers.myclickfunnels.com/docs/filtering-by-page).


    See the [Pages Skill](https://accounts.myclickfunnels.com/.well-known/pages/skill.md) for [building a page](https://accounts.myclickfunnels.com/.well-known/pages/skill.md#building-a-page) and [positioning it within a funnel](https://accounts.myclickfunnels.com/.well-known/pages/skill.md#positioning-a-page-within-a-funnel); the page body is authored in PML — see the [Page Markup Skill](https://accounts.myclickfunnels.com/.well-known/page-markup/skill.md). For pages you host yourself, see [Create an External Page](https://accounts.myclickfunnels.com/.well-known/sdk/create-external-page/skill.md) and [Add Checkout to an External Page](https://accounts.myclickfunnels.com/.well-known/sdk/add-checkout/skill.md). To move those externally-hosted pages to a new domain, see [Migrate an External Page Domain](https://accounts.myclickfunnels.com/.well-known/sdk/migrate-external-page-domain/skill.md).

    '
paths:
  /workspaces/{workspace_id}/pages:
    get:
      tags:
      - Page
      summary: List Pages
      description: Page offers extra information about ClickFunnels pages, like those that are part of funnels.
      operationId: listPages
      parameters:
      - name: workspace_id
        in: path
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/sort_order'
      - $ref: '#/components/parameters/sort_property'
      - name: filter
        in: query
        description: 'Filter by available properties in query params, like this: `api/v2/resources?filter[id]=value&filter[another_property]=value1,value2`. Check our Filtering guide for examples and all about filtering [here](https://developers.myclickfunnels.com/docs/filtering).

          '
        required: false
        schema:
          type: object
          properties:
            id:
              type: string
              description: A comma-separated list of page IDs to filter by.
              example: 1,42
            theme_id:
              type: string
              description: A comma-separated list of theme IDs to filter by.
              example: 1,42
            funnel_pages:
              type: boolean
              description: Only show pages that belong to a funnel as opposed to standalone landing or site pages.
              example: true
            funnel_ids:
              type: string
              description: A comma-separated list of funnel IDs to filter pages by. Returns only pages belonging to the specified funnels.
              example: 123,456
        style: deepObject
        explode: true
      - $ref: '#/components/parameters/ExpandPageFields'
      responses:
        '200':
          description: OK
          headers:
            Pagination-Next:
              $ref: '#/components/headers/PaginationNext'
            Link:
              $ref: '#/components/headers/Link'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PageAttributes'
              example:
              - id: 61
                public_id: eldUyN
                workspace_id: 42000
                name: Great Page
                theme_id: null
                created_at: '2025-01-01T00:00:00.000Z'
                updated_at: '2025-01-01T00:00:00.000Z'
                type: funnel_page
                current_path: /great-page
                url: https://myteam.myclickfunnels.com/funnel-great-page
                show_page_step:
                  id: 100
                  public_id: xYz123
                  name: Great Page Step
                  current_path: /funnel-great-page
                  sort_order: 0
                  products: []
                funnel:
                  id: 50
                  public_id: AbC789
                  name: Sales Funnel
                sdk: null
                description: null
                seo_description: null
                seo_index: false
                seo_title: null
              - id: 62
                public_id: AtcUVH
                workspace_id: 42000
                name: Landing Page
                theme_id: null
                created_at: '2025-01-01T00:00:00.000Z'
                updated_at: '2025-01-01T00:00:00.000Z'
                type: landing_page
                current_path: /landing-page
                url: https://myteam.myclickfunnels.com/landing-page
                show_page_step: null
                funnel: null
                sdk: null
                description: null
                seo_description: null
                seo_index: false
                seo_title: null
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              example:
                error: API key missing or invalid
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Not found - This usually happens when you try to access a record that does not exist in your account. It can also happen when the provided parent record is missing, e.g. you have put in a non-existent Workspaces parent ID.
              example:
                error: 'Not found: Record missing'
    post:
      tags:
      - Page
      summary: Create Page
      description: 'Create a new internal page in the workspace. By default, creating a page without references to a funnel or show page step will create a standalone landing page.


        You can optionally attach the page to a funnel by providing either:

        - `funnel.funnel_id`: Creates a new show page step in the specified funnel. When provided without `show_page_step_id`, the page is added as the last step of the funnel, positioned after the currently last page.

        - `funnel.show_page_step_id`: Swaps the referenced step to point at this newly created page. The page previously linked to that step becomes an orphan (kept in the workspace, no longer linked to any step).


        **`sort_order`** (optional, top-level): Controls the zero-based position within the funnel when creating with `funnel.funnel_id`. `0` inserts before the first existing step; omit to append at the end. Out-of-bounds values (negative or greater than the current step count) return 422. `sort_order` is ignored when `funnel.show_page_step_id` is used — the swap target''s current position is preserved.


        **`funnel.after_show_page_step_id`** (optional, with `funnel.funnel_id`): Insert the new step right after the referenced show page step — also places the page inside a split branch. Alternative to `sort_order`. An id that does not resolve to a step in the funnel returns 400.


        To also attach products to the page''s checkout step in the same call, pass `show_page_step.product_ids: [...]` (sibling of `funnel`). This is the only way to set products at create time — the legacy `funnel.products` shape is rejected with a 400. Products attachment is **additive** and **all-or-nothing**: any unresolved id fails the whole request and the page is not created.


        **Order bumps**: pass `show_page_step.bumps: [{product_id, preheadline}]` (same semantics as `product_ids`) to attach products as order bumps instead of main products, each with its own optional `preheadline` — the line of copy shown above that bump''s offer. A product may appear in only one of the two blocks per request; naming it in both returns a 400.


        **`external_url` is rejected** — to create an externally-hosted (SDK) page use `POST /api/v2/workspaces/:workspace_id/pages/external`.

        '
      operationId: createPage
      externalDocs:
        description: Pages Skill - building a page (PML body)
        url: https://accounts.myclickfunnels.com/.well-known/pages/skill.md#building-a-page
      parameters:
      - name: workspace_id
        in: path
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/ExpandPageFields'
      requestBody:
        description: Information about the Page to create
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                page:
                  type: object
                  $ref: '#/components/schemas/PageParameters'
            example:
              page:
                name: My New Page
                current_path: /my-new-page
                theme_id: 12345
                description: A landing page for our new product launch
                seo_title: New Product Launch - My Brand
                seo_description: Discover our latest product offering
                seo_index: true
                funnel:
                  funnel_id: xyz789
                show_page_step:
                  product_ids:
                  - PrdAbc
                head_code: <script>console.log('hello');</script>
                head_code_mode: append
                markup: "<section>\n  <row cols=\"1\">\n    <column>\n      <headline>Welcome to our page</headline>\n      <subheadline>Start your journey here</subheadline>\n    </column>\n  </row>\n</section>\n"
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageAttributes'
              example:
                id: 70
                public_id: NewPgX
                workspace_id: 42000
                name: My New Page
                theme_id: 12345
                created_at: '2025-01-01T00:00:00.000Z'
                updated_at: '2025-01-01T00:00:00.000Z'
                type: funnel_page
                current_path: /my-new-page-xyz123
                url: https://myteam.myclickfunnels.com/my-new-page
                show_page_step:
                  id: 200
                  public_id: StpNew
                  name: My New Page
                  current_path: /my-new-page
                  sort_order: 0
                  products: []
                funnel:
                  id: 100
                  public_id: xyz789
                  name: Target Funnel
                sdk: null
                description: null
                seo_description: null
                seo_index: false
                seo_title: null
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              examples:
                invalid_funnel_id:
                  summary: Invalid funnel_id
                  value:
                    error: 'Bad request: The funnel with the provided ID cannot be found.'
                invalid_show_page_step_id:
                  summary: Invalid show_page_step_id
                  value:
                    error: 'Bad request: The step with the provided ID cannot be found.'
                invalid_code_mode:
                  summary: Invalid code mode
                  value:
                    error: 'Bad request: Invalid code mode ''invalid''. Must be ''append'' or ''replace''.'
                invalid_markup:
                  summary: Invalid PML markup
                  value:
                    error: 'Bad request: Markup is not valid PML: unknown top-level element(s) <foo>. Top-level elements must be one of: <section>, <row>, <column>, <flex>, <headline>, <subheadline>, <paragraph>, <image>, <input>, <button>, <list>, <video>, <divider>, <link>, <countdown>, <accordion>, <customhtml>, <product-carousel>, <order-summary>, <checkout>, <confirmation>, <product-name>, <product-description>, <product-price>, <product-image>, <product-link>, <saved-section>. (line 3)'
                product_in_both_lists:
                  summary: a product is named as both a main product and an order bump
                  value:
                    error: 'Bad request: Product(s) cannot be listed in both product_ids and bumps: PrdBmp'
                bumps_entry_without_product_id:
                  summary: a show_page_step.bumps entry is missing its product_id
                  value:
                    error: 'Bad request: Every show_page_step.bumps entry requires a product_id.'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              example:
                error: API key missing or invalid
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              example:
                error: 'Not found: Record missing'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              examples:
                name_blank:
                  summary: Name is blank
                  value:
                    error: 'Request unprocessable: Name can''t be blank'
                external_url_rejected:
                  summary: external_url is not allowed on this endpoint
                  value:
                    error: 'Request unprocessable: The following fields are not valid on this endpoint: external_url. Use POST /api/v2/workspaces/:workspace_id/pages/external to create externally-hosted (SDK) pages.'
                out_of_bounds_sort_order:
                  summary: sort_order out of bounds
                  value:
                    error: 'Request unprocessable: sort_order 5 is out of bounds (funnel has 3 step(s)).'
  /workspaces/{workspace_id}/pages/external:
    post:
      tags:
      - Page
      summary: Create External Page
      description: '> **Closed Alpha** — not yet enabled for all workspaces. Request access at https://developers.myclickfunnels.com/page/code-support.


        Create an externally-hosted (SDK) page. Unlike internal pages, the visual content lives on your own domain and is registered with ClickFunnels via a lightweight SDK integration.


        **Required fields:**

        - `external_url`: The fully-qualified URL where your page is hosted.


        **Standalone vs in a funnel:** the `funnel` block is optional.

        - Omit it to create a **standalone** external page: registered with an SDK token and visit tracking enabled, but not a step in any funnel. Place it later by passing its id in a conditional split''s `branches[].page_id`, a split test''s fresh-variant slot, an update swap (`funnel.show_page_step_id`), or the funnel `attach_page` flow. SDK checkout and form submission require placement and return a `page_not_in_funnel` error until the page is a funnel step.

        - Provide `funnel.funnel_id` OR `funnel.show_page_step_id` to create it inside a funnel in one call.


        **Funnel positioning:**

        - `funnel.funnel_id` + optional `sort_order`: Creates a new show page step in the funnel at the specified zero-based position (`0` = first, omit = append at end).

        - `funnel.show_page_step_id`: Swaps the existing step to point at the new external page. The previous page on that step becomes an orphan. `sort_order` is ignored in this case.

        - Positioning params without their funnel target return 422: `sort_order` requires `funnel.funnel_id`, and `funnel.after_show_page_step_id` requires `funnel.funnel_id`.


        **Rejected fields** (returns 422 if present): `markup`, `theme_id`, `current_path`, `seo_title`, `seo_description`, `seo_index`, `head_code`, `footer_code`, `live_data_changes`, `show_page_step.product_ids`, `show_page_step.bumps`. Attach products and order bumps in a follow-up `PATCH /api/v2/pages/:id`.


        **SDK onboarding:** The response includes an `sdk` block with a `token` (prefixed `cfp_`). To register the page:

        1. Add `<meta name="cf-page-token" content="<token>">` to your page''s `<head>`.

        2. Include the ClickFunnels SDK script tag on the page.


        The [Create an External Page Skill](https://accounts.myclickfunnels.com/.well-known/sdk/create-external-page/skill.md) is the end-to-end guide for the page itself. To sell products from that page, see [Add Checkout to an External Page](https://accounts.myclickfunnels.com/.well-known/sdk/add-checkout/skill.md).

        '
      operationId: createExternalPage
      externalDocs:
        description: SDK Skill - create an external page
        url: https://accounts.myclickfunnels.com/.well-known/sdk/create-external-page/skill.md#the-entire-public-surface
      parameters:
      - name: workspace_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: Information about the external page to create
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - page
              properties:
                page:
                  type: object
                  required:
                  - external_url
                  properties:
                    name:
                      type: string
                      description: Page name. Defaults to the URL host if omitted.
                    description:
                      type:
                      - string
                      - 'null'
                      description: A short description of the page (max 1000 characters).
                    external_url:
                      type: string
                      description: The fully-qualified URL of the externally-hosted page (e.g. `https://acme.example.com/my-page`). Must be unique within the workspace.
                    sort_order:
                      type: integer
                      description: Optional zero-based position within the funnel when using `funnel.funnel_id` (422 without it). `0` inserts before the first step; omit to append. Ignored when `funnel.show_page_step_id` is used.
                    funnel:
                      type: object
                      description: Optional funnel association — provide either `funnel_id` or `show_page_step_id`. Omit the whole block to create a standalone external page (no funnel step).
                      properties:
                        funnel_id:
                          type: string
                          description: The public ID of the funnel to attach this page to.
                        after_show_page_step_id:
                          type:
                          - integer
                          - string
                          description: 'With `funnel_id`: insert the new step right after this show page step (pass the `show_page_step_id` from GET /funnels/:id/structure; also places the page inside a split branch). Alternative to `sort_order`.'
                        show_page_step_id:
                          type:
                          - integer
                          - string
                          description: The ID of an existing show page step to swap this page onto.
            example:
              page:
                name: My External Landing Page
                external_url: https://acme.example.com/my-page
                funnel:
                  funnel_id: xyz789
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageAttributes'
              example:
                id: 71
                public_id: ExtPgY
                workspace_id: 42000
                name: My External Landing Page
                description: null
                theme_id: null
                seo_title: null
                seo_description: null
                seo_index: false
                created_at: '2025-01-01T00:00:00.000Z'
                updated_at: '2025-01-01T00:00:00.000Z'
                type: funnel_page
                current_path: null
                url: https://acme.example.com/my-page
                show_page_step:
                  id: 201
                  public_id: StpExt
                  name: My External Landing Page
                  current_path: null
                  sort_order: 0
                  products: []
                funnel:
                  id: 100
                  public_id: xyz789
                  name: Target Funnel
                sdk:
                  token: cfp_abc123def456
                  external_url: https://acme.example.com/my-page
        '400':
          description: Bad Request — a referenced funnel or step id could not be resolved.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              example:
                error: 'Bad request: The funnel or show_page_step with the provided ID cannot be found.'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              example:
                error: API key missing or invalid
        '403':
          description: Forbidden — external (SDK) page access is not enabled for this workspace.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              example:
                error: 'Forbidden: External (SDK) pages are in Closed Alpha. Request access at https://developers.myclickfunnels.com/page/code-support.'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              example:
                error: 'Not found: Record missing'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              examples:
                missing_external_url:
                  summary: external_url is required
                  value:
                    error: 'Request unprocessable: external_url is required for external pages.'
                unknown_funnel_keys:
                  summary: funnel block has unsupported keys
                  value:
                    error: 'Request unprocessable: page.funnel has unsupported keys: funnelId. Accepted keys: funnel_id, show_page_step_id, after_show_page_step_id.'
                positioning_without_target:
                  summary: positioning param without funnel.funnel_id
                  value:
                    error: 'Request unprocessable: funnel.after_show_page_step_id requires funnel.funnel_id; omit the funnel block to create a standalone external page.'
                rejected_fields:
                  summary: forbidden fields present
                  value:
                    error: 'Request unprocessable: The following fields are not valid for external pages: markup, theme_id.'
                out_of_bounds_sort_order:
                  summary: sort_order out of bounds
                  value:
                    error: 'Request unprocessable: sort_order 5 is out of bounds (funnel has 3 step(s)).'
                malformed_external_url:
                  summary: external_url is not a valid URL
                  value:
                    error: 'Request unprocessable: Validation failed: URL is not a valid URL (expected something like https://example.com/my-page)'
                duplicate_url:
                  summary: external_url already in use
                  value:
                    error: 'Request unprocessable: Validation failed: URL is already in use by another external page in this workspace'
  /pages/{id}:
    get:
      tags:
      - Page
      summary: Fetch Page
      description: Page offers extra information about ClickFunnels pages, like those that are part of funnels.
      operationId: getPages
      parameters:
      - $ref: '#/components/parameters/id'
      - $ref: '#/components/parameters/ExpandPageFields'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageAttributes'
              example:
                id: 63
                public_id: iUMTqF
                workspace_id: 42000
                name: Great Page
                theme_id: null
                created_at: '2025-01-01T00:00:00.000Z'
                updated_at: '2025-01-01T00:00:00.000Z'
                type: funnel_page
                current_path: /great-page-canonical
                url: https://myteam.myclickfunnels.com/great-page
                show_page_step:
                  id: 150
                  public_id: StpAbc
                  name: Great Page Step
                  current_path: /great-page
                  sort_order: 0
                  products: []
                funnel:
                  id: 75
                  public_id: FnlDef
                  name: Great Funnel
                sdk: null
                description: null
                seo_description: null
                seo_index: false
                seo_title: null
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              example:
                error: API key missing or invalid
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              example:
                error: 'Not found: Record missing'
    put:
      tags:
      - Page
      summary: Update Page
      description: 'Update an existing page. Works for both internal and external (SDK) pages.


        > **Closed Alpha note:** updating an **external** page requires external (SDK) page access — not yet enabled for all workspaces (403 otherwise). Request access at https://developers.myclickfunnels.com/page/code-support. Internal page updates are unaffected.


        Field availability depends on the page type — see `PageParametersUpdate` for the full breakdown. Sending an internal-only field on an external page (or `external_url` on an internal page) returns 422 with an explicit list of the rejected field names — never silently ignored.


        **`sort_order`** (optional, top-level): Reposition the page within its funnel. Zero-based. Ignored when `funnel.show_page_step_id` is also provided.


        **`funnel.show_page_step_id`** (optional): Swap the page onto an existing show page step. The previous page on that step becomes an orphan. Shared by both page types.


        **`external_url`** (external pages only): Update the external URL. The SDK token is preserved.


        **`show_page_step.product_ids` / `show_page_step.bumps`** (optional, both page types): Append products to the page''s checkout step as main products or as order bumps. Both are additive; `bumps` also promotes a product already attached to the step into a bump, which is how an existing attachment becomes one. Each `bumps` entry is `{product_id, preheadline}`, where `preheadline` is the optional copy shown above that bump''s offer. Requires the page to be part of a funnel (400 otherwise).


        **`markup`** (internal pages only): Replaces the page''s entire tree. PML covers only a subset of what the ClickFunnels page editor can build, so if this page could have been created or edited in the editor, stop and get explicit approval from the user first: see [the approval guardrail](https://accounts.myclickfunnels.com/.well-known/page-markup/skill.md#stop-get-approval-before-overwriting-an-existing-page).


        To move externally-hosted pages to a new domain, see [Patch one page at a time](https://accounts.myclickfunnels.com/.well-known/sdk/migrate-external-page-domain/skill.md#4-patch-one-page-at-a-time) in the [Migrate an External Page Domain Skill](https://accounts.myclickfunnels.com/.well-known/sdk/migrate-external-page-domain/skill.md).

        '
      operationId: updatePages
      externalDocs:
        description: Pages Skill - building a page (PML body)
        url: https://accounts.myclickfunnels.com/.well-known/pages/skill.md#building-a-page
      parameters:
      - $ref: '#/components/parameters/id'
      - $ref: '#/components/parameters/ExpandPageFields'
      requestBody:
        description: Information about updated fields in Page
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                page:
                  type: object
                  $ref: '#/components/schemas/PageParametersUpdate'
            example:
              page:
                name: Example Page
                description: Updated page description
                seo_title: Updated SEO Title
                seo_description: Updated meta description
                seo_index: true
                head_code: <script>console.log('updated');</script>
                head_code_mode: append
                markup: "<section>\n  <row cols=\"1\">\n    <column>\n      <headline>Welcome to our page</headline>\n      <subheadline>Start your journey here</subheadline>\n    </column>\n  </row>\n</section>\n"
                show_page_step:
                  product_ids:
                  - PrdXyz
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageAttributes'
              example:
                id: 66
                public_id: ZkTthQ
                workspace_id: 42000
                name: Updated Page
                theme_id: null
                created_at: '2025-01-01T00:00:00.000Z'
                updated_at: '2025-01-01T00:00:00.000Z'
                type: funnel_page
                current_path: /updated-page-canonical
                url: https://myteam.myclickfunnels.com/updated-page
                show_page_step:
                  id: 160
                  public_id: StpUpd
                  name: Updated Page Step
                  current_path: /updated-page
                  sort_

# --- truncated at 32 KB (84 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/clickfunnels/refs/heads/main/openapi/clickfunnels-page-api-openapi.yml