API ReferenceView as MarkdownOpenAPI

Site settings

View as Markdown

The site's settings: its name and contact details, the menu, the home page, publishing and app settings, payments, delivery and taxes.

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.

55 endpoints in 11 parts: Companion App Settings, Consent, Gdpr, Home Page Settings, Mycontact, Pwa Settings, Rating Settings, Site Menu, Social Mode Settings, Social Moderation Settings, AI builder.

List all companion app settings

The companion app settings. Answers an array of every record.

Admin token

Needs a site admin token.

Status codes

200 401 500

GET/companion-app-settings
curl -X GET 'http://hristovtintdetailng.com/companion-app-settings?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'

Create a companion app setting

Creates a companion app settings record. Answers 201 with no body.

Admin token

Needs a site admin token.

Status codes

201 400 401 500

POST/companion-app-settings
curl -X POST 'http://hristovtintdetailng.com/companion-app-settings?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'

Retrieve a companion app setting

The companion app settings by id. 404 when there is no such record.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the companion app setting.

Status codes

200 401 404 500

GET/companion-app-settings/:id
curl -X GET 'http://hristovtintdetailng.com/companion-app-settings/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'

Update a companion app setting

Updates a companion app settings record. Answers the settings, or 404.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the companion app setting.

Status codes

200 400 401 404 500

PATCH/companion-app-settings/:id
curl -X PATCH 'http://hristovtintdetailng.com/companion-app-settings/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'

Delete a companion app setting

Deletes a companion app settings record. Answers the deleted settings, or 404.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the companion app setting.

Returns

Returns an empty answer on success.

Status codes

200 401 404 500

DELETE/companion-app-settings/:id
curl -X DELETE 'http://hristovtintdetailng.com/companion-app-settings/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'

Accept an accept consent

Log agreement. Logs the click (the consent type and the visitor's IP) for the consent report. Reads no token. Answers 201.

Public

Public - no token needed.

Parameters
typestring

The accept consent's type.

Status codes

201 400 500

POST/accept-consent
curl -X POST 'http://hristovtintdetailng.com/accept-consent?ionic=true' \
  -H 'Content-Type: application/json' \
  -d '{ "type": "..." }'
Response
{
  "url": "example-item",
  "ip": "example",
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z"
}

Create a consent

Creates a terms of use record. Answers 201 with no body.

Admin token

Needs a site admin token.

Returns

Returns the Consent object.

Status codes

201 400 401 500

POST/consent
curl -X POST 'http://hristovtintdetailng.com/consent?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "title": "Example",
  "text": "Text shown on the site.",
  "_id": "6543210fedcba98765432100"
}

Retrieve the GDPR text

Get the terms of use text. Answers the text only. Reads no token.

Public

Public - no token needed.

Status codes

200 500

GET/gdpr-text
curl -X GET 'http://hristovtintdetailng.com/gdpr-text?ionic=true'
Response
{
  "text": "Text shown on the site.",
  "_id": "6543210fedcba98765432100"
}

List all gdprs

The privacy (GDPR) settings. The site's one record.

Admin token

Needs a site admin token.

Returns

Returns a list of Gdpr objects.

Status codes

200 401 500

GET/gdprs
curl -X GET 'http://hristovtintdetailng.com/gdprs?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
[
  {
    "text": "Text shown on the site.",
    "_id": "6543210fedcba98765432100"
  }
]

Create a gdpr

Creates a terms of use record. Answers 201 with no body.

Admin token

Needs a site admin token.

Returns

Returns the Gdpr object.

Status codes

201 400 401 500

POST/gdprs
curl -X POST 'http://hristovtintdetailng.com/gdprs?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "text": "Text shown on the site.",
  "_id": "6543210fedcba98765432100"
}

Retrieve a gdpr

The privacy settings by id; visitors read /gdpr-text. 404 when there is no such record.

Public

Public - no token needed.

Path parameters
idstringRequired

The ID of the gdpr.

Returns

Returns the Gdpr object.

Status codes

200 404 500

GET/gdprs/:id
curl -X GET 'http://hristovtintdetailng.com/gdprs/{id}?ionic=true'
Response
{
  "text": "Text shown on the site.",
  "_id": "6543210fedcba98765432100"
}

Update a gdpr

Updates a terms of use record. Fields outside the allowed list are silently ignored. Answers the updated record, or 404.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the gdpr.

Returns

Returns the Gdpr object.

Status codes

200 400 401 404 500

PATCH/gdprs/:id
curl -X PATCH 'http://hristovtintdetailng.com/gdprs/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "text": "Text shown on the site.",
  "_id": "6543210fedcba98765432100"
}

List all home page settings

The home page settings. The site's one record.

Admin token

Needs a site admin token.

Returns

Returns a list of HomePageSettings objects.

Status codes

200 401 500

GET/home-page-settings
curl -X GET 'http://hristovtintdetailng.com/home-page-settings?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
[
  {
    "useDifferentLayoutForApp": false,
    "_id": "6543210fedcba98765432100",
    "updatedAt": "2026-11-04T12:00:00.000Z",
    "createdAt": "2026-11-04T12:00:00.000Z"
  }
]

Update a home page setting

Updates the home page settings (useDifferentLayoutForApp). The home page is rendered again on its next visit. Answers the settings.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the home page setting.

