Skip to main content
Returns the full ranked leaderboard for a point system — sorted by total points, with pagination support. Blacklisted wallets are automatically excluded.

GET /api/sdk/leaderboard

Request

GET https://api.rewards.so/leaderboard?pointSystemId=your-uuid&page=1&limit=50
Authorization: Bearer rw_your_api_key

Query parameters

ParameterTypeRequiredDefaultDescription
pointSystemIdstringYesUUID of the point system
pagenumberNo1Page number (1-indexed)
limitnumberNo50Entries per page (max 200)

Response 200

{
  "leaderboard": [
    {
      "rank": 1,
      "address": "0x3d73d19f3daf0cd6ea798c49939336b00adff988",
      "points": 2610,
      "events": 2
    },
    {
      "rank": 2,
      "address": "0x4a3d7344cdb69a96ab5b92d293e451ce15f9a678",
      "points": 1121,
      "events": 2
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 50,
    "total": 2,
    "totalPages": 1
  }
}

Response fields

FieldTypeDescription
ranknumberPosition on the leaderboard (global, not page-relative)
addressstringWallet address
pointsnumberTotal points accumulated
eventsnumberTotal number of point events

Code examples

const res = await fetch(
  `https://api.rewards.so/leaderboard?pointSystemId=${POINT_SYSTEM_ID}&limit=100`,
  { headers: { Authorization: `Bearer ${API_KEY}` } }
);
const { leaderboard, pagination } = await res.json();

leaderboard.forEach(({ rank, address, points }) => {
  console.log(`#${rank} ${address}${points} pts`);
});