API ReferenceView as MarkdownOpenAPI

Pages

View as Markdown

Pages (about pages) are the pages built in the editor or by the AI builder: a landing page, an "About us", a contact page, a legal page. A page is a list of containers - full-width sections - each holding columns, and each column holds components: text, headings, buttons, images, galleries, sliders, forms, and embeds of the site's products, services, blog posts and more. Pages also serve as reusable parts: the banner above the header, the content shown on a product page, the landing page behind a popup.

Endpoints that need a token: the site owner creates it in their admin (Developers > API reference). AI assistants: how to ask the user for one.

47 endpoints in 5 parts: About Page, About Page Import, Custom Page, Publish, AI builder.

Page components

A page's containers hold columns, and each column a list of components, each with a type and a size from 1 to 12 on the column's grid. These are the types.

emptyText

Empty space, for spacing.

hrText

A horizontal line across the component's width.

headingText

A heading.

textText

Rich text, stored as HTML in innerHTML.

collapsible_containerText

An accordion: questions or titles that open to show their answer - FAQs, details. Its look is in collapsible_container_settings. Settings in collapsible_container.

tabs_containerText

Tabs: the same items as an accordion, shown one at a time behind tab buttons. Settings in tabs.

text_auto_sliderText

A strip of phrases scrolling across endlessly - a marquee. Settings in text_auto_slider.

buttonButton

A button linking to an address (href) or a page of the site (router_link); its label is innerHTML, its look buttonOptions.

icon-0 … icon-9Icon

An icon with optional heading, sub-heading and text, in ten layouts (centred, left, right).

imgMedia

One image or video, optionally linking somewhere.

galleryMedia

A grid of images that open larger when clicked.

big-galleryMedia

One large image with thumbnails below to switch it.

carouselMedia

Images shown one at a time, with arrows and dots.

carousel-multipleMedia

Images shown several at a time, sliding.

hoverableMedia

An image that changes to another when the pointer is over it. Settings in hoverable_media.

image_draggerMedia

Two images on top of each other with a handle to drag between them - before and after. Settings in image_dragger.

image_auto_sliderMedia

A strip of images scrolling across endlessly. Settings in image_auto_slider.

prodProduct

One of the site's products, with its price and a button to buy. Settings in products.

prod_galleryProduct

A grid or slider of the site's products - the ones listed in products. Settings in products.

servService

One of the site's services, with a button to book it. Settings in services.

serv_galleryService

A grid or slider of the site's services - the ones listed in services. Settings in services.

blogBlog post

One blog post, as a card linking to it. Settings in blogposts.

blog_galleryBlog post

A grid or slider of the site's blog posts - the ones listed in blogposts. Settings in blogposts.

videoVideo

One of the site's videos. Settings in videos.

videos_galleryVideo

A gallery of the site's videos. Settings in videos.

formContact & form

A contact form; what visitors send arrives as a lead. Its fields are in contactForm. Settings in contactForm.

newsletterContact & form

A newsletter sign-up: name, email and a button. Settings in contactForm.

mapOther

A map, from embed code (usually Google Maps). Settings in map.

quizOther

A quiz: questions with answers, an explanation for each and a result by score. Settings in quiz.

swiperOther

A slider whose slides are other pages' sections. Settings in swiper.

facebookOther

An embedded Facebook page or post. Settings in facebook.

customOther

A custom block with its own HTML (innerHTML), CSS (innerCSS) and JavaScript (innerJS).

countdownOther

A countdown to a date, in boxes of days, hours, minutes and seconds; then a text of your choice. Settings in countdown.

smart_searchOther

Search over the site's content, with filters by kind, price and date and an optional AI answer. Settings in smart_search.

serv_multi_bookingService

The booking flow on a page: choose a service, a day, a time and a staff member, then confirm.

price_plansOther

The site's price plans, side by side to compare and subscribe. Settings in price_plans.

scroll_sequenceMedia

An image sequence that plays as the visitor scrolls. Settings in scroll_sequence.

List all pages

Returns the site's pages, newest first unless a sort is given.

Public

Public - no token needed.

Returns

Returns a list of AboutPage objects.

Status codes

200 500

GET/about-pages
curl -X GET 'http://cloudoffice-2.max-media.io/about-pages?ionic=true'
Response
[
  {
    "requiresLogin": false,
    "requiresSubscription": false,
    "price_plan_ids": [
      "example"
    ],
    "title": "Example",
    "url": "example-item",
    "redirectUrl": "example",
    "legal_kind": "example",
    "isPartial": false,
    "showTo": "0",
    "showHeader": true,
    "showFooter": true,
    "ai_context_v2": {},
    "ai_surfaces_v2": {},
    "ai_overview": "example",
    "ai_generation_metadata": {},
    "containers": [
      {
        "isFluid": false,
        "parallaxEnabled": false,
        "parallaxAmount": 49.9,
        "parallaxZoom": 1,
        "continuousEnabled": false,
        "continuousEffect": "none",
        "continuousDuration": 2400,
        "continuousIntensity": 4,
        "backgroundImage": "example",
        "backgroundSize": "example",
        "backgroundPosition": "example",
        "backgroundRepeat": "example",
        "backgroundVideo": "example",
        "backgroundColor": "#3557c4",
        "backgroundParallax": false,
        "minHeight": 1,
        "minHeightMobile": 1,
        "allowOffset": false,
        "offsetX": 0,
        "offsetY": 0,
        "offsetMobileX": 0,
        "offsetMobileY": 0,
        "zIndex": 0,
        "wrap_reverse": false,
        "backgroundGradient": {
          "enabled": false,
          "type": "example",
          "degrees": 0,
          "radialShape": "example",
          "radialPosition": "example",
          "colors": "#3557c4",
          "css": "example"
        },
        "padding_top": {
          "value": "example",
          "unit": "example",
          "mobile_value": "example",
          "mobile_unit": "example"
        },
        "padding_right": {
          "value": "example"
        }
      }
    ],
    "suitability_price_plans": [
      "6543210fedcba98765432101"
    ],
    "isSuitable": false,
    "_id": "6543210fedcba98765432100",
    "updatedAt": "2026-11-04T12:00:00.000Z",
    "createdAt": "2026-11-04T12:00:00.000Z"
  }
]