Parameters
useDifferentLayoutForAppboolean

The mobile app shows its own home layout instead of the website's.

Returns

Returns the HomePageSettings object.

Status codes

200 400 401 500

PATCH/home-page-settings/:id
curl -X PATCH 'http://hristovtintdetailng.com/home-page-settings/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "useDifferentLayoutForApp": "..." }'
Response
{
  "useDifferentLayoutForApp": false,
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z"
}

List all site contacts

The site's contact details. Reads no token. The SendGrid key is never included.

Public

Public - no token needed.

Status codes

200 500

GET/mycontacts
curl -X GET 'http://hristovtintdetailng.com/mycontacts?ionic=true'
Response
{
  "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
  }
}

Create a site contact

Creates a contact details record. A site has one; the AI and admin update it with PATCH instead.

Admin token

Needs a site admin token.

Status codes

201 400 401 500

POST/mycontacts
curl -X POST 'http://hristovtintdetailng.com/mycontacts?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "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
  }
}

Retrieve a site contact

The site's contact details by id. 404 when there is no such record.

Public

Public - no token needed.

Path parameters
idstringRequired

The ID of the site contact.

Status codes

200 404 500

GET/mycontacts/:id
curl -X GET 'http://hristovtintdetailng.com/mycontacts/{id}?ionic=true'
Response
{
  "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
  }
}

Update a site contact

Updates a contact details record. Fields outside the allowed list are ignored; the linked Google accounts can only change through their own routes. Saving a SendGrid key switches the site's email to SendGrid, and the key is never sent back. Answers the contact details. The app re-reads its startup data afterwards.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the site contact.

Parameters
gmb_locationstring

The site contact's Google Business Profile location.

ga_propertystring

The site contact's Google Analytics property.

google_appstring

The site contact's google app.

Status codes

200 400 401 404 500

PATCH/mycontacts/:id
curl -X PATCH 'http://hristovtintdetailng.com/mycontacts/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "gmb_location": "...", "ga_property": "...", "google_app": "..." }'
Response
{
  "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
  }
}

Delete a site contact

Deletes a contact details record. The site needs this record: deleting it breaks pages until a new one is made.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the site contact.

Returns

Returns an empty answer on success.

Status codes

200 401 404 500

DELETE/mycontacts/:id
curl -X DELETE 'http://hristovtintdetailng.com/mycontacts/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'

List all app settings

The installable app (PWA) settings. Answers an array of every record.

Admin token

Needs a site admin token.

Status codes

200 401 500

GET/pwa-settings
curl -X GET 'http://hristovtintdetailng.com/pwa-settings?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "name": "Example",
  "short_name": "Example",
  "logo": "6543210fedcba98765432100",
  "background_color": "#3557c4",
  "description": "Text shown on the site.",
  "screenshots": [
    {
      "media": "6543210fedcba98765432100",
      "is_mobile_preview": false,
      "_id": "6543210fedcba98765432100"
    }
  ],
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z"
}

Create an app setting

Creates an installable app settings record. A site has one; update it with PATCH instead. Answers 201.

Admin token

Needs a site admin token.

Status codes

201 400 401 500

POST/pwa-settings
curl -X POST 'http://hristovtintdetailng.com/pwa-settings?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "name": "Example",
  "short_name": "Example",
  "logo": "6543210fedcba98765432100",
  "background_color": "#3557c4",
  "description": "Text shown on the site.",
  "screenshots": [
    {
      "media": "6543210fedcba98765432100",
      "is_mobile_preview": false,
      "_id": "6543210fedcba98765432100"
    }
  ],
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z"
}

Retrieve an app setting

The installable app settings by id. 404 when there is no such record.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the app setting.

Status codes

200 401 404 500

GET/pwa-settings/:id
curl -X GET 'http://hristovtintdetailng.com/pwa-settings/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "name": "Example",
  "short_name": "Example",
  "logo": "6543210fedcba98765432100",
  "background_color": "#3557c4",
  "description": "Text shown on the site.",
  "screenshots": [
    {
      "media": "6543210fedcba98765432100",
      "is_mobile_preview": false,
      "_id": "6543210fedcba98765432100"
    }
  ],
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z"
}

List all rating settings

Every rating email setting. Reads no token.

Public

Public - no token needed.

Returns

Returns a list of RatingSettings objects.

Status codes

200 500

GET/rating-settings
curl -X GET 'http://hristovtintdetailng.com/rating-settings?ionic=true'
Response
[
  {
    "type": "example",
    "send": false,
    "days": 1,
    "title": "Example",
    "text1": "Text shown on the site.",
    "text2": "Text shown on the site.",
    "useCustomLink": false,
    "customLinkUrl": "example-item",
    "linkText": "example-item",
    "startDate": "2026-11-04T12:00:00.000Z",
    "_id": "6543210fedcba98765432100",
    "updatedAt": "2026-11-04T12:00:00.000Z",
    "createdAt": "2026-11-04T12:00:00.000Z"
  }
]

Create a rating setting

Creates the rating email settings of a kind of item. One per kind of item (type). Answers 201 with it.

User token

Needs the token of a signed-in user.

Returns

Returns the RatingSettings object.

Status codes

201 400 401 500

