1. Leaderboards
Returning.AI
  • Getting Started
  • Authentication
    • Register user with password
      POST
    • Verify user email
      POST
    • Log in user with password
      POST
    • Secure Auth
      GET
  • Users
    • Get user
      GET
    • Get Users with Filters
      POST
    • Create New User
      POST
    • Get User Data
      POST
    • Manage User Account
      POST
    • List mini-game logs by user email
      POST
    • Get user's current Mini Games and Streak stats
      POST
  • Messaging
    • Message Actions
      • Direct Channel
        • private DM channel
          • Reply Message
          • Send Message
          • React Message
        • public channel
          • Reply Message
          • Send Message
          • React Message
      • Forum Channel
        • Send Message
        • Reply Message
        • React Message
      • Text Channel
        • Reply Message
        • Send Message
        • React Message
      • Iframe Channel
        • Reply Message
        • Send Message
        • React Message
    • Get Messages
      GET
    • Send Message
      POST
    • Reply Message
      POST
    • React Message
      POST
    • Upload message images
      POST
  • Gamification
    • Leaderboards
      • List leaderboards with pagination
        GET
      • Create a new leaderboard
        POST
      • Get a single leaderboard by ID
        GET
      • Update an existing leaderboard
        PATCH
      • Delete a leaderboard
        DELETE
    • Streaks & Mini Games
      • List user streak logs
      • Update user spin-wheel information
    • Get tiers and XP settings
      GET
    • Get daily user gamification history
      POST
    • List user gamification logs
      POST
    • Get user activity stats
      POST
  • Rewards & Redemptions
    • Update redemption order status
    • 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
    • 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
  • Community Analytics
    • Get Loyalty Overview
  • Store
    • Purchase History
      • Update purchase history redemption instructions or voucher details
    • Categories
      • List store categories
      • Create store category
      • Update store category
      • Delete store category
      • Get store category by ID
    • Products
      • List store products
      • Create store product
      • Update store product
      • Delete store product
      • Get store product by ID
    • Get store configuration
    • Update store configuration
  • Community
    • 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
    • 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 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
      • Create user field history for specific user
      • Create user field history
      • Get user field histories
    • Get Specific User Field
    • Update Custom User Field
    • Create user field
    • Delete Custom User Field
    • Get all user fields for a community
    • Delete user field
    • Update user field
    • Get specific user field
  • Legacy
    • Servers
      • Create server
      • List servers
      • Update server metadata
    • Bulk Operations
      • Bulk import users from CSV
    • Badges
      • List badges
      • Create badge
      • Update badge
      • Delete badge
      • Remove badge from user
      • Award badge to user
    • Messaging
      • Reply to message
      • Send message
      • React to message
    • Roles & Permissions
      • List server roles
      • Create role
      • Update role
      • Delete role
      • List user roles
      • Add role to user
      • Remove role from user
    • Users
      • 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
  • Schemas
    • Sample Schemas
    • Schemas
    • Outgoing webhooks
    • Analysis
    • Pet
    • Category
    • Tag
    • ValidationError
    • NotFoundError
    • InternalServerError
    • NotImplementedError
    • CreateUserFieldHistoryResponse
    • CreateUserFieldHistorySuccessResponse
    • UserFieldHistoryItem
    • GetUserFieldHistoriesResponse
    • UserFieldHistoriesValidationError
    • UserFieldHistoriesMetaWithValidation
    • UserFieldHistoriesMetaWithPagination
    • GetUserFieldHistoriesSuccessResponse
    • CreateUserFieldResponse
    • CreateUserFieldSuccessResponse
    • DeleteUserFieldResponse
    • DeleteUserFieldSuccessResponse
    • UserFieldCreator
    • GetUserFieldResponse
    • GetUserFieldSuccessResponse
    • ValidationErrorItem
    • GetUserFieldsMetaResponse
    • CreatorInfo
    • UserFieldResponse
    • GetUserFieldsSuccessResponse
    • UpdateUserFieldResponse
    • UpdateUserFieldPayload
    • UpdateUserFieldSuccessResponse
    • MetaResponse
    • GetUserResponse
    • GetUserSuccessResponse
    • Purchased store item
    • ErrorResponse
    • New message posted to channel
    • UpdateAnalysisRequest
    • User visits server
    • AppendDrawingsRequest
    • User join server
    • CreateAnalysisResponse
    • GetAnalysisResponse
    • UpdateAnalysisResponse
    • AppendDrawingsResponse
    • AnalysisMetadata
    • Expiry
    • Levels
    • LevelEntry
    • Drawing
    • HorizontalLineDrawing
    • LineDrawing
    • RectangleDrawing
    • ParallelDrawing
    • FibonacciRetracementDrawing
    • Coordinate
    • DrawingStyle
    • AnalysisDetail
    • AnalysisSummary
    • CreateAnalysisRequest
    • ListAnalysesResponse
    • StandardApiError
    • StandardSuccessEnvelope
    • PurchasedStoreItemEvent
    • ChannelMessagePostedEvent
    • UserVisitedCommunityEvent
    • UserJoinedCommunityEvent
  1. Leaderboards