Create a page

Create new AboutPage.

Admin token

Needs a site admin token.

Parameters
titlestring

The page's title, shown in the browser tab and in the admin.

containersobject[]

The page's content: sections, each with columns of components.

createNavlinkstring

The page's create navlink.

addToIndexstring

The page's add to index.

apply_startup_promptstring

The page's apply startup prompt.

Returns

Returns the AboutPage object.

Status codes

201 400 401 500

POST/about-pages
curl -X POST 'http://cloudoffice-2.max-media.io/about-pages?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "title": "...", "containers": "...", "createNavlink": "...", "addToIndex": "...", "apply_startup_prompt": "..." }'
Response
{
  "requiresLogin": false,
  "requiresSubscription": false,
  "price_plan_ids": [
    "example"
  ],
  "title": "Example",
  "url": "example-item",
  "redirectUrl": "example",
  "legal_kind": "example",
  "isPartial": false,
  "showTo": "0",
  "showHeader": true,
  "showFooter": true,
  "ai_context_v2": {},
  "ai_surfaces_v2": {},
  "ai_overview": "example",
  "ai_generation_metadata": {},
  "containers": [
    {
      "isFluid": false,
      "parallaxEnabled": false,
      "parallaxAmount": 49.9,
      "parallaxZoom": 1,
      "continuousEnabled": false,
      "continuousEffect": "none",
      "continuousDuration": 2400,
      "continuousIntensity": 4,
      "backgroundImage": "example",
      "backgroundSize": "example",
      "backgroundPosition": "example",
      "backgroundRepeat": "example",
      "backgroundVideo": "example",
      "backgroundColor": "#3557c4",
      "backgroundParallax": false,
      "minHeight": 1,
      "minHeightMobile": 1,
      "allowOffset": false,
      "offsetX": 0,
      "offsetY": 0,
      "offsetMobileX": 0,
      "offsetMobileY": 0,
      "zIndex": 0,
      "wrap_reverse": false,
      "backgroundGradient": {
        "enabled": false,
        "type": "example",
        "degrees": 0,
        "radialShape": "example",
        "radialPosition": "example",
        "colors": "#3557c4",
        "css": "example"
      },
      "padding_top": {
        "value": "example",
        "unit": "example",
        "mobile_value": "example",
        "mobile_unit": "example"
      },
      "padding_right": {
        "value": "example"
      }
    }
  ],
  "suitability_price_plans": [
    "6543210fedcba98765432101"
  ],
  "isSuitable": false,
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z"
}

Retrieve a page

Returns one page, found by its ID.

User with accessOptional user

Needs a signed-in user whose plan grants access.

Path parameters
idstringRequired

The ID of the page.

Returns

Returns the AboutPage object.

Status codes

200 301 401 402 404 500

GET/about-pages-by-id/:id
curl -X GET 'http://cloudoffice-2.max-media.io/about-pages-by-id/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "requiresLogin": false,
  "requiresSubscription": false,
  "price_plan_ids": [
    "example"
  ],
  "title": "Example",
  "url": "example-item",
  "redirectUrl": "example",
  "legal_kind": "example",
  "isPartial": false,
  "showTo": "0",
  "showHeader": true,
  "showFooter": true,
  "ai_context_v2": {},
  "ai_surfaces_v2": {},
  "ai_overview": "example",
  "ai_generation_metadata": {},
  "containers": [
    {
      "isFluid": false,
      "parallaxEnabled": false,
      "parallaxAmount": 49.9,
      "parallaxZoom": 1,
      "continuousEnabled": false,
      "continuousEffect": "none",
      "continuousDuration": 2400,
      "continuousIntensity": 4,
      "backgroundImage": "example",
      "backgroundSize": "example",
      "backgroundPosition": "example",
      "backgroundRepeat": "example",
      "backgroundVideo": "example",
      "backgroundColor": "#3557c4",
      "backgroundParallax": false,
      "minHeight": 1,
      "minHeightMobile": 1,
      "allowOffset": false,
      "offsetX": 0,
      "offsetY": 0,
      "offsetMobileX": 0,
      "offsetMobileY": 0,
      "zIndex": 0,
      "wrap_reverse": false,
      "backgroundGradient": {
        "enabled": false,
        "type": "example",
        "degrees": 0,
        "radialShape": "example",
        "radialPosition": "example",
        "colors": "#3557c4",
        "css": "example"
      },
      "padding_top": {
        "value": "example",
        "unit": "example",
        "mobile_value": "example",
        "mobile_unit": "example"
      },
      "padding_right": {
        "value": "example"
      }
    }
  ],
  "suitability_price_plans": [
    "6543210fedcba98765432101"
  ],
  "isSuitable": false,
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z"
}

Update a page

Update AboutPage by id.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the page.

Parameters
containersobject[]

The page's content: sections, each with columns of components.

Returns

Returns the AboutPage object.

Status codes

200 400 401 404 500

PATCH/about-pages/:id
curl -X PATCH 'http://cloudoffice-2.max-media.io/about-pages/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "containers": "..." }'
Response
{
  "requiresLogin": false,
  "requiresSubscription": false,
  "price_plan_ids": [
    "example"
  ],
  "title": "Example",
  "url": "example-item",
  "redirectUrl": "example",
  "legal_kind": "example",
  "isPartial": false,
  "showTo": "0",
  "showHeader": true,
  "showFooter": true,
  "ai_context_v2": {},
  "ai_surfaces_v2": {},
  "ai_overview": "example",
  "ai_generation_metadata": {},
  "containers": [
    {
      "isFluid": false,
      "parallaxEnabled": false,
      "parallaxAmount": 49.9,
      "parallaxZoom": 1,
      "continuousEnabled": false,
      "continuousEffect": "none",
      "continuousDuration": 2400,
      "continuousIntensity": 4,
      "backgroundImage": "example",
      "backgroundSize": "example",
      "backgroundPosition": "example",
      "backgroundRepeat": "example",
      "backgroundVideo": "example",
      "backgroundColor": "#3557c4",
      "backgroundParallax": false,
      "minHeight": 1,
      "minHeightMobile": 1,
      "allowOffset": false,
      "offsetX": 0,
      "offsetY": 0,
      "offsetMobileX": 0,
      "offsetMobileY": 0,
      "zIndex": 0,
      "wrap_reverse": false,
      "backgroundGradient": {
        "enabled": false,
        "type": "example",
        "degrees": 0,
        "radialShape": "example",
        "radialPosition": "example",
        "colors": "#3557c4",
        "css": "example"
      },
      "padding_top": {
        "value": "example",
        "unit": "example",
        "mobile_value": "example",
        "mobile_unit": "example"
      },
      "padding_right": {
        "value": "example"
      }
    }
  ],
  "suitability_price_plans": [
    "6543210fedcba98765432101"
  ],
  "isSuitable": false,
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z"
}