POST/rating-settings/
curl -X POST 'http://hristovtintdetailng.com/rating-settings/?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "type": "example",
  "send": false,
  "days": 1,
  "title": "Example",
  "text1": "Text shown on the site.",
  "text2": "Text shown on the site.",
  "useCustomLink": false,
  "customLinkUrl": "example-item",
  "linkText": "example-item",
  "startDate": "2026-11-04T12:00:00.000Z",
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z"
}

Update a rating setting

Updates rating email settings. Answers 200 with no body.

User token

Needs the token of a signed-in user.

Path parameters
idstringRequired

The ID of the rating setting.

Parameters
sendboolean

Rating emails are sent after orders and bookings.

Returns

Returns the RatingSettings object.

Status codes

200 400 401 500

PATCH/rating-settings/:id
curl -X PATCH 'http://hristovtintdetailng.com/rating-settings/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "send": "..." }'
Response
{
  "type": "example",
  "send": false,
  "days": 1,
  "title": "Example",
  "text1": "Text shown on the site.",
  "text2": "Text shown on the site.",
  "useCustomLink": false,
  "customLinkUrl": "example-item",
  "linkText": "example-item",
  "startDate": "2026-11-04T12:00:00.000Z",
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z"
}

List all rating settings

The rating email settings of a kind of item (product, service...). Null when the kind has none.

User token

Needs the token of a signed-in user.

Path parameters
typestringRequired

Product,service, program, priceplan.

Returns

Returns a list of RatingSettings objects.

Status codes

200 401 500

GET/rating-settings/:type
curl -X GET 'http://hristovtintdetailng.com/rating-settings/{type}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
[
  {
    "type": "example",
    "send": false,
    "days": 1,
    "title": "Example",
    "text1": "Text shown on the site.",
    "text2": "Text shown on the site.",
    "useCustomLink": false,
    "customLinkUrl": "example-item",
    "linkText": "example-item",
    "startDate": "2026-11-04T12:00:00.000Z",
    "_id": "6543210fedcba98765432100",
    "updatedAt": "2026-11-04T12:00:00.000Z",
    "createdAt": "2026-11-04T12:00:00.000Z"
  }
]

List all possible site menus

Everything a navigation entry can link to: categories, pages, price plans and the current entries. Cached for 6 minutes.

Public

Public - no token needed.

Returns

Returns a list of SiteMenu objects.

Status codes

200 500

GET/all_possible_site_menus
curl -X GET 'http://hristovtintdetailng.com/all_possible_site_menus?ionic=true'
Response
[
  {
    "title": "Example",
    "url": "example-item",
    "position": 1,
    "submenus": [
      {
        "title": "Example",
        "url": "example-item",
        "position": 1,
        "badge": "example",
        "badge_background": "example",
        "badge_color": "#3557c4",
        "badge_radius": 1,
        "_id": "6543210fedcba98765432100"
      }
    ],
    "customDropdown": false,
    "customDropdownId": "6543210fedcba98765432100",
    "sideMenu": false,
    "sidemenus": [
      {
        "title": "Example",
        "submenus": [],
        "_id": "6543210fedcba98765432100"
      }
    ],
    "icon": "example",
    "_id": "6543210fedcba98765432100"
  }
]

List all site menus

The site's navigation entries. Not sorted: order them by position.

Public

Public - no token needed.

Returns

Returns a list of SiteMenu objects.

Status codes

200 500

GET/site_menus
curl -X GET 'http://hristovtintdetailng.com/site_menus?ionic=true'
Response
[
  {
    "title": "Example",
    "url": "example-item",
    "position": 1,
    "submenus": [
      {
        "title": "Example",
        "url": "example-item",
        "position": 1,
        "badge": "example",
        "badge_background": "example",
        "badge_color": "#3557c4",
        "badge_radius": 1,
        "_id": "6543210fedcba98765432100"
      }
    ],
    "customDropdown": false,
    "customDropdownId": "6543210fedcba98765432100",
    "sideMenu": false,
    "sidemenus": [
      {
        "title": "Example",
        "submenus": [],
        "_id": "6543210fedcba98765432100"
      }
    ],
    "icon": "example",
    "_id": "6543210fedcba98765432100"
  }
]

Create a site menu

Creates a navigation entry. Links to the site's own pages are stored as "../<path>" whatever form is sent. Answers 201 with the entry.

Admin token

Needs a site admin token.

Returns

Returns the SiteMenu object.

Status codes

201 400 401 500

POST/site_menus
curl -X POST 'http://hristovtintdetailng.com/site_menus?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "title": "Example",
  "url": "example-item",
  "position": 1,
  "submenus": [
    {
      "title": "Example",
      "url": "example-item",
      "position": 1,
      "badge": "example",
      "badge_background": "example",
      "badge_color": "#3557c4",
      "badge_radius": 1,
      "_id": "6543210fedcba98765432100"
    }
  ],
  "customDropdown": false,
  "customDropdownId": "6543210fedcba98765432100",
  "sideMenu": false,
  "sidemenus": [
    {
      "title": "Example",
      "submenus": [],
      "_id": "6543210fedcba98765432100"
    }
  ],
  "icon": "example",
  "_id": "6543210fedcba98765432100"
}

Retrieve a site menu

One navigation entry. 404 when there is no such entry.

