Skip to main content

Events API

Tile events (Ironforged Events) management service.

Public Endpoints

GET /events

List all events.

Query Parameters:

ParameterTypeDefaultDescription
statusstring-Filter by status (active, upcoming, completed)

Response:

{
"events": [
{
"id": "ironforged-2024",
"name": "Ironforged 2024",
"description": "Snake-style progression event",
"status": "active",
"start_date": "2024-01-01",
"end_date": "2024-03-31",
"tile_count": 50,
"participant_count": 25
}
]
}

GET /events/:id

Get event details.

Response:

{
"id": "ironforged-2024",
"name": "Ironforged 2024",
"description": "Snake-style progression event",
"status": "active",
"start_date": "2024-01-01",
"end_date": "2024-03-31",
"rules": "Complete tiles in order...",
"tiles": [
{
"id": 1,
"position": 1,
"name": "First Steps",
"description": "Complete Tutorial Island",
"points": 10,
"verification_type": "manual"
}
]
}

GET /events/:id/leaderboard

Get event leaderboard.

Query Parameters:

ParameterTypeDefaultDescription
limitnumber10Number of entries

Response:

{
"leaderboard": [
{
"rank": 1,
"user": {
"id": "166201366228762624",
"username": "yume",
"avatar": "hash"
},
"tiles_completed": 25,
"points": 500,
"last_completion": "2024-01-15T12:00:00.000Z"
}
]
}

Authenticated Endpoints

GET /events/:id/progress

Get current user's progress in an event.

Response:

{
"event_id": "ironforged-2024",
"user_id": "166201366228762624",
"current_tile": 15,
"tiles_completed": 14,
"points": 280,
"submissions": [
{
"tile_id": 14,
"status": "approved",
"submitted_at": "2024-01-14T10:00:00.000Z"
}
]
}

POST /events/:id/submit

Submit proof for a tile completion.

Request Body (multipart/form-data):

FieldTypeRequiredDescription
tile_idnumberYesThe tile being completed
imagefileYesScreenshot proof (PNG, JPG)
notesstringNoAdditional notes

Response:

{
"submission_id": "sub_abc123",
"status": "pending",
"message": "Submission received. Awaiting review."
}

Admin Endpoints

Permission Required

These endpoints require manage_events permission.

POST /events

Create a new event.

Request Body:

{
"id": "ironforged-2024",
"name": "Ironforged 2024",
"description": "Snake-style progression event",
"start_date": "2024-01-01",
"end_date": "2024-03-31",
"rules": "Complete tiles in order..."
}

PUT /events/:id

Update an event.


DELETE /events/:id

Delete an event.

danger

This permanently deletes the event and all associated data. Cannot be undone.


POST /events/:id/tiles

Add a tile to an event.

Request Body:

{
"position": 15,
"name": "Boss Slayer",
"description": "Defeat any boss 10 times",
"points": 50,
"verification_type": "manual"
}

PUT /events/:id/submissions/:submission_id

Review a submission.

Request Body:

{
"status": "approved",
"reviewer_notes": "Good screenshot, verified completion."
}

Status options: pending, approved, rejected