Attendees API
Retrieve attendee details for integration with external platforms.
The Attendees API allows authenticated integrations to fetch attendee details after they register for events. This is useful for platforms that use CANSKAN as their registration provider and need to sync attendee data.
Get Attendee by ID
Retrieve attendee details by their unique identifier.
Endpoint: GET /api/attendees/{id}
Authentication: Required (API Token)
Request
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
UUID | Yes | The unique identifier of the attendee |
Success Response
Status: 200 OK
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "John Doe",
"email": "john@example.com",
"status": "confirmed",
"registered_at": "2025-12-10T10:30:00Z",
"checked_in_at": null,
"event": {
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Laravel Cebu December Meetup",
"starts_at": "2025-12-15T18:00:00Z",
"ends_at": "2025-12-15T21:00:00Z",
"location": "Cebu City"
}
}
}Response Fields
| Field | Type | Description |
|---|---|---|
id |
string | Unique identifier (UUID) of the attendee |
name |
string | Full name of the attendee |
email |
string | Email address of the attendee |
status |
string | Registration status: pending, confirmed, canceled, or no_show |
registered_at |
string | ISO 8601 timestamp when the attendee registered |
checked_in_at |
string|null | ISO 8601 timestamp when checked in, or null if not checked in |
event.id |
string | UUID of the event |
event.name |
string | Name of the event |
event.starts_at |
string|null | ISO 8601 timestamp when the event starts |
event.ends_at |
string|null | ISO 8601 timestamp when the event ends |
event.location |
string|null | Location of the event |
Error Responses
401 Unauthorized - Missing or invalid API token
{
"message": "API token required."
}403 Forbidden - Token doesn't have access to this attendee's event
{
"message": "Access denied."
}404 Not Found - Attendee doesn't exist or doesn't belong to your organization
{
"message": "Attendee not found."
}Integration Use Case
This endpoint is designed for external platforms that use CANSKAN for event registration. A typical integration flow:
Configure Event: Set a
redirect_urlon your CANSKAN event (e.g.,https://yourapp.com/callback?code={code})User Registers: User registers for the event on CANSKAN
Redirect: After registration, user is redirected to your URL with the attendee ID as the
codeparameterFetch Details: Your application calls this API to fetch the attendee's information
Sync Data: Store the attendee data in your own system
Example Callback Handler
Cancel Attendee Registration
Cancel an attendee's registration for an event.
Endpoint: POST /api/events/{event_id}/attendees/{attendee_id}/cancel
Authentication: Required (API Token)
Request
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
event_id |
UUID | Yes | The unique identifier of the event |
attendee_id |
UUID | Yes | The unique identifier of the attendee |
Success Response
Status: 200 OK
{
"message": "Registration cancelled successfully."
}Error Responses
401 Unauthorized - Missing or invalid API token
{
"message": "API token required."
}404 Not Found - Attendee or event not found
{
"message": "Attendee not found."
}422 Unprocessable Entity - Cannot cancel (already checked in or cancelled)
{
"message": "Cannot cancel registration. Attendee has already checked in."
}Mark Attendee as No-Show
Mark an attendee as a no-show when they don't attend the event.
Endpoint: POST /api/events/{event_id}/attendees/{attendee_id}/no-show
Authentication: Required (API Token)
Request
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
event_id |
UUID | Yes | The unique identifier of the event |
attendee_id |
UUID | Yes | The unique identifier of the attendee |
Success Response
Status: 200 OK
{
"message": "Attendee marked as no show.",
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"status": "no_show"
}
}Error Responses
401 Unauthorized - Missing or invalid API token
{
"message": "API token required."
}404 Not Found - Attendee or event not found
{
"message": "Attendee not found."
}422 Unprocessable Entity - Cannot mark as no-show
{
"message": "Cannot mark as no show. Attendee has already checked in."
}Bulk Mark No-Show
Mark multiple attendees as no-show in a single request.
Endpoint: POST /api/events/{event_id}/attendees/bulk-no-show
Authentication: Required (API Token)
Request
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
event_id |
UUID | Yes | The unique identifier of the event |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
attendee_ids |
array | Yes | Array of attendee UUIDs to mark as no-show |
Success Response
Status: 200 OK
{
"message": "3 attendees marked as no show.",
"success_count": 3,
"failed_count": 0
}Partial Success Response
When some attendees cannot be marked (e.g., already checked in):
{
"message": "2 attendees marked as no show.",
"success_count": 2,
"failed_count": 1,
"failed": [
{
"id": "6ba7b811-9dad-11d1-80b4-00c04fd430c8",
"reason": "Already checked in"
}
]
}Error Responses
401 Unauthorized - Missing or invalid API token
{
"message": "API token required."
}422 Validation Error - Invalid request body
{
"message": "The given data was invalid.",
"errors": {
"attendee_ids": ["The attendee_ids field is required."]
}
}Rate Limits
| Request Type | Rate Limit |
|---|---|
| Authenticated | 60 requests/minute |