Public

Public - no token needed.

Path parameters
idstringRequired

The ID of the site menu.

Returns

Returns the SiteMenu object.

Status codes

200 404 500

GET/site_menus/:id
curl -X GET 'http://hristovtintdetailng.com/site_menus/{id}?ionic=true'
Response
{
  "title": "Example",
  "url": "example-item",
  "position": 1,
  "submenus": [
    {
      "title": "Example",
      "url": "example-item",
      "position": 1,
      "badge": "example",
      "badge_background": "example",
      "badge_color": "#3557c4",
      "badge_radius": 1,
      "_id": "6543210fedcba98765432100"
    }
  ],
  "customDropdown": false,
  "customDropdownId": "6543210fedcba98765432100",
  "sideMenu": false,
  "sidemenus": [
    {
      "title": "Example",
      "submenus": [],
      "_id": "6543210fedcba98765432100"
    }
  ],
  "icon": "example",
  "_id": "6543210fedcba98765432100"
}

Update a site menu

Updates a navigation entry. Fields outside the allowed list are ignored. Answers the entry, or 404.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the site menu.

Returns

Returns the SiteMenu object.

Status codes

200 400 401 404 500

PATCH/site_menus/:id
curl -X PATCH 'http://hristovtintdetailng.com/site_menus/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "title": "Example",
  "url": "example-item",
  "position": 1,
  "submenus": [
    {
      "title": "Example",
      "url": "example-item",
      "position": 1,
      "badge": "example",
      "badge_background": "example",
      "badge_color": "#3557c4",
      "badge_radius": 1,
      "_id": "6543210fedcba98765432100"
    }
  ],
  "customDropdown": false,
  "customDropdownId": "6543210fedcba98765432100",
  "sideMenu": false,
  "sidemenus": [
    {
      "title": "Example",
      "submenus": [],
      "_id": "6543210fedcba98765432100"
    }
  ],
  "icon": "example",
  "_id": "6543210fedcba98765432100"
}

Delete a site menu

Deletes a navigation entry. Answers the deleted entry, or 404.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the site menu.

Returns

Returns an empty answer on success.

Status codes

200 401 404 500

DELETE/site_menus/:id
curl -X DELETE 'http://hristovtintdetailng.com/site_menus/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'

Retrieve the site menu

What the app's menu can show: categories, pages, locations and the tracker. Cached for 6 minutes.

Public

Public - no token needed.

Status codes

200 500

GET/site_menus/ionic
curl -X GET 'http://hristovtintdetailng.com/site_menus/ionic?ionic=true'
Response
{
  "name": "Example",
  "parent_collection": "6543210fedcba98765432100",
  "picture": "6543210fedcba98765432100",
  "about_page": "6543210fedcba98765432100",
  "match_to_option": false,
  "is_color": false,
  "color": "#3557c4",
  "position": 1,
  "items": [
    "6543210fedcba98765432101"
  ],
  "thumbnail": "6543210fedcba98765432100",
  "_id": "6543210fedcba98765432100"
}

List all social mode settings

The social mode settings. Reads no token: the app reads it at start. With the paywall's price plans.

Public

Public - no token needed.

Returns

Returns a list of SocialModeSettings objects.

Status codes

200 500

GET/social-mode-settings
curl -X GET 'http://hristovtintdetailng.com/social-mode-settings?ionic=true'
Response
[
  {
    "social_mode": false,
    "allow_products": false,
    "allow_services": false,
    "allow_services_stp": false,
    "allow_blogposts": false,
    "allow_programs": false,
    "allow_programs_stp": false,
    "allow_posts": false,
    "allow_ai": false,
    "allow_bites": false,
    "allow_long_videos": false,
    "allow_explore": false,
    "allow_online_payments": false,
    "allow_price_plans": false,
    "allow_boosting_posts": false,
    "allow_single_ai": false,
    "merchant_agreement": "6543210fedcba98765432100",
    "verification_popup": "6543210fedcba98765432100",
    "commission": 1,
    "home_page": "home",
    "allow_google_login": true,
    "use_cdn_for_medias": false,
    "cdn_for_medias": "example",
    "use_cdn_for_microservices": false,
    "navigation_pages": {
      "bites": false,
      "long_videos": false,
      "vouchers": false,
      "store": false,
      "programs": false,
      "services": false,
      "blogposts": false,
      "subscription": false,
      "playlists": false,
      "partners": false,
      "contacts": false,
      "tracker": false
    }
  }
]

Create a social mode setting

Creates a social mode settings record. A site has one; update it with PATCH instead. Answers 201.

Admin token

Needs a site admin token.

Returns

Returns the SocialModeSettings object.

Status codes

201 400 401 500

