Elements Manual
Elements 3 Manual
Elements 3 Manual
  • Welcome 👋
  • QUICK START
    • Elements in Five Minutes or Less
    • Accessing the Web UI (CRM)
    • Creating A User
  • General
    • General Concepts
    • N-Tier Architecture
    • Security Model
  • Core Features
    • Core API Overview
    • Sessions
    • Applications
    • Users and Profiles
    • Digital Goods
    • Progress and Missions
    • Leaderboards
    • Matchmaking
    • Followers
    • Friends
    • Reward Issuance
    • Save Data
    • Schemas and Metadata Specifications
    • Queries
      • Base Query Syntax
      • Boolean Queries
      • Object Graph Navigation
      • Advanced Operators
        • .ref
        • .name
    • Custom Code
      • Element Structure
      • RESTful APIs
      • Websockets
    • Auth Schemes
      • OIDC
      • OAuth2
  • Web 3
    • Omni Chain Support
    • Vaults
    • Wallets
    • Smart Contracts
      • Smart Contracts: Ethereum
      • Smart Contracts: Flow
      • Smart Contracts: Solana
      • Smart Contracts: Neo
  • CONFIGURATION
    • Direct Database Access and Batch Configuration
    • Batch Samples
      • Item Upload Bash Script Sample
      • Mission Upload Bash Script Sample
  • RESTful APIs
    • Swagger and Swagger UI
    • API Specification
      • /application
      • /application/configuration
      • /auth
      • /auth_scheme
        • /custom
        • /oauth2
        • /oidc
      • /blockchain
      • /followee
      • /follower
      • /friend
      • /google
      • /index
      • /inventory
      • /item
      • /large_object
      • /leaderboard
      • /rank
      • /score
      • /match
      • /mission
      • /progress
      • /reward_issuance
      • /schedule
      • /notification
      • /profile
      • /save_data
      • /metadata_spec
      • /mock_session
      • /session
      • /health
      • /version
      • /signup
      • /user
    • Javadocs
  • Releases
    • 3.1 Release Notes
Powered by GitBook
On this page
  1. RESTful APIs
  2. Elements 3.0.X (Preview)

Leaderboards

Get an Leaderboard

get

Gets the metadata for a single leaderboard. This may include more specific details not availble in the bulk-get or fetch operation.

Authorizations
Path parameters
nameOrIdanyRequired
Responses
400Error
application/json
401Error
application/json
403Error
application/json
404Error
application/json
409Error
application/json
500Error
application/json
501Error
application/json
503Error
application/json
default
default response
application/json
get
GET /api/rest/leaderboard/{nameOrId} HTTP/1.1
Host: localhost:8080
Authorization: YOUR_API_KEY
Accept: */*
{
  "code": "text",
  "message": "text"
}

Deletes an Leaderboard

delete

Deletes a specific leaderboard known to the server.

Authorizations
Path parameters
nameOrIdanyRequired
Responses
400Error
application/json
401Error
application/json
403Error
application/json
404Error
application/json
409Error
application/json
500Error
application/json
501Error
application/json
503Error
application/json
default
default response
*/*
delete
DELETE /api/rest/leaderboard/{nameOrId} HTTP/1.1
Host: localhost:8080
Authorization: YOUR_API_KEY
Accept: */*
{
  "code": "text",
  "message": "text"
}

Gets Rank Among all Players

get

Gets the current Profile's rank among all players for the particular leaderboard.

Authorizations
Path parameters
leaderboardNameOrIdanyRequired

Specifies the leaderboard name or ID.

Query parameters
leaderboardEpochanyOptional

Specifies the epoch for the leaderboard. If not provided, the current epoch will be used by default for epochal leaderboards. This value will be ignored for all-time leaderboards. Set this value to 0 to explicitly reference the current epoch (when applicable).

Default: 0
Responses
400Error
application/json
401Error
application/json
403Error
application/json
404Error
application/json
409Error
application/json
500Error
application/json
501Error
application/json
503Error
application/json
default
default response
text/csv
get
GET /api/rest/rank/global/{leaderboardNameOrId} HTTP/1.1
Host: localhost:8080
Authorization: YOUR_API_KEY
Accept: */*
{
  "code": "text",
  "message": "text"
}

Gets Rank among Friends

get

Gets the current Profile's rank among friends for the particular leaderboard.

Authorizations
Path parameters
leaderboardNameOrIdanyRequired

Specifies the leaderboard name or ID.

Query parameters
offsetanyOptional

May be negative to place the requested player in the middle of the page.

Default: 0
countanyOptional

The number of results to return in the page.

Default: 20
relativeanyOptional

Indicates whether or not to fetch results in a relative fashion.

Default: false
leaderboardEpochanyOptional

