Feedback
Feedback is submitted by respondents via room links or the embedded widget. These endpoints let you query, analyze, and moderate collected responses.
All endpoints require authentication unless noted.
Submit feedback (public)
POST /api/feedback/submit
This is the public endpoint used by room share links. No auth required.
{
"instructorId": "abc123",
"eventType": "team-retrospective",
"feedback": "Great session, very productive.",
"sentiment": "positive",
"tags": ["helpful", "clear"]
}
Get paginated feedback
GET /api/feedback/paginated
Query parameters:
| Parameter | Type | Description |
|---|---|---|
page | number | Page number (default: 1) |
limit | number | Items per page (default: 20) |
sentiment | positive | neutral | negative | Filter by sentiment |
eventType | string | Filter by room name |
instructorId | string | Filter by instructor |
search | string | Full-text search |
startDate | ISO 8601 | Filter from date |
endDate | ISO 8601 | Filter to date |
Response 200
{
"data": [
{
"_id": "64a1b2c3d4e5f6a7b8c9d0e1",
"feedback": "Very helpful session.",
"sentiment": "positive",
"eventType": "team-retrospective",
"tags": ["helpful"],
"createdAt": "2024-03-15T14:22:00.000Z"
}
],
"total": 340,
"page": 1,
"limit": 20,
"totalPages": 17
}
Get trends
GET /api/feedback/trends
Returns time-series data for rendering sentiment trend charts. Accepts the same date range parameters as the paginated endpoint.
Get word cloud data
GET /api/feedback/wordcloud
Returns raw feedback text for rendering a word cloud. Filtered by the same parameters as paginated feedback.
Get AI reasoning
GET /api/feedback/reasoning/:feedbackId
Returns the AI model's reasoning for the sentiment classification of a specific feedback item.
Delete feedback
DELETE /api/feedback
{
"ids": [
"64a1b2c3d4e5f6a7b8c9d0e1",
"64a1b2c3d4e5f6a7b8c9d0e2"
]
}
Bulk deletion. Requires admin role.
Serious concerns
Serious concerns are feedback items flagged (manually or automatically) as requiring attention.
List serious concerns
GET /api/feedback/serious-concerns
Supports page, limit, resolved (boolean) query parameters.
Unresolved count
GET /api/feedback/serious-concerns/unresolved-count
Returns { "count": 3 }. Useful for badge indicators in the UI.
Resolve a concern
POST /api/feedback/:id/resolve
Marks the concern as reviewed and resolved.
Unresolve a concern
POST /api/feedback/:id/unresolve
Reopens a previously resolved concern.
Flagged feedback
GET /api/feedback/flagged-feedback
Returns feedback items that were flagged by the moderation system. Requires admin role.