Skip to content

Bans & privileges ​

Penalties and grant/deny flags. Shared type: ActivePenalties.

spaceId: R6 primary. Marketplace privilege ID: privilege IDs.


Active penalties ​

GEThttps://public-ubiservices.ubi.com/v1/spaces/{spaceId}/title/r6s/profiles/me/active_penalties
Auth
Ticket

Bans on the authenticated profile (/me).

Response ​

ts
type ActivePenalties = {
  profile_id: string
  bans: Array<{
    expiration_date: string
    level: string
    queue: string[]
    source: string // e.g. "cheating"
  }>
}

queue lists affected modes (PVP_Ranked_Game, PVE_COOP_Game, …). Empty bans means no active penalty on this surface.


Player privileges ​

GEThttps://public-ubiservices.ubi.com/v2/profiles/{userId}/playerprivileges?spaceId={spaceId}&privilegeIds={privilegeId}
Auth
Ticket

Privilege check with full reasons[].

Query ​

NameNotes
spaceIdR6 primary for Siege
privilegeIdse.g. marketplace 2798fec3-9010-4a24-b902-f21fa1b25e1f

Response (per privilege) ​

ts
type Privilege = {
  privilegeId: string
  isGranted: boolean
  isDefault?: boolean
  lastModifiedAt?: string
  displayValues?: unknown
  reasons: Array<{
    isGranted: boolean
    isDefault?: boolean
    lastModifiedAt?: string
    displayValues?: unknown
  }>
}

GraphQL privilege ​

Same HTTP endpoint as the marketplace: POST /v1/profiles/me/uplay/graphql.

Operation GetPlayerPrivilege → viewer.game.meta.privileges[].isGranted.

Use this when you are already on the GraphQL stack; use REST privileges when you need reasons[].

Unofficial community documentation. Not affiliated with Ubisoft.