Organizer Analytics API
Base URL: https://api.nexgate.com/api/v1
Short Description: The Organizer Analytics API provides comprehensive financial and performance insights for event organizers. This API enables organizers to track total collections across all events, analyze revenue by event with filters, monitor individual event performance with detailed metrics, and visualize revenue trends over time with monthly/yearly breakdowns. The system calculates escrow holdings, released payments, ticket sales, attendance rates, and sell-out percentages automatically.
Hints:
- Organizer Only: All endpoints restricted to event organizers
- Auto-Calculations: Revenue, attendance, sell-out rates computed automatically
- Escrow Tracking: Separate tracking for held vs released funds
- Multi-Event: Aggregates data across all organizer's events
- Time Filters: Filter by status, date range, year
- Pagination: Event lists paginated (default 20 per page)
- Top Performer: Identifies highest revenue event
- Trend Analysis: Monthly/yearly revenue patterns
- Real-Time: Updates reflect latest bookings and check-ins
Response Structures
CollectionSummaryResponse
{
"eventMetrics": {
"totalEvents": 15,
"upcomingEvents": 5,
"ongoingEvents": 1,
"completedEvents": 8,
"cancelledEvents": 1
},
"collectionMetrics": {
"totalTicketsSold": 2500,
"totalRevenue": 5000000.00,
"inEscrow": 1200000.00,
"released": 3800000.00,
"refunded": 0.00,
"pendingRefunds": 0.00
},
"topEvent": {
"eventId": "uuid",
"eventTitle": "East African Tech Summit 2025",
"revenue": 1500000.00,
"ticketsSold": 500,
"attendanceRate": 92.5
}
}
EventRevenueResponse
{
"events": [
{
"eventId": "uuid",
"eventTitle": "East African Tech Summit 2025",
"eventDate": "2025-12-15T09:00:00",
"status": "PUBLISHED",
"ticketsSold": 500,
"totalRevenue": 1500000.00,
"inEscrow": 1500000.00,
"released": 0.00,
"refunded": 0.00,
"attendanceRate": 0.0,
"totalCapacity": 1000,
"sellOutPercentage": 50.0
}
],
"pagination": {
"currentPage": 0,
"pageSize": 20,
"totalPages": 3,
"totalElements": 45,
"hasNext": true,
"hasPrevious": false
}
}
EventPerformanceResponse
{
"eventId": "uuid",
"eventTitle": "East African Tech Summit 2025",
"eventDate": "2025-12-15T09:00:00",
"status": "COMPLETED",
"financials": {
"totalRevenue": 1500000.00,
"inEscrow": 0.00,
"released": 1500000.00,
"refunded": 0.00,
"averageTicketPrice": 3000.00
},
"ticketMetrics": {
"totalCapacity": 1000,
"totalSold": 500,
"totalRemaining": 500,
"sellOutPercentage": 50.0
},
"attendanceMetrics": {
"totalTickets": 500,
"checkedIn": 462,
"noShows": 38,
"attendanceRate": 92.4
},
"timeline": {
"createdAt": "2025-10-01T10:00:00",
"publishedAt": "2025-10-05T14:30:00",
"firstSaleAt": "2025-10-06T09:15:00",
"eventDate": "2025-12-15T09:00:00",
"completedAt": "2025-12-15T18:00:00"
}
}
RevenueTrendResponse
{
"period": "MONTHLY",
"totalEvents": 12,
"trends": [
{
"label": "JAN",
"year": 2025,
"month": 1,
"eventsCount": 2,
"ticketsSold": 350,
"revenue": 875000.00,
"inEscrow": 0.00,
"released": 875000.00,
"averageAttendanceRate": 88.5,
"averageSellOutRate": 62.0
}
]
}
Endpoints
1. Get Collection Summary
Endpoint: GET /analytics/collections/summary
Access: 🔒 Organizer Only
Success Response: Returns CollectionSummaryResponse
Success Response Message: "Collection summary retrieved"
Behavior:
- Aggregates ALL organizer's events
- Calculates escrow (PUBLISHED, HAPPENING events)
- Calculates released (COMPLETED events)
- Identifies top performer by revenue
- Real-time metrics from latest data
Metrics Included:
- Event counts by status
- Total tickets sold
- Total revenue (all time)
- Money in escrow (upcoming/ongoing)
- Money released (completed)
- Refunds (placeholder)
- Top performing event
2. Get Event Revenue
Endpoint: GET /analytics/collections/by-event?status=PUBLISHED&startDate=2025-01-01&endDate=2025-12-31&page=0&size=20
Access: 🔒 Organizer Only
Query Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| status | string | No | Filter by event status (PUBLISHED, COMPLETED, etc.) |
| startDate | date (ISO) | No | Filter events from this date (2025-01-01) |
| endDate | date (ISO) | No | Filter events until this date (2025-12-31) |
| page | integer | No | Page number (0-indexed, default: 0) |
| size | integer | No | Items per page (default: 20) |
Success Response: Returns EventRevenueResponse with pagination
Success Response Message: "Event revenue retrieved"
Behavior:
- Lists organizer's events with revenue details
- Filters by status and date range
- Sorted by event date (newest first)
- Paginated results
- Includes capacity and sell-out metrics
3. Get Event Performance
Endpoint: GET /analytics/performance/{eventId}
Access: 🔒 Event Organizer Only
Path Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| eventId | string (UUID) | Yes | Event identifier |
Success Response: Returns EventPerformanceResponse
Success Response Message: "Event performance retrieved"
Behavior:
- Validates organizer owns event
- Calculates comprehensive metrics
- Shows financial breakdown
- Displays ticket sales vs capacity
- Tracks attendance from check-ins
- Provides event timeline
Metrics Sections:
- Financials: Revenue, escrow, released, average price
- Tickets: Capacity, sold, remaining, sell-out %
- Attendance: Total, checked-in, no-shows, rate
- Timeline: Key dates from creation to completion
Errors:
403 FORBIDDEN: Not event organizer404 NOT_FOUND: Event not found
4. Get Revenue Trends
Endpoint: GET /analytics/trends?period=MONTHLY&year=2025
Access: 🔒 Organizer Only
Query Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| period | string | No | MONTHLY or YEARLY (default: MONTHLY) |
| year | integer | No | Year to analyze (default: current year) |
Success Response: Returns RevenueTrendResponse
Success Response Message: "Revenue trends retrieved"
Behavior:
MONTHLY Period:
- Shows all 12 months for specified year
- Data per month: events, tickets, revenue, escrow, released
- Calculates average attendance and sell-out rates
YEARLY Period:
- Shows all years organizer has events
- Data per year: total events, tickets, revenue
- Year-over-year comparison
Each Period Includes:
- Event count
- Tickets sold
- Total revenue
- Money in escrow
- Money released
- Average attendance rate
- Average sell-out rate
Key Calculations
Escrow vs Released
In Escrow (Not yet paid to organizer):
- PUBLISHED events (upcoming)
- HAPPENING events (ongoing)
- Formula: Sum of booking totals for non-completed events
Released (Paid to organizer):
- COMPLETED events only
- Formula: Sum of booking totals for completed events
Example:
Event A: PUBLISHED, Revenue: 500,000 TZS → In Escrow
Event B: HAPPENING, Revenue: 300,000 TZS → In Escrow
Event C: COMPLETED, Revenue: 1,200,000 TZS → Released
Total Revenue: 2,000,000 TZS
In Escrow: 800,000 TZS
Released: 1,200,000 TZS
Attendance Rate
Attendance Rate = (Checked-In Tickets / Total Tickets) × 100
Example:
- Total tickets: 500
- Checked-in: 462
- Attendance: 92.4%
Sell-Out Percentage
Sell-Out % = (Tickets Sold / Total Capacity) × 100
Example:
- Capacity: 1000
- Sold: 500
- Sell-out: 50%
Average Ticket Price
Average Price = Total Revenue / Total Tickets
Example:
- Revenue: 1,500,000 TZS
- Tickets: 500
- Average: 3,000 TZS
Event Status Flow
DRAFT → PUBLISHED → HAPPENING → COMPLETED
↓ ↓
CANCELLED (Revenue Released)
Financial Impact by Status:
- DRAFT: No bookings, no revenue
- PUBLISHED: Bookings allowed, revenue in escrow
- HAPPENING: Ongoing, revenue still in escrow
- COMPLETED: Revenue released to organizer
- CANCELLED: Refunds processed (if applicable)
Top Performer Logic
Selection Criteria: Highest total revenue
Metrics Included:
- Event ID and title
- Total revenue (highest wins)
- Tickets sold
- Attendance rate
Use Case: Dashboard highlight showing best-performing event
Use Cases
Dashboard Overview
GET /analytics/collections/summary
Shows:
- Total events across all statuses
- Total revenue (all time)
- Current escrow balance
- Released payments
- Top performing event
Event List with Filters
GET /analytics/collections/by-event?status=COMPLETED&page=0&size=20
Shows:
- All completed events
- Revenue details per event
- Attendance and sell-out rates
- Paginated for easy navigation
Deep Dive on Specific Event
GET /analytics/performance/550e8400-e29b-41d4-a716-446655440000
Shows:
- Complete financial breakdown
- Ticket sales metrics
- Attendance statistics
- Event timeline
Monthly Revenue Analysis
GET /analytics/trends?period=MONTHLY&year=2025
Shows:
- Revenue per month in 2025
- Event count trends
- Attendance patterns
- Sell-out trends
Year-Over-Year Comparison
GET /analytics/trends?period=YEARLY
Shows:
- Revenue by year
- Growth trends
- Performance evolution
Best Practices
For Organizers
✅ Check collection summary regularly
✅ Monitor escrow balance (upcoming payouts)
✅ Track attendance rates to improve future events
✅ Use trends to identify peak seasons
✅ Review individual event performance post-event
For Developers
✅ Cache collection summary (refresh hourly)
✅ Paginate event lists (default 20 items)
✅ Display financial amounts clearly (currency formatting)
✅ Show percentage metrics with 1 decimal (92.4%)
✅ Provide export functionality for trends
Quick Reference
HTTP Status Codes
200 OK: Successful request401 UNAUTHORIZED: Authentication required403 FORBIDDEN: Not event organizer404 NOT_FOUND: Event not found
Date Formats
- Event Date: LocalDateTime (2025-12-15T09:00:00)
- Query Params: ISO Date (2025-01-01)
Currency
- All amounts in TZS (Tanzanian Shilling)
- Format: 1500000.00 (2 decimals)
Percentage Format
- Format: 92.4 (1 decimal)
- Range: 0.0 - 100.0
Pagination
- Zero-indexed pages (0, 1, 2...)
- Default size: 20
- Max size: 100 (recommended)
Conclusion
The Organizer Analytics API provides comprehensive insights with:
✅ Collection Summary: Total revenue, escrow, and top performers
✅ Event Revenue: Filterable, paginated event list
✅ Event Performance: Deep dive into individual event metrics
✅ Revenue Trends: Monthly/yearly pattern analysis
✅ Real-Time: Auto-calculated from latest bookings
✅ Organizer-Focused: Restricted to event owners only
No comments to display
No comments to display