Overview
The Events API provides endpoints to list approved events, view event details, and manage events as an organizer.
List All Events
curl -X GET 'https://api.example.com/api/events?page=0&size=9&search=workshop' \
-H "Authorization: Bearer YOUR_TOKEN"
GET /api/events?page=0&size=9&search=workshop
Authorization: Bearer YOUR_TOKEN
Retrieve a paginated list of all approved events. Supports search functionality.
Query Parameters
Page number (zero-based pagination)
Number of events per page
Search term to filter events by title or description
Response
Success message: “Events retrieved successfully”
data.content[].description
Event description
Event date (ISO 8601 format: YYYY-MM-DD)
Event start time (HH:mm:ss)
Event end time (HH:mm:ss)
Maximum number of participants
data.content[].currentRegistrations
Number of current registrations
Event status: UPCOMING, ONGOING, COMPLETED, CANCELLED
data.content[].organizationType
Organization type: YOUTH_UNION, STUDENT_ASSOCIATION, FACULTY, UNIVERSITY
data.content[].organizerID
ID of the event organizer
data.content[].organizerName
Full name of the event organizer
data.content[].isRegistered
Whether the current user is registered for this event
Whether the current user is the organizer
Total number of events across all pages
{
"statusCode": 200,
"message": "Events retrieved successfully",
"data": {
"content": [
{
"eventID": 1,
"title": "Spring Career Fair 2024",
"description": "Annual career fair featuring top companies",
"eventDate": "2024-04-15",
"startTime": "09:00:00",
"endTime": "17:00:00",
"venue": "University Hall A",
"capacity": 500,
"currentRegistrations": 234,
"status": "UPCOMING",
"organizationType": "UNIVERSITY",
"organizerID": 5,
"organizerName": "Jane Smith",
"isRegistered": true,
"isOwner": false,
"createdAt": "2024-03-01T10:00:00",
"updatedAt": "2024-03-05T14:30:00"
}
],
"pageable": {
"pageNumber": 0,
"pageSize": 9,
"sort": {
"sorted": false,
"unsorted": true,
"empty": true
}
},
"totalElements": 25,
"totalPages": 3,
"size": 9,
"number": 0
},
"timestamp": "2024-03-07T10:30:00"
}
Get Event by ID
curl -X GET https://api.example.com/api/events/1 \
-H "Authorization: Bearer YOUR_TOKEN"
GET /api/events/{eventID}
Authorization: Bearer YOUR_TOKEN
Retrieve detailed information about a specific event.
Path Parameters
Response
Returns a single EventDTO object with the same fields as the list endpoint.
{
"statusCode": 200,
"message": "Event retrieved successfully",
"data": {
"eventID": 1,
"title": "Spring Career Fair 2024",
"description": "Annual career fair featuring top companies from various industries. Bring your resume and dress professionally.",
"eventDate": "2024-04-15",
"startTime": "09:00:00",
"endTime": "17:00:00",
"venue": "University Hall A",
"capacity": 500,
"currentRegistrations": 234,
"status": "UPCOMING",
"organizationType": "UNIVERSITY",
"organizerID": 5,
"organizerName": "Jane Smith",
"organizationName": "Career Services Department",
"isRegistered": true,
"isOwner": false,
"createdAt": "2024-03-01T10:00:00",
"updatedAt": "2024-03-05T14:30:00"
},
"timestamp": "2024-03-07T10:30:00"
}
Error Responses
{
"statusCode": 404,
"message": "Event not found",
"timestamp": "2024-03-07T10:30:00"
}
Get Managed Events
curl -X GET https://api.example.com/api/events/managed \
-H "Authorization: Bearer YOUR_TOKEN"
GET /api/events/managed
Authorization: Bearer YOUR_TOKEN
Retrieve all events managed by the authenticated organizer.
Authentication
Bearer token - Requires ORGANIZER role
This endpoint requires the ORGANIZER role. The @PreAuthorize("hasRole('ORGANIZER')") annotation enforces this requirement.
Response
Success message: “Managed events retrieved successfully”
Array of EventDTO objects for events created by the organizer
{
"statusCode": 200,
"message": "Managed events retrieved successfully",
"data": [
{
"eventID": 1,
"title": "Spring Career Fair 2024",
"description": "Annual career fair",
"eventDate": "2024-04-15",
"startTime": "09:00:00",
"endTime": "17:00:00",
"venue": "University Hall A",
"capacity": 500,
"currentRegistrations": 234,
"status": "UPCOMING",
"organizationType": "UNIVERSITY",
"organizerID": 5,
"organizerName": "Jane Smith",
"isRegistered": false,
"isOwner": true,
"createdAt": "2024-03-01T10:00:00",
"updatedAt": "2024-03-05T14:30:00"
},
{
"eventID": 3,
"title": "Tech Workshop Series",
"description": "Weekly workshops on modern technologies",
"eventDate": "2024-04-20",
"startTime": "14:00:00",
"endTime": "16:00:00",
"venue": "Lab Building 201",
"capacity": 30,
"currentRegistrations": 28,
"status": "UPCOMING",
"organizationType": "FACULTY",
"organizerID": 5,
"organizerName": "Jane Smith",
"isRegistered": false,
"isOwner": true,
"createdAt": "2024-03-10T09:00:00",
"updatedAt": "2024-03-10T09:00:00"
}
],
"timestamp": "2024-03-07T10:30:00"
}
Error Responses
{
"statusCode": 403,
"message": "Access denied. Organizer role required.",
"timestamp": "2024-03-07T10:30:00"
}
Event Status Enum
Events can have one of the following statuses:
UPCOMING - Event is scheduled for the future
ONGOING - Event is currently happening
COMPLETED - Event has finished
CANCELLED - Event has been cancelled
Organization Type Enum
Events are organized by different types of organizations:
YOUTH_UNION - Youth Union events
STUDENT_ASSOCIATION - Student Association events
FACULTY - Faculty/Department events
UNIVERSITY - University-wide events