Admin API
Protected API endpoints for dashboard operations.
Authentication
All endpoints require JWT authentication:
Authorization: Bearer <jwt_token>Widgets
List Widgets
http
GET /api/admin/widgetsResponse:
json
{
"widgets": [
{
"widget_id": "xxx",
"name": "Main Website",
"status": "active",
"plan": "growth",
"created_at": "2026-01-01T00:00:00Z"
}
]
}Get Widget
http
GET /api/admin/widgets/:idCreate Widget
http
POST /api/admin/widgetsBody:
json
{
"name": "New Widget",
"business": {
"name": "Company",
"website": "https://example.com"
}
}Update Widget
http
PUT /api/admin/widgets/:idDelete Widget
http
DELETE /api/admin/widgets/:idConversations
List Conversations
http
GET /api/admin/conversationsQuery Parameters:
widget_id- Filter by widgetstatus- Filter by status (active, ended)date_from- Start datedate_to- End datepage- Page numberlimit- Items per page
Get Conversation
http
GET /api/admin/conversations/:idResponse:
json
{
"conversation": {
"session_id": "sess_xxx",
"visitor": { "name": "John", "email": "john@example.com" },
"messages": [...],
"lead_score": 75,
"intent": "purchase_intent",
"started_at": "...",
"ended_at": "..."
}
}Leads
List Leads
http
GET /api/admin/leadsQuery Parameters:
widget_id- Filter by widgetstatus- new, contacted, qualified, convertedscore_min- Minimum lead scoredate_from,date_to- Date range
Update Lead
http
PUT /api/admin/leads/:idBody:
json
{
"status": "contacted",
"notes": "Called, interested in enterprise plan",
"tags": ["enterprise", "demo_scheduled"]
}Knowledge Base
List Documents
http
GET /api/admin/knowledgeUpload Document
http
POST /api/admin/knowledge/upload
Content-Type: multipart/form-dataForm Data:
file- Document filewidget_id- Widget IDcategory- Optional category
Delete Document
http
DELETE /api/admin/knowledge/:idAnalytics
Get Dashboard Stats
http
GET /api/admin/analyticsResponse:
json
{
"period": "last_30_days",
"conversations": {
"total": 1250,
"change": 15.5
},
"leads": {
"total": 89,
"change": 22.3
},
"conversion_rate": 7.1,
"avg_response_time": 1.2,
"top_intents": [...]
}Notifications
Get Settings
http
GET /api/admin/notifications/settingsUpdate Settings
http
PUT /api/admin/notifications/settingsBody:
json
{
"email": {
"enabled": true,
"addresses": ["team@example.com"]
},
"push": {
"enabled": true
},
"whatsapp": {
"enabled": true,
"phone": "+1234567890"
}
}