POST/social-mode-settings
curl -X POST 'http://hristovtintdetailng.com/social-mode-settings?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "social_mode": false,
  "allow_products": false,
  "allow_services": false,
  "allow_services_stp": false,
  "allow_blogposts": false,
  "allow_programs": false,
  "allow_programs_stp": false,
  "allow_posts": false,
  "allow_ai": false,
  "allow_bites": false,
  "allow_long_videos": false,
  "allow_explore": false,
  "allow_online_payments": false,
  "allow_price_plans": false,
  "allow_boosting_posts": false,
  "allow_single_ai": false,
  "merchant_agreement": "6543210fedcba98765432100",
  "verification_popup": "6543210fedcba98765432100",
  "commission": 1,
  "home_page": "home",
  "allow_google_login": true,
  "use_cdn_for_medias": false,
  "cdn_for_medias": "example",
  "use_cdn_for_microservices": false,
  "navigation_pages": {
    "bites": false,
    "long_videos": false,
    "vouchers": false,
    "store": false,
    "programs": false,
    "services": false,
    "blogposts": false,
    "subscription": false,
    "playlists": false,
    "partners": false,
    "contacts": false,
    "tracker": false
  }
}

Update a social mode setting

Updates a social mode settings record. Fields outside the allowed list are ignored. Answers the settings, or 404.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the social mode setting.

Returns

Returns the SocialModeSettings object.

Status codes

200 400 401 404 500

PATCH/social-mode-settings/:id
curl -X PATCH 'http://hristovtintdetailng.com/social-mode-settings/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "social_mode": false,
  "allow_products": false,
  "allow_services": false,
  "allow_services_stp": false,
  "allow_blogposts": false,
  "allow_programs": false,
  "allow_programs_stp": false,
  "allow_posts": false,
  "allow_ai": false,
  "allow_bites": false,
  "allow_long_videos": false,
  "allow_explore": false,
  "allow_online_payments": false,
  "allow_price_plans": false,
  "allow_boosting_posts": false,
  "allow_single_ai": false,
  "merchant_agreement": "6543210fedcba98765432100",
  "verification_popup": "6543210fedcba98765432100",
  "commission": 1,
  "home_page": "home",
  "allow_google_login": true,
  "use_cdn_for_medias": false,
  "cdn_for_medias": "example",
  "use_cdn_for_microservices": false,
  "navigation_pages": {
    "bites": false,
    "long_videos": false,
    "vouchers": false,
    "store": false,
    "programs": false,
    "services": false,
    "blogposts": false,
    "subscription": false,
    "playlists": false,
    "partners": false,
    "contacts": false,
    "tracker": false
  }
}

Delete a social mode setting

Deletes a social mode settings record. Answers the deleted record, or 404. Records that point to it are not changed.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the social mode setting.

Returns

Returns an empty answer on success.

Status codes

200 401 404 500

DELETE/social-mode-settings/:id
curl -X DELETE 'http://hristovtintdetailng.com/social-mode-settings/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'

Retrieve the unlocked content

Which sections the signed-in user may use, by their professional account. Answers which sections are open, by section.

Optional user

Works without a token; with a user token the answer is personal.

Status codes

200 500

GET/unlocked-content
curl -X GET 'http://hristovtintdetailng.com/unlocked-content?ionic=true'
Response
{
  "social_mode": false,
  "allow_products": false,
  "allow_services": false,
  "allow_services_stp": false,
  "allow_blogposts": false,
  "allow_programs": false,
  "allow_programs_stp": false,
  "allow_posts": false,
  "allow_ai": false,
  "allow_bites": false,
  "allow_long_videos": false,
  "allow_explore": false,
  "allow_online_payments": false,
  "allow_price_plans": false,
  "allow_boosting_posts": false,
  "allow_single_ai": false,
  "merchant_agreement": "6543210fedcba98765432100",
  "verification_popup": "6543210fedcba98765432100",
  "commission": 1,
  "home_page": "home",
  "allow_google_login": true,
  "use_cdn_for_medias": false,
  "cdn_for_medias": "example",
  "use_cdn_for_microservices": false,
  "navigation_pages": {
    "bites": false,
    "long_videos": false,
    "vouchers": false,
    "store": false,
    "programs": false,
    "services": false,
    "blogposts": false,
    "subscription": false,
    "playlists": false,
    "partners": false,
    "contacts": false,
    "tracker": false
  }
}

Connect the social

Connects a Facebook page or Instagram account for comment moderation (accessToken, pageId). 400 when the token has no Facebook pages, or not that page. Connecting a different page clears the old page's queue. Answers the settings without the page token.

User token

Needs the token of a signed-in user.

Parameters
pageIdstring

The social's page id.

grantedScopesstring

The social's granted scopes.

deleteCommentsstring

The social's delete comments.

Status codes

200 400 401 500

POST/social/connect
curl -X POST 'http://hristovtintdetailng.com/social/connect?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "pageId": "...", "grantedScopes": "...", "deleteComments": "..." }'
Response
{
  "platform": "facebook",
  "page_id": "example",
  "page_name": "Example",
  "connected_by": "6543210fedcba98765432100",
  "last_polled_at": "2026-11-04T12:00:00.000Z",
  "replies_disabled_at": "2026-11-04T12:00:00.000Z",
  "enabled": false,
  "auto_threshold": 0.9,
  "custom_instructions": "example",
  "auto_action": false,
  "allow_auto_delete": false,
  "auto_reply": false,
  "auto_post_replies": false,
  "reply_instructions": "example",
  "notify_new_comments": false,
  "start_date": "2026-11-04T12:00:00.000Z",
  "message_instructions": "example",
  "granted_scopes": [
    "example"
  ],
  "instagram_user_id": "example",
  "instagram_username": "Example",
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z",
  "sources": {
    "facebook_posts": false,
    "facebook_reviews": false,
    "instagram_comments": false,
    "facebook_messages": false,
    "instagram_messages": false
  }
}

