Skip to main content

List All Pages

Retrieve all pages for a project.
string
required
The brand/project ID
Request
cURL

Get Page Details

Retrieve details about a specific page.
string
required
The brand/project ID
string
required
The page ID
Request
cURL

Create Page

Create a new page.
string
required
The brand/project ID
string
required
Page title
string
Page builder type: must be editor (optional if html is provided, required otherwise)
string
URL-friendly slug (optional, auto-generated if not provided)
string
Page status: published, draft, offline, imported (default: draft)
string
Raw HTML content (automatically sets page_type to editor). If this HTML contains <inline-split-test>, the Pages API stores that source markup as provided.
number
Custom domain ID (optional)
number
Funnel ID to associate with (optional)
number
Folder ID to organize page (optional)
boolean
Set as index page (default: false)
string
Custom CSS styles
string
Template type: nutra-prelander, nutra-advertorial, leadgen, webinar-registration
string
Template ID to use (optional)
string
SEO meta title
string
Alternative title when tab is not focused
string
SEO meta description
boolean
Require user login to access
boolean
Require password to access
string
Page password (required if requires_password is true)
string
URL to redirect to
string
Google Analytics measurement ID
string
Meta (Facebook) Pixel ID
string
Custom JavaScript code
boolean
Mark as upsell page
boolean
Show affiliate tracking pixels
boolean
Disable default tracking scripts
Request

Create Basic Page

cURL

Create Page with HTML

cURL
  • When you provide html in the request, page_type is automatically set to editor, so you don’t need to specify it
  • The API only supports editor type pages. The visual drag-and-drop builder is available only through the web dashboard
  • On update, providing html will automatically convert the page to editor type if it isn’t already
  • If your html contains <inline-split-test>, the create/update response returns stored source HTML, not the runtime-resolved winning variant HTML

Inline Split Test HTML in Pages API

When you send <inline-split-test> markup through POST /api/brands/{brand}/pages or PUT /api/brands/{brand}/pages/{page}:
  • The endpoint stores the full source HTML you send in html
  • The response does not replace the tag with the chosen runtime variant
  • The public Pages API does not inject the auto-managed id attribute during create/update
Example request body:
Example create response shape:
Response
Runtime rendering is different from the API response. When a visitor loads the page, the server replaces the entire block with the chosen variant wrapped like this:
If you use a save flow that returns normalized inline split test HTML with a server-generated id, replace your local/source HTML with that returned HTML before the next update. This only matters when your next request includes html again. If html is omitted because nothing changed, the existing stored HTML stays unchanged. Re-sending the original <inline-split-test> markup without the injected id in a later html update can cause the server to create a new split test record on every save.

Update Page

Update an existing page. Only include the fields you want to change.
Common causes of errors on PUT/PATCH:
string
required
The brand/project ID
string
required
The page ID
string
required
Page title
string
URL-friendly slug
string
Page status: published, draft, offline, imported
number
Custom domain ID
number
Folder ID to organize page
boolean
Set as index page
string
Raw HTML content (automatically sets page_type to editor). If this HTML contains <inline-split-test>, the Pages API stores that source markup as provided.
string
Custom CSS styles
string
SEO meta title
string
Alternative title when tab is not focused
string
SEO meta description
boolean
Require user login to access
boolean
Require password to access
string
Page password
string
URL to redirect to
boolean
Disable right-click on page
boolean
Prevent search engine indexing
boolean
Only accessible through funnel flow
string
Google Analytics measurement ID
string
Meta (Facebook) Pixel ID
string
Custom header code
string
Custom JavaScript code (must be valid script tags only)
boolean
Mark as upsell page
boolean
Show affiliate tracking pixels
boolean
Disable default tracking scripts
Request

Update Basic Information

cURL

Update page title and status

cURL

Update HTML content

cURL
Providing html automatically converts the page to editor type if it isn’t already.

Update SEO settings

cURL

Page Types and Fields

API Page Type: Editor Only

The API only supports creating editor pages. The visual drag-and-drop builder is only available through the web dashboard interface.
Editor Pages allow direct HTML/CSS editing through the API:
  • html - Raw HTML content
  • css - Custom CSS styles
  • page_type - Must be editor (or automatically set when html is provided)

Automatic Editor Type Assignment

When you provide the html field in a create or update request, the page is automatically set to editor type, even if you don’t specify page_type.

Update Behavior

When updating pages:
  • Only provided fields are updated - omitted fields remain unchanged
  • html field is updated if provided in the request
  • css field is updated if provided in the request
  • Providing html will automatically set/update page_type to editor
  • Empty strings will clear the field value

Custom JavaScript Validation

The custom_javascript field must contain only valid <script> tags. HTML comments and <noscript> tags are allowed.

Delete Page

Delete a page.
string
required
The brand/project ID
string
required
The page ID
Request
cURL

Plan Limits and Errors

When creating pages, the API checks against your plan limits:

Plan Limit Exceeded Error

Status Code: 422 Unprocessable Entity

Plan Feature Not Available Error

Status Code: 422 Unprocessable Entity

Clone Page

Create a copy of an existing page.
string
required
The brand/project ID
string
required
The page ID to clone
string
Name for the cloned page (optional, defaults to “Copy of [original name]”)
Request
cURL