API Reference
Feedback & Analytics API
REST API endpoints for feedback tickets, hygiene submissions, cleaning logs, and visitor analytics.
Last updated on
Feedback tickets
List tickets
GET /api/feedbackQuery parameters:
| Parameter | Type | Description |
|---|---|---|
from | ISO 8601 | Start date |
to | ISO 8601 | End date |
location_id | string | Filter by location |
status | string | open, in_review, resolved |
category | string | Filter by category slug |
page | number | Page number |
per_page | number | Max: 100 |
Response:
{
"data": [
{
"id": "tkt_abc123",
"location_id": "loc_def456",
"category": "cleanliness",
"description": "Restroom needs cleaning.",
"status": "open",
"has_attachment": true,
"contact_email": null,
"created_at": "2026-06-07T09:15:00Z",
"updated_at": "2026-06-07T09:15:00Z"
}
],
"meta": { "total": 58, "page": 1, "per_page": 20, "pages": 3 }
}Get ticket
GET /api/feedback/:idReturns the full ticket including notes and status history.
Update ticket status
PATCH /api/feedback/:idRequest body:
{ "status": "resolved" }Hygiene submissions
List hygiene submissions
GET /api/hygieneQuery parameters: from, to, location_id, page, per_page
Response:
{
"data": [
{
"id": "hyg_001",
"location_id": "loc_def456",
"submitted_at": "2026-06-07T11:30:00Z",
"scores": {
"cleanliness": 4,
"smell": 5,
"supplies": 3,
"general": 4
},
"average_score": 4.0,
"comment": null
}
],
"meta": { "total": 320, "page": 1, "per_page": 20, "pages": 16 }
}Get hygiene analytics
GET /api/analytics/hygieneQuery parameters: from, to, location_id
Returns aggregated scores per category per location and trend data.
Cleaning logs
List cleaning logs
GET /api/cleaningQuery parameters: from, to, location_id, personnel_id, page, per_page
Response:
{
"data": [
{
"id": "cln_001",
"location_id": "loc_def456",
"personnel_id": "prs_789",
"personnel_name": "Staff Member A",
"submitted_at": "2026-06-07T08:00:00Z",
"tasks_completed": ["mopped", "stocked_supplies", "sanitised"],
"notes": null
}
],
"meta": { "total": 180, "page": 1, "per_page": 20, "pages": 9 }
}Visitor analytics
Get analytics dashboard
GET /api/analytics/dashboardQuery parameters: from, to
Returns cross-module KPI metrics for the selected period:
{
"period": { "from": "...", "to": "..." },
"total_responses": 1247,
"average_score": 4.2,
"nps": 38,
"active_locations": 47,
"pending_tickets": 12,
"cleaning_compliance_rate": 0.94
}Get visitor events
GET /api/analytics/visitor-eventsQuery parameters: from, to, location_id, event_type (scan, form_open, submission, dropout)
Returns aggregated event counts grouped by day and location.