Custom data models the site defines itself - their records, admin pages, triggers that run when records change and scheduled jobs.
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.
56 endpoints in 6 parts: Brand, Dynamic Page, Dynamic Trigger, Dynamicmodel, Miniapp, AI builder.
Returns the site's brands, newest first unless a sort is given.
Public - no token needed.
Returns a list of Brand objects.
curl -X GET 'http://dunav41.com/brands?ionic=true'
[
{
"name": "Example",
"header": "example",
"description": "Text shown on the site.",
"slogan": "example",
"logo": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
]Returns one brand, found by its ID.
Public - no token needed.
The ID of the brand.
Returns the Brand object.
curl -X GET 'http://dunav41.com/brands/{id}?ionic=true'{
"name": "Example",
"header": "example",
"description": "Text shown on the site.",
"slogan": "example",
"logo": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}Returns one brand, found by its ID.
Public - no token needed.
The ID of the brand.
Returns the Brand object.
curl -X GET 'http://dunav41.com/brands/{id}/logo?ionic=true'{
"name": "Example",
"header": "example",
"description": "Text shown on the site.",
"slogan": "example",
"logo": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}Creates a brand from the fields sent.
Needs the token of a signed-in user.
The ID of the brand.
curl -X POST 'http://dunav41.com/brands/{id}/logo?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Deletes the brand. This cannot be undone.
Needs the token of a signed-in user.
The ID of the brand.
Returns an empty answer on success.
curl -X DELETE 'http://dunav41.com/brands/{id}/logo?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Get all DynamicdynamicPages.
Needs a site admin token.
Returns the DynamicPage object.
curl -X GET 'http://dunav41.com/dynamic-page?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"name": "Example",
"url": "example-item",
"dynamic_models": [
"6543210fedcba98765432101"
],
"page_type": "cms-table",
"value_containers": [
{
"name": "Example",
"type": "example",
"value": "example",
"wysiwyg": false,
"editable": false,
"label": "Example",
"required": false,
"default": {},
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"depends_on": "example",
"populate": false,
"enumerator_values": [],
"due_date": false,
"fields": [],
"_id": "6543210fedcba98765432100",
"validations": {
"minLength": 0,
"maxLength": 0
}
}
],
"quick_link": false,
"quick_link_icon": "example-item",
"quick_link_text": "example-item",
"quick_link_auth_guard": "none",
"on_click_action": "none",
"secondary_cta": false,
"secondary_ctas": [
{
"icon": "example",
"text": "Text shown on the site.",
"auth_guard": "none",
"on_click_action": "none",
"_id": "6543210fedcba98765432100",
"navigate": {
"link": "example-item",
"query_params": "example"
}
}
],
"edit_page": false,
"create_page": false,
"auth_guard": "none",
"enable_additional_filters": false,
"additional_filters": {},
"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"
}
}
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"navigate": {
"link": "example-item",
"query_params": "example"
},
"statistics_options": {
"filter_fields": "example",
"functions": "example"
}
}Create new DynamicPage.
Needs a site admin token.
The dynamic page's name.
Returns the DynamicPage object.
curl -X POST 'http://dunav41.com/dynamic-page?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "name": "..." }'{
"name": "Example",
"url": "example-item",
"dynamic_models": [
"6543210fedcba98765432101"
],
"page_type": "cms-table",
"value_containers": [
{
"name": "Example",
"type": "example",
"value": "example",
"wysiwyg": false,
"editable": false,
"label": "Example",
"required": false,
"default": {},
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"depends_on": "example",
"populate": false,
"enumerator_values": [],
"due_date": false,
"fields": [],
"_id": "6543210fedcba98765432100",
"validations": {
"minLength": 0,
"maxLength": 0
}
}
],
"quick_link": false,
"quick_link_icon": "example-item",
"quick_link_text": "example-item",
"quick_link_auth_guard": "none",
"on_click_action": "none",
"secondary_cta": false,
"secondary_ctas": [
{
"icon": "example",
"text": "Text shown on the site.",
"auth_guard": "none",
"on_click_action": "none",
"_id": "6543210fedcba98765432100",
"navigate": {
"link": "example-item",
"query_params": "example"
}
}
],
"edit_page": false,
"create_page": false,
"auth_guard": "none",
"enable_additional_filters": false,
"additional_filters": {},
"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"
}
}
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"navigate": {
"link": "example-item",
"query_params": "example"
},
"statistics_options": {
"filter_fields": "example",
"functions": "example"
}
}Get dynamic page statistics.
Works without a token; with a user token the answer is personal.
The dynamic page's URL slug, as in its address on the site.
Only dynamic pages with this from.
Only dynamic pages with this to.
Returns the DynamicPage object.
curl -X GET 'http://dunav41.com/dynamic-page-statistics/{url}?ionic=true&from=...&to=...'{
"name": "Example",
"url": "example-item",
"dynamic_models": [
"6543210fedcba98765432101"
],
"page_type": "cms-table",
"value_containers": [
{
"name": "Example",
"type": "example",
"value": "example",
"wysiwyg": false,
"editable": false,
"label": "Example",
"required": false,
"default": {},
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"depends_on": "example",
"populate": false,
"enumerator_values": [],
"due_date": false,
"fields": [],
"_id": "6543210fedcba98765432100",
"validations": {
"minLength": 0,
"maxLength": 0
}
}
],
"quick_link": false,
"quick_link_icon": "example-item",
"quick_link_text": "example-item",
"quick_link_auth_guard": "none",
"on_click_action": "none",
"secondary_cta": false,
"secondary_ctas": [
{
"icon": "example",
"text": "Text shown on the site.",
"auth_guard": "none",
"on_click_action": "none",
"_id": "6543210fedcba98765432100",
"navigate": {
"link": "example-item",
"query_params": "example"
}
}
],
"edit_page": false,
"create_page": false,
"auth_guard": "none",
"enable_additional_filters": false,
"additional_filters": {},
"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"
}
}
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"navigate": {
"link": "example-item",
"query_params": "example"
},
"statistics_options": {
"filter_fields": "example",
"functions": "example"
}
}Update DynamicPage by ID.
Needs a site admin token.
The ID of the dynamic page.
The dynamic page's name.
Returns the DynamicPage object.
curl -X PATCH 'http://dunav41.com/dynamic-page/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "name": "..." }'{
"name": "Example",
"url": "example-item",
"dynamic_models": [
"6543210fedcba98765432101"
],
"page_type": "cms-table",
"value_containers": [
{
"name": "Example",
"type": "example",
"value": "example",
"wysiwyg": false,
"editable": false,
"label": "Example",
"required": false,
"default": {},
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"depends_on": "example",
"populate": false,
"enumerator_values": [],
"due_date": false,
"fields": [],
"_id": "6543210fedcba98765432100",
"validations": {
"minLength": 0,
"maxLength": 0
}
}
],
"quick_link": false,
"quick_link_icon": "example-item",
"quick_link_text": "example-item",
"quick_link_auth_guard": "none",
"on_click_action": "none",
"secondary_cta": false,
"secondary_ctas": [
{
"icon": "example",
"text": "Text shown on the site.",
"auth_guard": "none",
"on_click_action": "none",
"_id": "6543210fedcba98765432100",
"navigate": {
"link": "example-item",
"query_params": "example"
}
}
],
"edit_page": false,
"create_page": false,
"auth_guard": "none",
"enable_additional_filters": false,
"additional_filters": {},
"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"
}
}
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"navigate": {
"link": "example-item",
"query_params": "example"
},
"statistics_options": {
"filter_fields": "example",
"functions": "example"
}
}Delete DynamicPage by ID.
Needs a site admin token.
The ID of the dynamic page.
Returns an empty answer on success.
curl -X DELETE 'http://dunav41.com/dynamic-page/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Get a particular DynamicPage by ID.
Works without a token; with a user token the answer is personal.
The dynamic page's URL slug, as in its address on the site.
Returns the DynamicPage object.
curl -X GET 'http://dunav41.com/dynamic-page/{url}?ionic=true'{
"name": "Example",
"url": "example-item",
"dynamic_models": [
"6543210fedcba98765432101"
],
"page_type": "cms-table",
"value_containers": [
{
"name": "Example",
"type": "example",
"value": "example",
"wysiwyg": false,
"editable": false,
"label": "Example",
"required": false,
"default": {},
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"depends_on": "example",
"populate": false,
"enumerator_values": [],
"due_date": false,
"fields": [],
"_id": "6543210fedcba98765432100",
"validations": {
"minLength": 0,
"maxLength": 0
}
}
],
"quick_link": false,
"quick_link_icon": "example-item",
"quick_link_text": "example-item",
"quick_link_auth_guard": "none",
"on_click_action": "none",
"secondary_cta": false,
"secondary_ctas": [
{
"icon": "example",
"text": "Text shown on the site.",
"auth_guard": "none",
"on_click_action": "none",
"_id": "6543210fedcba98765432100",
"navigate": {
"link": "example-item",
"query_params": "example"
}
}
],
"edit_page": false,
"create_page": false,
"auth_guard": "none",
"enable_additional_filters": false,
"additional_filters": {},
"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"
}
}
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"navigate": {
"link": "example-item",
"query_params": "example"
},
"statistics_options": {
"filter_fields": "example",
"functions": "example"
}
}Returns the site's used schemas, newest first unless a sort is given.
Needs a site admin token.
curl -X GET 'http://dunav41.com/all-used-schemas?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Get all DynamicTriggers.
Needs a site admin token.
Returns the DynamicTrigger object.
curl -X GET 'http://dunav41.com/dynamic-trigger?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"enabled": false,
"name": "Example",
"model": "example",
"type": "CREATE",
"code": "example",
"last_run_at": "2026-11-04T12:00:00.000Z",
"last_run_status": null,
"last_error": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Create new DynamicTrigger.
Needs a site admin token.
Returns the DynamicTrigger object.
curl -X POST 'http://dunav41.com/dynamic-trigger?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"enabled": false,
"name": "Example",
"model": "example",
"type": "CREATE",
"code": "example",
"last_run_at": "2026-11-04T12:00:00.000Z",
"last_run_status": null,
"last_error": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Get a particular DynamicTrigger by ID.
Needs a site admin token.
The ID of the dynamic trigger.
Returns the DynamicTrigger object.
curl -X GET 'http://dunav41.com/dynamic-trigger/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"enabled": false,
"name": "Example",
"model": "example",
"type": "CREATE",
"code": "example",
"last_run_at": "2026-11-04T12:00:00.000Z",
"last_run_status": null,
"last_error": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Update DynamicTrigger by ID.
Needs a site admin token.
The ID of the dynamic trigger.
The dynamic trigger's last error.
The dynamic trigger's last run at.
The last run status: one of , success, failed.
Returns the DynamicTrigger object.
curl -X PATCH 'http://dunav41.com/dynamic-trigger/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "last_error": "...", "last_run_at": "...", "last_run_status": "..." }'{
"enabled": false,
"name": "Example",
"model": "example",
"type": "CREATE",
"code": "example",
"last_run_at": "2026-11-04T12:00:00.000Z",
"last_run_status": null,
"last_error": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Delete DynamicTrigger by ID.
Needs a site admin token.
The ID of the dynamic trigger.
Returns an empty answer on success.
curl -X DELETE 'http://dunav41.com/dynamic-trigger/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Get all DynamicModels.
Needs a site admin token.
curl -X GET 'http://dunav41.com/dynamicmodel?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"name": "Example",
"fields": [
{
"name": "Example",
"type": "example",
"required": false,
"default": {},
"patchable": true,
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"depends_on": "example",
"populate": false,
"wysiwyg": false,
"fields": [],
"show_field_in_cms_table": true,
"enumerator_values": [],
"_id": "6543210fedcba98765432100",
"validations": {
"minLength": "example",
"maxLength": "example"
}
}
],
"attach_in": [
{
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"user_input": false,
"_id": "6543210fedcba98765432100"
}
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"auth": {
"create": false,
"read": false,
"update": false,
"delete": false
},
"ownership_settings": {
"enable_ownership_identification": false,
"ownership_based_auth": "example",
"profile_use": false
}
}Create new DynamicModel.
Needs a site admin token.
The content type's name.
The content type's fields.
curl -X POST 'http://dunav41.com/dynamicmodel?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "name": "...", "fields": "..." }'{
"name": "Example",
"fields": [
{
"name": "Example",
"type": "example",
"required": false,
"default": {},
"patchable": true,
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"depends_on": "example",
"populate": false,
"wysiwyg": false,
"fields": [],
"show_field_in_cms_table": true,
"enumerator_values": [],
"_id": "6543210fedcba98765432100",
"validations": {
"minLength": "example",
"maxLength": "example"
}
}
],
"attach_in": [
{
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"user_input": false,
"_id": "6543210fedcba98765432100"
}
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"auth": {
"create": false,
"read": false,
"update": false,
"delete": false
},
"ownership_settings": {
"enable_ownership_identification": false,
"ownership_based_auth": "example",
"profile_use": false
}
}Get dynamic models with user_input=true for a given ref type.
Public - no token needed.
Only content type input fields with this ref.
curl -X GET 'http://dunav41.com/dynamicmodel-input-fields?ionic=true&ref=...'
{
"name": "Example",
"fields": [
{
"name": "Example",
"type": "example",
"required": false,
"default": {},
"patchable": true,
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"depends_on": "example",
"populate": false,
"wysiwyg": false,
"fields": [],
"show_field_in_cms_table": true,
"enumerator_values": [],
"_id": "6543210fedcba98765432100",
"validations": {
"minLength": "example",
"maxLength": "example"
}
}
],
"attach_in": [
{
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"user_input": false,
"_id": "6543210fedcba98765432100"
}
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"auth": {
"create": false,
"read": false,
"update": false,
"delete": false
},
"ownership_settings": {
"enable_ownership_identification": false,
"ownership_based_auth": "example",
"profile_use": false
}
}Get dynamic models with user_input=false for a given ref type, including their docs.
Public - no token needed.
Only content type select fields with this ref.
curl -X GET 'http://dunav41.com/dynamicmodel-select-fields?ionic=true&ref=...'
{
"name": "Example",
"fields": [
{
"name": "Example",
"type": "example",
"required": false,
"default": {},
"patchable": true,
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"depends_on": "example",
"populate": false,
"wysiwyg": false,
"fields": [],
"show_field_in_cms_table": true,
"enumerator_values": [],
"_id": "6543210fedcba98765432100",
"validations": {
"minLength": "example",
"maxLength": "example"
}
}
],
"attach_in": [
{
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"user_input": false,
"_id": "6543210fedcba98765432100"
}
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"auth": {
"create": false,
"read": false,
"update": false,
"delete": false
},
"ownership_settings": {
"enable_ownership_identification": false,
"ownership_based_auth": "example",
"profile_use": false
}
}Get a particular DynamicModel by ID.
Needs a site admin token.
The ID of the content type.
curl -X GET 'http://dunav41.com/dynamicmodel/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"name": "Example",
"fields": [
{
"name": "Example",
"type": "example",
"required": false,
"default": {},
"patchable": true,
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"depends_on": "example",
"populate": false,
"wysiwyg": false,
"fields": [],
"show_field_in_cms_table": true,
"enumerator_values": [],
"_id": "6543210fedcba98765432100",
"validations": {
"minLength": "example",
"maxLength": "example"
}
}
],
"attach_in": [
{
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"user_input": false,
"_id": "6543210fedcba98765432100"
}
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"auth": {
"create": false,
"read": false,
"update": false,
"delete": false
},
"ownership_settings": {
"enable_ownership_identification": false,
"ownership_based_auth": "example",
"profile_use": false
}
}Update DynamicModel by ID.
Needs a site admin token.
The ID of the content type.
The content type's fields.
curl -X PATCH 'http://dunav41.com/dynamicmodel/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "fields": "..." }'{
"name": "Example",
"fields": [
{
"name": "Example",
"type": "example",
"required": false,
"default": {},
"patchable": true,
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"depends_on": "example",
"populate": false,
"wysiwyg": false,
"fields": [],
"show_field_in_cms_table": true,
"enumerator_values": [],
"_id": "6543210fedcba98765432100",
"validations": {
"minLength": "example",
"maxLength": "example"
}
}
],
"attach_in": [
{
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"user_input": false,
"_id": "6543210fedcba98765432100"
}
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"auth": {
"create": false,
"read": false,
"update": false,
"delete": false
},
"ownership_settings": {
"enable_ownership_identification": false,
"ownership_based_auth": "example",
"profile_use": false
}
}Delete DynamicModel by ID.
Needs a site admin token.
The ID of the content type.
Returns an empty answer on success.
curl -X DELETE 'http://dunav41.com/dynamicmodel/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Returns the site's mini apps, newest first unless a sort is given.
Needs the token of a signed-in user.
How many results to skip - for paging.
Returns a list of MiniApp objects.
curl -X GET 'http://dunav41.com/all-miniapps/{skip}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'[
{
"title": "Example",
"header": "example",
"description": "Text shown on the site.",
"referer": "example",
"requiresLogin": true,
"icon": "6543210fedcba98765432100",
"previews": [
{
"media": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"owner_id": "6543210fedcba98765432100",
"reviewed": false,
"approved": false,
"total_opened": 0,
"opened_by": [
"6543210fedcba98765432101"
],
"minimum_age": 1,
"language": [
"example"
],
"collection_id": "6543210fedcba98765432100",
"total_views": 0,
"views": [
"6543210fedcba98765432101"
],
"privacy_policy": "example",
"support_url": "example-item",
"marketing_url": "example-item",
"copyright": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"data_collection": {
"contact_info": "example",
"health_info": "example",
"payment_info": "example",
"location_info": "example",
"other_info": "example",
"user_info": "example",
"identifiers_info": "example",
"usage_data": "example",
"diagnostics_data": "example"
}
}
]Returns one mini app insight, found by its ID.
Needs the token of a signed-in user.
The ID of the mini app insight.
curl -X GET 'http://dunav41.com/mini-app-insights/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"title": "Example",
"header": "example",
"description": "Text shown on the site.",
"referer": "example",
"requiresLogin": true,
"icon": "6543210fedcba98765432100",
"previews": [
{
"media": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"owner_id": "6543210fedcba98765432100",
"reviewed": false,
"approved": false,
"total_opened": 0,
"opened_by": [
"6543210fedcba98765432101"
],
"minimum_age": 1,
"language": [
"example"
],
"collection_id": "6543210fedcba98765432100",
"total_views": 0,
"views": [
"6543210fedcba98765432101"
],
"privacy_policy": "example",
"support_url": "example-item",
"marketing_url": "example-item",
"copyright": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"data_collection": {
"contact_info": "example",
"health_info": "example",
"payment_info": "example",
"location_info": "example",
"other_info": "example",
"user_info": "example",
"identifiers_info": "example",
"usage_data": "example",
"diagnostics_data": "example"
}
}Changes the fields sent; the others stay as they are.
Needs the token of a signed-in user.
The ID of the mini app open.
curl -X PATCH 'http://dunav41.com/mini-app-open/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"title": "Example",
"header": "example",
"description": "Text shown on the site.",
"referer": "example",
"requiresLogin": true,
"icon": "6543210fedcba98765432100",
"previews": [
{
"media": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"owner_id": "6543210fedcba98765432100",
"reviewed": false,
"approved": false,
"total_opened": 0,
"opened_by": [
"6543210fedcba98765432101"
],
"minimum_age": 1,
"language": [
"example"
],
"collection_id": "6543210fedcba98765432100",
"total_views": 0,
"views": [
"6543210fedcba98765432101"
],
"privacy_policy": "example",
"support_url": "example-item",
"marketing_url": "example-item",
"copyright": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"data_collection": {
"contact_info": "example",
"health_info": "example",
"payment_info": "example",
"location_info": "example",
"other_info": "example",
"user_info": "example",
"identifiers_info": "example",
"usage_data": "example",
"diagnostics_data": "example"
}
}Record a view of a mini app.
Needs the token of a signed-in user.
The ID of the mini app.
Returns the MiniApp object.
curl -X PATCH 'http://dunav41.com/mini-app-view/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"title": "Example",
"header": "example",
"description": "Text shown on the site.",
"referer": "example",
"requiresLogin": true,
"icon": "6543210fedcba98765432100",
"previews": [
{
"media": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"owner_id": "6543210fedcba98765432100",
"reviewed": false,
"approved": false,
"total_opened": 0,
"opened_by": [
"6543210fedcba98765432101"
],
"minimum_age": 1,
"language": [
"example"
],
"collection_id": "6543210fedcba98765432100",
"total_views": 0,
"views": [
"6543210fedcba98765432101"
],
"privacy_policy": "example",
"support_url": "example-item",
"marketing_url": "example-item",
"copyright": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"data_collection": {
"contact_info": "example",
"health_info": "example",
"payment_info": "example",
"location_info": "example",
"other_info": "example",
"user_info": "example",
"identifiers_info": "example",
"usage_data": "example",
"diagnostics_data": "example"
}
}Creates a mini app from the fields sent.
Needs the token of a signed-in user.
Returns the MiniApp object.
curl -X POST 'http://dunav41.com/miniapps?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"title": "Example",
"header": "example",
"description": "Text shown on the site.",
"referer": "example",
"requiresLogin": true,
"icon": "6543210fedcba98765432100",
"previews": [
{
"media": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"owner_id": "6543210fedcba98765432100",
"reviewed": false,
"approved": false,
"total_opened": 0,
"opened_by": [
"6543210fedcba98765432101"
],
"minimum_age": 1,
"language": [
"example"
],
"collection_id": "6543210fedcba98765432100",
"total_views": 0,
"views": [
"6543210fedcba98765432101"
],
"privacy_policy": "example",
"support_url": "example-item",
"marketing_url": "example-item",
"copyright": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"data_collection": {
"contact_info": "example",
"health_info": "example",
"payment_info": "example",
"location_info": "example",
"other_info": "example",
"user_info": "example",
"identifiers_info": "example",
"usage_data": "example",
"diagnostics_data": "example"
}
}Returns the mini apps user data.
Public - no token needed.
curl -X GET 'http://dunav41.com/miniapps-get-user-data?ionic=true'
{
"name": "Example",
"email": "jane@example.com",
"avatar": "6543210fedcba98765432100",
"social_avatar": "example",
"isAdmin": false,
"isStaff": false,
"owner_id": "6543210fedcba98765432100",
"organization_name": "Example",
"firstname": "Example",
"lastname": "Example",
"phone_number": "+359 888 123 456",
"address": "example",
"city": "example",
"state": "example",
"country": "example",
"zip_code": "example",
"tax_identification_number": "example",
"notes": "Text shown on the site.",
"isConfirmed": false,
"number_of_sales": 0,
"stripe_id": "example",
"paypal_id": "example",
"access_level": 1,
"validation_code": "example",
"can_edit": {
"site": false,
"crm": false,
"store": false,
"payments": false,
"staff": false
},
"ip_location": {
"city": "example",
"continent_name": "Example",
"country_name": "Example",
"country_subdivision": "example",
"location_latitude": 0,
"location_longitude": 0,
"last_updated": "example"
}
}Returns the mini apps receiver authorization code.
Public - no token needed.
curl -X GET 'http://dunav41.com/miniapps-receiver-validate-authorization-code?ionic=true'
{
"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
}
}Returns the mini apps temp authorization code.
Public - no token needed.
curl -X GET 'http://dunav41.com/miniapps-temp-authorization-code?ionic=true'
{
"name": "Example",
"email": "jane@example.com",
"avatar": "6543210fedcba98765432100",
"social_avatar": "example",
"isAdmin": false,
"isStaff": false,
"owner_id": "6543210fedcba98765432100",
"organization_name": "Example",
"firstname": "Example",
"lastname": "Example",
"phone_number": "+359 888 123 456",
"address": "example",
"city": "example",
"state": "example",
"country": "example",
"zip_code": "example",
"tax_identification_number": "example",
"notes": "Text shown on the site.",
"isConfirmed": false,
"number_of_sales": 0,
"stripe_id": "example",
"paypal_id": "example",
"access_level": 1,
"validation_code": "example",
"can_edit": {
"site": false,
"crm": false,
"store": false,
"payments": false,
"staff": false
},
"ip_location": {
"city": "example",
"continent_name": "Example",
"country_name": "Example",
"country_subdivision": "example",
"location_latitude": 0,
"location_longitude": 0,
"last_updated": "example"
}
}Returns the mini apps authorization code.
Public - no token needed.
curl -X GET 'http://dunav41.com/miniapps-validate-authorization-code?ionic=true'
{
"name": "Example",
"email": "jane@example.com",
"avatar": "6543210fedcba98765432100",
"social_avatar": "example",
"isAdmin": false,
"isStaff": false,
"owner_id": "6543210fedcba98765432100",
"organization_name": "Example",
"firstname": "Example",
"lastname": "Example",
"phone_number": "+359 888 123 456",
"address": "example",
"city": "example",
"state": "example",
"country": "example",
"zip_code": "example",
"tax_identification_number": "example",
"notes": "Text shown on the site.",
"isConfirmed": false,
"number_of_sales": 0,
"stripe_id": "example",
"paypal_id": "example",
"access_level": 1,
"validation_code": "example",
"can_edit": {
"site": false,
"crm": false,
"store": false,
"payments": false,
"staff": false
},
"ip_location": {
"city": "example",
"continent_name": "Example",
"country_name": "Example",
"country_subdivision": "example",
"location_latitude": 0,
"location_longitude": 0,
"last_updated": "example"
}
}Returns one mini app, found by its ID.
Needs the token of a signed-in user.
The ID of the mini app.
Returns the MiniApp object.
curl -X GET 'http://dunav41.com/miniapps/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"title": "Example",
"header": "example",
"description": "Text shown on the site.",
"referer": "example",
"requiresLogin": true,
"icon": "6543210fedcba98765432100",
"previews": [
{
"media": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"owner_id": "6543210fedcba98765432100",
"reviewed": false,
"approved": false,
"total_opened": 0,
"opened_by": [
"6543210fedcba98765432101"
],
"minimum_age": 1,
"language": [
"example"
],
"collection_id": "6543210fedcba98765432100",
"total_views": 0,
"views": [
"6543210fedcba98765432101"
],
"privacy_policy": "example",
"support_url": "example-item",
"marketing_url": "example-item",
"copyright": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"data_collection": {
"contact_info": "example",
"health_info": "example",
"payment_info": "example",
"location_info": "example",
"other_info": "example",
"user_info": "example",
"identifiers_info": "example",
"usage_data": "example",
"diagnostics_data": "example"
}
}Changes the fields sent; the others stay as they are.
Needs the token of a signed-in user.
The ID of the mini app.
The mini app's previews.
Returns the MiniApp object.
curl -X PATCH 'http://dunav41.com/miniapps/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "previews": "..." }'{
"title": "Example",
"header": "example",
"description": "Text shown on the site.",
"referer": "example",
"requiresLogin": true,
"icon": "6543210fedcba98765432100",
"previews": [
{
"media": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"owner_id": "6543210fedcba98765432100",
"reviewed": false,
"approved": false,
"total_opened": 0,
"opened_by": [
"6543210fedcba98765432101"
],
"minimum_age": 1,
"language": [
"example"
],
"collection_id": "6543210fedcba98765432100",
"total_views": 0,
"views": [
"6543210fedcba98765432101"
],
"privacy_policy": "example",
"support_url": "example-item",
"marketing_url": "example-item",
"copyright": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"data_collection": {
"contact_info": "example",
"health_info": "example",
"payment_info": "example",
"location_info": "example",
"other_info": "example",
"user_info": "example",
"identifiers_info": "example",
"usage_data": "example",
"diagnostics_data": "example"
}
}Deletes the mini app. This cannot be undone.
Needs the token of a signed-in user.
The ID of the mini app.
Returns an empty answer on success.
curl -X DELETE 'http://dunav41.com/miniapps/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Returns the site's mini apps, newest first unless a sort is given.
Needs the token of a signed-in user.
Returns a list of MiniApp objects.
curl -X GET 'http://dunav41.com/my-mini-apps?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"title": "Example",
"header": "example",
"description": "Text shown on the site.",
"referer": "example",
"requiresLogin": true,
"icon": "6543210fedcba98765432100",
"previews": [
{
"media": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"owner_id": "6543210fedcba98765432100",
"reviewed": false,
"approved": false,
"total_opened": 0,
"opened_by": [
"6543210fedcba98765432101"
],
"minimum_age": 1,
"language": [
"example"
],
"collection_id": "6543210fedcba98765432100",
"total_views": 0,
"views": [
"6543210fedcba98765432101"
],
"privacy_policy": "example",
"support_url": "example-item",
"marketing_url": "example-item",
"copyright": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"data_collection": {
"contact_info": "example",
"health_info": "example",
"payment_info": "example",
"location_info": "example",
"other_info": "example",
"user_info": "example",
"identifiers_info": "example",
"usage_data": "example",
"diagnostics_data": "example"
}
}
]curl -X GET 'http://dunav41.com/referer?ionic=true'
Returns one user mini app, found by its ID.
Needs the token of a signed-in user.
The owner id - the ID of a user.
Returns the MiniApp object.
curl -X GET 'http://dunav41.com/user-mini-apps/{owner_id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"title": "Example",
"header": "example",
"description": "Text shown on the site.",
"referer": "example",
"requiresLogin": true,
"icon": "6543210fedcba98765432100",
"previews": [
{
"media": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"owner_id": "6543210fedcba98765432100",
"reviewed": false,
"approved": false,
"total_opened": 0,
"opened_by": [
"6543210fedcba98765432101"
],
"minimum_age": 1,
"language": [
"example"
],
"collection_id": "6543210fedcba98765432100",
"total_views": 0,
"views": [
"6543210fedcba98765432101"
],
"privacy_policy": "example",
"support_url": "example-item",
"marketing_url": "example-item",
"copyright": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"data_collection": {
"contact_info": "example",
"health_info": "example",
"payment_info": "example",
"location_info": "example",
"other_info": "example",
"user_info": "example",
"identifiers_info": "example",
"usage_data": "example",
"diagnostics_data": "example"
}
}Create a dynamic model from a prompt, written by the AI builder.
Needs the token of a signed-in user.
What the AI should do with the dynamic model, 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://dunav41.com/create-new-dynamic-model?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "aiVersion": "..." }'Create a dynamic page from a prompt, written by the AI builder.
Needs the token of a signed-in user.
What the AI should do with the dynamic page, 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 dynamic page's model id.
curl -X POST 'http://dunav41.com/create-new-dynamic-page?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "aiVersion": "...", "model_id": "..." }'{
"name": "Example",
"fields": [
{
"name": "Example",
"type": "example",
"required": false,
"default": {},
"patchable": true,
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"depends_on": "example",
"populate": false,
"wysiwyg": false,
"fields": [],
"show_field_in_cms_table": true,
"enumerator_values": [],
"_id": "6543210fedcba98765432100",
"validations": {
"minLength": "example",
"maxLength": "example"
}
}
],
"attach_in": [
{
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"user_input": false,
"_id": "6543210fedcba98765432100"
}
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"auth": {
"create": false,
"read": false,
"update": false,
"delete": false
},
"ownership_settings": {
"enable_ownership_identification": false,
"ownership_based_auth": "example",
"profile_use": false
}
}Create a dynamic trigger from a prompt, written by the AI builder.
Needs the token of a signed-in user.
What the AI should do with the dynamic trigger, 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 dynamic trigger's model id.
curl -X POST 'http://dunav41.com/create-new-dynamic-trigger?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "aiVersion": "...", "model_id": "..." }'{
"name": "Example",
"fields": [
{
"name": "Example",
"type": "example",
"required": false,
"default": {},
"patchable": true,
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"depends_on": "example",
"populate": false,
"wysiwyg": false,
"fields": [],
"show_field_in_cms_table": true,
"enumerator_values": [],
"_id": "6543210fedcba98765432100",
"validations": {
"minLength": "example",
"maxLength": "example"
}
}
],
"attach_in": [
{
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"user_input": false,
"_id": "6543210fedcba98765432100"
}
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"auth": {
"create": false,
"read": false,
"update": false,
"delete": false
},
"ownership_settings": {
"enable_ownership_identification": false,
"ownership_based_auth": "example",
"profile_use": false
}
}Use it to delete one or more existing custom data models by name.
Needs the token of a signed-in user.
The delete dynamic model's item ids.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
Returns the DynamicModel object.
curl -X POST 'http://dunav41.com/delete-dynamic-model?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "item_ids": "...", "chatId": "..." }'{
"name": "Example",
"fields": [
{
"name": "Example",
"type": "example",
"required": false,
"default": {},
"patchable": true,
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"depends_on": "example",
"populate": false,
"wysiwyg": false,
"fields": [],
"show_field_in_cms_table": true,
"enumerator_values": [],
"_id": "6543210fedcba98765432100",
"validations": {
"minLength": "example",
"maxLength": "example"
}
}
],
"attach_in": [
{
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"user_input": false,
"_id": "6543210fedcba98765432100"
}
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"auth": {
"create": false,
"read": false,
"update": false,
"delete": false
},
"ownership_settings": {
"enable_ownership_identification": false,
"ownership_based_auth": "example",
"profile_use": false
}
}Use it to delete one or more existing custom dynamic pages by name.
Needs the token of a signed-in user.
The delete dynamic page's item ids.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
Returns the DynamicPage object.
curl -X POST 'http://dunav41.com/delete-dynamic-page?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "item_ids": "...", "chatId": "..." }'{
"name": "Example",
"url": "example-item",
"dynamic_models": [
"6543210fedcba98765432101"
],
"page_type": "cms-table",
"value_containers": [
{
"name": "Example",
"type": "example",
"value": "example",
"wysiwyg": false,
"editable": false,
"label": "Example",
"required": false,
"default": {},
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"depends_on": "example",
"populate": false,
"enumerator_values": [],
"due_date": false,
"fields": [],
"_id": "6543210fedcba98765432100",
"validations": {
"minLength": 0,
"maxLength": 0
}
}
],
"quick_link": false,
"quick_link_icon": "example-item",
"quick_link_text": "example-item",
"quick_link_auth_guard": "none",
"on_click_action": "none",
"secondary_cta": false,
"secondary_ctas": [
{
"icon": "example",
"text": "Text shown on the site.",
"auth_guard": "none",
"on_click_action": "none",
"_id": "6543210fedcba98765432100",
"navigate": {
"link": "example-item",
"query_params": "example"
}
}
],
"edit_page": false,
"create_page": false,
"auth_guard": "none",
"enable_additional_filters": false,
"additional_filters": {},
"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"
}
}
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"navigate": {
"link": "example-item",
"query_params": "example"
},
"statistics_options": {
"filter_fields": "example",
"functions": "example"
}
}Use it to delete one or more existing automation triggers by name.
Needs the token of a signed-in user.
The delete dynamic trigger's item ids.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
Returns the DynamicTrigger object.
curl -X POST 'http://dunav41.com/delete-dynamic-trigger?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "item_ids": "...", "chatId": "..." }'{
"enabled": false,
"name": "Example",
"model": "example",
"type": "CREATE",
"code": "example",
"last_run_at": "2026-11-04T12:00:00.000Z",
"last_run_status": null,
"last_error": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Use it to create a custom data model, CMS content type, custom form schema, or internal record structure.
Needs the token of a signed-in user.
What the AI should do with the dynamic model, 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://dunav41.com/generate-dynamic-model?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "..." }'Use it to create a brand new CMS admin table, data display page, or statistics dashboard for custom model data that does not yet exist.
Needs the token of a signed-in user.
What the AI should do with the dynamic page, 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://dunav41.com/generate-dynamic-page?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "..." }'Use it to create a side-effect automation that fires after a record is created, updated, or deleted.
Needs the token of a signed-in user.
What the AI should do with the dynamic trigger, 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://dunav41.com/generate-dynamic-trigger?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "..." }'Use it to edit or update an existing custom data model.
Needs the token of a signed-in user.
What the AI should do with the dynamic model, 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.
The ID of the dynamic model to change.
The current dynamic model, as JSON - the AI changes it and returns the result.
curl -X POST 'http://dunav41.com/modify-dynamic-model?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "item_id": "...", "item_data": "..." }'Use it to edit or update an existing custom display page.
Needs the token of a signed-in user.
What the AI should do with the dynamic page, 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.
The ID of the dynamic page to change.
The dynamic page's item ids.
The current dynamic page, as JSON - the AI changes it and returns the result.
curl -X POST 'http://dunav41.com/modify-dynamic-page?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "item_id": "...", "item_ids": "...", "item_data": "..." }'Use it to edit or update an existing or just-generated automation trigger.
Needs the token of a signed-in user.
What the AI should do with the dynamic trigger, 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.
The ID of the dynamic trigger to change.
The dynamic trigger's item ids.
The current dynamic trigger, as JSON - the AI changes it and returns the result.
curl -X POST 'http://dunav41.com/modify-dynamic-trigger?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "item_id": "...", "item_ids": "...", "item_data": "..." }'Use it to run or test an automation trigger immediately, on demand.
Needs the token of a signed-in user.
The run dynamic trigger's item ids.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
Returns the DynamicTrigger object.
curl -X POST 'http://dunav41.com/run-dynamic-trigger?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "item_ids": "...", "chatId": "..." }'{
"enabled": false,
"name": "Example",
"model": "example",
"type": "CREATE",
"code": "example",
"last_run_at": "2026-11-04T12:00:00.000Z",
"last_run_status": null,
"last_error": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Use it to enable or disable (pause/resume/activate/deactivate) one or more existing automation triggers without running them.
Needs the token of a signed-in user.
The dynamic trigger's item ids.
Whether the dynamic trigger is enabled.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
Returns the DynamicTrigger object.
curl -X POST 'http://dunav41.com/toggle-dynamic-trigger?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "item_ids": "...", "enabled": "...", "chatId": "..." }'{
"enabled": false,
"name": "Example",
"model": "example",
"type": "CREATE",
"code": "example",
"last_run_at": "2026-11-04T12:00:00.000Z",
"last_run_status": null,
"last_error": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Update a dynamic model from a prompt, written by the AI builder.
Needs the token of a signed-in user.
What the AI should do with the dynamic model, 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 dynamic model to change.
curl -X POST 'http://dunav41.com/update-dynamic-model?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "aiVersion": "...", "item_id": "..." }'Update a dynamic page from a prompt, written by the AI builder.
Needs the token of a signed-in user.
What the AI should do with the dynamic page, 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 dynamic page to change.
The dynamic page's model id.
curl -X POST 'http://dunav41.com/update-dynamic-page?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "aiVersion": "...", "item_id": "...", "model_id": "..." }'{
"name": "Example",
"fields": [
{
"name": "Example",
"type": "example",
"required": false,
"default": {},
"patchable": true,
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"depends_on": "example",
"populate": false,
"wysiwyg": false,
"fields": [],
"show_field_in_cms_table": true,
"enumerator_values": [],
"_id": "6543210fedcba98765432100",
"validations": {
"minLength": "example",
"maxLength": "example"
}
}
],
"attach_in": [
{
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"user_input": false,
"_id": "6543210fedcba98765432100"
}
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"auth": {
"create": false,
"read": false,
"update": false,
"delete": false
},
"ownership_settings": {
"enable_ownership_identification": false,
"ownership_based_auth": "example",
"profile_use": false
}
}Update a dynamic trigger from a prompt, written by the AI builder.
Needs the token of a signed-in user.
What the AI should do with the dynamic trigger, 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 dynamic trigger to change.
The dynamic trigger's model id.
curl -X POST 'http://dunav41.com/update-dynamic-trigger?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "aiVersion": "...", "item_id": "...", "model_id": "..." }'{
"name": "Example",
"fields": [
{
"name": "Example",
"type": "example",
"required": false,
"default": {},
"patchable": true,
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"depends_on": "example",
"populate": false,
"wysiwyg": false,
"fields": [],
"show_field_in_cms_table": true,
"enumerator_values": [],
"_id": "6543210fedcba98765432100",
"validations": {
"minLength": "example",
"maxLength": "example"
}
}
],
"attach_in": [
{
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"user_input": false,
"_id": "6543210fedcba98765432100"
}
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"auth": {
"create": false,
"read": false,
"update": false,
"delete": false
},
"ownership_settings": {
"enable_ownership_identification": false,
"ownership_based_auth": "example",
"profile_use": false
}
}