Community events and challenges are public, including their live leaderboards, so a society site or a stream overlay can show standings without anybody signing in.
All paths are relative to https://api.entropiacentral.com. Managing an event is done through the site and is not covered here; see running your event.
Listing events
GET /events?status=Active&pageNumber=1&pageSize=20| Parameter | Notes |
|---|---|
search | Matches the event name |
type | Event type |
status | Event status, for example the active ones |
sortBy | Defaults to StartDate |
sortOrder | asc or desc, defaults to desc |
pageNumber, pageSize | Default to 1 and 20 |
List items are deliberately light: name, slug, type, status, dates, organiser, participant and category counts, and the banner. Fetch the detail endpoint when you need more.
GET /events/{slug}Event leaderboards
GET /events/{slug}/leaderboard/{categoryId}?pageNumber=1&pageSize=50Standings for one category of an event. An event can have several categories scored independently, which is why the category id is part of the path rather than optional; the ids come from the event detail response.
The response carries items, totalCount, pageNumber, pageSize and totalPages.
Standings update as globals are matched, so this endpoint is live during an event. If you are displaying it during a competition, use the SignalR hubs for push updates rather than polling this on a timer.
GET /events/{slug}/globals?offset=0&pageSize=10&search=&sortBy=&sortDir=The globals that scored for an event. Note this one takes an offset rather than a page number, unlike the leaderboard next to it.
GET /events/{slug}/participants
GET /events/{slug}/teams
GET /events/{slug}/statisticsParticipants and team rosters are public so entrants can confirm they are registered. Statistics cover the event as a whole, including its top creatures.
GET /events/templatesThe event templates available when creating one, which is useful mainly for describing what kinds of events exist.
Challenges
GET /challenges?status=&search=&pageNumber=1&pageSize=20
GET /challenges/{slug}Challenges are tiered goals rather than a competition between entrants, so instead of a leaderboard they expose progress and completions.
GET /challenges/{slug}/progress/{avatarName}One avatar's progress through a challenge. Takes the avatar name, not a slug, and returns 404 when that avatar has no progress recorded rather than an empty result. Treat 404 as "has not started", not as an error.
GET /challenges/{slug}/completions?pageNumber=1&pageSize=50
GET /challenges/{slug}/participants?pageNumber=1&pageSize=50Who has finished it, and who is taking part.
GET /challenges/avatar/{avatarName}?pageNumber=1&pageSize=20Every challenge one avatar is progressing through, which is the endpoint to use for a personal progress panel rather than fetching each challenge separately.
GET /challenges/{slug}/trophyThe trophy awarded for completing it.
Notes
Slugs are stable, so an event or challenge URL you store keeps working.
Standings and progress are derived from globals as they are matched, and matching is not instantaneous. A global appears in the globals feeds before it is reflected in an event's standings. During a live event that lag is usually seconds; immediately after one closes it is worth waiting before treating the standings as final.