Skip to content

List user-ranks

GET
/user-ranks

Gamification rank/XP state (F4.GAM.01). USER-scoped, NOT organisation-scoped — ‘tenant’ in the tenant-private classification here means the individual user, not an organisation. Rank is portable across organisations: a user keeps one rank record regardless of how many orgs they belong to (see organisation-member’s unique (user, organisation) pair vs this CT’s unique user — F4.GAM.08 verifies no reset/duplication on cross-org membership).

pagination[page]
integer
pagination[pageSize]
integer
filters

Strapi REST filter syntax

object
sort
string
populate
string

OK

object
data
Array
object
user
required
One of:

DocumentId reference to plugin::users-permissions.user

string
xp_total
required
integer
rank_level
required
string
Allowed values: bronze silver gold platinum diamond sencai_master
badges

Array of { badge_code, awarded_at } — badge_code references badge-definition.code

automation_score

Latest automation-score snapshot; historical values live in gamification-event, not here

number
current_streak_days
required
integer
longest_streak_days
required
integer
last_activity_at
string format: date-time
leaderboard_opt_out

F4.GAM.06 — per-user opt-out of org leaderboard exposure. Even when an organisation’s leaderboard_enabled is true, a member with this set is excluded from GET /api/organisations/:id/leaderboard results. Self-service, but NOT writable via the generic service-only user-rank update route — the owning user sets it via the dedicated PUT /api/user-ranks/me/leaderboard-opt-out endpoint (the one exception to user-rank’s service-write-only rule, scoped to this single boolean field).

boolean
documentId
string
id
integer
createdAt
string format: date-time
updatedAt
string format: date-time
publishedAt
string format: date-time
nullable
meta
object
pagination
object
page
integer
pageSize
integer
pageCount
integer
total
integer

Missing or invalid authentication

Not authorized (tenant scope or capability)