Specifies the epoch for the leaderboard. If no value is provided, the current epoch will befetched.

Default: 0
Responses
400Error
application/json
401Error
application/json
403Error
application/json
404Error
application/json
409Error
application/json
500Error
application/json
501Error
application/json
503Error
application/json
default
default response
application/json
get
GET /api/rest/rank/friends/{leaderboardNameOrId} HTTP/1.1
Host: localhost:8080
Authorization: YOUR_API_KEY
Accept: */*
{
  "code": "text",
  "message": "text"
}

Gets Rank among Mutual Followers

get

Gets the current Profile's rank among mutual followers for the particular leaderboard.

Authorizations
Path parameters
leaderboardNameOrIdanyRequired

Specifies the leaderboard name or ID.

Query parameters
offsetanyOptional

May be negative to place the requested player in the middle of the page.

Default: 0
countanyOptional

The number of results to return in the page.

Default: 20
relativeanyOptional

Indicates whether or not to fetch results in a relative fashion.

Default: false
leaderboardEpochanyOptional

Specifies the epoch for the leaderboard. If no value is provided, the current epoch will befetched.

Default: 0
Responses
400Error
application/json
401Error
application/json
403Error
application/json
404Error
application/json
409Error
application/json
500Error
application/json
501Error
application/json
503Error
application/json
default
default response
application/json
get
GET /api/rest/rank/mutual_followers/{leaderboardNameOrId} HTTP/1.1
Host: localhost:8080
Authorization: YOUR_API_KEY
Accept: */*
{
  "code": "text",
  "message": "text"
}
  • GETSearch Leaderboards
  • POSTCreates a New Leaderboard
  • GETGet an Leaderboard
  • PUTUpdates an Leaderboard
  • DELETEDeletes an Leaderboard
  • GETGets Rank Among all Players
  • GETGets Rank among Friends
  • GETGets Rank among Mutual Followers
  • POSTCreates a New Score

Search Leaderboards

get

Performs a full-text search of all leaderboards known to the server. As with other full-text endpoints this allows for pagination and offset.

