AtomicatAtomicat
atomicat.ai
  • English
  • Español
  • Português
Atomicat
  • Website
  • App
  • Help center
API docs
  • Introduction
  • Authentication
  • API reference

© 2026 Atomicat

Information
Account
    Get the authenticated accountgetDownload the OpenAPI documentget
Projects
    List projectsgetCreate a projectpostSearch projectsgetGet a projectgetDelete an unused projectdeleteUpdate a projectpatch
Sites
    List sitesgetCreate a sitepostSearch sitesgetGet a siteget
Pages
    List pagesgetCreate a blank pagepostCreate a page from a templatepostDuplicate a pagepostUpdate page metadatapatchUpdate mapped page contentpatchReplace template variablespostCheck whether a page can be publishedpostPublish a pagepostGet a pagegetDelete a pagedeleteList page templatesgetSearch page templatesgetSearch pagesget
Builder
    Read the page buildergetRead one builder nodegetUpdate node fieldspatchReplace a builder nodepatchUpdate the page reveal delaypatchRead editable content fieldsget
Quizzes
    List quizzesgetCreate a quiz pagepostSearch quizzesgetGet a quizgetCreate a quiz from a templatepost
Funnels
    List funnelsgetCreate a funnelpostUpdate a funnelpatchSearch funnelsgetGet a funnelget
Videos
    List videosgetUpdate video player settingspatchSearch videosgetGet a videoget
Products
    List productsgetCreate a productpostUpdate a productpatchSearch productsgetGet a productgetDelete a productdelete
Leads
    Search leadsget
Analytics
    Get account countsget
Webhooks
    Subscribe to an eventpostDisable a webhook subscriptiondeleteGet a sample webhook payloadget
Schemas
Atomicat API
Atomicat API

Pages

Download schema

Create, edit, publish, and delete pages.


List pages

GET
https://automation.atomicat-api.com/api/automation/v1
/pages

Required scope: pages:read.

List pages › query Parameters

limit
​integer · min: 1 · max: 100

Maximum number of records. Defaults to 50 and cannot exceed 100.

Default: 50
page
​integer · min: 0

Zero-based page index. The API returns limit records starting at page × limit.

Default: 0
project_id
​string

Only records in this project.

site_id
​string

Only pages on this site.

published
​boolean

true for published pages, false for drafts.

is_quiz
​boolean

true to return only quiz pages.

has_element
​string

Only pages whose builder contains this element type.

available_for_funnel
​boolean

true to hide pages already used in a funnel.

List pages › Responses

Matching records. The body is a JSON array.

​Page[]
Page
id
​string

Page id.

name
​string

Display name. Includes the site name in parentheses when the page is on a site.

page_name
​string

Page name without the site suffix.

status
​string

published or draft.

is_quiz
​boolean

true when the page is a quiz.

project_id
​string | null

Project id.

site_id
​string | null

Site id once the page is attached to a site.

site_name
​string | null

Site name.

domain
​string | null

Published domain.

slug
​string | null

Path on the site. Empty means the site root.

url
​string | null

Public URL after publish.

edit_url
​string

Link to the page in the Atomicat builder.

created_at
​string | null

ISO-8601 timestamp.

updated_at
​string | null

ISO-8601 timestamp.

published_at
​string | null

ISO-8601 publish time.

GET/pages
curl --request GET \ --url https://automation.atomicat-api.com/api/automation/v1/pages
Example Responses
[ { "id": "page_123", "name": "Main Offer", "page_name": "Main Offer", "status": "draft", "is_quiz": false, "project_id": "project_123", "site_id": null, "site_name": null, "domain": null, "slug": "", "url": null, "edit_url": "https://app.atomicat.com.br/builder/page_123", "created_at": "2026-09-26T12:00:00.000Z", "updated_at": "2026-09-26T12:00:00.000Z", "published_at": null } ]
json
application/json

Create a blank page

POST
https://automation.atomicat-api.com/api/automation/v1
/pages

Creates a draft page. Publish it later with POST /pages/publish.

Required scope: pages:write.

Create a blank page › Request Body

PageCreate
name
​string · required

Page name.

project_id
​string

Project id.

Create a blank page › Responses

The created page.

Page
id
​string

Page id.

name
​string

Display name. Includes the site name in parentheses when the page is on a site.

page_name
​string

Page name without the site suffix.

status
​string

published or draft.

is_quiz
​boolean

true when the page is a quiz.