Delete a page

Delete AboutPage record by id.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the page.

Returns

Returns an empty answer on success.

Status codes

200 401 404 500

DELETE/about-pages/:id
curl -X DELETE 'http://cloudoffice-2.max-media.io/about-pages/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'

Create a page

The editor's save: content goes to the draft, access settings to the live page.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the page.

Status codes

200 401 500

POST/about-pages/:id/draft
curl -X POST 'http://cloudoffice-2.max-media.io/about-pages/{id}/draft?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'

Delete a page

Throw the draft away.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the page.

Returns

Returns an empty answer on success.

Status codes

200 401 500

DELETE/about-pages/:id/draft
curl -X DELETE 'http://cloudoffice-2.max-media.io/about-pages/{id}/draft?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'

Create a page

A short-lived link query that shows one version on the public page.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the page.

Parameters
version_idstring

The page's version id.

Status codes

200 401 404 500

POST/about-pages/:id/preview-token
curl -X POST 'http://cloudoffice-2.max-media.io/about-pages/{id}/preview-token?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "version_id": "..." }'

Publish the page

Make the draft the live page.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the page.

Status codes

200 401 500

POST/about-pages/:id/publish
curl -X POST 'http://cloudoffice-2.max-media.io/about-pages/{id}/publish?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'

Revert the page

Publish a copy of an earlier version.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the page.

Parameters
version_idstring

The page's version id.

Status codes

200 401 500

POST/about-pages/:id/revert
curl -X POST 'http://cloudoffice-2.max-media.io/about-pages/{id}/revert?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "version_id": "..." }'

Create a page

Show a version (the draft or an older one) to a share of the visitors, or. change the share. Ends a rollout of any other version of the page.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the page.

Parameters
version_idstring

The page's version id.

percentstring

The page's percent.

Status codes

200 401 500

POST/about-pages/:id/rollout
curl -X POST 'http://cloudoffice-2.max-media.io/about-pages/{id}/rollout?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "version_id": "...", "percent": "..." }'

Delete a page

Stop the rollout: everyone sees the live page again; the version stays.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the page.

Returns

Returns an empty answer on success.

Status codes

200 401 500

DELETE/about-pages/:id/rollout
curl -X DELETE 'http://cloudoffice-2.max-media.io/about-pages/{id}/rollout?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'

Retrieve a page

The page's versions, newest first, without their content.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the page.

Status codes

200 401 500

GET/about-pages/:id/versions
curl -X GET 'http://cloudoffice-2.max-media.io/about-pages/{id}/versions?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'

Update a page

Name a version; named versions are never pruned.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the page.

versionIdstringRequired

The page's version id.

Parameters
labelstring

The page's label.

Status codes

200 401 500

PATCH/about-pages/:id/versions/:versionId
curl -X PATCH 'http://cloudoffice-2.max-media.io/about-pages/{id}/versions/{versionId}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "label": "..." }'

Retrieve a page

Returns one page, found by its URL slug.

Page accessOptional user

Pages limited to some users check the token when one is sent.

Path parameters
urlstringRequired

The page's URL slug, as in its address on the site.

Returns

Returns the AboutPage object.

Status codes

200 301 401 402 404 500

GET/about-pages/:url
curl -X GET 'http://cloudoffice-2.max-media.io/about-pages/{url}?ionic=true'
Response
{
  "requiresLogin": false,
  "requiresSubscription": false,
  "price_plan_ids": [
    "example"
  ],
  "title": "Example",
  "url": "example-item",
  "redirectUrl": "example",
  "legal_kind": "example",
  "isPartial": false,
  "showTo": "0",
  "showHeader": true,
  "showFooter": true,
  "ai_context_v2": {},
  "ai_surfaces_v2": {},
  "ai_overview": "example",
  "ai_generation_metadata": {},
  "containers": [
    {
      "isFluid": false,
      "parallaxEnabled": false,
      "parallaxAmount": 49.9,
      "parallaxZoom": 1,
      "continuousEnabled": false,
      "continuousEffect": "none",
      "continuousDuration": 2400,
      "continuousIntensity": 4,
      "backgroundImage": "example",
      "backgroundSize": "example",
      "backgroundPosition": "example",
      "backgroundRepeat": "example",
      "backgroundVideo": "example",
      "backgroundColor": "#3557c4",
      "backgroundParallax": false,
      "minHeight": 1,
      "minHeightMobile": 1,
      "allowOffset": false,
      "offsetX": 0,
      "offsetY": 0,
      "offsetMobileX": 0,
      "offsetMobileY": 0,
      "zIndex": 0,
      "wrap_reverse": false,
      "backgroundGradient": {
        "enabled": false,
        "type": "example",
        "degrees": 0,
        "radialShape": "example",
        "radialPosition": "example",
        "colors": "#3557c4",
        "css": "example"
      },
      "padding_top": {
        "value": "example",
        "unit": "example",
        "mobile_value": "example",
        "mobile_unit": "example"
      },
      "padding_right": {
        "value": "example"
      }
    }
  ],
  "suitability_price_plans": [
    "6543210fedcba98765432101"
  ],
  "isSuitable": false,
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z"
}