Update an existing leaderboard

PATCH
/leaderboards/{leaderboardID}
Updates a leaderboard for the API-key's community and returns the updated leaderboard document.
Use this to change leaderboard metadata, schedule, ranking fields, displayed columns, permission allow-lists, widget settings, or enabled state.
Authentication:
Bearer API key in Authorization header
Required permission: leaderboard
Community is resolved from the API key token; do not pass communityID
Returns 401 if missing, invalid, or insufficient
Side effects:
Updates the leaderboard in the resolved community
Publishes the update:leaderboard command through the partner publisher path
Gamification service processes the command and persists the leaderboard update
UI reads the updated duration from the stored duration object
Rate limits:
Standard API rate limits apply
Constraints:
Send at least one updatable field
slug must be unique per community and match lowercase letters, numbers, and hyphens
New integrations should use rankingField, displayedColumns, startDate, endDate, hasNoEndDate, isEnabled, and isPreviewEnabled
Include startDate when repairing or changing schedule data so the UI can read the duration correctly
displayedColumns has max 50 items
allowedTimeFilters values are all-time, daily, weekly, monthly, or yearly
widget.whitelistedDomains has max 50 domains
Legacy aliases are accepted for backward compatibility, but flat fields win when both are present
Example — update:
{
  "name": "April Last Leaderboard",
  "slug": "april-last-leaderboard",
  "description": "Monthly leaderboard updated through the partner API.",
  "image": "https://cdn.example.com/leaderboards/april.png",
  "rankingField": "currencies",
  "displayedColumns": [
    { "column": "user", "visible": true, "order": 0 },
    { "column": "currencies", "visible": true, "order": 1 }
  ],
  "topRankOnly": false,
  "topRankLimit": 10,
  "onlyPositiveRanks": false,
  "includeDummyUsers": false,
  "startDate": "2026-01-30T19:30:00.000Z",
  "endDate": "2026-12-31T23:59:59.999Z",
  "hasNoEndDate": true,
  "timeZone": 5.3,
  "startTime": { "hours": 5, "minutes": 0, "ampm": "AM" },
  "endTime": { "hours": 11, "minutes": 59, "ampm": "PM" },
  "allowedTimeFilters": ["all-time", "monthly", "weekly"],
  "allowedUsersToRank": [],
  "allowedRolesToRank": ["507f1f77bcf86cd799439014"],
  "allowedTagsToRank": [],
  "allowedUsersToView": [],
  "allowedRolesToView": ["507f1f77bcf86cd799439014"],
  "allowedTagsToView": [],
  "isEnabled": true,
  "isPreviewEnabled": false,
  "displayOrder": 3,
  "widget": {
    "enabled": false,
    "whitelistedDomains": ["example.com"],
    "size": { "type": "custom", "value": { "width": 420, "height": 640 } },
    "button": { "enabled": true, "text": "View leaderboard", "link": "https://example.com/leaderboard" }
  }
}
Related endpoints:
GET /leaderboards — list leaderboards
POST /leaderboards — create a leaderboard
GET /leaderboards/{leaderboardID} — read a single leaderboard
DELETE /leaderboards/{leaderboardID} — delete a leaderboard

What it is for: Update an existing leaderboard. Use this to manage custom leaderboards that rank users by configured fields, points, or broker-defined metrics.
How to use it: Send a PATCH request to /leaderboards/{leaderboardID} with the request body, query parameters, or multipart fields shown below. Partner API key required when this surface is enabled for the community. Confirm gateway access before using in production.
Availability note: this route is legacy or partner-service-backed. During a 2026-05-18 smoke test, the equivalent root path returned 404 on https://api.returning.ai; keep it marked non-primary until the gateway alias is confirmed.
Successful response: HTTP 200. The body follows the endpoint schema; many integration endpoints wrap the useful payload under data with status and message.
Common error states:
400 invalid request body, query, ObjectId, pagination, file format, or missing required field.
401 missing, invalid, expired, or insufficient API key/token.
403 key is valid but cannot access this community/channel/user/resource, where supported by the service.
404 target resource, route, or community-scoped record was not found.
409 duplicate or conflicting state for create/update operations, where applicable.
500 unexpected Returning.AI service error.

Request

Path Params

Header Params

Body Params application/jsonRequired

Examples

Responses