Authorizations
Query parameters
offsetanyOptionalDefault: 0
countanyOptionalDefault: 20
searchanyOptional
Responses
400Error
application/json
401Error
application/json
403Error
application/json
404Error
application/json
409Error
application/json
500Error
application/json
501Error
application/json
503Error
application/json
default
default response
application/json
get
GET /api/rest/leaderboard HTTP/1.1
Host: localhost:8080
Authorization: YOUR_API_KEY
Accept: */*
{
  "code": "text",
  "message": "text"
}

Creates a New Leaderboard

post

Gets the metadata for a single leaderboard. This may include more specific details not available in the bulk-get or fetch operation.

Authorizations
Body
idanyOptional
nameanyRequired

The name of the leaderboard. This must be unique across all leaderboards.

Pattern: [^_]\w+
timeStrategyTypeundefined · enumRequired

The time strategy for the leaderboard. Current options are ALL_TIME and EPOCHAL.

Possible values:
scoreStrategyTypeundefined · enumRequired

The score strategy for the leaderboard. Current options are OVERWRITE_IF_GREATER and ACCUMULATE.

Possible values:
titleanyRequired

The user-presentable name or title for for the leaderboard.

scoreUnitsanyRequired

The units-of measure for the score type of the leaderboard.

firstEpochTimestampanyOptional

The time at which the leaderboard epoch intervals should begin (in ms). If null, then the leaderboard is all-time and not epochal. During creation, if this value is provided, then epochInterval must also be provided.

epochIntervalanyOptional

The duration for a leaderboard epoch interval (in ms). If null, then the leaderboard is all-time and not epochal. During creation, if this value is provided, then firstEpochTimestamp must also be provided.

Responses
400Error
application/json
401Error
application/json
403Error
application/json
404Error
application/json
409Error
application/json
500Error
application/json
501Error
application/json
503Error
application/json
default
default response
application/json
post
POST /api/rest/leaderboard HTTP/1.1
Host: localhost:8080
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 175

{
  "id": null,
  "name": null,
  "timeStrategyType": "ALL_TIME",
  "scoreStrategyType": "OVERWRITE_IF_GREATER",
  "title": null,
  "scoreUnits": null,
  "firstEpochTimestamp": null,
  "epochInterval": null
}
{
  "code": "text",
  "message": "text"
}

Updates an Leaderboard

put

Performs an update to an existing leaderboard known to the server.

Authorizations
Path parameters
nameOrIdanyRequired
Body
idanyOptional
nameanyRequired

The name of the leaderboard. This must be unique across all leaderboards.

Pattern: [^_]\w+
timeStrategyTypeundefined · enumRequired

The time strategy for the leaderboard. Current options are ALL_TIME and EPOCHAL.

Possible values:
scoreStrategyTypeundefined · enumRequired

The score strategy for the leaderboard. Current options are OVERWRITE_IF_GREATER and ACCUMULATE.

Possible values:
titleanyRequired

The user-presentable name or title for for the leaderboard.

scoreUnitsanyRequired

The units-of measure for the score type of the leaderboard.

firstEpochTimestampanyOptional

The time at which the leaderboard epoch intervals should begin (in ms). If null, then the leaderboard is all-time and not epochal. During creation, if this value is provided, then epochInterval must also be provided.

epochIntervalanyOptional

The duration for a leaderboard epoch interval (in ms). If null, then the leaderboard is all-time and not epochal. During creation, if this value is provided, then firstEpochTimestamp must also be provided.

Responses
400Error
application/json
401Error
application/json
403Error
application/json
404Error
application/json
409Error
application/json
500Error
application/json
501Error
application/json
503Error
application/json
default
default response
application/json
put
PUT /api/rest/leaderboard/{nameOrId} HTTP/1.1
Host: localhost:8080
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 175

{
  "id": null,
  "name": null,
  "timeStrategyType": "ALL_TIME",
  "scoreStrategyType": "OVERWRITE_IF_GREATER",
  "title": null,
  "scoreUnits": null,
  "firstEpochTimestamp": null,
  "epochInterval": null
}
{
  "code": "text",
  "message": "text"
}

Creates a New Score

post

Posts a single score for the currently logged-in profile. Conceptually, this is creationg a new resource, however the server may opt to overwrite the existing identifier if it sees fit.

Authorizations
Path parameters
leaderboardNameOrIdanyRequired

The name or id of the leaderboard.

Body
idanyRequired

The ID of the Score

pointValueanyOptional

The point value of the score.

scoreUnitsanyOptional

The the units of measure for the points. For example, if the points in the game were called "coins" instead of "points" this would be used to designate as such in the UI.

creationTimestampanyRequired

The time at which the score was created on the server.

leaderboardEpochanyRequired

The epoch to which the score belongs for the associated leaderboard. By convention, if the leaderboard is all-time, this value will be set to zero.

Responses
400Error
application/json
401Error
application/json
403Error
application/json
404Error
application/json
409Error
application/json
500Error
application/json
501Error
application/json
503Error
application/json
default
default response
application/json
post
POST /api/rest/score/{leaderboardNameOrId} HTTP/1.1
Host: localhost:8080
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 1409

{
  "id": null,
  "profile": {
    "id": null,
    "user": {
      "id": null,
      "name": null,
      "firstName": null,
      "lastName": null,
      "email": null,
      "primaryPhoneNb": null,
      "level": "UNPRIVILEGED",
      "active": null,
      "facebookId": null,
      "firebaseId": null,
      "appleSignInId": null,
      "googleSignInId": null,
      "externalUserId": null
    },
    "application": {
      "id": null,
      "name": null,
      "description": null,
      "scriptRepoUrl": null,
      "httpDocumentationUrl": null,
      "httpDocumentationUiUrl": null,
      "httpTunnelEndpointUrl": null,
      "attributes": null,
      "applicationConfiguration": {
        "id": null,
        "category": "MATCHMAKING",
        "uniqueIdentifier": null,
        "parent": {
          "id": null,
          "name": null,
          "description": null,
          "scriptRepoUrl": null,
          "httpDocumentationUrl": null,
          "httpDocumentationUiUrl": null,
          "httpTunnelEndpointUrl": null,
          "attributes": null,
          "applicationConfiguration": {
            "id": null,
            "category": "MATCHMAKING",
            "uniqueIdentifier": null,
            "parent": "[Circular Reference]",
            "productBundles": [
              {
                "productId": null,
                "displayName": null,
                "description": null,
                "productBundleRewards": [
                  {
                    "itemId": null,
                    "quantity": null
                  }
                ],
                "metadata": null,
                "display": null
              }
            ]
          }
        },
        "productBundles": [
          {
            "productId": null,
            "displayName": null,
            "description": null,
            "productBundleRewards": [
              {
                "itemId": null,
                "quantity": null
              }
            ],
            "metadata": null,
            "display": null
          }
        ]
      }
    },
    "imageUrl": null,
    "imageObject": {
      "id": null,
      "url": null,
      "mimeType": null,
      "state": "EMPTY",
      "lastModified": null
    },
    "displayName": null,
    "metadata": null,
    "lastLogin": null
  },
  "pointValue": null,
  "scoreUnits": null,
  "creationTimestamp": null,
  "leaderboardEpoch": null
}
{
  "code": "text",
  "message": "text"
}