project_id
​string | null

Project id.

site_id
​string | null

Site id once the page is attached to a site.

site_name
​string | null

Site name.

domain
​string | null

Published domain.

slug
​string | null

Path on the site. Empty means the site root.

url
​string | null

Public URL after publish.

edit_url
​string

Link to the page in the Atomicat builder.

created_at
​string | null

ISO-8601 timestamp.

updated_at
​string | null

ISO-8601 timestamp.

published_at
​string | null

ISO-8601 publish time.

POST/pages
curl --request POST \ --url https://automation.atomicat-api.com/api/automation/v1/pages \ --header 'Content-Type: application/json' \ --data ' { "name": "name", "project_id": "project_id" } '
Example Request Body
{ "name": "name", "project_id": "project_id" }
json
Example Responses
{ "id": "page_123", "name": "Main Offer", "page_name": "Main Offer", "status": "draft", "is_quiz": false, "project_id": "project_123", "site_id": null, "site_name": null, "domain": null, "slug": "", "url": null, "edit_url": "https://app.atomicat.com.br/builder/page_123", "created_at": "2026-09-26T12:00:00.000Z", "updated_at": "2026-09-26T12:00:00.000Z", "published_at": null }
json
application/json

Create a page from a template

POST
https://automation.atomicat-api.com/api/automation/v1
/pages/from-template

Required scope: pages:write.

Create a page from a template › Request Body

PageFromTemplate
template_id
​string · required

Template id from GET /templates.

name
​string

Name for the new page.

site_id
​string

Site to attach, if any.

project_id
​string

Project id.

Create a page from a template › Responses

The cloned page.

Page
id
​string

Page id.

name
​string

Display name. Includes the site name in parentheses when the page is on a site.

page_name
​string

Page name without the site suffix.

status
​string

published or draft.

is_quiz
​boolean

true when the page is a quiz.

project_id
​string | null

Project id.

site_id
​string | null

Site id once the page is attached to a site.

site_name
​string | null

Site name.

domain
​string | null

Published domain.

slug
​string | null

Path on the site. Empty means the site root.

url
​string | null

Public URL after publish.

edit_url
​string

Link to the page in the Atomicat builder.

created_at
​string | null

ISO-8601 timestamp.

updated_at
​string | null

ISO-8601 timestamp.

published_at
​string | null

ISO-8601 publish time.

POST/pages/from-template
curl --request POST \ --url https://automation.atomicat-api.com/api/automation/v1/pages/from-template \ --header 'Content-Type: application/json' \ --data ' { "template_id": "template_id", "name": "name", "site_id": "site_id", "project_id": "project_id" } '
Example Request Body
{ "template_id": "template_id", "name": "name", "site_id": "site_id", "project_id": "project_id" }
json
Example Responses
{ "id": "page_123", "name": "Main Offer", "page_name": "Main Offer", "status": "draft", "is_quiz": false, "project_id": "project_123", "site_id": null, "site_name": null, "domain": null, "slug": "", "url": null, "edit_url": "https://app.atomicat.com.br/builder/page_123", "created_at": "2026-09-26T12:00:00.000Z", "updated_at": "2026-09-26T12:00:00.000Z", "published_at": null, "template_id": "template_123", "from_template": true }
json
application/json

Duplicate a page

POST
https://automation.atomicat-api.com/api/automation/v1
/pages/duplicate

Required scope: pages:write.

Duplicate a page › Request Body

PageDuplicate
page_id
​string · required

Page to copy.

new_name
​string

Name for the copy.

Duplicate a page › Responses

The duplicated page.

PageDuplicateResult
id
​string

New page id.

name
​string

New page name.

page_name
​string

New page name.

source_page_id
​string

Id of the page that was copied.

edit_url
​string

Builder URL.

POST/pages/duplicate
curl --request POST \ --url https://automation.atomicat-api.com/api/automation/v1/pages/duplicate \ --header 'Content-Type: application/json' \ --data ' { "page_id": "page_id", "new_name": "new_name" } '
Example Request Body
{ "page_id": "page_id", "new_name": "new_name" }
json
Example Responses
{ "id": "page_456", "name": "Main Offer copy", "page_name": "Main Offer copy", "source_page_id": "page_123", "edit_url": "https://app.atomicat.com.br/builder/page_456" }
json
application/json

Update page metadata

PATCH
https://automation.atomicat-api.com/api/automation/v1
/pages/metadata