List all section imports

Returns the site's section imports, newest first unless a sort is given.

Public

Public - no token needed.

Status codes

200 500

GET/about-section-imports
curl -X GET 'http://cloudoffice-2.max-media.io/about-section-imports?ionic=true'

Create a section import

Creates a section import from the fields sent.

Admin token

Needs a site admin token.

Parameters
bodystring

The section import's body.

Status codes

201 400 401 500

POST/about-section-imports
curl -X POST 'http://cloudoffice-2.max-media.io/about-section-imports?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "body": "..." }'

Retrieve a section import

Returns one section import, found by its ID.

Public

Public - no token needed.

Path parameters
idstringRequired

The ID of the section import.

Status codes

200 404 500

GET/about-section-imports/:id
curl -X GET 'http://cloudoffice-2.max-media.io/about-section-imports/{id}?ionic=true'

List all custom pages

Returns the site's custom pages, newest first unless a sort is given.

Public

Public - no token needed.

Returns

Returns a list of CustomPage objects.

Status codes

200 500

GET/custom_pages
curl -X GET 'http://cloudoffice-2.max-media.io/custom_pages?ionic=true'
Response
[
  {
    "title": "Example",
    "url": "example-item",
    "html_content": "Text shown on the site.",
    "css_content": "Text shown on the site.",
    "js_content": "Text shown on the site.",
    "_id": "6543210fedcba98765432100"
  }
]

Retrieve a custom page

Returns one custom page, found by its ID.

Public

Public - no token needed.

Path parameters
idstringRequired

The ID of the custom page.

Returns

Returns the CustomPage object.

Status codes

200 404 500

GET/custom_pages/:id
curl -X GET 'http://cloudoffice-2.max-media.io/custom_pages/{id}?ionic=true'
Response
{
  "title": "Example",
  "url": "example-item",
  "html_content": "Text shown on the site.",
  "css_content": "Text shown on the site.",
  "js_content": "Text shown on the site.",
  "_id": "6543210fedcba98765432100"
}

Update a custom page

Update CustomPage by id.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the custom page.

Returns

Returns the CustomPage object.

Status codes

200 400 401 404 500

PATCH/custom_pages/:id
curl -X PATCH 'http://cloudoffice-2.max-media.io/custom_pages/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "title": "Example",
  "url": "example-item",
  "html_content": "Text shown on the site.",
  "css_content": "Text shown on the site.",
  "js_content": "Text shown on the site.",
  "_id": "6543210fedcba98765432100"
}

Delete a custom page

Delete CustomPage record by id.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the custom page.

Returns

Returns an empty answer on success.

Status codes

200 401 404 500

DELETE/custom_pages/:id
curl -X DELETE 'http://cloudoffice-2.max-media.io/custom_pages/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'

Retrieve the publish

Get publish settings.

Public

Public - no token needed.

Returns

Returns the Publish object.

Status codes

200 500

GET/publish
curl -X GET 'http://cloudoffice-2.max-media.io/publish?ionic=true'
Response
{
  "web": false,
  "ios": false,
  "android": false,
  "pwaSwitch": "example",
  "android_app_id": "example",
  "ios_app_id": "example",
  "_id": "6543210fedcba98765432100"
}

Create a publish

Set new publish settings.

Admin token

Needs a site admin token.

Returns

Returns the Publish object.

Status codes

201 400 401 500

POST/publish
curl -X POST 'http://cloudoffice-2.max-media.io/publish?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "web": false,
  "ios": false,
  "android": false,
  "pwaSwitch": "example",
  "android_app_id": "example",
  "ios_app_id": "example",
  "_id": "6543210fedcba98765432100"
}

Retrieve a publish

Returns one publish, found by its ID.

Public

Public - no token needed.

Path parameters
idstringRequired

The ID of the publish.

Returns

Returns the Publish object.

Status codes

200 404 500

GET/publish/:id
curl -X GET 'http://cloudoffice-2.max-media.io/publish/{id}?ionic=true'
Response
{
  "web": false,
  "ios": false,
  "android": false,
  "pwaSwitch": "example",
  "android_app_id": "example",
  "ios_app_id": "example",
  "_id": "6543210fedcba98765432100"
}

Update a publish

Update publish settings by id.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the publish.

Returns

Returns the Publish object.

Status codes

200 400 401 404 500

PATCH/publish/:id
curl -X PATCH 'http://cloudoffice-2.max-media.io/publish/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "web": false,
  "ios": false,
  "android": false,
  "pwaSwitch": "example",
  "android_app_id": "example",
  "ios_app_id": "example",
  "_id": "6543210fedcba98765432100"
}

Add an add section

Use it to add, insert, append, or place a new section on an existing page.

Admin token

Needs a site admin token.

Parameters
promptstring

What the AI should do with the add section, in plain words - any language.

chatIdstring

The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.

aiVersionstring

Which version of the AI builder to use; leave it out for the current one.

item_datastring

The current add section, as JSON - the AI changes it and returns the result.

current_page_urlstring

The add section's current page url.

section_blueprintstring

The add section's section blueprint.

section_style_blueprintstring

The add section's section style blueprint.

explicit_targetstring

The add section's explicit target.

parsed_intentstring

The add section's parsed intent.

Status codes

200 401 500

POST/add-section
curl -X POST 'http://cloudoffice-2.max-media.io/add-section?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "prompt": "...", "chatId": "...", "aiVersion": "...", "item_data": "...", "current_page_url": "..." }'
Response
{
  "chat_id": "6543210fedcba98765432100",
  "role": "user",
  "text": "Text shown on the site.",
  "target_url": "example-item",
  "action": "RESPONSE",
  "options": [
    "example"
  ],
  "medias": [
    {
      "media": "6543210fedcba98765432100",
      "gcs_url": "example-item",
      "gemini_uri": "example",
      "gemini_interaction_id": "example",
      "_id": "6543210fedcba98765432100"
    }
  ],
  "products": [
    "6543210fedcba98765432101"
  ],
  "services": [
    "6543210fedcba98765432101"
  ],
  "blogposts": [
    "6543210fedcba98765432101"
  ],
  "programs": [
    "6543210fedcba98765432101"
  ],
  "suggestions": [
    {
      "text": "Text shown on the site.",
      "route": "example",
      "item_id": "6543210fedcba98765432100",
      "medias": [],
      "picture": "6543210fedcba98765432100",
      "_id": "6543210fedcba98765432100"
    }
  ],
  "is_system": false,
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z",
  "data": {
    "object": "example",
    "object_type": "example",
    "edit_summary": "example",
    "edit_diff": "example",
    "undo_record": "example",
    "hero_animation_offer": "example",
    "preview_state": "example",
    "pending_credit_cost": 0,
    "target_restore": "example",
    "media_request": "example",
    "item_request": "example",
    "reference_request": "example"
  }
}

