Skip to main content
WEBHOOK
leaderboard.finished
{
  "type": "leaderboard.finished",
  "leaderboard": {
    "id": "5100fe51-6bce-6j44-b0hs-bddc4e123682",
    "name": "Weekly Word Count Challenge",
    "key": "weekly-words",
    "rankBy": "metric",
    "metricKey": "words-written",
    "metricName": "Words Written",
    "pointsSystemKey": null,
    "pointsSystemName": null,
    "description": "Compete weekly to see who writes the most words",
    "status": "active",
    "start": "2025-01-01",
    "end": null,
    "maxParticipants": 100,
    "runUnit": "day",
    "runInterval": 7,
    "rankings": [
      {
        "userId": "user-123",
        "userName": "Alice Johnson",
        "rank": 1,
        "value": 10
      },
      {
        "userId": "user-456",
        "userName": "Bob Smith",
        "rank": 2,
        "value": 6
      },
      {
        "userId": "user-789",
        "userName": "Charlie Brown",
        "rank": 3,
        "value": 4
      }
    ]
  }
}
Events fire between 13:00-13:59 UTC the day following the end of a leaderboard run. This is because each leaderboard run is relative to each user’s time zone, and users in the most delayed time zones must be given the chance to finish.
Events only include the top 10 user rankings. To fetch more, use the single leaderboard API.

Body

application/json

The webhook event.

type
enum<string>
required

The webhook event type.

Available options:
leaderboard.finished
leaderboard
object
required

The leaderboard run that finished and its final rankings. A leaderboard with its configuration details.

Response

200

Return a 200 status to indicate the webhook was received and processed.

I