Skip to main content

Members

List members by server, role or search, see one across servers, and export a members report.

Member lookups and cross-server views

List members with optional server, role, filter and search criteria (paginated)

GET/api/admin/members

Paginated list of members across managed servers. Supports filtering by serverId, roleId, filter=club|all, and search term.

Authentication: Admin session token (Authorization: Bearer <token>)

Parameters

NameInTypeRequiredDescription
filterquery"club" or "all"noFilter type: "club" = only members in the main server, "all" = any managed server Default: "all".
serverIdqueryarray of stringnoDiscord server ID(s) to restrict results to members of specific server(s). Supports repeated params (?serverId=A&serverId=B) or comma-separated values (?serverId=A,B).
roleIdqueryarray of stringnoDiscord role ID(s) to restrict results to members holding specific role(s). Supports repeated params (?roleId=A&roleId=B) or comma-separated values (?roleId=A,B).
pagequerynumbernoPage number (1-based) Default: 1.
limitquerynumbernoNumber of items per page Default: 20.
searchquerystringnoSearch string to filter by username or global name

Responses

StatusDescriptionBody
200Paginated member list retrieved.PaginatedCrossServerListDto
400Invalid query parameters.
401Authentication required.
403System Admin access required.

Open in Swagger (opens in a new tab)

List members across servers (paginated)

GET/api/admin/members/cross-server

Paginated list of members across all managed servers. Use filter=club for members in the main server only, or filter=all for any managed server. Also supports serverId, roleId, and search.

Authentication: Admin session token (Authorization: Bearer <token>)

Parameters

NameInTypeRequiredDescription
filterquery"club" or "all"noFilter type: "club" = only members in the main server, "all" = any managed server Default: "all".
serverIdqueryarray of stringnoDiscord server ID(s) to restrict results to members of specific server(s). Supports repeated params (?serverId=A&serverId=B) or comma-separated values (?serverId=A,B).
roleIdqueryarray of stringnoDiscord role ID(s) to restrict results to members holding specific role(s). Supports repeated params (?roleId=A&roleId=B) or comma-separated values (?roleId=A,B).
pagequerynumbernoPage number (1-based) Default: 1.
limitquerynumbernoNumber of items per page Default: 20.
searchquerystringnoSearch string to filter by username or global name

Responses

StatusDescriptionBody
200Paginated cross-server member list retrieved.PaginatedCrossServerListDto
400Invalid query parameters.
401Authentication required.
403System Admin access required.

Open in Swagger (opens in a new tab)

Export members report

GET/api/admin/members/export

Exports the member report as a downloadable CSV or JSON file. Supports serverId, roleId, filter, and search parameters matching the list endpoint. Each exported row represents a server membership for matching members (narrowed by serverId if specified; roleId filters members holding the role across their memberships).

Authentication: Admin session token (Authorization: Bearer <token>)

Parameters

NameInTypeRequiredDescription
filterquery"club" or "all"noFilter type for export Default: "all".
serverIdqueryarray of stringnoDiscord server ID(s) to filter export data. Supports repeated params (?serverId=A&serverId=B) or comma-separated values (?serverId=A,B).
roleIdqueryarray of stringnoDiscord role ID(s) to filter export data. Supports repeated params (?roleId=A&roleId=B) or comma-separated values (?roleId=A,B).
searchquerystringnoSearch string to filter export data by username or global name
formatquery"csv" or "json"noOutput format Default: "json".

Responses

StatusDescriptionBody
200File download (CSV or JSON).
400Invalid query parameters.
401Authentication required.
403System Admin access required.

Open in Swagger (opens in a new tab)

Get member cross-server view

GET/api/admin/members/{discordId}/servers

Returns a full cross-server view for a single member: every managed server they belong to, their roles, join date, and whether they qualify as a "club member".

Authentication: Admin session token (Authorization: Bearer <token>)

Parameters

NameInTypeRequiredDescription
discordIdpathstringyesDiscord user ID (snowflake)

Responses

StatusDescriptionBody
200Member cross-server view retrieved successfully.MemberCrossServerViewDto
400Invalid Discord ID format.
401Authentication required.
403System Admin access required.
404Member not found.

Open in Swagger (opens in a new tab)

Schemas

CrossServerListItemDto schema

FieldTypeRequiredDescription
avatarstring or nullnoAvatar hash
globalNamestring or nullnoDiscord global display name
isClubMemberbooleanyesWhether the member is in the main club server
memberIdstringyesDiscord user ID
serverCountnumberyesNumber of managed servers the member is in
serversarray of CrossServerListServerDtoyesServer details
usernamestringyesDiscord username

CrossServerListServerDto schema

FieldTypeRequiredDescription
isMainServerbooleanyesWhether this is the main club server
joinedAtstring or nullnoISO date when the member joined this server
roleNamesarray of stringyesRole names the member holds in this server
serverIdstringyesDiscord server ID
serverNamestringyesServer name

MemberCrossServerViewDto schema

FieldTypeRequiredDescription
avatarstring or nullnoAvatar hash
displayNamestring or nullnoServer-specific display name
globalNamestring or nullnoDiscord global display name
isClubMemberbooleanyesWhether the member is in the main club server
memberIdstringyesDiscord user ID
serversarray of MemberServerDetailDtoyesServers the member belongs to
usernamestringyesDiscord username

MemberServerDetailDto schema

FieldTypeRequiredDescription
isMainServerbooleanyesWhether this is the main club server
joinedAtstring or nullnoISO date when the member joined this server
rolesarray of RoleDtoyesRoles held in this server
serverIconstring or nullnoServer icon hash
serverIdstringyesDiscord server ID
serverNamestringyesServer name

PaginatedCrossServerListDto schema

FieldTypeRequiredDescription
dataarray of CrossServerListItemDtoyesList of members
limitnumberyesItems per page
pagenumberyesCurrent page number
totalnumberyesTotal number of matching members
totalPagesnumberyesTotal number of pages

RoleDto schema

FieldTypeRequiredDescription
colornumber or nullnoRole color as an integer
idstringyesDiscord role ID
namestringyesRole name
positionnumber or nullnoRole position in the hierarchy

Source: apps/api/openapi.json.