Disconnect the social

Disconnects moderation; deleteComments also removes the stored queue. Answers { connected: false }.

User token

Needs the token of a signed-in user.

Parameters
deleteCommentsstring

The social's delete comments.

Status codes

200 400 401 404 500

POST/social/disconnect
curl -X POST 'http://hristovtintdetailng.com/social/disconnect?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "deleteComments": "..." }'
Response
{
  "platform": "facebook",
  "page_id": "example",
  "page_name": "Example",
  "connected_by": "6543210fedcba98765432100",
  "last_polled_at": "2026-11-04T12:00:00.000Z",
  "replies_disabled_at": "2026-11-04T12:00:00.000Z",
  "enabled": false,
  "auto_threshold": 0.9,
  "custom_instructions": "example",
  "auto_action": false,
  "allow_auto_delete": false,
  "auto_reply": false,
  "auto_post_replies": false,
  "reply_instructions": "example",
  "notify_new_comments": false,
  "start_date": "2026-11-04T12:00:00.000Z",
  "message_instructions": "example",
  "granted_scopes": [
    "example"
  ],
  "instagram_user_id": "example",
  "instagram_username": "Example",
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z",
  "sources": {
    "facebook_posts": false,
    "facebook_reviews": false,
    "instagram_comments": false,
    "facebook_messages": false,
    "instagram_messages": false
  }
}

Retrieve the social

Returns the social. TEMPORARY. Delete once Instagram messages are settled. Asks Graph the conversations question directly, with the stored Page token and none of our own filtering, across both platforms and both folders. The sync reports zero Instagram conversations while Messenger returns thirteen from the same call and the same token; this shows what Meta actually answers, including the raw error when it refuses rather than returning empty.

User token

Needs the token of a signed-in user.

Status codes

200 400 401 404 500

GET/social/messages-probe
curl -X GET 'http://hristovtintdetailng.com/social/messages-probe?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "platform": "facebook",
  "page_id": "example",
  "page_name": "Example",
  "connected_by": "6543210fedcba98765432100",
  "last_polled_at": "2026-11-04T12:00:00.000Z",
  "replies_disabled_at": "2026-11-04T12:00:00.000Z",
  "enabled": false,
  "auto_threshold": 0.9,
  "custom_instructions": "example",
  "auto_action": false,
  "allow_auto_delete": false,
  "auto_reply": false,
  "auto_post_replies": false,
  "reply_instructions": "example",
  "notify_new_comments": false,
  "start_date": "2026-11-04T12:00:00.000Z",
  "message_instructions": "example",
  "granted_scopes": [
    "example"
  ],
  "instagram_user_id": "example",
  "instagram_username": "Example",
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z",
  "sources": {
    "facebook_posts": false,
    "facebook_reviews": false,
    "instagram_comments": false,
    "facebook_messages": false,
    "instagram_messages": false
  }
}

Retrieve the social

The moderation queue: every tab's comments and messages in one answer. Answers { byStatus, counts }. ?limit caps each tab.

User token

Needs the token of a signed-in user.

Query parameters
limitstring

How many results to return.

Status codes

200 401 404 500

GET/social/queue
curl -X GET 'http://hristovtintdetailng.com/social/queue?ionic=true&limit=...' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "platform": "facebook",
  "page_id": "example",
  "page_name": "Example",
  "connected_by": "6543210fedcba98765432100",
  "last_polled_at": "2026-11-04T12:00:00.000Z",
  "replies_disabled_at": "2026-11-04T12:00:00.000Z",
  "enabled": false,
  "auto_threshold": 0.9,
  "custom_instructions": "example",
  "auto_action": false,
  "allow_auto_delete": false,
  "auto_reply": false,
  "auto_post_replies": false,
  "reply_instructions": "example",
  "notify_new_comments": false,
  "start_date": "2026-11-04T12:00:00.000Z",
  "message_instructions": "example",
  "granted_scopes": [
    "example"
  ],
  "instagram_user_id": "example",
  "instagram_username": "Example",
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z",
  "sources": {
    "facebook_posts": false,
    "facebook_reviews": false,
    "instagram_comments": false,
    "facebook_messages": false,
    "instagram_messages": false
  }
}

Approve the social

Applies the action on a queued comment (reply, hide, delete), with an edited reply_message. Acts on Facebook or Instagram at once. 404 when the comment is gone; 400 when it is not waiting for a decision.

User token

Needs the token of a signed-in user.

Path parameters
idstringRequired

The ID of the social.

Parameters
reply_messagestring

The social's reply message.

actionstring

The social's action.

Status codes

200 400 401 404 410 500