Create a commit page

Creates a commit page from the fields sent.

Admin token

Needs a site admin token.

Parameters
chatIdstring

The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.

messageIdstring

The commit page's message id.

Status codes

200 401 404 500

POST/commit-about-page-preview
curl -X POST 'http://cloudoffice-2.max-media.io/commit-about-page-preview?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "chatId": "...", "messageId": "..." }'
Response
{
  "chat_id": "6543210fedcba98765432100",
  "role": "user",
  "text": "Text shown on the site.",
  "target_url": "example-item",
  "action": "RESPONSE",
  "options": [
    "example"
  ],
  "medias": [
    {
      "media": "6543210fedcba98765432100",
      "gcs_url": "example-item",
      "gemini_uri": "example",
      "gemini_interaction_id": "example",
      "_id": "6543210fedcba98765432100"
    }
  ],
  "products": [
    "6543210fedcba98765432101"
  ],
  "services": [
    "6543210fedcba98765432101"
  ],
  "blogposts": [
    "6543210fedcba98765432101"
  ],
  "programs": [
    "6543210fedcba98765432101"
  ],
  "suggestions": [
    {
      "text": "Text shown on the site.",
      "route": "example",
      "item_id": "6543210fedcba98765432100",
      "medias": [],
      "picture": "6543210fedcba98765432100",
      "_id": "6543210fedcba98765432100"
    }
  ],
  "is_system": false,
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z",
  "data": {
    "object": "example",
    "object_type": "example",
    "edit_summary": "example",
    "edit_diff": "example",
    "undo_record": "example",
    "hero_animation_offer": "example",
    "preview_state": "example",
    "pending_credit_cost": 0,
    "target_restore": "example",
    "media_request": "example",
    "item_request": "example",
    "reference_request": "example"
  }
}

Confirm an AI action

Confirm an AI action.

Admin token

Needs a site admin token.

Parameters
messageIdstring

The AI action's message id.

confirmedstring

The AI action's confirmed.

skip_stepsstring

The AI action's skip steps.

choicestring

The AI action's choice.

item_datastring

The current AI action, as JSON - the AI changes it and returns the result.

Status codes

200 400 401 403 409 500

POST/confirm-ai-action
curl -X POST 'http://cloudoffice-2.max-media.io/confirm-ai-action?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "messageId": "...", "confirmed": "...", "skip_steps": "...", "choice": "...", "item_data": "..." }'
Response
{
  "chat_id": "6543210fedcba98765432100",
  "role": "user",
  "text": "Text shown on the site.",
  "target_url": "example-item",
  "action": "RESPONSE",
  "options": [
    "example"
  ],
  "medias": [
    {
      "media": "6543210fedcba98765432100",
      "gcs_url": "example-item",
      "gemini_uri": "example",
      "gemini_interaction_id": "example",
      "_id": "6543210fedcba98765432100"
    }
  ],
  "products": [
    "6543210fedcba98765432101"
  ],
  "services": [
    "6543210fedcba98765432101"
  ],
  "blogposts": [
    "6543210fedcba98765432101"
  ],
  "programs": [
    "6543210fedcba98765432101"
  ],
  "suggestions": [
    {
      "text": "Text shown on the site.",
      "route": "example",
      "item_id": "6543210fedcba98765432100",
      "medias": [],
      "picture": "6543210fedcba98765432100",
      "_id": "6543210fedcba98765432100"
    }
  ],
  "is_system": false,
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z",
  "data": {
    "object": "example",
    "object_type": "example",
    "edit_summary": "example",
    "edit_diff": "example",
    "undo_record": "example",
    "hero_animation_offer": "example",
    "preview_state": "example",
    "pending_credit_cost": 0,
    "target_restore": "example",
    "media_request": "example",
    "item_request": "example",
    "reference_request": "example"
  }
}

Confirm a page plan

Confirm a page plan.

Admin token

Needs a site admin token.

Parameters
messageIdstring

The page plan's message id.

Status codes

200 400 401 403 500

POST/confirm-page-plan
curl -X POST 'http://cloudoffice-2.max-media.io/confirm-page-plan?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "messageId": "..." }'
Response
{
  "chat_id": "6543210fedcba98765432100",
  "role": "user",
  "text": "Text shown on the site.",
  "target_url": "example-item",
  "action": "RESPONSE",
  "options": [
    "example"
  ],
  "medias": [
    {
      "media": "6543210fedcba98765432100",
      "gcs_url": "example-item",
      "gemini_uri": "example",
      "gemini_interaction_id": "example",
      "_id": "6543210fedcba98765432100"
    }
  ],
  "products": [
    "6543210fedcba98765432101"
  ],
  "services": [
    "6543210fedcba98765432101"
  ],
  "blogposts": [
    "6543210fedcba98765432101"
  ],
  "programs": [
    "6543210fedcba98765432101"
  ],
  "suggestions": [
    {
      "text": "Text shown on the site.",
      "route": "example",
      "item_id": "6543210fedcba98765432100",
      "medias": [],
      "picture": "6543210fedcba98765432100",
      "_id": "6543210fedcba98765432100"
    }
  ],
  "is_system": false,
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z",
  "data": {
    "object": "example",
    "object_type": "example",
    "edit_summary": "example",
    "edit_diff": "example",
    "undo_record": "example",
    "hero_animation_offer": "example",
    "preview_state": "example",
    "pending_credit_cost": 0,
    "target_restore": "example",
    "media_request": "example",
    "item_request": "example",
    "reference_request": "example"
  }
}

