The AI builder makes and changes the site from plain-language requests in any language: one endpoint takes the request, and the answer says what to do next. The guide below walks through it; the endpoints after it are the steps it leads to. Each generation costs AI credits.
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.
32 endpoints in 7 parts: Ai Orchestrator, Async Job, Chat History, Chat Message, Hero Animation, Planners, Site Wide Edit.
Tell Builderly what you want in plain words, in any language - "add a summer sale coupon for 20% off", "build me a site for my yoga studio" - and the AI builder decides what to make. One endpoint takes every request; you follow what it answers. Every step that generates something spends the account's AI credits.
POST /chat-history with an admin token starts a chat and returns { "chatHistory": { "_id": "..." } }. That _id is the chatId of every request below. A chat keeps its history and its language, so keep using the same one for one conversation.
POST /ai-chat-orchestrator
{ "chatId": "<chatId>", "prompt": "Add a summer sale coupon, 20% off everything", "aiVersion": "fast" }
prompt and chatId are required (400 without them).aiVersion is optional: fast, pro or ultra - better results, more credits.Every answer has an action, and user_tokens (credits left) and tokens (credits this step spent) where something was spent.
RESPONSE - a reply in response: an answer, or a question back ("which product?"). Show it to the user and send their reply as the next prompt in the same chat. suggestions holds next steps the user can pick; send the chosen text as the prompt.REDIRECT - call POST /<target_url> next, with chatId, aiVersion, prompt set to user_prompt, and every other field of the answer except action, target_url, user_prompt, response, chatId, tokens, user_tokens, collect_item_data, navigate_only and message. Its answer is one of these same actions - follow it the same way; one request may redirect twice (generate-product, then create-new-product). To change a particular item, the answer carries item_ids or item_id; pass it on. When navigate_only is true there is nothing to call: message points the user to a screen in their admin. target_url undefined means the request is not something the builder does yet.JOB - the work runs in the background. Poll GET /async-jobs/<async_job._id> every few seconds until complete is true; status is then DONE or Failed. Meanwhile percent and status say how far it is. stalled: true means the build stopped - the chat will offer to resume it. out_of_credits: true means it paused for credits.ERROR - message says why (with 400 or 429).A finished job does not carry its result: it is the newest message in the chat. Read GET /chat-message/<chatId>/0/5 (newest first) and take the latest message with role model:
OBJECT_RESPONSE - something was generated, in data.object (its kind in data.object_type, the edited item in data.item_id). What happens next depends on data.preview_state:POST /products) or, with data.item_id, update that item (PATCH /products/<item_id>).pending_commit: a change to a page, waiting. POST /commit-about-page-preview with { "chatId", "messageId": <the message _id> } applies it.committed: already saved.PROPOSED_ACTION - a plan waiting for a yes: building a page, or a site in several steps. data.proposed_action.summary lists what it will do. Show it to the user and only go on when they agree - see step 5.RESPONSE - a reply or a question, as above.ERROR - it failed; text says why.Pages and multi-step builds are proposed before anything is built:
data.proposed_action.type CREATE_PAGE): POST /confirm-page-plan with { "messageId": <the message _id> } builds it. It answers JOB; the page arrives as an OBJECT_RESPONSE draft - save it with POST /about-pages.RUN_PLAN): POST /confirm-ai-action with { "messageId": <the message _id>, "confirmed": true } runs it; "confirmed": false drops it. Replying "yes" as the next prompt in the chat does the same. A plan saves everything it builds - products, pages, the theme - as it goes; follow its job until complete, then read the chat for the summary.PROPOSED_ACTION to the user and wait for their yes before confirming it. Before saving a draft, show what it will create or change.RESPONSE are meant for the user: ask them, do not answer them yourself.Creates an AI chat orchestrator from the fields sent.
Needs the token of a signed-in user.
The AI chat orchestrator's reference extract.
What the AI should do with the AI chat orchestrator, in plain words - any language.
The AI chat orchestrator's original prompt.
The AI chat orchestrator's current page url.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
Which version of the AI builder to use; leave it out for the current one.
The AI chat orchestrator's attachments.
curl -X POST 'http://cloudoffice.max-media.io/ai-chat-orchestrator?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "reference_extract": "...", "prompt": "...", "originalPrompt": "...", "current_page_url": "...", "chatId": "..." }'{
"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"
}
}Duplicate a AI.
Needs the token of a signed-in user.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
The AI's URL slug, as in its address on the site.
Which version of the AI builder to use; leave it out for the current one.
curl -X POST 'http://cloudoffice.max-media.io/ai-clone/analyze?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "chatId": "...", "url": "...", "aiVersion": "..." }'{
"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"
}
}Duplicate a AI.
Needs the token of a signed-in user.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
The AI's text.
curl -X POST 'http://cloudoffice.max-media.io/ai-clone/refine?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "chatId": "...", "text": "..." }'{
"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"
}
}Returns one async job, found by its ID.
Public - no token needed.
The ID of the async job.
curl -X GET 'http://cloudoffice.max-media.io/async-jobs/{id}?ionic=true'Returns the chat history.
Needs a site admin token.
Returns the ChatHistory object.
curl -X GET 'http://cloudoffice.max-media.io/all-chat-history?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"user": "6543210fedcba98765432100",
"title": "Example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Returns the chat history.
Needs a site admin token.
Returns the ChatHistory object.
curl -X GET 'http://cloudoffice.max-media.io/chat-history?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"user": "6543210fedcba98765432100",
"title": "Example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Creates a chat history from the fields sent.
Needs a site admin token.
Returns the ChatHistory object.
curl -X POST 'http://cloudoffice.max-media.io/chat-history?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"user": "6543210fedcba98765432100",
"title": "Example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Returns one chat history, found by its ID.
Needs a site admin token.
The ID of the chat history.
Returns the ChatHistory object.
curl -X GET 'http://cloudoffice.max-media.io/chat-history/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"user": "6543210fedcba98765432100",
"title": "Example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Changes the fields sent; the others stay as they are.
Needs a site admin token.
The ID of the chat history.
The chat history's title.
Returns the ChatHistory object.
curl -X PATCH 'http://cloudoffice.max-media.io/chat-history/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "title": "..." }'{
"user": "6543210fedcba98765432100",
"title": "Example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Deletes the chat history. This cannot be undone.
Needs a site admin token.
The ID of the chat history.
Returns an empty answer on success.
curl -X DELETE 'http://cloudoffice.max-media.io/chat-history/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Creates a chat message from the fields sent.
Needs the token of a signed-in user.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
Returns the ChatMessage object.
curl -X POST 'http://cloudoffice.max-media.io/chat-message/{chatId}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"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"
}
}Changes the fields sent; the others stay as they are.
Needs the token of a signed-in user.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
The chat message's message id.
The chat message's text.
The chat message's data.
The chat message's options.
Returns the ChatMessage object.
curl -X PATCH 'http://cloudoffice.max-media.io/chat-message/{chatId}/{messageId}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "text": "...", "data": "...", "options": "..." }'{
"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"
}
}Returns one chat message, found by its ID.
Needs the token of a signed-in user.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
How many results to skip - for paging.
How many results to return.
Returns the ChatMessage object.
curl -X GET 'http://cloudoffice.max-media.io/chat-message/{chatId}/{skip}/{limit}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"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"
}
}Deletes the chat message. This cannot be undone.
Needs the token of a signed-in user.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
Returns an empty answer on success.
curl -X DELETE 'http://cloudoffice.max-media.io/chat-message/{chatId}/last-error?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Returns one AI builder, found by its ID.
Needs the token of a signed-in user.
The AI builder's page id.
curl -X GET 'http://cloudoffice.max-media.io/ai-builder/hero-animation/{pageId}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"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"
}Apply the AI builder.
Needs the token of a signed-in user.
The AI builder's page id.
The AI builder's media.
curl -X POST 'http://cloudoffice.max-media.io/ai-builder/hero-animation/{pageId}/apply?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "media": "..." }'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Dismiss the AI builder.
Needs the token of a signed-in user.
The AI builder's page id.
curl -X POST 'http://cloudoffice.max-media.io/ai-builder/hero-animation/{pageId}/dismiss?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"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"
}Revert the AI builder.
Needs the token of a signed-in user.
The AI builder's page id.
curl -X POST 'http://cloudoffice.max-media.io/ai-builder/hero-animation/{pageId}/revert?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"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"
}Start the AI builder.
Needs the token of a signed-in user.
The AI builder's page id.
The AI builder's idea.
The AI builder's media ids.
curl -X POST 'http://cloudoffice.max-media.io/ai-builder/hero-animation/{pageId}/start?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "idea": "...", "mediaIds": "..." }'{
"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"
}Use it when you have just confirmed you want to proceed with the dynamic feature plan described in the immediately preceding message.
Needs the token of a signed-in user.
What the AI should do with the dynamic features plan, in plain words - any language.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
Which version of the AI builder to use; leave it out for the current one.
curl -X POST 'http://cloudoffice.max-media.io/create-dynamic-features-plan?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "aiVersion": "..." }'Use it when you have just confirmed you want to proceed with the dynamic modification plan described in the immediately preceding message.
Needs the token of a signed-in user.
What the AI should do with the dynamic modification plan, in plain words - any language.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
Which version of the AI builder to use; leave it out for the current one.
curl -X POST 'http://cloudoffice.max-media.io/create-dynamic-modification-plan?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "aiVersion": "..." }'Use it when you make a complex or multi-step request that requires building multiple things.
Needs the token of a signed-in user.
What the AI should do with the plan, in plain words - any language.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
Which version of the AI builder to use; leave it out for the current one.
The plan's reference extract.
The plan's notice.
The plan's reference request.
The plan's selection request.
curl -X POST 'http://cloudoffice.max-media.io/create-plan?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "aiVersion": "...", "reference_extract": "...", "notice": "..." }'{
"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"
}
}Use it to configure, set up, or learn about the Companion App.
Needs the token of a signed-in user.
What the AI should do with the companion app plan, in plain words - any language.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
Which version of the AI builder to use; leave it out for the current one.
curl -X POST 'http://cloudoffice.max-media.io/generate-companion-app-plan?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "aiVersion": "..." }'Use it to build a brand new custom feature that requires creating a custom database model and/or custom pages.
Needs the token of a signed-in user.
What the AI should do with the dynamic features plan, in plain words - any language.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
Which version of the AI builder to use; leave it out for the current one.
curl -X POST 'http://cloudoffice.max-media.io/generate-dynamic-features-plan?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "aiVersion": "..." }'{
"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"
}
}Use it to modify, extend, or fix existing custom data features.
Needs the token of a signed-in user.
What the AI should do with the dynamic modification plan, in plain words - any language.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
Which version of the AI builder to use; leave it out for the current one.
curl -X POST 'http://cloudoffice.max-media.io/generate-dynamic-modification-plan?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "aiVersion": "..." }'{
"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"
}
}Use it to create or attach a custom page TO something.
Needs the token of a signed-in user.
What the AI should do with the page link plan, in plain words - any language.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
Which version of the AI builder to use; leave it out for the current one.
The page link plan's item ids.
curl -X POST 'http://cloudoffice.max-media.io/generate-page-link-plan?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "aiVersion": "...", "item_ids": "..." }'{
"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"
}
}Generate a project plan from a prompt, written by the AI builder.
Needs the token of a signed-in user.
What the AI should do with the project plan, in plain words - any language.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
Which version of the AI builder to use; leave it out for the current one.
curl -X POST 'http://cloudoffice.max-media.io/generate-project-plan?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "aiVersion": "..." }'{
"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"
}
}Use it to enable, disable, or configure any built-in platform feature.
Needs the token of a signed-in user.
What the AI should do with the social mode plan, in plain words - any language.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
Which version of the AI builder to use; leave it out for the current one.
curl -X POST 'http://cloudoffice.max-media.io/generate-social-mode-plan?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "aiVersion": "..." }'{
"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"
}
}Returns the site's unfinished plans, newest first unless a sort is given.
Needs the token of a signed-in user.
curl -X GET 'http://cloudoffice.max-media.io/unfinished-plans?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"user": "6543210fedcba98765432100",
"title": "Example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Finds every place a requested text change applies to and proposes it,. as a chat card, for confirmation. Background job; the card is the result.
Needs the token of a signed-in user.
What the AI should do with the site wide edit, in plain words - any language.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
Which version of the AI builder to use; leave it out for the current one.
curl -X POST 'http://cloudoffice.max-media.io/site-wide-edit?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "aiVersion": "..." }'{
"zip_code": "example",
"city": "example",
"address": "example",
"contact": "example",
"email": "jane@example.com",
"google_app": "example",
"workhours": "example",
"logo": "6543210fedcba98765432100",
"site_name": "Example",
"domain": "example",
"stock_domain": "example",
"isMarket": false,
"forbidden_collections": [
{
"collection_id": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"isInit": false,
"template": "0000",
"lang": "en",
"favicon": "6543210fedcba98765432100",
"cacheEnabled": false,
"has_completed_startup_prompt": true,
"gmb_location": "example",
"ga_property": "example",
"site_generated_at": "2026-11-04T12:00:00.000Z",
"admin_first_opened_at": "2026-11-04T12:00:00.000Z",
"admin_last_opened_at": "2026-11-04T12:00:00.000Z",
"allowedComponents": {
"services": false,
"products": false,
"blogposts": false,
"programs": false
}
}Apply the site wide edit.
Needs the token of a signed-in user.
The site wide edit's message id.
curl -X POST 'http://cloudoffice.max-media.io/site-wide-edit/apply?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "messageId": "..." }'{
"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"
}
}Puts back what an applied change replaced - where nothing has changed it since.
Needs the token of a signed-in user.
The site wide edit's message id.
curl -X POST 'http://cloudoffice.max-media.io/site-wide-edit/undo?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "messageId": "..." }'{
"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"
}
}