CactusTiers API

Official API for retrieving CactusTiers player profiles and rankings. This is a public, read-only REST API that returns JSON.

Note

The response format was updated recently (v0.8.0). Some fields may return null for older or incomplete profiles including uuid, premium, discord, and the peak_* / test_id fields on rankings. Always handle nullable values defensively.

Base URL

All endpoints are served from:

https://tiers.cactusmc.xyz

Authentication

No authentication is required. Endpoints are publicly accessible.

Get a player profile

GET/api/profile/{username}

Returns a player's profile and per-mode rankings.

Path parameters

NameTypeRequiredDescription
usernamestringrequiredMinecraft username (case-insensitive).

Example request

curl https://tiers.cactusmc.xyz/api/profile/CuteeCactus

200 — Player found

{
  "uuid": "2dbe2b00-b72a-4d4c-b1c3-9c8afe9257ba",
  "premium": true,
  "name": "CuteeCactus",
  "discord": "1307231505109618719",
  "region": "EU",
  "points": 132,
  "overall": 1,
  "tests": [
    {
      "test-id": 1,
      "taken-at": 1783535806,
      "type": "high",
      "previous-tier": "LT4",
      "attained-tier": "HT2",
      "tester": [
        { "tester-discord": "1523411311696937080", "tester-ign": "CactusTiersTest" },
        { "tester-discord": "1307231505109618719", "tester-ign": "c4cactus" }
      ],
      "gamemode": "sword"
    }
  ],
  "rankings": {
    "sword": {
      "display": "HT1",
      "tier": 1,
      "pos": 0,
      "peak_tier": 1,
      "peak_pos": 0,
      "attained": 1783596092,
      "peak_attained": 1783594352,
      "test_id": 5,
      "peak_test_id": 4,
      "retired": false
    }
  }
}

404 — Player not found

{
  "error": "Player not found"
}

Try it

Enter a Minecraft username to call the endpoint live.

/api/profile/

Profile

FieldTypeDescription
uuidstring | nullMinecraft UUID with dashes.
premiumboolean | nullWhether the account is premium.
namestringMinecraft username.
discordstring | nullDiscord user ID.
regionAS | PK | NA | EU | MEPlayer region.
pointsintegerTotal ranking points.
overallintegerGlobal leaderboard position.
testsTestEntry[]Test history for the player.
rankingsmap<string, Ranking>Per-mode rankings keyed by mode ID.

TestEntry

FieldTypeDescription
test-idintegerUnique test identifier.
taken-atinteger (unix)Timestamp when the test was taken.
typestringTest type (high, migration, eval, etc.).
previous-tierstringTier before the test.
attained-tierstringTier attained from this test.
testerTester[]Testers who administered the test.
gamemodestringGamemode for this test.
tier-liststring?Source tier list for migration tests, if applicable.

Tester

FieldTypeDescription
tester-discordstringDiscord user ID of the tester.
tester-ignstringMinecraft username of the tester.

Ranking

FieldTypeDescription
displaystringOriginal tier string (e.g. HT1, LT3, RHT2).
tierinteger (1–5)Tier number.
pos0 | 10 = High Tier, 1 = Low Tier.
peak_tierinteger | nullBest tier achieved.
peak_pos0 | 1 | nullBest position achieved.
attainedinteger | null (unix)Timestamp when tier was earned.
peak_attainedinteger | null (unix)Timestamp when peak tier was earned.
test_idinteger | nullID of the test that earned this tier.
peak_test_idinteger | nullID of the test that earned the peak tier.
retiredbooleanWhether the ranking is retired.

Error

FieldTypeDescription
errorstringHuman-readable error message.