Create a page with AI

Create a page from a prompt, written by the AI builder.

Admin token

Needs a site admin token.

Parameters
promptstring

What the AI should do with the page, in plain words - any language.

chatIdstring

The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.

aiVersionstring

Which version of the AI builder to use; leave it out for the current one.

socketIdstring

The page's socket id.

Status codes

200 401 500

POST/create-new-page
curl -X POST 'http://cloudoffice-2.max-media.io/create-new-page?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "prompt": "...", "chatId": "...", "aiVersion": "...", "socketId": "..." }'

Generate a page with AI

Use it for a new standalone page, from a prompt or modelled on one the site has.

Admin token

Needs a site admin token.

Parameters
promptstring

What the AI should do with the page, in plain words - any language.

chatIdstring

The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.

aiVersionstring

Which version of the AI builder to use; leave it out for the current one.

socketIdstring

The page's socket id.

Status codes

200 401 500

POST/generate-page
curl -X POST 'http://cloudoffice-2.max-media.io/generate-page?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "prompt": "...", "chatId": "...", "aiVersion": "...", "socketId": "..." }'

Modify a footer with AI

Use it to change footer components and columns.

Admin token

Needs a site admin token.

Parameters
promptstring

What the AI should do with the footer, in plain words - any language.

item_datastring

The current footer, as JSON - the AI changes it and returns the result.

chatIdstring

The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.

Status codes

200 401 500

POST/modify-footer
curl -X POST 'http://cloudoffice-2.max-media.io/modify-footer?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "prompt": "...", "item_data": "...", "chatId": "..." }'

Modify a header with AI

Use it to change link font size and weight, links positioning and justification, action button text color and background, banner style of the header of the site.

Admin token

Needs a site admin token.

Parameters
promptstring

What the AI should do with the header, in plain words - any language.

item_datastring

The current header, as JSON - the AI changes it and returns the result.

chatIdstring

The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.

Status codes

200 401 500

POST/modify-header
curl -X POST 'http://cloudoffice-2.max-media.io/modify-header?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "prompt": "...", "item_data": "...", "chatId": "..." }'

Modify a page with AI

Use it to edit or update existing page content or structure, including page colors.

Admin token

Needs a site admin token.

Parameters
promptstring

What the AI should do with the page, in plain words - any language.

chatIdstring

The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.

item_idstring

The ID of the page to change.

item_idsstring

The page's item ids.

Status codes

200 401

POST/modify-page
curl -X POST 'http://cloudoffice-2.max-media.io/modify-page?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "prompt": "...", "chatId": "...", "item_id": "...", "item_ids": "..." }'

Modify a page permission with AI

Use it to require login to access content sections, or set up a paywall when social mode is off. Makes products, services, blogposts, videos, programs, or custom pages require login or subscription.

Admin token

Needs a site admin token.

Parameters
promptstring

What the AI should do with the page permission, in plain words - any language.

chatIdstring

The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.

aiVersionstring

Which version of the AI builder to use; leave it out for the current one.

item_idstring

The ID of the page permission to change.

Status codes

200 401 500

POST/modify-page-permissions
curl -X POST 'http://cloudoffice-2.max-media.io/modify-page-permissions?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "prompt": "...", "chatId": "...", "aiVersion": "...", "item_id": "..." }'
Response
{
  "chat_id": "6543210fedcba98765432100",
  "role": "user",
  "text": "Text shown on the site.",
  "target_url": "example-item",
  "action": "RESPONSE",
  "options": [
    "example"
  ],
  "medias": [
    {
      "media": "6543210fedcba98765432100",
      "gcs_url": "example-item",
      "gemini_uri": "example",
      "gemini_interaction_id": "example",
      "_id": "6543210fedcba98765432100"
    }
  ],
  "products": [
    "6543210fedcba98765432101"
  ],
  "services": [
    "6543210fedcba98765432101"
  ],
  "blogposts": [
    "6543210fedcba98765432101"
  ],
  "programs": [
    "6543210fedcba98765432101"
  ],
  "suggestions": [
    {
      "text": "Text shown on the site.",
      "route": "example",
      "item_id": "6543210fedcba98765432100",
      "medias": [],
      "picture": "6543210fedcba98765432100",
      "_id": "6543210fedcba98765432100"
    }
  ],
  "is_system": false,
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z",
  "data": {
    "object": "example",
    "object_type": "example",
    "edit_summary": "example",
    "edit_diff": "example",
    "undo_record": "example",
    "hero_animation_offer": "example",
    "preview_state": "example",
    "pending_credit_cost": 0,
    "target_restore": "example",
    "media_request": "example",
    "item_request": "example",
    "reference_request": "example"
  }
}

Modify a theme with AI

Use it to change the look, colors, fonts, or layout theme of the site, including the header background and link colors.

Admin token

Needs a site admin token.

Parameters
promptstring

What the AI should do with the theme, in plain words - any language.

item_datastring

The current theme, as JSON - the AI changes it and returns the result.

chatIdstring

The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.

Status codes

200 401 500

POST/modify-theme
curl -X POST 'http://cloudoffice-2.max-media.io/modify-theme?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "prompt": "...", "item_data": "...", "chatId": "..." }'

Create an onboarding intent planner

