Shadow Ban Players

Shadow Ban Players

You can shadow ban IP addresses and player identifiers from your leaderboards. This will still show their posted scores to the affected player identifiers and IP addresses, but will be hidden from view for everyone else viewing your leaderboard.

IP addresses are never stored in their raw format in our database, see our privacy page for more information.

Request URL

All parameters in the request must be posted. Make all requests to the following URL:

https://leaderboards.construct.net/shadowban.json

Authenticating The Request

A secret must be passed in this request. This end point should not be called client side ever as it would expose the secret key.

secret string
If the game the leaderboard is associated with has a secret key, this must be provided or the request will be rejected.
Secret keys must never be exposed to clients.

Request Parameters

leaderboardID guid Required
The ID of the leaderboard you want to add to the shadow ban list
playerID string
The ID of the player you want to shadow ban. A playerID, ipAddress, scoreID or ipHash must be provided in the request.
ipAddress string
The IP address to shadow ban. Can be an IPV4 or IPV6 address, ranges are not permitted. A playerID, ipAddress, scoreID or ipHash must be provided in the request.
scoreID guid
The ID of the score to shadow ban. This bans the scores player identifier AND IP address. A playerID, ipAddress, scoreID or ipHash must be provided in the request.
ipHash int
The IP hash to shadow ban. A playerID, ipAddress, scoreID or ipHash must be provided in the request.

Failure Response

Unsuccessful responses always return 4xx HTTP status codes.

{
  "success":false,
  "errorMessage":"timestamp is required parameter.",
  "shouldRetry":false
}
success bool
If the request was successful or not. For request failures, this will always be false.
errorMessage string
An short message explaining why the request was denied.
This should probably not be shown to clients.
shouldRetry bool
If true, this means the request is valid but it couldn't be processed at this current time - usually due to rate limits.
If this value returns as true, it's recommended to wait a few seconds then re-attempt the request. When re-attempting requests, make sure you regenerate the timestamp and hash parameters if no secret is being used.

Success Response

Successful responses always return the HTTP 200 status code.

{
  "success": true
}
success bool
If the request was successful or not. For request successes, this will always be true.
Game Services Manual 2025-04-25