Entropia Central's public data is readable over a plain REST API. Globals, leaderboards, avatar and team profiles, the wiki, events and challenges, and site-wide statistics are all available without credentials.
https://api.entropiacentral.comEverything documented in this section is public and read-only. Authenticated endpoints are not documented here.
What you can read without credentials
| Area | Reference |
|---|---|
| Globals, HOFs, ATHs and leaderboards | Tracker data |
| Items, creatures, blueprints and the rest of the wiki | Wiki |
| Avatars, teams, search and site statistics | Avatars and statistics |
| Community events and challenges | Events and challenges |
| Live push feeds instead of polling | SignalR hubs |
Browsers cannot call this API directly
Cross-origin requests are only accepted from Entropia Central's own domains. A page served from your own site cannot fetch this API from the browser; the request will be blocked by CORS before it reaches us.
Call it from a server, a script, a desktop app or anything else that is not a browser page on a third-party origin. This is the single most common thing people hit, and it is a deliberate restriction rather than a misconfiguration.
Conventions
Slugs, not ids. Entries are addressed by slug in URLs, and the slugs match the ones in the site's own addresses. If you can see something at entropiacentral.com/wiki/creatures/atrox, then /creatures/atrox is the same entry. Internal integer ids appear in responses but should not be built into your URLs.
Pagination is not uniform. Page size limits differ by endpoint and several are capped low. The differences are real and not accidental, so check the page you are using rather than assuming:
| Endpoint | Page size |
|---|---|
/globals | Defaults to 10, maximum 30 |
/avatars/{slug}/globals | Defaults to 20, maximum 100 |
/avatars, /teams | Fixed at 20, cannot be changed |
/events, /challenges | Defaults to 20 |
Invalid parameters return 400. Values outside the accepted bounds are rejected rather than clamped, including a minValue above maxValue or a sortBy outside the accepted fields. Validate before you send.
There is one exception worth knowing. On /avatars/{slug}/globals, an unrecognised value in the comma-separated type filter is silently dropped rather than rejected, and if none of your values are recognised the filter is dropped entirely, returning unfiltered results. A typo there produces plausible-looking data rather than an error.
Dates are UTC. In-game timestamps are recorded in UTC and returned that way.
Errors
Errors come back as JSON with a message:
{ "error": "Avatar with slug 'nobody' not found" }400 means your request was rejected as invalid, 404 means the slug or id does not exist, and 500 means something failed on our side and is worth retrying later.
Being a good consumer
There is no published rate limit, which is not an invitation. The database behind this is large, some endpoints are expensive, and the site's own users share it with you.
Prefer the cached endpoints when polling. /globals/recent, /globals/top-24h and /globals/activity-24h are cache-backed and cheap. A filtered /globals query is not, and polling one on a short interval is the fastest way to cause a problem for everybody.
Use the live feeds instead of polling. If you want globals as they happen, the SignalR hubs push them to you. Polling every few seconds to catch events that arrive every few minutes wastes your resources and ours.
Cache what does not change. Wiki entries change rarely. Fetching the same creature on every page view of your own app is unnecessary.
Walk history by date, not by deep paging. With page sizes capped, pulling a long history means many requests. Filter by date range and step backwards rather than paging deep into an unfiltered list.
Identify yourself. Send a User-Agent that says what your tool is. If something you run causes a problem, that string is the difference between us contacting you and us blocking you.
Reading this documentation programmatically
Every page in this documentation is also published as raw markdown, which is usually easier for a script or an AI agent to consume than the rendered page. Append .md to any documentation URL:
curl https://www.entropiacentral.com/documentation/api-reference/overview.mdThe whole corpus in a single file is at /llms-full.txt, and an index of it is at /llms.txt.