The site's look: the theme (colours, fonts, dark mode), header, footer, popups and reusable custom components built with HTML, CSS and JS.
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.
78 endpoints in 7 parts: Custom Component, Custom Font, Editor, Index Component, Popup, Wildcard, AI builder.
Returns the site's custom components, newest first unless a sort is given.
Public - no token needed.
Returns a list of CustomComponent objects.
curl -X GET 'http://pendarium.max-media.io/custom-components?ionic=true'
[
{
"name": "Example",
"html": "example",
"compiled_html": "example",
"css": "example",
"compiled_css": "example",
"js": "example",
"variables": [
{
"value": "example",
"_id": "6543210fedcba98765432100"
}
],
"iframe": false,
"media": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}
]Create new custom_component.
Needs a site admin token.
Returns the CustomComponent object.
curl -X POST 'http://pendarium.max-media.io/custom-components?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"name": "Example",
"html": "example",
"compiled_html": "example",
"css": "example",
"compiled_css": "example",
"js": "example",
"variables": [
{
"value": "example",
"_id": "6543210fedcba98765432100"
}
],
"iframe": false,
"media": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Returns one custom component, found by its ID.
Public - no token needed.
The ID of the custom component.
Returns the CustomComponent object.
curl -X GET 'http://pendarium.max-media.io/custom-components/{id}?ionic=true'{
"name": "Example",
"html": "example",
"compiled_html": "example",
"css": "example",
"compiled_css": "example",
"js": "example",
"variables": [
{
"value": "example",
"_id": "6543210fedcba98765432100"
}
],
"iframe": false,
"media": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Update CustomComponent by id.
Needs a site admin token.
The ID of the custom component.
Returns the CustomComponent object.
curl -X PATCH 'http://pendarium.max-media.io/custom-components/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"name": "Example",
"html": "example",
"compiled_html": "example",
"css": "example",
"compiled_css": "example",
"js": "example",
"variables": [
{
"value": "example",
"_id": "6543210fedcba98765432100"
}
],
"iframe": false,
"media": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Delete CustomComponent record by id.
Needs a site admin token.
The ID of the custom component.
Returns an empty answer on success.
curl -X DELETE 'http://pendarium.max-media.io/custom-components/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Returns the custom font.
Needs a site admin token.
Returns the CustomFont object.
curl -X GET 'http://pendarium.max-media.io/custom-font?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"family": "example",
"link": "example-item",
"name": "Example",
"weights": "example",
"italics": [
"example"
],
"subsets": [
"example"
],
"generic": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Import a Google font. Takes `{ query }` — a family name, a Google. Fonts URL, a <link> tag or a `font-family:` declaration — and resolves its real weights against Google's font metadata. The older `{ family, link }` body still works unchanged.
Needs a site admin token.
The custom font's query.
Returns the CustomFont object.
curl -X POST 'http://pendarium.max-media.io/custom-font?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "query": "..." }'{
"family": "example",
"link": "example-item",
"name": "Example",
"weights": "example",
"italics": [
"example"
],
"subsets": [
"example"
],
"generic": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Returns one custom font, found by its ID.
Needs a site admin token.
The ID of the custom font.
Returns the CustomFont object.
curl -X GET 'http://pendarium.max-media.io/custom-font/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"family": "example",
"link": "example-item",
"name": "Example",
"weights": "example",
"italics": [
"example"
],
"subsets": [
"example"
],
"generic": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Update CustomFont by id.
Needs a site admin token.
The ID of the custom font.
Returns the CustomFont object.
curl -X PATCH 'http://pendarium.max-media.io/custom-font/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"family": "example",
"link": "example-item",
"name": "Example",
"weights": "example",
"italics": [
"example"
],
"subsets": [
"example"
],
"generic": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Deletes the custom font. This cannot be undone.
Needs a site admin token.
The ID of the custom font.
Returns an empty answer on success.
curl -X DELETE 'http://pendarium.max-media.io/custom-font/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Every font the theme picker may offer — the built-in library plus. this tenant's own imports, in one shape.
Needs a site admin token.
curl -X GET 'http://pendarium.max-media.io/font-catalogue?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"family": "example",
"link": "example-item",
"name": "Example",
"weights": "example",
"italics": [
"example"
],
"subsets": [
"example"
],
"generic": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Typeahead over the whole Google Fonts library, for the admin's font. picker. `q` is whatever the user has typed so far.
Needs a site admin token.
The words to search for.
curl -X GET 'http://pendarium.max-media.io/google-fonts/search?ionic=true&q=...' \ -H 'Authorization: Bearer <TOKEN>'
Add an add locale.
Public - no token needed.
The add locale's locale.
curl -X POST 'http://pendarium.max-media.io/add-locale?ionic=true' \
-H 'Content-Type: application/json' \
-d '{ "locale": "..." }'curl -X GET 'http://pendarium.max-media.io/get-404?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
curl -X GET 'http://pendarium.max-media.io/get-app-scss?ionic=true'
curl -X GET 'http://pendarium.max-media.io/get-blog?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Returns the site's blogs, newest first unless a sort is given.
Needs a site admin token.
curl -X GET 'http://pendarium.max-media.io/get-blogs?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
curl -X GET 'http://pendarium.max-media.io/get-bs-css?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
curl -X GET 'http://pendarium.max-media.io/get-cart?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Returns the site's contacts, newest first unless a sort is given.
Needs a site admin token.
curl -X GET 'http://pendarium.max-media.io/get-contacts?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
curl -X GET 'http://pendarium.max-media.io/get-css?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
curl -X GET 'http://pendarium.max-media.io/get-header?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Returns the header css.
Needs a site admin token.
curl -X GET 'http://pendarium.max-media.io/get-header-css?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
curl -X GET 'http://pendarium.max-media.io/get-index?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Returns the site's locales, newest first unless a sort is given.
Public - no token needed.
Returns a list of Locales objects.
curl -X GET 'http://pendarium.max-media.io/get-locales?ionic=true'
[
{
"locales_object": {},
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}
]Returns the main css.
Needs a site admin token.
curl -X GET 'http://pendarium.max-media.io/get-main-css?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Returns the site's partners, newest first unless a sort is given.
Needs a site admin token.
curl -X GET 'http://pendarium.max-media.io/get-partners?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
curl -X GET 'http://pendarium.max-media.io/get-payment?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
curl -X GET 'http://pendarium.max-media.io/get-product?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Returns the site's products, newest first unless a sort is given.
Needs a site admin token.
curl -X GET 'http://pendarium.max-media.io/get-products?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
curl -X GET 'http://pendarium.max-media.io/get-service?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Returns the site's services, newest first unless a sort is given.
Needs a site admin token.
curl -X GET 'http://pendarium.max-media.io/get-services?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
curl -X GET 'http://pendarium.max-media.io/get-store?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
curl -X GET 'http://pendarium.max-media.io/get-theme?ionic=true'
curl -X GET 'http://pendarium.max-media.io/get-vlog?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Returns the site's vlogs, newest first unless a sort is given.
Needs a site admin token.
curl -X GET 'http://pendarium.max-media.io/get-vlogs?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Set a 404.
Needs a site admin token.
The 404's content.
curl -X POST 'http://pendarium.max-media.io/set-404?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "content": "..." }'Set a blog.
Needs a site admin token.
The blog's content.
curl -X POST 'http://pendarium.max-media.io/set-blog?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "content": "..." }'Set blogs.
Needs a site admin token.
The blog's content.
curl -X POST 'http://pendarium.max-media.io/set-blogs?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "content": "..." }'Set bs css.
Needs a site admin token.
The bs css's content.
curl -X POST 'http://pendarium.max-media.io/set-bs-css?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "content": "..." }'Set a cart.
Needs a site admin token.
The cart's content.
curl -X POST 'http://pendarium.max-media.io/set-cart?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "content": "..." }'Set contacts.
Needs a site admin token.
The contact's content.
curl -X POST 'http://pendarium.max-media.io/set-contacts?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "content": "..." }'Set a css.
Needs a site admin token.
The css's content.
curl -X POST 'http://pendarium.max-media.io/set-css?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "content": "..." }'Set a header.
Needs a site admin token.
The header's content.
curl -X POST 'http://pendarium.max-media.io/set-header?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "content": "..." }'Set a header css.
Needs a site admin token.
The header css's content.
curl -X POST 'http://pendarium.max-media.io/set-header-css?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "content": "..." }'Set an index.
Needs a site admin token.
The index's content.
curl -X POST 'http://pendarium.max-media.io/set-index?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "content": "..." }'Set locales.
Needs a site admin token.
The locale's content.
curl -X POST 'http://pendarium.max-media.io/set-locales?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "content": "..." }'Set a main css.
Needs a site admin token.
The main css's content.
curl -X POST 'http://pendarium.max-media.io/set-main-css?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "content": "..." }'Set partners.
Needs a site admin token.
The partner's content.
curl -X POST 'http://pendarium.max-media.io/set-partners?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "content": "..." }'Set a payment.
Needs a site admin token.
The payment's content.
curl -X POST 'http://pendarium.max-media.io/set-payment?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "content": "..." }'Set a product.
Needs a site admin token.
The product's content.
curl -X POST 'http://pendarium.max-media.io/set-product?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "content": "..." }'Set products.
Needs a site admin token.
The product's content.
curl -X POST 'http://pendarium.max-media.io/set-products?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "content": "..." }'Set a service.
Needs a site admin token.
The service's content.
curl -X POST 'http://pendarium.max-media.io/set-service?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "content": "..." }'Set services.
Needs a site admin token.
The service's content.
curl -X POST 'http://pendarium.max-media.io/set-services?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "content": "..." }'Set a store.
Needs a site admin token.
The store's content.
curl -X POST 'http://pendarium.max-media.io/set-store?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "content": "..." }'Set a theme.
Needs a site admin token.
The theme's content.
curl -X POST 'http://pendarium.max-media.io/set-theme?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "content": "..." }'Set a vlog.
Needs a site admin token.
The vlog's content.
curl -X POST 'http://pendarium.max-media.io/set-vlog?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "content": "..." }'Set vlogs.
Needs a site admin token.
The vlog's content.
curl -X POST 'http://pendarium.max-media.io/set-vlogs?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "content": "..." }'Returns the site's index components, newest first unless a sort is given.
Needs a site admin token.
Returns a list of IndexComponent objects.
curl -X GET 'http://pendarium.max-media.io/index-components?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"type": "example",
"position": 1,
"about_page": "example",
"isFluid": false,
"isAppComponent": false,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}
]Create new indexComponent.
Needs a site admin token.
Returns the IndexComponent object.
curl -X POST 'http://pendarium.max-media.io/index-components?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"type": "example",
"position": 1,
"about_page": "example",
"isFluid": false,
"isAppComponent": false,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Returns one index component, found by its ID.
Needs a site admin token.
The ID of the index component.
Returns the IndexComponent object.
curl -X GET 'http://pendarium.max-media.io/index-components/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"type": "example",
"position": 1,
"about_page": "example",
"isFluid": false,
"isAppComponent": false,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Update IndexComponent by id.
Needs a site admin token.
The ID of the index component.
Returns the IndexComponent object.
curl -X PATCH 'http://pendarium.max-media.io/index-components/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"type": "example",
"position": 1,
"about_page": "example",
"isFluid": false,
"isAppComponent": false,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Delete IndexComponent record by id.
Needs a site admin token.
The ID of the index component.
Returns an empty answer on success.
curl -X DELETE 'http://pendarium.max-media.io/index-components/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Returns the popup.
Needs a site admin token.
Returns the Popup object.
curl -X GET 'http://pendarium.max-media.io/popup?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"title": "Example",
"body": "6543210fedcba98765432100",
"decline_button_text": "Text shown on the site.",
"accept_button_text": "Text shown on the site.",
"accept_button_link": "example-item",
"wide_modal": false,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Create new popup.
Needs a site admin token.
Returns the Popup object.
curl -X POST 'http://pendarium.max-media.io/popup?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"title": "Example",
"body": "6543210fedcba98765432100",
"decline_button_text": "Text shown on the site.",
"accept_button_text": "Text shown on the site.",
"accept_button_link": "example-item",
"wide_modal": false,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Returns one popup, found by its ID.
Needs a site admin token.
The ID of the popup.
Returns the Popup object.
curl -X GET 'http://pendarium.max-media.io/popup/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"title": "Example",
"body": "6543210fedcba98765432100",
"decline_button_text": "Text shown on the site.",
"accept_button_text": "Text shown on the site.",
"accept_button_link": "example-item",
"wide_modal": false,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Returns one g, found by its URL slug.
Public - no token needed.
The g's URL slug, as in its address on the site.
curl -X GET 'http://pendarium.max-media.io/g/{url}(*)?ionic=true'{
"url": "example-item",
"points_to": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Returns the site's wildcards, newest first unless a sort is given.
Needs a site admin token.
Only wildcards with this authenticated.
Returns a list of Wildcard objects.
curl -X GET 'http://pendarium.max-media.io/wildcards?ionic=true&authenticated=...' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"url": "example-item",
"points_to": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}
]Create new wildcard.
Needs a site admin token.
Returns the Wildcard object.
curl -X POST 'http://pendarium.max-media.io/wildcards?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"url": "example-item",
"points_to": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Returns one wildcard, found by its ID.
Needs a site admin token.
The ID of the wildcard.
Returns the Wildcard object.
curl -X GET 'http://pendarium.max-media.io/wildcards/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"url": "example-item",
"points_to": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Update Wildcard by id.
Needs a site admin token.
The ID of the wildcard.
Returns the Wildcard object.
curl -X PATCH 'http://pendarium.max-media.io/wildcards/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"url": "example-item",
"points_to": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Delete Wildcard record by id.
Needs a site admin token.
The ID of the wildcard.
Returns an empty answer on success.
curl -X DELETE 'http://pendarium.max-media.io/wildcards/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Create a popup from a prompt, written by the AI builder.
Needs the token of a signed-in user.
What the AI should do with the popup, 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 ID of the popup to change.
curl -X POST 'http://pendarium.max-media.io/create-new-popup?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "aiVersion": "...", "item_id": "..." }'{
"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 set up a site popup or modal.
Needs the token of a signed-in user.
What the AI should do with the popup, 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.
curl -X POST 'http://pendarium.max-media.io/generate-popup?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "..." }'