page_id is required, plus at least one of name, project_id, tags, or product_label. tags can be an array or a comma-separated string.

Required scope: pages:write.

Update page metadata › Request Body

PageMetadata
page_id
​string · required

Page id.

name
​string

New name.

project_id
​string

New project id.

tags
​

Array of tag names, or a comma-separated string.

product_label
​string

Product label shown on the page. produkt is accepted as an alias.

Update page metadata › Responses

The updated metadata.

PageMetadataResult
id
​string

Page id.

page_id
​string

Page id.

updated
​boolean

true when the update was saved.

name
​string | null

Name after the update.

project_id
​string | null

Project id after the update.

tags
​

Tags after the update.

product_label
​string | null

Product label after the update.

PATCH/pages/metadata
curl --request PATCH \ --url https://automation.atomicat-api.com/api/automation/v1/pages/metadata \ --header 'Content-Type: application/json' \ --data ' { "page_id": "page_id", "name": "name", "project_id": "project_id", "tags": {}, "product_label": "product_label" } '
Example Request Body
{ "page_id": "page_id", "name": "name", "project_id": "project_id", "tags": {}, "product_label": "product_label" }
json
Example Responses
{ "id": "page_123", "page_id": "page_123", "updated": true, "name": "Main Offer", "project_id": "project_123", "tags": [ "sales" ], "product_label": "Starter kit" }
json
application/json

Update mapped page content

PATCH
https://automation.atomicat-api.com/api/automation/v1
/pages/content

updates is an object of content-map field keys to new values. Read the keys from GET /search/page-content-map. Unknown keys are returned in missing and are not applied.

Required scope: pages:write.

Update mapped page content › Request Body

PageContentUpdate
page_id
​string · required

Page id.

​object · required

Map of content-field keys to new values. A JSON string is also accepted.

Update mapped page content › Responses

The content update result.

PageContentResult
id
​string

Page id.

page_id
​string

Page id.

success
​boolean

true when the request completed.

applied_count
​number

Number of fields updated.

changed_section_count
​number

Number of sections rewritten.

missing_count
​number

Number of keys that were not found.

applied
​string

JSON string of applied updates.

missing
​string

JSON string of keys that were not applied.

PATCH/pages/content
curl --request PATCH \ --url https://automation.atomicat-api.com/api/automation/v1/pages/content \ --header 'Content-Type: application/json' \ --data ' { "page_id": "page_id", "updates": {} } '
Example Request Body
{ "page_id": "page_id", "updates": {} }
json
Example Responses
{ "id": "page_123", "page_id": "page_123", "success": true, "applied_count": 1, "changed_section_count": 1, "missing_count": 0, "applied": "[]", "missing": "[]" }
json
application/json

Replace template variables

POST
https://automation.atomicat-api.com/api/automation/v1
/pages/replace-variables

variables maps placeholder names to replacement text. Placeholders look like {{name}} inside the page.

Required scope: pages:write.

Replace template variables › Request Body

PageVariables
page_id
​string · required

Page id.

​object · required

Placeholder name to replacement text. A JSON string is also accepted.

Replace template variables › Responses

The replacement result.

PageVariablesResult
id
​string

Page id.

page_id
​string

Page id.

success
​boolean

true when the request completed.

replacement_count
​number

Number of replacements made.

changed_section_count
​number

Sections rewritten.

replaced_variables
​string

JSON string of variable names that were replaced.

remaining_variables
​string

JSON string of variables still on the page.

remaining_variable_count
​number

Count of remaining variables.

POST/pages/replace-variables
curl --request POST \ --url https://automation.atomicat-api.com/api/automation/v1/pages/replace-variables \ --header 'Content-Type: application/json' \ --data ' { "page_id": "page_id", "variables": { "key": "string" } } '
Example Request Body
{ "page_id": "page_id", "variables": { "key": "string" } }
json
Example Responses
{ "id": "page_123", "page_id": "page_123", "success": true, "replacement_count": 2, "changed_section_count": 1, "replaced_variables": "[\"headline\"]", "remaining_variables": "[]", "remaining_variable_count": 0 }
json
application/json

Check whether a page can be published

POST
https://automation.atomicat-api.com/api/automation/v1
/pages/validate-before-publish

ready_to_publish is false when the page has no sections or still contains template variables. issues, applied, and variable lists are JSON strings so list-style clients can store them.

Required scope: pages:read.

Check whether a page can be published › Request Body

