POST
/
v1
/
bans
Create Ban
curl --request POST \
  --url https://api.sentineltrustplay.io/v1/bans \
  --header 'Authorization: <authorization>' \
  --header 'Content-Type: application/json' \
  --header 'X-Game-Id: <x-game-id>' \
  --data '
{
  "device_id": "<string>",
  "ban_type": "<string>",
  "scope": "<string>",
  "reason_code": "<string>",
  "expires_at": "<string>",
  "details": {},
  "idempotency_key": "<string>"
}
'
{
  "ban_id": 1,
  "device_id": "dvc_abc123",
  "ban_type": "cheat",
  "scope": "game",
  "publisher_id": "pub_acme",
  "game_id": "game_fps_01",
  "status": "created"
}
Authorization
string
required
API key as Bearer token: Bearer sni_<your-key>. Sent by client.
X-Game-Id
string
required
Game identifier. Sent by client.
device_id
string
required
The device to ban.
ban_type
string
required
Type of ban: cheat or social.
scope
string
required
Ban scope: game, publisher, or global.
reason_code
string
required
Application-defined reason code (e.g., aimbot, harassment).
expires_at
string
ISO 8601 expiry timestamp. null for permanent bans.
details
object
Arbitrary JSON metadata to store with the ban.
idempotency_key
string
Prevents duplicate bans. If a ban with this key exists for the same publisher+game, returns the existing ban.
{
  "ban_id": 1,
  "device_id": "dvc_abc123",
  "ban_type": "cheat",
  "scope": "game",
  "publisher_id": "pub_acme",
  "game_id": "game_fps_01",
  "status": "created"
}