Used only for the very first user prompt (or first session) when you describe a business/intent. The first message, normalized into something the planner can build from. WHAT THIS IS FOR. 67% of real first prompts name a business and stop — `Автокъща`, `майстор плочкаджия`, `детски учител`, with no verb and no object (see USER_LOGS_ANALYSIS.md §2). This rewrites that into one implementation-ready sentence and, usefully, encodes which platform area it needs in plain language, so `apply_domain_recipe` downstream picks store vs bookings vs informational. IT USED TO ASK FOR A PAGE. The rewrite began "Създай страница за …" and the redirect went to `create-new-page`, which layout-plans ONE page and parks at "Awaiting confirmation". So the single most common thing anyone types produced a page and a template site: no services, no products, no collections, no legal pages, no locale pass — all of which the recipes build. Routing was never the problem; the router sent 16 of 20 real first prompts to a whole-site destination, and 12–13 of those were THIS route, which then threw the site away. Now it asks for a site and redirects to `create-plan`. That is safe because `/create-plan` orchestrates with `planOnly: true` (planners.js) — it gets propose_plan, apply_domain_recipe and ask_clarification but no routes, so it cannot route back here or sideways into a single item. The redirect carries the rewrite in `response`, which is what the client turns into the next request's `prompt` — this is a SECOND-hop redirect, handled at ai-components-chat.component.ts:2437 (`handleRes(res2.target_url, res2.response, …)`). First-hop redirects out of the orchestrator use `user_prompt` instead; do not confuse the two.

Admin token

Needs a site admin token.

Parameters
promptstring

What the AI should do with the onboarding intent planner, in plain words - any language.

chatIdstring

The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.

aiVersionstring

Which version of the AI builder to use; leave it out for the current one.

Status codes

200 401 500

POST/onboarding-intent-planner
curl -X POST 'http://cloudoffice-2.max-media.io/onboarding-intent-planner?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "prompt": "...", "chatId": "...", "aiVersion": "..." }'
Response
{
  "chat_id": "6543210fedcba98765432100",
  "role": "user",
  "text": "Text shown on the site.",
  "target_url": "example-item",
  "action": "RESPONSE",
  "options": [
    "example"
  ],
  "medias": [
    {
      "media": "6543210fedcba98765432100",
      "gcs_url": "example-item",
      "gemini_uri": "example",
      "gemini_interaction_id": "example",
      "_id": "6543210fedcba98765432100"
    }
  ],
  "products": [
    "6543210fedcba98765432101"
  ],
  "services": [
    "6543210fedcba98765432101"
  ],
  "blogposts": [
    "6543210fedcba98765432101"
  ],
  "programs": [
    "6543210fedcba98765432101"
  ],
  "suggestions": [
    {
      "text": "Text shown on the site.",
      "route": "example",
      "item_id": "6543210fedcba98765432100",
      "medias": [],
      "picture": "6543210fedcba98765432100",
      "_id": "6543210fedcba98765432100"
    }
  ],
  "is_system": false,
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z",
  "data": {
    "object": "example",
    "object_type": "example",
    "edit_summary": "example",
    "edit_diff": "example",
    "undo_record": "example",
    "hero_animation_offer": "example",
    "preview_state": "example",
    "pending_credit_cost": 0,
    "target_restore": "example",
    "media_request": "example",
    "item_request": "example",
    "reference_request": "example"
  }
}

Create a regenerate component

Creates a regenerate component from the fields sent.

Admin token

Needs a site admin token.

Parameters
promptstring

What the AI should do with the regenerate component, in plain words - any language.

chatIdstring

The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.

aiVersionstring

Which version of the AI builder to use; leave it out for the current one.

item_datastring

The current regenerate component, as JSON - the AI changes it and returns the result.

current_page_urlstring

The regenerate component's current page url.

explicit_targetstring

The regenerate component's explicit target.

save_user_messagestring

The regenerate component's save user message.

preview_onlystring

The regenerate component's preview only.

Status codes

200 401 500

POST/regenerate-component
curl -X POST 'http://cloudoffice-2.max-media.io/regenerate-component?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "prompt": "...", "chatId": "...", "aiVersion": "...", "item_data": "...", "current_page_url": "..." }'

Create a regenerate section

From the editor: regenerates the currently selected section of the open about-page.

Admin token

Needs a site admin token.

Parameters
promptstring

What the AI should do with the regenerate section, in plain words - any language.

chatIdstring

The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.

aiVersionstring

Which version of the AI builder to use; leave it out for the current one.

item_datastring

The current regenerate section, as JSON - the AI changes it and returns the result.

current_page_urlstring

The regenerate section's current page url.

explicit_targetstring

The regenerate section's explicit target.

save_user_messagestring

The regenerate section's save user message.

section_blueprintstring

The regenerate section's section blueprint.

section_style_blueprintstring

The regenerate section's section style blueprint.

preview_onlystring

The regenerate section's preview only.

regeneration_modestring

The regenerate section's regeneration mode.

replacement_strategystring

The regenerate section's replacement strategy.

source_small_targetstring

The regenerate section's source small target.

Status codes

200 401 500

POST/regenerate-section
curl -X POST 'http://cloudoffice-2.max-media.io/regenerate-section?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "prompt": "...", "chatId": "...", "aiVersion": "...", "item_data": "...", "current_page_url": "..." }'
Response
{
  "chat_id": "6543210fedcba98765432100",
  "role": "user",
  "text": "Text shown on the site.",
  "target_url": "example-item",
  "action": "RESPONSE",
  "options": [
    "example"
  ],
  "medias": [
    {
      "media": "6543210fedcba98765432100",
      "gcs_url": "example-item",
      "gemini_uri": "example",
      "gemini_interaction_id": "example",
      "_id": "6543210fedcba98765432100"
    }
  ],
  "products": [
    "6543210fedcba98765432101"
  ],
  "services": [
    "6543210fedcba98765432101"
  ],
  "blogposts": [
    "6543210fedcba98765432101"
  ],
  "programs": [
    "6543210fedcba98765432101"
  ],
  "suggestions": [
    {
      "text": "Text shown on the site.",
      "route": "example",
      "item_id": "6543210fedcba98765432100",
      "medias": [],
      "picture": "6543210fedcba98765432100",
      "_id": "6543210fedcba98765432100"
    }
  ],
  "is_system": false,
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z",
  "data": {
    "object": "example",
    "object_type": "example",
    "edit_summary": "example",
    "edit_diff": "example",
    "undo_record": "example",
    "hero_animation_offer": "example",
    "preview_state": "example",
    "pending_credit_cost": 0,
    "target_restore": "example",
    "media_request": "example",
    "item_request": "example",
    "reference_request": "example"
  }
}

Create a reopen page

Creates a reopen page from the fields sent.

Admin token