PageIdBody
page_id
​string · required

Page id.

Check whether a page can be published › Responses

The validation result.

PageValidation
id
​string

Page id.

page_id
​string

Page id.

ready_to_publish
​boolean

true when no issues were found.

issue_count
​number

Number of issues.

issues
​string

JSON string of issue objects.

field_count
​number

Editable field count.

remaining_variable_count
​number

Variables still on the page.

remaining_variables
​string

JSON string of remaining variable names.

POST/pages/validate-before-publish
curl --request POST \ --url https://automation.atomicat-api.com/api/automation/v1/pages/validate-before-publish \ --header 'Content-Type: application/json' \ --data ' { "page_id": "page_id" } '
Example Request Body
{ "page_id": "page_id" }
json
Example Responses
{ "id": "page_123", "page_id": "page_123", "ready_to_publish": true, "issue_count": 0, "issues": "[]", "field_count": 4, "remaining_variable_count": 0, "remaining_variables": "[]" }
json
application/json

Publish a page

POST
https://automation.atomicat-api.com/api/automation/v1
/pages/publish

page_id and site_id are required. slug is the path on the site. An empty slug publishes at the site root.

Required scope: any of pages:publish, pages:write.

Publish a page › Request Body

PagePublish
page_id
​string · required

Page id.

site_id
​string · required

Site that will host the page.

slug
​string

Path on the site. Omit or send an empty string for the site root.

Publish a page › Responses

The publish result.

PagePublishResult
id
​string

Page id.

page_id
​string

Page id.

site_id
​string

Site id.

success
​boolean

true when publish succeeded.

url
​string | null

Public URL.

domain
​string | null

Published domain.

slug
​string

Published path.

revision_saved
​boolean

true when a revision was stored.

revision_warning
​string | null

Warning when the revision could not be stored.

POST/pages/publish
curl --request POST \ --url https://automation.atomicat-api.com/api/automation/v1/pages/publish \ --header 'Content-Type: application/json' \ --data ' { "page_id": "page_id", "site_id": "site_id", "slug": "slug" } '
Example Request Body
{ "page_id": "page_id", "site_id": "site_id", "slug": "slug" }
json
Example Responses
{ "id": "page_123", "page_id": "page_123", "site_id": "site_123", "success": true, "url": "https://example.com/offer", "domain": "example.com", "slug": "offer", "revision_saved": true, "revision_warning": null }
json
application/json

Get a page

GET
https://automation.atomicat-api.com/api/automation/v1
/pages/{pageId}

Reads a draft that has not appeared in the list yet, as well as published pages.

Required scope: pages:read.

Get a page › path Parameters

pageId
​string · required

Page id.

Get a page › Responses

The page.

Page
id
​string

Page id.

name
​string

Display name. Includes the site name in parentheses when the page is on a site.

page_name
​string

Page name without the site suffix.

status
​string

published or draft.

is_quiz
​boolean

true when the page is a quiz.

project_id
​string | null

Project id.

site_id
​string | null

Site id once the page is attached to a site.

site_name
​string | null

Site name.

domain
​string | null

Published domain.

slug
​string | null

Path on the site. Empty means the site root.

url
​string | null

Public URL after publish.

edit_url
​string

Link to the page in the Atomicat builder.

created_at
​string | null

ISO-8601 timestamp.

updated_at
​string | null

ISO-8601 timestamp.

published_at
​string | null

ISO-8601 publish time.

GET/pages/{pageId}
curl --request GET \ --url https://automation.atomicat-api.com/api/automation/v1/pages/:pageId
Example Responses
{ "id": "page_123", "name": "Main Offer", "page_name": "Main Offer", "status": "draft", "is_quiz": false, "project_id": "project_123", "site_id": null, "site_name": null, "domain": null, "slug": "", "url": null, "edit_url": "https://app.atomicat.com.br/builder/page_123", "created_at": "2026-09-26T12:00:00.000Z", "updated_at": "2026-09-26T12:00:00.000Z", "published_at": null }
json
application/json

Delete a page

DELETE
https://automation.atomicat-api.com/api/automation/v1
/pages/{pageId}

A draft with no site is deleted directly. A published page, or a page already attached to a site, is deleted through the site and must already have a site id. A published page without a site returns 400.

Required scope: pages:write.

Delete a page › path Parameters

pageId
​string · required

Page id.

Delete a page › Responses

The record was deleted.

Deleted
success
​boolean