POST/social/queue/:id/approve
curl -X POST 'http://hristovtintdetailng.com/social/queue/{id}/approve?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "reply_message": "...", "action": "..." }'
Response
{
  "platform": "facebook",
  "page_id": "example",
  "page_name": "Example",
  "connected_by": "6543210fedcba98765432100",
  "last_polled_at": "2026-11-04T12:00:00.000Z",
  "replies_disabled_at": "2026-11-04T12:00:00.000Z",
  "enabled": false,
  "auto_threshold": 0.9,
  "custom_instructions": "example",
  "auto_action": false,
  "allow_auto_delete": false,
  "auto_reply": false,
  "auto_post_replies": false,
  "reply_instructions": "example",
  "notify_new_comments": false,
  "start_date": "2026-11-04T12:00:00.000Z",
  "message_instructions": "example",
  "granted_scopes": [
    "example"
  ],
  "instagram_user_id": "example",
  "instagram_username": "Example",
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z",
  "sources": {
    "facebook_posts": false,
    "facebook_reviews": false,
    "instagram_comments": false,
    "facebook_messages": false,
    "instagram_messages": false
  }
}

Create a social

Writes a new suggested reply for a queued comment. Answers { reply_message }.

User token

Needs the token of a signed-in user.

Path parameters
idstringRequired

The ID of the social.

Status codes

200 400 401 404 500

POST/social/queue/:id/regenerate-reply
curl -X POST 'http://hristovtintdetailng.com/social/queue/{id}/regenerate-reply?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "platform": "facebook",
  "page_id": "example",
  "page_name": "Example",
  "connected_by": "6543210fedcba98765432100",
  "last_polled_at": "2026-11-04T12:00:00.000Z",
  "replies_disabled_at": "2026-11-04T12:00:00.000Z",
  "enabled": false,
  "auto_threshold": 0.9,
  "custom_instructions": "example",
  "auto_action": false,
  "allow_auto_delete": false,
  "auto_reply": false,
  "auto_post_replies": false,
  "reply_instructions": "example",
  "notify_new_comments": false,
  "start_date": "2026-11-04T12:00:00.000Z",
  "message_instructions": "example",
  "granted_scopes": [
    "example"
  ],
  "instagram_user_id": "example",
  "instagram_username": "Example",
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z",
  "sources": {
    "facebook_posts": false,
    "facebook_reviews": false,
    "instagram_comments": false,
    "facebook_messages": false,
    "instagram_messages": false
  }
}

Reject the social

Dismisses a queued comment's suggested action. Answers the comment.

User token

Needs the token of a signed-in user.

Path parameters
idstringRequired

The ID of the social.

Status codes

200 400 401 404 500

POST/social/queue/:id/reject
curl -X POST 'http://hristovtintdetailng.com/social/queue/{id}/reject?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "platform": "facebook",
  "kind": "comment",
  "conversation_id": "example",
  "window_expires_at": "2026-11-04T12:00:00.000Z",
  "page_id": "example",
  "comment_id": "example",
  "post_id": "example",
  "post_url": "example-item",
  "post_message": "example",
  "post_links": [
    {
      "url": "example-item",
      "title": "Example"
    }
  ],
  "parent_id": "example",
  "page_replied": false,
  "post_type": "organic",
  "message": "example",
  "author_id": "example",
  "author_name": "Example",
  "comment_created_at": "2026-11-04T12:00:00.000Z",
  "suggested_action": "example",
  "reply_message": "example",
  "status": "new",
  "action_taken": "example",
  "actioned_by": "example",
  "actioned_at": "2026-11-04T12:00:00.000Z",
  "reply_comment_id": "example",
  "classification": {
    "category": "example",
    "score": 0,
    "should_reply": false,
    "answer_available": false,
    "reasoning": "example",
    "language": "en"
  },
  "credits": {
    "classify": 0,
    "reply": 0
  }
}

Undo the social

Reverses an action taken on a comment, by the AI or a person. 400 "Already undone"; a deleted comment cannot be brought back.

User token

Needs the token of a signed-in user.

Path parameters
idstringRequired

The ID of the social.

Status codes

200 400 401 404 500

POST/social/queue/:id/undo
curl -X POST 'http://hristovtintdetailng.com/social/queue/{id}/undo?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "platform": "facebook",
  "page_id": "example",
  "page_name": "Example",
  "connected_by": "6543210fedcba98765432100",
  "last_polled_at": "2026-11-04T12:00:00.000Z",
  "replies_disabled_at": "2026-11-04T12:00:00.000Z",
  "enabled": false,
  "auto_threshold": 0.9,
  "custom_instructions": "example",
  "auto_action": false,
  "allow_auto_delete": false,
  "auto_reply": false,
  "auto_post_replies": false,
  "reply_instructions": "example",
  "notify_new_comments": false,
  "start_date": "2026-11-04T12:00:00.000Z",
  "message_instructions": "example",
  "granted_scopes": [
    "example"
  ],
  "instagram_user_id": "example",
  "instagram_username": "Example",
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z",
  "sources": {
    "facebook_posts": false,
    "facebook_reviews": false,
    "instagram_comments": false,
    "facebook_messages": false,
    "instagram_messages": false
  }
}

List all socials

The moderation settings. 404 "No Facebook page connected". Never includes the page token.

User token

Needs the token of a signed-in user.

Status codes

200 401 404 500

