Vexar API

Interactive Guides

Interactive guides are step-by-step walkthroughs the widget can run on your site (highlight elements, click, navigate). Guides have steps and optional multi-language translations. Authentication required.

Guides

GET /api/v1/sites/{id}/guides Auth

List guides for a site.

Response
{ "success": true, "guides": [ { "id": 3, "title": "Checkout tour", "is_active": true } ] }
POST /api/v1/sites/{id}/guides Auth

Create a guide. highlight_style: spotlight | outline.

Request body
{ "title": "Checkout tour", "description": "…", "highlight_style": "spotlight" }
Response
{ "success": true, "guide": { "id": 3 } }
GET /api/v1/guides/{id} Auth

Get a guide with its steps.

Response
{ "success": true, "guide": { … }, "steps": [ … ] }
PUT /api/v1/guides/{id} Auth

Update a guide (title, description, highlight_style, is_active).

Request body
{ "is_active": true }
Response
{ "success": true, "guide": { … } }
DELETE /api/v1/guides/{id} Auth

Delete a guide.

Response
{ "success": true }

Steps

POST /api/v1/guides/{id}/steps Auth

Add a step. selectors is a non-empty array of CSS selectors; step_type e.g. click; page_match_mode e.g. pathname.

Request body
{
  "step_type": "click",
  "page_url": "/cart",
  "selectors": ["#checkout-btn"],
  "title": "Click checkout",
  "description": "…"
}
Response
{ "success": true, "step": { "id": 11 } }
PUT /api/v1/guide-steps/{id} Auth

Update a step.

Request body
{ "title": "…", "selectors": ["#btn"] }
Response
{ "success": true, "step": { … } }
DELETE /api/v1/guide-steps/{id} Auth

Delete a step.

Response
{ "success": true }
PUT /api/v1/guides/{id}/steps/reorder Auth

Reorder steps by id array.

Request body
{ "order": [11, 9, 14] }
Response
{ "success": true }
POST /api/v1/sites/{id}/guides/training-token Auth

Issue a short-lived token to record guide steps from the widget (“training mode”).

Response
{ "success": true, "token": "…" }

Translations

POST /api/v1/guides/{id}/translate Auth

Auto-translate a guide and its steps to another language.

Request body
{ "target_lang": "de", "source_lang": "en" }
Response
{ "success": true }
GET /api/v1/guides/{id}/translations Auth

List available translations.

Response
{ "success": true, "translations": [ … ] }
PUT /api/v1/guides/{id}/translations/{lang} Auth

Save/override a translation (title, description, steps).

Request body
{ "title": "…", "description": "…", "steps": [ … ] }
Response
{ "success": true }
DELETE /api/v1/guides/{id}/translations/{lang} Auth

Delete a translation.

Response
{ "success": true }