true when the delete succeeded.

id
​string

Deleted record id.

deleted
​boolean

true when the record was removed.

DELETE/pages/{pageId}
curl --request DELETE \ --url https://automation.atomicat-api.com/api/automation/v1/pages/:pageId
Example Responses
{ "success": true, "id": "record_123", "deleted": true }
json
application/json

List page templates

GET
https://automation.atomicat-api.com/api/automation/v1
/templates

Required scope: pages:read.

List page templates › query Parameters

limit
​integer · min: 1 · max: 100

Maximum number of records. Defaults to 50 and cannot exceed 100.

Default: 50
query
​string

Case-insensitive text matched against the record name and related fields.

category
​string

Template category.

type
​string

Template type. Defaults to page.

template_id
​string

Exact template id.

List page templates › Responses

Matching records. The body is a JSON array.

​Template[]
Template
id
​string

Template id.

name
​string

Template name.

template_name
​string

Same as name.

category
​string | null

Template category.

type
​string

Template type, usually page.

description
​string | null

Template description.

preview_url
​string | null

Preview URL.

image_url
​string | null

Thumbnail URL.

GET/templates
curl --request GET \ --url https://automation.atomicat-api.com/api/automation/v1/templates
Example Responses
[ { "id": "template_123", "name": "Offer", "template_name": "Offer", "category": "sales", "type": "page", "description": null, "preview_url": null, "image_url": null } ]
json
application/json

Search page templates

GET
https://automation.atomicat-api.com/api/automation/v1
/search/templates

Same filters and response as GET /templates.

Required scope: pages:read.

Search page templates › query Parameters

limit
​integer · min: 1 · max: 100

Maximum number of records. Defaults to 50 and cannot exceed 100.

Default: 50
query
​string

Case-insensitive text matched against the record name and related fields.

category
​string

Template category.

type
​string

Template type.

template_id
​string

Exact template id.

Search page templates › Responses

Matching records. The body is a JSON array.

​Template[]
Template
id
​string

Template id.

name
​string

Template name.

template_name
​string

Same as name.

category
​string | null

Template category.

type
​string

Template type, usually page.

description
​string | null

Template description.

preview_url
​string | null

Preview URL.

image_url
​string | null

Thumbnail URL.

GET/search/templates
curl --request GET \ --url https://automation.atomicat-api.com/api/automation/v1/search/templates
Example Responses
[ { "id": "template_123", "name": "Offer", "template_name": "Offer", "category": "sales", "type": "page", "description": null, "preview_url": null, "image_url": null } ]
json
application/json

Search pages

GET
https://automation.atomicat-api.com/api/automation/v1
/search/pages

Matches name, title, domain, and slug. page_id returns a one-item array. The default limit for this search is 100.

Required scope: pages:read.

Search pages › query Parameters

limit
​integer · min: 1 · max: 100

Maximum number of records. Defaults to 50 and cannot exceed 100.

Default: 50
query
​string

Case-insensitive text matched against the record name and related fields.

page_id
​string

Exact page id.

Search pages › Responses

Matching records. The body is a JSON array.

​Page[]
Page
id
​string

Page id.

name
​string

Display name. Includes the site name in parentheses when the page is on a site.

page_name
​string

Page name without the site suffix.

status
​string

published or draft.

is_quiz
​boolean

true when the page is a quiz.

project_id
​string | null

Project id.

site_id
​string | null

Site id once the page is attached to a site.

site_name
​string | null

Site name.

domain
​string | null

Published domain.

slug
​string | null

Path on the site. Empty means the site root.

url
​string | null

Public URL after publish.

edit_url
​string

Link to the page in the Atomicat builder.

created_at
​string | null

ISO-8601 timestamp.

updated_at
​string | null

ISO-8601 timestamp.

published_at
​string | null

ISO-8601 publish time.

GET/search/pages
curl --request GET \ --url https://automation.atomicat-api.com/api/automation/v1/search/pages
Example Responses
[ { "id": "page_123", "name": "Main Offer", "page_name": "Main Offer", "status": "draft", "is_quiz": false, "project_id": "project_123", "site_id": null, "site_name": null, "domain": null, "slug": "", "url": null, "edit_url": "https://app.atomicat.com.br/builder/page_123", "created_at": "2026-09-26T12:00:00.000Z", "updated_at": "2026-09-26T12:00:00.000Z", "published_at": null } ]
json
application/json

SitesBuilder