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/toursResponse: Array of TourDTO objects.
Create a tour
POST /rest/guidedTour/toursRequest 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}/tasksResponse: 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}/tasksRequest 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}/stepsResponse: Array of StepDTO objects.
Create a step
POST /rest/guidedTour/tours/{tourId}/tasks/{taskId}/stepsRequest 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/userResponse: UserTourStatusDTO containing widget state and task completion map.
Create user status
POST /rest/guidedTour/userInitializes a user tour status record.
Update user status
PUT /rest/guidedTour/userRequest 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
| Field | Type | Description |
|---|---|---|
| id | String | Task identifier |
| title | String | Display name |
| order | int | Sort order |
| isActive | boolean | Whether the task is available |
| dependsOn | Array of String | Prerequisite task IDs |
| status | String | Current 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"
}| Field | Type | Description |
|---|---|---|
| order | int | Position within the task |
| element | String | CSS selector for the highlighted element |
| content | String | Tooltip content |
| placement | String | Tooltip position |
| backdrop | boolean | Enable backdrop overlay |
| reflex | boolean | Click element to advance |
| targetPage | String | Page reference for multi-page navigation |
| targetAction | String | Action on target page |
| queryParameters | String | URL query parameters for target page |
UserTourStatusDTO
{
"widgetState": "OPEN",
"callToAction": false,
"tasksStatus": {
"task1": "DONE",
"task2": "TODO",
"task3": "SKIPPED"
}
}Error codes
| Code | Description |
|---|---|
| 401 | Authentication required |
| 404 | Entity not found (invalid tour, task, or step ID) |
| 409 | Duplicate entity (ID or order conflict) |
| 500 | Internal server error |