🟢200OK
application/json
Leaderboard updated successfully. The response envelope is required; leaderboard data fields are documented but optional for compatibility with projected or legacy shapes.
Bodyapplication/json

🟠400Bad Request
🟠401Unauthorized
🟠403Forbidden
🟠404Record Not Found
🟠409Server Error
🔴500Server Error
🔴502Bad Gateway
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request PATCH 'https://api.returning.ai/leaderboards/507f1f77bcf86cd799439012' \
--header 'Authorization: Bearer XXXXXX' \
--header 'Content-Type: application/json' \
--data '{
    "name": "April Last Leaderboard",
    "slug": "april-last-leaderboard",
    "description": "Monthly leaderboard updated through the partner API.",
    "image": "https://cdn.example.com/leaderboards/april.png",
    "rankingField": "currencies",
    "displayedColumns": [
        {
            "column": "user",
            "visible": true,
            "order": 0
        },
        {
            "column": "currencies",
            "visible": true,
            "order": 1
        }
    ],
    "topRankOnly": false,
    "topRankLimit": 10,
    "onlyPositiveRanks": false,
    "includeDummyUsers": false,
    "startDate": "2026-01-30T19:30:00.000Z",
    "endDate": "2026-12-31T23:59:59.999Z",
    "hasNoEndDate": true,
    "timeZone": 5.3,
    "startTime": {
        "hours": 5,
        "minutes": 0,
        "ampm": "AM"
    },
    "endTime": {
        "hours": 11,
        "minutes": 59,
        "ampm": "PM"
    },
    "allowedTimeFilters": [
        "all-time",
        "monthly",
        "weekly"
    ],
    "allowedUsersToRank": [],
    "allowedRolesToRank": [
        "507f1f77bcf86cd799439014"
    ],
    "allowedTagsToRank": [],
    "allowedUsersToView": [],
    "allowedRolesToView": [
        "507f1f77bcf86cd799439014"
    ],
    "allowedTagsToView": [],
    "isEnabled": true,
    "isPreviewEnabled": false,
    "displayOrder": 3,
    "widget": {
        "enabled": false,
        "whitelistedDomains": [
            "example.com"
        ],
        "size": {
            "type": "custom",
            "value": {
                "width": 420,
                "height": 640
            }
        },
        "button": {
            "enabled": true,
            "text": "View leaderboard",
            "link": "https://example.com/leaderboard"
        }
    }
}'
Response Response Example
200 - Success Example
{
    "meta": {
        "status": "success",
        "statusCode": 200
    },
    "message": "Update leaderboard success.",
    "data": {
        "_id": "507f1f77bcf86cd799439012",
        "communityID": "6502c97314a3e564c5bbfa84",
        "name": "April Last Leaderboard",
        "slug": "april-last-leaderboard",
        "description": "Monthly leaderboard updated through the partner API.",
        "image": "https://cdn.example.com/leaderboards/april.png",
        "rankBy": "currencies",
        "displayedFields": [
            "user",
            "currencies"
        ],
        "displayFieldsOrder": [
            "user",
            "currencies"
        ],
        "timeFilters": [
            "all-time",
            "monthly",
            "weekly"
        ],
        "performanceDisplay": {
            "showTop": {
                "enabled": false,
                "value": 10
            },
            "showPositive": {
                "enabled": false
            },
            "showDummy": {
                "enabled": false
            }
        },
        "duration": {
            "start": "2026-01-30T19:30:00.000Z",
            "end": "2026-12-31T23:59:59.999Z",
            "noEndDate": true,
            "timeZone": 5.3,
            "startTime": {
                "hours": 5,
                "minutes": 0,
                "ampm": "AM"
            },
            "endTime": {
                "hours": 11,
                "minutes": 59,
                "ampm": "PM"
            }
        },
        "rankedUserRoles": {
            "users": [],
            "roles": [
                "507f1f77bcf86cd799439014"
            ],
            "tags": []
        },
        "viewPermissionUserRoles": {
            "users": [],
            "roles": [
                "507f1f77bcf86cd799439014"
            ],
            "tags": []
        },
        "widget": {
            "enabled": false,
            "whitelistedDomains": [
                "example.com"
            ],
            "size": {
                "type": "custom",
                "value": {
                    "width": 420,
                    "height": 640
                }
            },
            "button": {
                "enabled": true,
                "text": "View leaderboard",
                "link": "https://example.com/leaderboard"
            }
        },
        "enabled": true,
        "previewEnabled": false,
        "displayOrder": 3,
        "selected": false,
        "updatedAt": "2026-04-13T12:30:00.000Z",
        "createdAt": "2026-04-13T12:00:00.000Z"
    }
}
Modified at 2026-05-18 17:03:37
Previous
Get a single leaderboard by ID
Next
Delete a leaderboard
Built with