1. Leaderboards
Returning.AI
  • Getting Started
  • Users
    • User directory and provisioning
    • Get Users with Filters
      POST
    • Create New User
      POST
    • Get User Data
      POST
    • Manage User Account
      POST
    • Get User Milestones
      POST
    • Update User Data, Identifier, And Roles
      POST
    • Update User XP and Currency
      POST
  • Messaging
    • Agent messaging workflow
    • Get Messages
      GET
    • Send Message
      POST
    • Reply Message
      POST
    • React Message
      POST
    • Upload message images
      POST
  • Gamification
    • Leaderboards
      • Leaderboards
      • List leaderboards with pagination
        GET
      • Create a new leaderboard
        POST
      • Update an existing leaderboard
        PATCH
      • Get a single leaderboard by ID
        GET
      • Delete a leaderboard
        DELETE
    • Streaks & Mini Games
      • Mini-game State and History
      • List user streak logs
      • List mini-game logs by user email
      • Get current mini-game and streak state
      • Update user spin-wheel information
    • Referral
      • Referral Program Integration
      • Get referral programs
      • Get user's referral summary
    • Rolling Data
      • Get Daily Calculation Data
      • Get Rolling Calculation Data
    • Match Predictions
    • Get tier configuration
      GET
    • Get daily user XP and coin changes
      POST
    • Search user gamification logs
      POST
    • Get user activity stats
      POST
  • Rewards & Redemptions
    • Store catalog to redemptions
    • Update redemption order status or refund
    • List redemption orders by user email
    • List redemption statuses
    • Get redemption status by ID
    • List redemption orders by community
    • Create redemption order status
    • Get redemption order status history
  • Chart Analysis
    • Create Analysis
    • Get Analysis
    • Update Analysis
    • Delete Analysis
    • List Analyses
    • Append Drawings
  • Bulk Operations
    • Bulk user updates
    • List bulk update jobs
    • Get bulk update job status
    • Get bulk update job details
    • Bulk update users from CSV
    • Bulk update premium currency from CSV
  • Channels
    • Iframe
    • List integration channels
  • Events
    • Outgoing webhooks
      • Encryption
      • User Joins Server
      • User Visits server
      • New Message Posted Anywhere
      • New Message Posted To channel
      • Purchased Store Item
    • Incoming webhooks
      • API Keys & Encryption
      • Send message into channels
      • Update Custom User Fields
      • Update In-game currency
  • Widgets
    • Authenticated Widgets
    • Public widgets
    • Channels
    • Leaderboard
    • Milestone
    • Socials
    • Store
  • Community Analytics
    • Get Loyalty Overview
    • Get Phone Verification Contacts
  • Store
    • Store catalog
    • Purchase History
      • Update redemption instructions or voucher details
    • Categories
      • List Store categories
      • Create Store category
      • Get Store category by ID
      • Update Store category
      • Delete Store category
    • Products
      • List products
      • Update products in bulk
      • Create products in bulk
      • Create product with vouchers
      • Read product
      • Update product and append vouchers
      • Delete product
    • Redemption-transaction
      • Get redemption transaction detail
    • Get Store configuration
    • Update Store configuration
  • Community
    • Community directory and appearance
    • Appearance
      • Update community theme colors
      • Update community bot profile
      • Update community URL metadata
      • Update community name and URL
    • Community Users
      • Get community users
      • Get user
    • Create community
  • API Keys
    • API key lifecycle
    • Community API Keys
      • Create API key
      • Read API keys
      • Delete API key
      • Update API key
    • User API Keys
      • List user API keys
      • Create user API key
      • Update user API key
      • Delete user API key
      • Get current API key information
  • User Fields
    • User field definitions and history
    • User Field History
      • Get all user field histories in a community
      • Get user field histories for a specific field
      • Get user field histories for a specific user
      • Get user field histories of specific user field and user
      • Update A User Field Value
      • Deprecated Field-First History Write
      • Deprecated Field-First History Read
    • Get A User Field Definition
    • Update A User Field Definition
    • Create A User Field Definition
    • Delete A User Field Definition
    • List User Field Definitions
  • Legacy
    • Servers
      • Create server
      • List servers
      • Update server metadata
    • Bulk Operations
      • Bulk import users from CSV
    • Authentication
      • Secure Auth
      • Register user with password
      • Verify user email
      • Log in user with password
    • Badges
      • List badges
      • Create badge
      • Update badge
      • Delete badge
      • Remove badge from user
      • Award badge to user
    • Messaging
    • Roles & Permissions
      • List server roles
      • Create role
      • Update role
      • Delete role
      • List user roles
      • Add role to user
      • Remove role from user
    • Users
      • Get user
      • Upload user avatar
    • Channels
      • Create channel
      • Update channel
      • Delete channel
    • API Keys
      • List integration API keys
      • Create integration API key
      • Delete integration API key
      • Update integration API key
  1. Leaderboards

List leaderboards with pagination

GET
/leaderboards

What this endpoint does#

