X24 LABS - ADMIN API
Centralized administration API for all X24 Labs applications.
Auth
Back Office authentication
4 endpointsUsers
Admin user management
6 endpointsApps
Application management
8 endpointsAPI Keys
API key management for backend-to-backend authentication
8 endpointsTickets
Support tickets management
15 endpointsHealth
Health checks
1 endpointsMagic Link
Passwordless end-user authentication
2 endpointsWants
Feature request board with voting and roadmap
11 endpointsFeedback
Quick anonymous feedback submission
8 endpointsJoinlist
2 endpointsEmail Tracking
2 endpointsWebhooks
2 endpointsContacts
6 endpointsSlack Routing
4 endpointsTemplates
9 endpointsEmail Jobs
3 endpointsEmail Events
3 endpointsEmail Analytics
4 endpointsNewsletter
19 endpointsAvailable formats
No separate URL to discover. Your AI agent hits this page directly and receives the token-optimized format — no /llms.txt convention required.
curl -H "Accept: text/markdown" https://api.x24labs.io/
Authentication
This API supports the following authentication methods:
| Method | Header | Use case |
|---|---|---|
| JWT Bearer Token | Authorization: Bearer <token> | Obtain via POST /auth/login. |
| API Key (apiKeyAuth) | X-API-Key: <key> | Key in header. |
Auth
Back Office authentication
POST/auth/loginBack Office team login None required{ "success": true, "token": "string", "user": { "id": "string", "email": "string", "name": "string", "role": "admin" } }{ "success": false, "error": "string" }{ "success": false, "error": "string" }POST/auth/refreshRefresh JWT token Bearer Token (JWT){ "success": true, "token": "string", "user": {} }{ "success": false, "error": "string" }POST/auth/hash-password[DEV] Generate password hash None required{ "hash": "string" }GET/auth/meCurrent user information Bearer Token (JWT){ "success": true, "user": { "id": "string", "email": "string", "name": "string", "role": "string" } }{ "success": false, "error": "string" }
Users
Admin user management
GET/users/List users Bearer Token (JWT){ "success": true, "data": [ { "_id": "string", "email": "string", "firstName": "string", "lastName": "string", "role": "string", "isActive": false, "profile": { "avatar": "string", "bio": "string", "phone": "string", "timezone": "string", "language": "string" }, "settings": { "notifications": { "email": ..., "push": ... }, "theme": "string", "defaultApp": "string" }, "lastLoginAt": "string", "loginCount": 0, "createdAt": "string", "updatedAt": "string" } ] }{ "success": false, "error": "string" }POST/users/Create user Bearer Token (JWT){ "success": true, "data": {}, "message": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }GET/users/{id}Get user by ID Bearer Token (JWT){ "success": true, "data": {} }{ "success": false, "error": "string" }PATCH/users/{id}Update user Bearer Token (JWT){ "success": true, "data": {}, "message": "string" }{ "success": false, "error": "string" }DELETE/users/{id}Delete user Bearer Token (JWT){ "success": true, "message": "string" }{ "success": false, "error": "string" }PATCH/users/{id}/passwordUpdate user password Bearer Token (JWT){ "success": true, "message": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }
Apps
Application management
GET/appsList of available applications Bearer Token (JWT){ "success": true, "data": [ { "id": "app1", "name": "App 1", "features": { "canEditTemplates": false, "canEditUsers": false, "canViewMetrics": false } } ] }{ "success": false, "error": "string" }GET/admin/apps/List apps (admin) Bearer Token (JWT){ "success": false, "data": [ { "_id": "string", "id": "string", "name": "string", "description": "string", "features": {}, "slackChannels": {}, "allowedOrigins": ["string"], "publicKey": "string", "active": false, "createdAt": "string", "updatedAt": "string" } ] }{ "success": false, "error": "string" }{ "success": false, "error": "string" }POST/admin/apps/Create app Bearer Token (JWT){ "success": false, "data": { "_id": "string", "id": "string", "name": "string", "description": "string", "features": {}, "slackChannels": {}, "allowedOrigins": ["string"], "publicKey": "string", "active": false, "createdAt": "string", "updatedAt": "string" } }{ "success": false, "error": "string" }{ "success": false, "error": "string" }GET/admin/apps/{id}Get app by id Bearer Token (JWT){ "success": false, "data": { "_id": "string", "id": "string", "name": "string", "description": "string", "features": {}, "slackChannels": {}, "allowedOrigins": ["string"], "publicKey": "string", "active": false, "createdAt": "string", "updatedAt": "string" } }{ "success": false, "error": "string" }PATCH/admin/apps/{id}Update app Bearer Token (JWT){ "success": false, "data": { "_id": "string", "id": "string", "name": "string", "description": "string", "features": {}, "slackChannels": {}, "allowedOrigins": ["string"], "publicKey": "string", "active": false, "createdAt": "string", "updatedAt": "string" } }{ "success": false, "error": "string" }DELETE/admin/apps/{id}Delete app Bearer Token (JWT){ "success": true, "message": "string" }{ "success": false, "error": "string" }POST/admin/apps/{id}/rotate-keyRotate app publicKey Bearer Token (JWT){ "success": false, "data": { "id": "string", "publicKey": "string" } }{ "success": false, "error": "string" }POST/admin/apps/{id}/toggleToggle app active flag Bearer Token (JWT){ "success": false, "data": { "_id": "string", "id": "string", "name": "string", "description": "string", "features": {}, "slackChannels": {}, "allowedOrigins": ["string"], "publicKey": "string", "active": false, "createdAt": "string", "updatedAt": "string" } }{ "success": false, "error": "string" }
API Keys
API key management for backend-to-backend authentication
GET/api-keys/statsAPI key statistics Bearer Token (JWT){ "success": true, "data": { "total": 0, "active": 0, "inactive": 0, "expired": 0, "byApp": {} } }{ "success": false, "error": "string" }GET/api-keys/List API keys Bearer Token (JWT){ "success": true, "data": [ { "_id": "string", "appId": "string", "name": "string", "description": "string", "allowedOrigins": ["string"], "isActive": false, "lastUsed": "string", "expiresAt": "string", "createdBy": "string", "createdAt": "string", "updatedAt": "string" } ], "pagination": { "page": 0, "limit": 0, "total": 0, "pages": 0 } }{ "success": false, "error": "string" }POST/api-keys/Create API key Bearer Token (JWT){ "success": true, "data": { "_id": "string", "key": "string", "appId": "string", "name": "string", "description": "string", "allowedOrigins": ["string"], "isActive": false, "expiresAt": "string", "createdBy": "string", "createdAt": "string" }, "message": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }GET/api-keys/{keyId}Get API key Bearer Token (JWT){ "success": true, "data": { "_id": "string", "key": "string", "appId": "string", "name": "string", "description": "string", "allowedOrigins": ["string"], "isActive": false, "lastUsed": "string", "expiresAt": "string", "createdBy": "string", "createdAt": "string", "updatedAt": "string" } }{ "success": false, "error": "string" }{ "success": false, "error": "string" }PATCH/api-keys/{keyId}Update API key Bearer Token (JWT){ "success": true, "data": {}, "message": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }DELETE/api-keys/{keyId}Delete API key Bearer Token (JWT){ "success": true, "message": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }POST/api-keys/{keyId}/revokeRevoke API key Bearer Token (JWT){ "success": true, "data": {}, "message": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }POST/api-keys/{keyId}/regenerateRegenerate API key Bearer Token (JWT){ "success": true, "data": { "_id": "string", "key": "string", "appId": "string", "name": "string", "isActive": false, "createdAt": "string" }, "message": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }
Tickets
Support tickets management
GET/tickets/List all tickets Bearer Token (JWT){ "success": true, "data": [ {} ], "pagination": { "page": 0, "limit": 0, "total": 0, "pages": 0 } }{ "success": false, "error": "string" }GET/tickets/{messageId}Get ticket by ID Bearer Token (JWT){ "success": true, "data": {} }{ "success": false, "error": "string" }PATCH/tickets/{messageId}Update ticket Bearer Token (JWT){ "success": true, "data": {}, "message": "string" }{ "success": false, "error": "string" }DELETE/tickets/{messageId}Delete ticket Bearer Token (JWT){ "success": true, "message": "string" }{ "success": false, "error": "string" }PATCH/tickets/{messageId}/statusUpdate ticket status Bearer Token (JWT){ "success": true, "data": {}, "message": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }GET/{appId}/tickets/statsTicket statistics Bearer Token (JWT){ "success": true, "data": { "total": 0, "byStatus": {}, "byTopic": {}, "byPriority": {}, "recentActivity": [ { "_id": "string", "subject": "string", "email": "string", "status": "string", "priority": "string", "createdAt": "string" } ], "volumeOverTime": [ { "date": "string", "count": 0 } ], "averageResolutionTime": 0 } }{ "success": false, "error": "string" }POST/{appId}/tickets/Create ticket with attachments Bearer Token (JWT){ "success": true, "data": { "_id": "string", "appId": "string", "shopId": "string", "topic": "string", "email": "string", "subject": "string", "message": "string", "status": "string", "priority": "string", "attachments": [ { "url": "string", "key": "string", "filename": "string", "mimetype": "string", "size": 0, "uploadedAt": "string" } ], "createdAt": "string", "updatedAt": "string" }, "message": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }GET/{appId}/tickets/List tickets Bearer Token (JWT){ "success": true, "data": [ {} ], "pagination": { "page": 0, "limit": 0, "total": 0, "pages": 0 } }{ "success": false, "error": "string" }DELETE/{appId}/tickets/Bulk delete tickets Bearer Token (JWT){ "success": true, "message": "string", "deletedCount": 0 }{ "success": false, "error": "string" }GET/{appId}/tickets/{messageId}Get ticket by ID Bearer Token (JWT){ "success": true, "data": {} }{ "success": false, "error": "string" }{ "success": false, "error": "string" }PATCH/{appId}/tickets/{messageId}Update ticket Bearer Token (JWT){ "success": true, "data": {}, "message": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }DELETE/{appId}/tickets/{messageId}Delete ticket Bearer Token (JWT){ "success": true, "message": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }PATCH/{appId}/tickets/{messageId}/statusUpdate ticket status Bearer Token (JWT){ "success": true, "data": {}, "message": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }POST/{appId}/tickets/{messageId}/messagesAdd message to ticket Bearer Token (JWT){ "success": true, "data": {}, "message": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }GET/{appId}/tickets/{messageId}/messagesGet ticket messages Bearer Token (JWT){ "success": true, "data": [ { "_id": "string", "content": "string", "isCustomer": false, "authorEmail": "string", "authorName": "string", "createdAt": "string" } ] }{ "success": false, "error": "string" }
Health
Health checks
GET/healthServer health check None required{ "status": "ok", "timestamp": "string", "uptime": 0, "memory": { "rss": "string", "heapUsed": "string", "heapTotal": "string" }, "database": { "connected": false, "modelsCount": 0 } }
Magic Link
Passwordless end-user authentication
POST/auth/magic-link/Send magic link None required{ "success": false, "message": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }POST/auth/magic-link/verifyVerify magic link token None required{ "success": false, "token": "string", "user": { "id": "string", "email": "string", "appId": "string" } }{ "success": false, "error": "string" }{ "success": false, "error": "string" }
Wants
Feature request board with voting and roadmap
GET/{appId}/wants/List wants API Key (header: X-API-Key){ "success": true, "data": [ { "_id": "string", "appId": "string", "title": "string", "description": "string", "category": "string", "status": "string", "voteCount": 0, "hasVoted": false, "authorEmail": "string", "createdAt": "string", "updatedAt": "string" } ], "pagination": { "page": 0, "limit": 0, "total": 0, "pages": 0 } }{ "success": false, "error": "string" }{ "success": false, "error": "string" }POST/{appId}/wants/Submit a want API Key (header: X-API-Key){ "success": true, "data": { "_id": "string", "appId": "string", "title": "string", "description": "string", "category": "string", "status": "string", "voteCount": 0, "hasVoted": false, "authorEmail": "string", "createdAt": "string", "updatedAt": "string" } }{ "success": false, "error": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }GET/{appId}/wants/{id}Get want by ID API Key (header: X-API-Key){ "success": true, "data": { "_id": "string", "appId": "string", "title": "string", "description": "string", "category": "string", "status": "string", "voteCount": 0, "hasVoted": false, "authorEmail": "string", "createdAt": "string", "updatedAt": "string" } }{ "success": false, "error": "string" }{ "success": false, "error": "string" }POST/{appId}/wants/{id}/voteVote on a want API Key (header: X-API-Key){ "success": true, "data": { "voteCount": 0, "hasVoted": false } }{ "success": false, "error": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }GET/admin/{appId}/wants/statsFeature request statistics Bearer Token (JWT){ "success": true, "data": { "total": 0, "byStatus": {}, "byCategory": {}, "byPriority": {} } }{ "success": false, "error": "string" }GET/admin/{appId}/wants/List wants (admin) Bearer Token (JWT){ "success": true, "data": [ { "_id": "string", "appId": "string", "title": "string", "description": "string", "category": "string", "status": "string", "priority": "string", "voteCount": 0, "authorEmail": "string", "createdAt": "string", "updatedAt": "string" } ], "pagination": { "page": 0, "limit": 0, "total": 0, "pages": 0 } }{ "success": false, "error": "string" }GET/admin/{appId}/wants/{id}Get want by ID (admin) Bearer Token (JWT){ "success": true, "data": { "_id": "string", "appId": "string", "title": "string", "description": "string", "category": "string", "status": "string", "priority": "string", "voteCount": 0, "authorEmail": "string", "createdAt": "string", "updatedAt": "string" } }{ "success": false, "error": "string" }{ "success": false, "error": "string" }PATCH/admin/{appId}/wants/{id}Update want Bearer Token (JWT){ "success": true, "data": { "_id": "string", "appId": "string", "title": "string", "description": "string", "category": "string", "status": "string", "priority": "string", "voteCount": 0, "authorEmail": "string", "createdAt": "string", "updatedAt": "string" } }{ "success": false, "error": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }DELETE/admin/{appId}/wants/{id}Delete want Bearer Token (JWT){ "success": true, "message": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }PATCH/admin/{appId}/wants/{id}/statusUpdate want status Bearer Token (JWT){ "success": true, "data": { "_id": "string", "appId": "string", "title": "string", "description": "string", "category": "string", "status": "string", "priority": "string", "voteCount": 0, "authorEmail": "string", "createdAt": "string", "updatedAt": "string" } }{ "success": false, "error": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }PATCH/admin/{appId}/wants/{id}/priorityUpdate want priority Bearer Token (JWT){ "success": true, "data": { "_id": "string", "appId": "string", "title": "string", "description": "string", "category": "string", "status": "string", "priority": "string", "voteCount": 0, "authorEmail": "string", "createdAt": "string", "updatedAt": "string" } }{ "success": false, "error": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }
Feedback
Quick anonymous feedback submission
POST/{appId}/feedback/Submit feedback None required{ "success": true, "data": { "_id": "string", "appId": "string", "type": "string", "subject": "string", "message": "string", "email": "string", "status": "string", "priority": "string", "createdAt": "string", "updatedAt": "string" } }{ "success": false, "error": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }GET/admin/{appId}/feedback/statsFeedback statistics Bearer Token (JWT){ "success": true, "data": { "total": 0, "byType": {}, "byStatus": {} } }{ "success": false, "error": "string" }GET/admin/{appId}/feedback/List feedback Bearer Token (JWT){ "success": true, "data": [ {} ], "pagination": { "page": 0, "limit": 0, "total": 0, "pages": 0 } }{ "success": false, "error": "string" }GET/admin/{appId}/feedback/{id}Get feedback by ID Bearer Token (JWT){ "success": true, "data": {} }{ "success": false, "error": "string" }{ "success": false, "error": "string" }PATCH/admin/{appId}/feedback/{id}Update feedback Bearer Token (JWT){ "success": true, "data": {} }{ "success": false, "error": "string" }{ "success": false, "error": "string" }DELETE/admin/{appId}/feedback/{id}Delete feedback Bearer Token (JWT){ "success": true, "message": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }PATCH/admin/{appId}/feedback/{id}/statusUpdate feedback status Bearer Token (JWT){ "success": true, "data": {} }{ "success": false, "error": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }PATCH/admin/{appId}/feedback/{id}/priorityUpdate feedback priority Bearer Token (JWT){ "success": true, "data": {} }{ "success": false, "error": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }
Joinlist
POST/joinlistPublic newsletter signup None required{ "success": false, "alreadySubscribed": false, "unsubscribeUrl": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }GET/unsubscribe/{token}Public unsubscribe confirmation None required"string"
Email Tracking
GET/o/{token}Open tracking pixel None required"string"GET/c/{token}Click tracking redirect None required"string"
Webhooks
POST/email-events/resendResend email webhook receiver None required{ "success": false, "processed": false, "eventId": "string" }POST/email-events/cold-providerCold email provider webhook (stub) None required{ "success": true, "message": "string" }
Contacts
GET/admin/contacts/List contacts Bearer Token (JWT){ "success": true, "data": [ {} ], "pagination": { "page": 0, "limit": 0, "total": 0, "pages": 0 } }{ "success": false, "error": "string" }GET/admin/contacts/{id}Get contact by ID Bearer Token (JWT){ "success": true, "data": {} }{ "success": false, "error": "string" }DELETE/admin/contacts/{id}GDPR delete contact Bearer Token (JWT){ "success": true, "message": "string" }{ "success": false, "error": "string" }PATCH/admin/contacts/{id}/consentUpdate consent for a category Bearer Token (JWT){ "success": true, "data": {}, "message": "string" }{ "success": false, "error": "string" }{ "success": false, "error": "string" }POST/admin/contacts/{id}/opt-outGlobal opt-out Bearer Token (JWT){ "success": true, "data": {}, "message": "string" }{ "success": false, "error": "string" }GET/admin/contacts/{id}/exportGDPR data export Bearer Token (JWT){ "success": true, "data": {} }{ "success": false, "error": "string" }
Slack Routing
GET/admin/slack-routing/List routing rules Bearer Token (JWT){ "success": false, "data": [ { "_id": "string", "appId": "string", "channel": "string", "webhookUrl": "string", "active": false, "createdAt": "string" } ] }{ "success": false, "error": "string" }POST/admin/slack-routing/Create routing rule Bearer Token (JWT){ "success": false, "data": {} }{ "success": false, "error": "string" }{ "success": false, "error": "string" }PATCH/admin/slack-routing/{id}Update routing rule Bearer Token (JWT){ "success": false, "data": {} }{ "success": false, "error": "string" }{ "success": false, "error": "string" }DELETE/admin/slack-routing/{id}Delete routing rule Bearer Token (JWT){ "success": false }{ "success": false, "error": "string" }{ "success": false, "error": "string" }
Templates
GET/admin/templates/categoriesTemplate languages Bearer Token (JWT)No response bodyGET/admin/templates/List templates Bearer Token (JWT)No response bodyPOST/admin/templates/Create template Bearer Token (JWT)No response bodyGET/admin/templates/{templateId}Get template by ID Bearer Token (JWT)No response bodyPUT/admin/templates/{templateId}Update template (full) Bearer Token (JWT)No response bodyPATCH/admin/templates/{templateId}Update template (partial) Bearer Token (JWT)No response bodyDELETE/admin/templates/{templateId}Delete template Bearer Token (JWT)No response bodyPATCH/admin/templates/{templateId}/toggleToggle template active status Bearer Token (JWT)No response bodyPOST/admin/templates/{templateId}/duplicateDuplicate template Bearer Token (JWT)No response body
Email Jobs
GET/admin/email-jobs/List email jobs Bearer Token (JWT){ "success": false, "data": [ { "_id": "string", "type": "string", "status": "string", "priority": 0, "payload": {}, "result": {}, "attempts": 0, "maxAttempts": 0, "lastError": "string", "scheduledAt": "string", "startedAt": "string", "completedAt": "string", "createdAt": "string" } ], "pagination": { "page": 0, "limit": 0, "total": 0, "pages": 0 } }{ "success": false, "error": "string" }GET/admin/email-jobs/statsEmail job statistics Bearer Token (JWT){ "success": false, "data": { "pending": 0, "processing": 0, "completed": 0, "failed": 0, "dead": 0, "total": 0, "progress": { "total": 0, "completed": 0, "failed": 0, "pending": 0, "processing": 0, "dead": 0, "percentage": 0 } } }{ "success": false, "error": "string" }GET/admin/email-jobs/{id}Get email job details Bearer Token (JWT){ "success": false, "data": { "_id": "string", "type": "string", "status": "string", "priority": 0, "payload": {}, "result": {}, "attempts": 0, "maxAttempts": 0, "lastError": "string", "scheduledAt": "string", "startedAt": "string", "completedAt": "string", "createdAt": "string" } }{ "success": false, "error": "string" }{ "success": false, "error": "string" }
Email Events
GET/admin/email-events/List email events Bearer Token (JWT){ "success": false, "data": [ { "_id": "string", "contactId": "string", "messageId": "string", "campaignId": "string", "provider": "string", "type": "string", "createdAt": "string" } ], "pagination": { "page": 0, "limit": 0, "total": 0, "pages": 0 } }{ "success": false, "error": "string" }GET/admin/email-events/message/{messageId}Get events for a message Bearer Token (JWT){ "success": false, "data": [ { "_id": "string", "type": "string", "provider": "string", "createdAt": "string" } ] }{ "success": false, "error": "string" }GET/admin/email-events/campaign/{campaignId}/statsCampaign event statistics Bearer Token (JWT){ "success": false, "data": { "sent": 0, "delivered": 0, "opened": 0, "clicked": 0, "bounced": 0, "openRate": 0, "clickRate": 0 } }{ "success": false, "error": "string" }
Email Analytics
GET/admin/email-events/analytics/campaigns/{campaignId}Campaign analytics Bearer Token (JWT){ "success": false, "data": { "campaignId": "string", "sent": 0, "delivered": 0, "opened": 0, "uniqueOpens": 0, "clicked": 0, "uniqueClicks": 0, "bounced": 0, "complained": 0, "unsubscribed": 0, "openRate": 0, "clickThroughRate": 0, "topLinks": [ { "url": "string", "clicks": 0 } ], "timeline": [ { "date": "string", "type": "string", "count": 0 } ] } }{ "success": false, "error": "string" }GET/admin/email-events/analytics/campaigns/{campaignId}/recipientsCampaign recipients breakdown Bearer Token (JWT){ "success": false, "data": [ { "contactId": "string", "events": ["string"], "lastEvent": "string" } ], "pagination": { "page": 0, "limit": 0, "total": 0, "pages": 0 } }{ "success": false, "error": "string" }GET/admin/email-events/analytics/contacts/{contactId}Contact engagement history Bearer Token (JWT){ "success": false, "data": { "contactId": "string", "totalSent": 0, "totalOpened": 0, "totalClicked": 0, "totalBounced": 0, "totalComplained": 0, "events": [ { "_id": "string", "campaignId": "string", "messageId": "string", "type": "string", "createdAt": "string" } ] } }{ "success": false, "error": "string" }GET/admin/email-events/analytics/overviewGlobal email analytics overview Bearer Token (JWT){ "success": false, "data": { "totalSent": 0, "totalDelivered": 0, "totalOpened": 0, "totalUniqueOpens": 0, "totalClicked": 0, "totalUniqueClicks": 0, "totalBounced": 0, "totalComplained": 0, "totalUnsubscribed": 0, "openRate": 0, "clickThroughRate": 0, "bounceRate": 0, "complaintRate": 0, "timeline": [ { "date": "string", "sent": 0, "delivered": 0, "opened": 0, "clicked": 0 } ] } }{ "success": false, "error": "string" }