Needs a site admin token.

Parameters
chatIdstring

The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.

messageIdstring

The reopen page's message id.

Status codes

200 401 404 409 500

POST/reopen-about-page-preview
curl -X POST 'http://cloudoffice-2.max-media.io/reopen-about-page-preview?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "chatId": "...", "messageId": "..." }'
Response
{
  "chat_id": "6543210fedcba98765432100",
  "role": "user",
  "text": "Text shown on the site.",
  "target_url": "example-item",
  "action": "RESPONSE",
  "options": [
    "example"
  ],
  "medias": [
    {
      "media": "6543210fedcba98765432100",
      "gcs_url": "example-item",
      "gemini_uri": "example",
      "gemini_interaction_id": "example",
      "_id": "6543210fedcba98765432100"
    }
  ],
  "products": [
    "6543210fedcba98765432101"
  ],
  "services": [
    "6543210fedcba98765432101"
  ],
  "blogposts": [
    "6543210fedcba98765432101"
  ],
  "programs": [
    "6543210fedcba98765432101"
  ],
  "suggestions": [
    {
      "text": "Text shown on the site.",
      "route": "example",
      "item_id": "6543210fedcba98765432100",
      "medias": [],
      "picture": "6543210fedcba98765432100",
      "_id": "6543210fedcba98765432100"
    }
  ],
  "is_system": false,
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z",
  "data": {
    "object": "example",
    "object_type": "example",
    "edit_summary": "example",
    "edit_diff": "example",
    "undo_record": "example",
    "hero_animation_offer": "example",
    "preview_state": "example",
    "pending_credit_cost": 0,
    "target_restore": "example",
    "media_request": "example",
    "item_request": "example",
    "reference_request": "example"
  }
}

Create a section option

Creates a section option from the fields sent.

Admin token

Needs a site admin token.

Status codes

200 401 410

POST/section-options
curl -X POST 'http://cloudoffice-2.max-media.io/section-options?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'

Create a section style option

Creates a section style option from the fields sent.

Admin token

Needs a site admin token.

Status codes

200 401 410

POST/section-style-options
curl -X POST 'http://cloudoffice-2.max-media.io/section-style-options?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'

Update a footer with AI

Update a footer from a prompt, written by the AI builder.

Admin token

Needs a site admin token.

Parameters
promptstring

What the AI should do with the footer, in plain words - any language.

chatIdstring

The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.

aiVersionstring

Which version of the AI builder to use; leave it out for the current one.

Status codes

200 401 500

POST/update-footer
curl -X POST 'http://cloudoffice-2.max-media.io/update-footer?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "prompt": "...", "chatId": "...", "aiVersion": "..." }'

Update a header with AI

Update a header from a prompt, written by the AI builder.

Admin token

Needs a site admin token.

Parameters
promptstring

What the AI should do with the header, in plain words - any language.

chatIdstring

The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.

aiVersionstring

Which version of the AI builder to use; leave it out for the current one.

Status codes

200 401 500

POST/update-header
curl -X POST 'http://cloudoffice-2.max-media.io/update-header?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "prompt": "...", "chatId": "...", "aiVersion": "..." }'

Update a page with AI

From the editor: applies a targeted edit to the about-page currently open in the editor.

Admin token

Needs a site admin token.

Parameters
promptstring

What the AI should do with the page, in plain words - any language.

chatIdstring

The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.

aiVersionstring

Which version of the AI builder to use; leave it out for the current one.

item_datastring

The current page, as JSON - the AI changes it and returns the result.

current_page_urlstring

The page's current page url.

explicit_targetstring

The page's explicit target.

item_idstring

The ID of the page to change.

pending_selection_intentstring

The page's pending selection intent.

save_user_messagestring

The page's save user message.

preview_onlystring

The page's preview only.

regeneration_modestring

The page's regeneration mode.

force_targeted_modifierstring

The page's force targeted modifier.

redesign_anotherstring

The page's redesign another.

Status codes

200 401 500

POST/update-page
curl -X POST 'http://cloudoffice-2.max-media.io/update-page?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "prompt": "...", "chatId": "...", "aiVersion": "...", "item_data": "...", "current_page_url": "..." }'
Response
{
  "chat_id": "6543210fedcba98765432100",
  "role": "user",
  "text": "Text shown on the site.",
  "target_url": "example-item",
  "action": "RESPONSE",
  "options": [
    "example"
  ],
  "medias": [
    {
      "media": "6543210fedcba98765432100",
      "gcs_url": "example-item",
      "gemini_uri": "example",
      "gemini_interaction_id": "example",
      "_id": "6543210fedcba98765432100"
    }
  ],
  "products": [
    "6543210fedcba98765432101"
  ],
  "services": [
    "6543210fedcba98765432101"
  ],
  "blogposts": [
    "6543210fedcba98765432101"
  ],
  "programs": [
    "6543210fedcba98765432101"
  ],
  "suggestions": [
    {
      "text": "Text shown on the site.",
      "route": "example",
      "item_id": "6543210fedcba98765432100",
      "medias": [],
      "picture": "6543210fedcba98765432100",
      "_id": "6543210fedcba98765432100"
    }
  ],
  "is_system": false,
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z",
  "data": {
    "object": "example",
    "object_type": "example",
    "edit_summary": "example",
    "edit_diff": "example",
    "undo_record": "example",
    "hero_animation_offer": "example",
    "preview_state": "example",
    "pending_credit_cost": 0,
    "target_restore": "example",
    "media_request": "example",
    "item_request": "example",
    "reference_request": "example"
  }
}

Update a theme with AI

Update a theme from a prompt, written by the AI builder.

Admin token

Needs a site admin token.

Parameters
promptstring

What the AI should do with the theme, in plain words - any language.

chatIdstring

The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.

aiVersionstring

Which version of the AI builder to use; leave it out for the current one.

Status codes

200 401 500

POST/update-theme
curl -X POST 'http://cloudoffice-2.max-media.io/update-theme?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "prompt": "...", "chatId": "...", "aiVersion": "..." }'
↑↓ Navigate↵ GoEsc Close