GET/social/settings
curl -X GET 'http://hristovtintdetailng.com/social/settings?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "platform": "facebook",
  "page_id": "example",
  "page_name": "Example",
  "connected_by": "6543210fedcba98765432100",
  "last_polled_at": "2026-11-04T12:00:00.000Z",
  "replies_disabled_at": "2026-11-04T12:00:00.000Z",
  "enabled": false,
  "auto_threshold": 0.9,
  "custom_instructions": "example",
  "auto_action": false,
  "allow_auto_delete": false,
  "auto_reply": false,
  "auto_post_replies": false,
  "reply_instructions": "example",
  "notify_new_comments": false,
  "start_date": "2026-11-04T12:00:00.000Z",
  "message_instructions": "example",
  "granted_scopes": [
    "example"
  ],
  "instagram_user_id": "example",
  "instagram_username": "Example",
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z",
  "sources": {
    "facebook_posts": false,
    "facebook_reviews": false,
    "instagram_comments": false,
    "facebook_messages": false,
    "instagram_messages": false
  }
}

Update the social

Updates the moderation settings; clear_replies_disabled re-arms replying. 404 "No Facebook page connected". Answers the settings.

User token

Needs the token of a signed-in user.

Parameters
clear_replies_disabledstring

The social's clear replies disabled.

Status codes

200 400 401 404 500

PATCH/social/settings
curl -X PATCH 'http://hristovtintdetailng.com/social/settings?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "clear_replies_disabled": "..." }'
Response
{
  "platform": "facebook",
  "page_id": "example",
  "page_name": "Example",
  "connected_by": "6543210fedcba98765432100",
  "last_polled_at": "2026-11-04T12:00:00.000Z",
  "replies_disabled_at": "2026-11-04T12:00:00.000Z",
  "enabled": false,
  "auto_threshold": 0.9,
  "custom_instructions": "example",
  "auto_action": false,
  "allow_auto_delete": false,
  "auto_reply": false,
  "auto_post_replies": false,
  "reply_instructions": "example",
  "notify_new_comments": false,
  "start_date": "2026-11-04T12:00:00.000Z",
  "message_instructions": "example",
  "granted_scopes": [
    "example"
  ],
  "instagram_user_id": "example",
  "instagram_username": "Example",
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z",
  "sources": {
    "facebook_posts": false,
    "facebook_reviews": false,
    "instagram_comments": false,
    "facebook_messages": false,
    "instagram_messages": false
  }
}

Change the status of a social

Whether moderation is connected, its plan and how many comments wait. Answers { connected: false, plan } when nothing is connected; never includes the page token.

User token

Needs the token of a signed-in user.

Status codes

200 401 500

GET/social/status
curl -X GET 'http://hristovtintdetailng.com/social/status?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "platform": "facebook",
  "page_id": "example",
  "page_name": "Example",
  "connected_by": "6543210fedcba98765432100",
  "last_polled_at": "2026-11-04T12:00:00.000Z",
  "replies_disabled_at": "2026-11-04T12:00:00.000Z",
  "enabled": false,
  "auto_threshold": 0.9,
  "custom_instructions": "example",
  "auto_action": false,
  "allow_auto_delete": false,
  "auto_reply": false,
  "auto_post_replies": false,
  "reply_instructions": "example",
  "notify_new_comments": false,
  "start_date": "2026-11-04T12:00:00.000Z",
  "message_instructions": "example",
  "granted_scopes": [
    "example"
  ],
  "instagram_user_id": "example",
  "instagram_username": "Example",
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z",
  "sources": {
    "facebook_posts": false,
    "facebook_reviews": false,
    "instagram_comments": false,
    "facebook_messages": false,
    "instagram_messages": false
  }
}

Sync the social

Pull the page's recent comments now, instead of waiting for the. scheduled run. Same function the cron calls, so a manual sync and an automatic one cannot drift apart.

User token

Needs the token of a signed-in user.

Status codes

200 400 401 402 404 500

POST/social/sync
curl -X POST 'http://hristovtintdetailng.com/social/sync?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "platform": "facebook",
  "page_id": "example",
  "page_name": "Example",
  "connected_by": "6543210fedcba98765432100",
  "last_polled_at": "2026-11-04T12:00:00.000Z",
  "replies_disabled_at": "2026-11-04T12:00:00.000Z",
  "enabled": false,
  "auto_threshold": 0.9,
  "custom_instructions": "example",
  "auto_action": false,
  "allow_auto_delete": false,
  "auto_reply": false,
  "auto_post_replies": false,
  "reply_instructions": "example",
  "notify_new_comments": false,
  "start_date": "2026-11-04T12:00:00.000Z",
  "message_instructions": "example",
  "granted_scopes": [
    "example"
  ],
  "instagram_user_id": "example",
  "instagram_username": "Example",
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z",
  "sources": {
    "facebook_posts": false,
    "facebook_reviews": false,
    "instagram_comments": false,
    "facebook_messages": false,
    "instagram_messages": false
  }
}

Generate a privacy policy with AI

AI: writes the site's privacy policy page. Answers { action: 'JOB', async_job }; the page is written from the site's contact details and what it sells.

Admin token

Needs a site admin token.

Parameters
promptstring

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

chatIdstring

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

aiVersionstring

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

socketIdstring

The privacy policy's socket id.

include_consentstring

Whether to also create the cookie consent banner and link it to this privacy policy.

Status codes

200 401 500

POST/generate-privacy-policy
curl -X POST 'http://hristovtintdetailng.com/generate-privacy-policy?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "prompt": "...", "chatId": "...", "aiVersion": "...", "socketId": "...", "include_consent": "..." }'
↑↓ Navigate↵ GoEsc Close