REST API

Last modified by gabrielc on 2026/07/02 12:56

Content

Reference

REST endpoints for managing tours, tasks, steps, and user status.

All endpoints are under the /rest/guidedTour/ base path and require authentication.

Tours

List all tours

GET /rest/guidedTour/tours

Response: Array of TourDTO objects.

Create a tour

POST /rest/guidedTour/tours

Request body: TourDTO JSON.

Update a tour

PUT /rest/guidedTour/tours/{tourId}

Request body: TourDTO JSON.

Delete a tour

DELETE /rest/guidedTour/tours/{tourId}

Deletes the tour and all its tasks and steps.

Tasks

List tasks

GET /rest/guidedTour/tours/{tourId}/tasks

Response: Array of TaskDTO objects.

Get a task

GET /rest/guidedTour/tours/{tourId}/tasks/{taskId}

Response: Single TaskDTO.

Create a task

POST /rest/guidedTour/tours/{tourId}/tasks

Request body: TaskDTO JSON.

Update a task

PUT /rest/guidedTour/tours/{tourId}/tasks/{taskId}

Request body: TaskDTO JSON.

Delete a task

DELETE /rest/guidedTour/tours/{tourId}/tasks/{taskId}

Steps

List steps

GET /rest/guidedTour/tours/{tourId}/tasks/{taskId}/steps

Response: Array of StepDTO objects.

Create a step

POST /rest/guidedTour/tours/{tourId}/tasks/{taskId}/steps

Request body: StepDTO JSON.

Update a step

PUT /rest/guidedTour/tours/{tourId}/tasks/{taskId}/steps/{stepId}

Request body: StepDTO JSON.

Delete a step

DELETE /rest/guidedTour/tours/{tourId}/tasks/{taskId}/steps/{stepId}

User status

Get user status

GET /rest/guidedTour/user

Response: UserTourStatusDTO containing widget state and task completion map.

Create user status

POST /rest/guidedTour/user

Initializes a user tour status record.

Update user status

PUT /rest/guidedTour/user

Request body: UserTourStatusDTO JSON.

DTOs

TourDTO

{
  "id": "getting-started",
  "title": "Getting Started",
  "isActive": true,
  "tasks": [
    {
      "id": "task1",
      "title": "Create a Page",
      "order": 1,
      "isActive": true,
      "dependsOn": [],
      "status": "TODO"
    }
  ]
}

TaskDTO

FieldTypeDescription
idStringTask identifier
titleStringDisplay name
orderintSort order
isActivebooleanWhether the task is available
dependsOnArray of StringPrerequisite task IDs
statusStringCurrent user status: TODO, SKIPPED, DONE

StepDTO

{
  "order": 1,
  "element": "#mainContent",
  "content": "This is the main content area",
  "placement": "BOTTOM_CENTER",
  "backdrop": true,
  "reflex": false,
  "targetPage": "Main.WebHome",
  "targetAction": "VIEW",
  "queryParameters": "param1=value1"
}
FieldTypeDescription
orderintPosition within the task
elementStringCSS selector for the highlighted element
contentStringTooltip content
placementStringTooltip position
backdropbooleanEnable backdrop overlay
reflexbooleanClick element to advance
targetPageStringPage reference for multi-page navigation
targetActionStringAction on target page
queryParametersStringURL query parameters for target page

UserTourStatusDTO

{
  "widgetState": "OPEN",
  "callToAction": false,
  "tasksStatus": {
    "task1": "DONE",
    "task2": "TODO",
    "task3": "SKIPPED"
  }
}

Error codes

CodeDescription
401Authentication required
404Entity not found (invalid tour, task, or step ID)
409Duplicate entity (ID or order conflict)
500Internal server error

 

Get Connected