v4

latestOpenAPI 3.1.02026-07-3196251302.5 KB
leaderboard

Top movers in a windowed delta on a leaderboard

post/v1/leaderboard.getChanges

Request body

$schemastring uri

A URL to the JSON Schema for this object.

direction'improvements' | 'declines' required

improvements = positive delta, declines = negative delta.

leaderboard'apps' | 'awards_given' | 'awards_received' | 'bans' | 'game_bans' | 'vac_bans' | 'foil_badges' | 'normal_badges' | 'badges' | 'playtime' | 'points_given' | 'points_received' | 'steam_sets' | 'xp' | 'valid_playtime' required

Which leaderboard the delta is computed against.

limitinteger

Number of accounts returned per page. Default 100, max 1000.

metric'score' | 'rank' required

What to sort by. score = XP/playtime/badges depending on leaderboard. rank = leaderboard position.

offsetinteger

Number of accounts to skip, for paging past the first page. Default 0. With topFilter='all' the full leaderboard is pageable, not just the top 1000.

topFilter'10' | '50' | '100' | '500' | '1000' | 'all'

Restrict to accounts within the top-N of the leaderboard at either endpoint of the window. 'all' = no restriction (default).

window'24h' | '7d' | '30d' | '90d' | '1y' | 'all' required

Lookback window for the delta. 'all' compares each account's first retained snapshot against its latest, so it widens the delta rather than returning more accounts.

Example request

{
  "$schema": "https://api.steamsets.com/schemas/LeaderboardGetChangesRequestBody.json"
}

Response

OK

$schemastring uri

A URL to the JSON Schema for this object.

totalinteger required

Total accounts in this slice, ignoring limit/offset — page until limit+offset reaches it. Reflects the topFilter, since each rank bucket is counted separately.

Example response

{
  "$schema": "https://api.steamsets.com/schemas/LeaderboardGetChangesResponseBody.json",
  "changes": [
    {
      "account": {
        "appCost": 123456,
        "apps": 123456,
        "avatar": "f1a1d2c3d0c9d1e1f2f3f4f5f6f7f8f9",
        "awardsGiven": 123456,
        "awardsReceived": 123456,
        "badges": 123456,
        "city": {
          "name": "Bad Krozingen"
        },
        "country": {
          "code": "DE",
          "name": "Germany"
        },
        "createdAt": "2023-01-01T00:00:00Z",
        "donated": 123456,
        "economyBan": "steam",
        "foilBadgeCost": 123456,
        "foilBadges": 123456,
        "friends": 123456,
        "level": 123456,
        "name": "steamsets",
        "normalBadgeCost": 123456,
        "normalBadges": 123456,
        "playtime": 123456,
        "pointsGiven": 123456,
        "pointsReceived": 123456,
        "privacy": "public",
        "region": {
          "name": "Europe"
        },
        "state": {
          "name": "Baden-Wurttemberg"
        },
        "steamId": "76561198842603734",
        "steamSetsVanity": "steamsets",
        "steamVanity": "steamsets",
        "xp": 123456
      }
    }
  ]
}