Lists leaderboards for the community resolved from the Bearer API key.
A key missing permission leaderboard receives 403, not a catalog.
INFO
Workflow
Use a community API key that includes leaderboard → GET https://api.returning.ai/v1/leaderboards → if 403 AUTH_PERMISSION_REQUIRED, add the permission or switch keys → do not call GET /leaderboards without /v1.

Quick start#

On https://api.returning.ai:
GET /v1/leaderboards — mounted. 403 when leaderboard is missing.
GET /leaderboards — not mounted (404).

Authentication and permission#

Send Authorization: Bearer <COMMUNITY_API_KEY>. Required permission: leaderboard. Community is resolved from the key; do not send communityID in the path.
FailureResultRecovery
Valid key, missing leaderboard403 AUTH_PERMISSION_REQUIRED Insufficient API key permissions detail: API key is missing required permissions: leaderboardUpdate the key permissions or use a key that includes leaderboard.
Missing or invalid token401Add a valid community key.

Complete examples#

Missing permission (403).
{
  "meta": {
    "status": "error",
    "statusCode": 403,
    "code": "AUTH_PERMISSION_REQUIRED"
  },
  "message": "Insufficient API key permissions",
  "detail": "API key is missing required permissions: leaderboard",
  "solution": "Update the API key permissions or use a key with the required permissions"
}
Same body for ?page=1&limit=5.
List success (200). A key that includes leaderboard returns message Read leaderboards success. Pagination sits on meta (page, limit, total). data is an array of boards.
{
  "meta": {
    "status": "success",
    "statusCode": 200,
    "page": 1,
    "limit": 5,
    "total": 1
  },
  "message": "Read leaderboards success.",
  "data": [
    {
      "_id": "<leaderboardID>",
      "name": "Example board",
      "slug": "example-board",
      "rankBy": "Messages Sent",
      "enabled": true,
      "selected": true
    }
  ]
}
Board objects also include displayedFields, displayFieldsOrder, timeFilters, duration, widget, translations, and permission role lists. Treat those as community-specific. Pagination query: page (minimum 1) and limit (maximum 100).

Success and readback#

HTTP 200 Read leaderboards success. is the list and the readback for create/update/delete. Use _id from data[] on get / patch / delete.
CHECK
403 means the route is mounted
Add the leaderboard permission and retry. GET /leaderboards without /v1 is a missing route.

Errors and recovery#

StatusWhenRecovery
403 AUTH_PERMISSION_REQUIRED leaderboardKey lacks the permissionGrant leaderboard.
404Caller used /leaderboards without /v1Call /v1/leaderboards.
401Missing or invalid Bearer tokenAdd a valid community key.

Retry safety#

TIP
Exact retry
This GET does not create leaderboards. Retry timeouts with bounded backoff. Do not retry 403 without changing the key.

Gotchas#

Call /v1/leaderboards on this gateway.
A 403 is a missing permission, not a missing product.
Prize and reset fields can move rewards. Use a disposable board in tests.

Next steps#

Create a new leaderboard
Requires leaderboard. Prove GET /v1/leaderboards first.

Request

Query Params

Header Params

Responses

🟢200OK
application/json
Leaderboards returned successfully.
Bodyapplication/json

🟠400Bad Request
🟠401Unauthorized
🔴500Server Error
🔴502Bad Gateway
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://adss-production.returning.ai/apis/partner/leaderboards?page=1&limit=20&sort=displayOrder&fields=name%2Cslug%2CleaderImage%2Cwidget%2CenablePrizePool&search=spring' \
--header 'Authorization: Bearer XXXXXX'
Response Response Example
{
    "meta": {
        "status": "success",
        "statusCode": 200,
        "page": 1,
        "limit": 20,
        "total": 1
    },
    "message": "Read leaderboards success.",
    "data": [
        {
            "_id": "507f1f77bcf86cd799439012",
            "communityID": "6502c97314a3e564c5bbfa84",
            "name": "April Last Leaderboard",
            "slug": "april-last-leaderboard",
            "description": "Monthly leaderboard created through the partner API.",
            "image": "https://cdn.example.com/leaderboards/april.png",
            "rankBy": "currencies",
            "displayedFields": [
                "user",
                "currencies",
                "xps",
                "level"
            ],
            "displayFieldsOrder": [
                "user",
                "currencies",
                "xps",
                "level"
            ],
            "timeFilters": [
                "all-time",
                "daily",
                "weekly",
                "monthly",
                "yearly"
            ],
            "performanceDisplay": {
                "showTop": {
                    "enabled": true,
                    "value": 10
                },
                "showPositive": {
                    "enabled": true
                },
                "showDummy": {
                    "enabled": false
                }
            },
            "duration": {
                "start": "2026-01-30T00:00:00.000Z",
                "end": null,
                "noEndDate": true,
                "timeZone": 7,
                "startTime": {
                    "hours": 12,
                    "minutes": 0,
                    "ampm": "AM"
                },
                "endTime": {
                    "hours": 11,
                    "minutes": 59,
                    "ampm": "PM"
                }
            },
            "rankedUserRoles": {
                "users": [],
                "roles": [
                    "6502c97314a3e564c5bbfa84"
                ],
                "tags": []
            },
            "viewPermissionUserRoles": {
                "users": [],
                "roles": [
                    "6502c97314a3e564c5bbfa84"
                ],
                "tags": []
            },
            "widget": {
                "enabled": true,
                "apiKey": "widget-key",
                "whitelistedDomains": [
                    "example.com"
                ],
                "size": "dynamic",
                "width": null,
                "height": null,
                "theme": {
                    "default": "dark",
                    "dark": {
                        "name": "Custom Dark",
                        "accent": "#7C3AED",
                        "accent2": "#22C55E",
                        "accent3": "#F59E0B",
                        "accent4": "#EF4444",
                        "text": "#FFFFFF",
                        "text2": "#E5E7EB",
                        "text3": "#D1D5DB",
                        "text4": "#9CA3AF",
                        "text5": "#6B7280",
                        "text6": "#4B5563",
                        "background": "#111827",
                        "background2": "#1F2937",
                        "background3": "#374151",
                        "background4": "#4B5563",
                        "background5": "#6B7280",
                        "background6": "#9CA3AF",
                        "background7": "#D1D5DB",
                        "divider": "#374151",
                        "divider2": "#4B5563",
                        "shadow": "#000000",
                        "scrollbarBackground": "#1F2937",
                        "scrollbarThumb": "#6B7280"
                    }
                },
                "font": "Inter",
                "ctaButton": {
                    "enabled": true,
                    "text": "Join",
                    "link": "https://example.com/join"
                },
                "button": {
                    "enabled": true,
                    "text": "View leaderboard",
                    "link": "https://example.com/leaderboard"
                },
                "domains": [
                    "example.com"
                ],
                "communityThemeOverride": true
            },
            "banner": {
                "enabled": true,
                "title": "April Challenge",
                "description": "Compete for the top monthly prize.",
                "image": "https://cdn.example.com/banners/april.png"
            },
            "translations": {
                "name": [
                    {
                        "languageCode": "en",
                        "translation": "April Last Leaderboard"
                    },
                    {
                        "languageCode": "th",
                        "translation": "April Leaderboard TH"
                    }
                ],
                "description": [
                    {
                        "languageCode": "en",
                        "translation": "Monthly leaderboard created through the partner API."
                    }
                ]
            },
            "enableLeaderboardReset": true,
            "leaderboardResetFrequency": "weekly",
            "enablePrizePool": true,
            "prizes": [
                {
                    "_id": "prize-1",
                    "position": 1,
                    "positionFrom": null,
                    "positionTo": null,
                    "isRange": false,
                    "prizeName": "Champion Reward",
                    "useRewardAsPrizeName": false,
                    "coins": 1000,
                    "xp": 500,
                    "customFields": [
                        {
                            "id": "wallet-address",
                            "fieldType": "text",
                            "fieldName": "Wallet Address",
                            "description": "Wallet address used for prize delivery.",
                            "placeholderText": "0x...",
                            "isRequired": true,
                            "isExpanded": false
                        }
                    ]
                },
                {
                    "_id": "prize-2",
                    "position": null,
                    "positionFrom": 2,
                    "positionTo": 5,
                    "isRange": true,
                    "prizeName": "Top 5 Reward",
                    "useRewardAsPrizeName": false,
                    "coins": 500,
                    "xp": 250,
                    "customFields": []
                }
            ],
            "userInformationDisplay": [
                {
                    "field": "name",
                    "displayMode": "full",
                    "order": 0
                },
                {
                    "field": "email",
                    "displayMode": "partial",
                    "order": 1
                }
            ],
            "leaderboardPageConfig": {
                "bannerDisplay": {
                    "enabled": true
                },
                "rolesUsers": {
                    "roles": [
                        "6502c97314a3e564c5bbfa84"
                    ],
                    "users": []
                },
                "viewingPermission": {
                    "roles": [
                        "6502c97314a3e564c5bbfa84"
                    ],
                    "users": []
                },
                "enableWidgets": {
                    "enabled": true
                },
                "guestMode": {
                    "enabled": false
                },
                "leftPanel": {
                    "leaderboardName": true,
                    "startAndEndDate": true,
                    "countdown": true,
                    "eventImage": true,
                    "eventDescription": true,
                    "prizePool": true
                },
                "rightPanel": {
                    "podium": true,
                    "userPosition": true,
                    "hallOfChampions": true
                },
                "timeFilterView": {
                    "allTime": true,
                    "daily": true,
                    "weekly": true,
                    "monthly": true,
                    "yearly": false
                }
            },
            "enabled": true,
            "previewEnabled": false,
            "displayOrder": 1,
            "order": 1,
            "selected": false,
            "createdAt": "2026-05-20T10:00:00.000Z",
            "updatedAt": "2026-05-20T10:00:00.000Z"
        }
    ]
}
Modified at 2026-08-19 18:38:54
Previous
Leaderboards
Next
Create a new leaderboard
Built with