@ughuuu/gamend
v1.1.1451
Published
API for Gamend. Provides HTTP REST API, real-time WebSocket channels, and WebRTC DataChannels for low-latency game data. Features authentication, users, lobbies, groups, parties, friends, chat, notifications, quests, leaderboards, tournaments, matchmaking
Readme
@ughuuu/gamend
UghuuuGamend - JavaScript client for @ughuuu/gamend API for Gamend. Provides HTTP REST API, real-time WebSocket channels, and WebRTC DataChannels for low-latency game data. Features authentication, users, lobbies, groups, parties, friends, chat, notifications, quests, leaderboards, tournaments, matchmaking, payments, server scripting, and admin portal.
1. Authentication
This API uses JWT (JSON Web Tokens) with access and refresh tokens:
1.1 Getting Tokens
- Email/Password: POST to
/api/v1/loginwith email and password - Device (SDK): POST to
/api/v1/loginwith adevice_idstring (creates/returns a device user) - Discord OAuth: Use
/api/v1/auth/discordflow - Google OAuth: Use
/api/v1/auth/googleflow - Facebook OAuth: Use
/api/v1/auth/facebookflow - GitHub OAuth: Use
/api/v1/auth/githubflow - Apple Sign In: Use
/auth/applebrowser flow or apple sdk flow - Steam (OpenID): Use
/api/v1/auth/steamflow
Both methods return:
access_token- Short-lived (15 min by default), use for API requests;expires_ingives its lifetime in secondsrefresh_token- Long-lived (30 days by default), use to get new access tokens
1.2 Using Tokens
Include the access token in the Authorization header:
Authorization: Bearer <access_token>1.3 Refreshing Tokens
When your access token expires, use POST /api/v1/refresh with your refresh token to get a new access token.
1.4 Banned Accounts
An admin or the game can ban an account for a while or for good. A banned account still signs in, refreshes and signs out, GET /api/v1/me answers with its ban (expires_at, null when permanent, and reason), and DELETE /api/v1/me deletes it. Every other authenticated call answers 403 account_banned. On the socket it joins only its own user channel, where account_banned and account_unbanned arrive, and a ban placed while it is connected closes the socket.
2. Users
Users endpoints cover the user lifecycle and profile features. Key highlights:
- Registration and login (email/password, device token for SDKs, and OAuth providers)
- Profile metadata (JSON blob per user) and editable profile fields
- Account lifecycle: password reset, email confirmation, and account deletion
- Sessions & tokens: both browser sessions and JWT-based API tokens are supported
3. Friends
The Friends domain offers lightweight social features:
- Friend requests (send / accept / reject / block flows)
- Friend listing & pagination, with basic privacy controls
- Domain helpers to manage and query friend relationships from API or UI contexts
4. Lobbies
Lobbies provide matchmaking / room management primitives. Highlights:
- Create / list / update / delete lobbies with rich metadata (mode, region, tags)
- Host-managed or hostless modes (hostless allowed internally, not creatable via public API)
- Membership management: join, leave, kick users, and automatic host transfer
- Controls & protection: max users, hidden/locked states, and optional password protection
- Hidden lobbies are excluded from public listings; public listing endpoints are paginated
5. Notifications
Persistent user-to-user notifications that survive across sessions:
- Send notifications to accepted friends with a title, optional content, and optional metadata
- List own notifications with pagination (ordered oldest-first)
- Delete notifications by ID (single or batch)
- Real-time delivery via the user WebSocket channel (
\"notification\"events) - Offline delivery: undeleted notifications are replayed on WebSocket reconnect
- Push delivery: notifications also fan out to the recipient's registered mobile devices (see Push notifications)
5b. Push notifications
Mobile/web push delivery to registered devices (FCM for Android/Web, APNs-direct for iOS):
- Register device tokens via
POST /me/push_tokens(token,platform, optionalprovider/device_id); re-registering adevice_idrotates its token in place - List/remove own devices via
GET /me/push_tokensandDELETE /me/push_tokens/:id - Server-authoritative sending — no public send endpoint; pushes originate from server hooks (
Gamend.Push.send_to_user/2) or the admin API - Per-token routing: each token's
provider("fcm" | "apns") selects the delivery backend; unconfigured backends log instead of sending (dev-friendly) - Reliability: delivery rides the durable job queue with retries; dead tokens reported by the provider are disabled automatically
6. Groups
Groups provide persistent community management for players:
- Three group types:
public(anyone joins directly),private(users request to join, admins approve),hidden(invite-only, never listed) - Membership roles:
adminandmember, with promote/demote capabilities - Join requests: for private groups, users submit requests that admins approve or reject
- Invitations: admins can invite users directly (blocked users are rejected)
- CRUD operations: create, update, delete groups with metadata support
- Group chat: integrated via the Chat API with
chat_type: \"group\"
7. Parties
Ephemeral groups of users for short-lived sessions (e.g., matchmaking squads):
- Invite-only joining: the party leader sends invites by user ID to friends or shared-group members
- Invite flow:
POST /parties/invite→ recipient accepts viaPOST /parties/invite/acceptor declines viaPOST /parties/invite/decline; leader can cancel viaPOST /parties/invite/cancel - Invite visibility: leader can list sent invites (
GET /parties/invitations/sent); recipient can list received invites (GET /parties/invitations) - Connection requirement: invites can only be sent to users who are friends or share at least one group with the leader
- One party at a time: a user can only be in one party; accepting an invite while already in a party is rejected
- Leader management: the creator is the leader; leadership can be transferred
- Lobby integration: parties can create or join lobbies as a group
- Party chat: integrated via the Chat API with
chat_type: \"party\" - Real-time events via the party WebSocket channel
8. Chat
Real-time messaging across multiple conversation types:
- Chat types:
lobby(within a lobby),group(within a group),party(within a party),friend(DMs between friends) - Send messages with content, optional metadata, and automatic access validation
- List messages with pagination (newest first)
- Read tracking: mark messages as read and get unread counts per conversation
- Real-time delivery via PubSub and WebSocket channels
- Moderation is built in: an admin-managed word filter (
block/mask/flag, matched on a normalized form so leetspeak and padding do not slip through) and mutes are enforced before a message is stored or broadcast; thebefore_chat_messagepipeline hook stays available for rules of your own - Report a message:
POST /chat/messages/:id/reportwith an optionalreason— one report per player per message, capped per day; reports the filter files itself have no reporter - Scoped mutes mirror kick:
POST /lobbies/mute+/lobbies/unmute(lobby host),POST /groups/:id/mute+/groups/:id/unmute(group admin),POST /parties/mute+/parties/unmute(party leader), each with a paginated.../muteslisting for the same authority. Body is{target_user_id, expires_at?, reason?}; omittingexpires_atmutes permanently - Global mutes and the blocklist are server-authoritative — no public endpoint; a mute is a chat ban on the admin bans API (
/api/v1/admin/bans,kind: \"chat\"), the blocklist is on/api/v1/admin/chat, and a plugin callsGamend.Chat.mute_user/4 - Real-time moderation events: the muted player receives
chat_muted/chat_unmutedon their user channel
9. Leaderboards
Server-managed ranked scoreboards:
- Multiple leaderboards: create named leaderboards with configurable sort order
- Score submission: submit scores with optional metadata
- Rankings: retrieve paginated rankings with user details
- Reset support: leaderboards can be reset periodically
10. Key-Value Storage
Per-user persistent key-value storage for game state, preferences, and settings:
- Get/set/delete key-value pairs scoped to the authenticated user
- List keys with optional prefix filtering
- Metadata support: values can include arbitrary JSON metadata
11. Quests / Progression
One event-driven progression engine covering achievements, daily/weekly quests, time-boxed event quests, chains, and groups:
- Kinds:
achievement(permanent one-shot — the replacement for the old achievements system),daily/weekly(reset per UTC period),event(starts_at/ends_at window),chain(requires a prerequisite quest) - Objectives: each quest lists objectives
{event, target, params}; server-sidereport_eventadvances every matching active quest — there is no public endpoint to advance progress (server-authoritative) - Rewards: currencies (Economy) and items (Inventory), paid exactly once per period via idempotent grants;
auto_claimquests pay on completion, others viaPOST /me/quests/:key/claim - My quests:
GET /me/questsreturns active quests, per-period progress, and a claimable flag; hidden quests appear once completed - Groups: quests sharing a
group_keycollapse to one entry carryinggroup_size;?group=<key>lists that group's members in full - Catalog:
GET /questsand per-user completionsGET /quests/user/:user_id(gated byGAMEND_FEATURES_LIST_QUESTS) - Redemption codes:
POST /me/quests/redeemfinishes acode_onlyquest with a code the server issued and pays at once;GET /quests/redeemablelists what codes can finish - Admin management: definitions CRUD plus per-user grant/reset/force-claim under
/api/v1/admin/quests, and redemption codes under/api/v1/admin/quests/:id/codes
12. Tournaments
Single-elimination bracket tournaments, server-structured and game-judged:
- Registration window → seeded draw → timed rounds → champions; recurring tournaments (cron) create one occurrence per cycle sharing a slug; a nil starts_at keeps registration open until an admin draws manually
- Join/leave as an entry leader (
POST/DELETE /tournaments/:id/join); team composition is game policy - Browse: list/filter tournaments, standings, full bracket view, and the caller's current match (
GET /tournaments/:id/my_match) - Match verdicts are server-side (game hooks) — no public resolve endpoint; clients get
tournament_match_ready/tournament_match_resolved/tournament_updated/tournament_finishedon the user channel - Admin management over HTTP: create/update/delete, cancel, draw now, finish, and force match verdicts under
/api/v1/admin/tournaments
13. Matchmaking
Ticket-based queueing that turns waiting players into hidden, locked lobbies:
- Join over HTTP (
POST /matchmaking/ticketswith amatch_paramsstring map); only tickets with identical params match together — encode mode/map/skill band as parameter values - A match forms when a group reaches
max_players, or has at leastmin_playersand the oldest ticket outwaited the timeout; the server creates a hidden lobby, seats everyone and locks it, unless the game's server hook seats the match elsewhere or asks its players to accept first - The result is a push, not a poll: matched players receive
match_found(lobby_id,match_params) on their user channel, andticket_queued/ticket_cancelledas their ticket goes in or out of the queue; closing your last socket cancels your tickets - Inspect:
GET /matchmaking/tickets/mefor your ticket,GET /matchmaking/statsfor queue depths - Admin management over HTTP: list/filter tickets, force-cancel, and stats under
/api/v1/admin/matchmaking
14. Ready checks
One primitive for "everyone must answer before this proceeds", with one client-facing surface:
- A player holds at most one check per lane — the match lane (lobby ready-up or matchmaking accept) and the party lane (the party's standing board) — so answering needs no id:
GET /me/ready_checkreturns{\"lobby\": …, \"party\": …}(each null when none) andPOST /me/ready_checkwith{\"ready\": true|false, \"scope\": \"lobby\"|\"party\"}answers one (scope defaults tolobby) - Two kinds.
ready(lobby/party board) is a toggle — a "no" just leaves the check open, and it lists every participant.accept(match confirmation) is final — one decline fails it for everyone — and returns counts plus your own state, so a pending match does not reveal who you were paired with - Hosts open one with
POST /lobbies/ready_check(host-managed lobbies only; hostless matchmaking lobbies belong to the server), party leaders withPOST /parties/ready_check; either call is a reset — it quietly replaces an already-open board with a fresh one over the current members, so the same endpoint serves "ready check!", "force ready" (withtimeout_ms) and "start over". Call it off withDELETE /lobbies/ready_check/DELETE /parties/ready_check. The opener is pre-marked ready — clicking the button is their answer - Failure does nothing on its own: a declined or timed-out check kicks nobody, starts nothing, and moves no lobby state. It reports who did not answer, and the game (or the host, with the kick they already have) decides
- Live:
ready_check_started/ready_check_updated/ready_check_passed/ready_check_failedon the lobby channel, the party channel for a party board, or the user channel for an accept check - Admin management over HTTP: list/filter checks, force-cancel, and 24h outcome stats under
/api/v1/admin/ready_checks
15. Real-time: WebSocket Channels
The server provides real-time communication via Phoenix WebSocket channels. Connect to the WebSocket endpoint and join topic-based channels for live updates.
15.1 Connection
Connect to wss://your-server.com/socket with your JWT token as a parameter:
const socket = new Socket(\"wss://your-server.com/socket\", { params: { token: \"<access_token>\" } })
socket.connect()15.2 Available Channels
- User channel (
user:<user_id>): notifications, friend events, quest progress/completions/claims, party/group invites, tournament events, chat mutes (chat_muted/chat_unmuted), account bans (account_banned/account_unbanned), KV subscriptions - Lobby channel (
lobby:<lobby_id>): lobby member joins/leaves, lobby updates, lobby chat - Lobbies channel (
lobbies): global lobby list changes (created, updated, deleted) - Group channel (
group:<group_id>): group member changes, group updates, group chat - Groups channel (
groups): global group list changes - Party channel (
party:<party_id>): party member changes, party updates, party chat
15.3 JS SDK Helper
The GameRealtime class (included in this SDK) wraps Phoenix.Socket with convenient channel helpers. Open it from a GamendSession, which keeps the player signed in and gives the socket a valid token whenever it reconnects:
import { GamendSession, AuthenticationApi } from '@ughuuu/gamend'
const gamend = new GamendSession('https://your-server.com')
await new AuthenticationApi(gamend.client).login({ loginRequest: { email, password } })
const realtime = gamend.realtime()
const userChannel = realtime.joinUserChannel(gamend.userId)
userChannel.on('notification', payload => console.log(payload))phoenix ships as a dependency of the package, so no extra install is needed.
16. Real-time: WebRTC DataChannels
For low-latency game data, the server supports WebRTC DataChannels alongside WebSocket. The server acts as a WebRTC peer (not P2P between clients).
16.1 How It Works
- Client connects via WebSocket and joins the User channel
- Client sends an SDP offer over the channel (
webrtc:offerevent) - Server responds with an SDP answer (
webrtc:answerevent) - ICE candidates are exchanged (
webrtc:iceevents) - Once connected, named DataChannels carry game data at low latency
16.2 Default DataChannels
events(reliable, ordered): important game events (player actions, state changes)state(unreliable, unordered): high-frequency position/state sync
16.3 JS SDK Helper
The GameWebRTC class (included in this SDK, browser-only) handles signaling automatically:
import { GameWebRTC } from '@ughuuu/gamend'
const realtime = gamend.realtime() // gamend: a signed-in GamendSession
const userChannel = realtime.joinUserChannel(gamend.userId)
const webrtc = new GameWebRTC(userChannel, {
onData: (label, data) => console.log(label, data)
})
await webrtc.connect()
webrtc.send('events', JSON.stringify({ type: 'move', x: 10, y: 20 }))This SDK is automatically generated by the OpenAPI Generator project:
- API version: 1.1.1451
- Package version: 1.0.0
- Generator version: 7.27.0
- Build package: org.openapitools.codegen.languages.JavascriptClientCodegen
Installation
For Node.js
npm
To publish the library as a npm, please follow the procedure in "Publishing npm packages".
Then install it via:
npm install @ughuuu/gamend --saveFinally, you need to build the module:
npm run buildLocal development
To use the library locally without publishing to a remote npm registry, first install the dependencies by changing into the directory containing package.json (and this README). Let's call this JAVASCRIPT_CLIENT_DIR. Then run:
npm installNext, link it globally in npm with the following, also from JAVASCRIPT_CLIENT_DIR:
npm linkTo use the link you just defined in your project, switch to the directory you want to use your @ughuuu/gamend from, and run:
npm link /path/to/<JAVASCRIPT_CLIENT_DIR>Finally, you need to build the module:
npm run buildgit
If the library is hosted at a git repository, e.g.https://github.com/GIT_USER_ID/GIT_REPO_ID then install it via:
npm install GIT_USER_ID/GIT_REPO_ID --saveFor browser
The library also works in the browser environment via npm and browserify. After following
the above steps with Node.js and installing browserify with npm install -g browserify,
perform the following (assuming main.js is your entry file):
browserify main.js > bundle.jsThen include bundle.js in the HTML pages.
Webpack Configuration
Using Webpack you may encounter the following error: "Module not found: Error: Cannot resolve module", most certainly you should disable AMD loader. Add/merge the following section to your webpack config:
module: {
rules: [
{
parser: {
amd: false
}
}
]
}Getting Started
Please follow the installation instruction and execute the following JS code:
var UghuuuGamend = require('@ughuuu/gamend');
var defaultClient = UghuuuGamend.ApiClient.instance;
// Configure Bearer (JWT) access token for authorization: authorization
var authorization = defaultClient.authentications['authorization'];
authorization.accessToken = "YOUR ACCESS TOKEN"
var api = new UghuuuGamend.AdminAnalyticsApi()
var opts = {
'key': "'*'", // {String}
'days': 7 // {Number}
};
api.adminGetAnalyticsCounts(opts).then(function(data) {
console.log('API called successfully. Returned data: ' + data);
}, function(error) {
console.error(error);
});
Documentation for API Endpoints
All URIs are relative to http://localhost:4000
Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- UghuuuGamend.AdminAnalyticsApi | adminGetAnalyticsCounts | GET /api/v1/admin/analytics/counts | Daily counters by key or prefix (admin) UghuuuGamend.AdminAnalyticsApi | adminGetAnalyticsDaily | GET /api/v1/admin/analytics/daily | Per-day active / new users and cohort retention (admin) UghuuuGamend.AdminAnalyticsApi | adminGetAnalyticsEconomy | GET /api/v1/admin/analytics/economy | Currency granted / spent per day per ledger reason (admin) UghuuuGamend.AdminAnalyticsApi | adminGetAnalyticsSnapshot | GET /api/v1/admin/analytics/snapshot | Live counters: players, lobbies, parties, quests, matchmaking, tournaments (admin) UghuuuGamend.AdminAnalyticsApi | adminGetAnalyticsSummary | GET /api/v1/admin/analytics | DAU / WAU / MAU, D1 / D7 / D30 and payer conversion (admin) UghuuuGamend.AdminBansApi | adminCreateBan | POST /api/v1/admin/bans | Ban an IP address, an account or a chat sender (admin) UghuuuGamend.AdminBansApi | adminLiftBan | DELETE /api/v1/admin/bans/{id} | Lift a ban (admin) UghuuuGamend.AdminBansApi | adminListBans | GET /api/v1/admin/bans | List bans (admin) UghuuuGamend.AdminChatApi | adminCreateChatFilterWord | POST /api/v1/admin/chat/filter_words | Add a blocklist word (admin) UghuuuGamend.AdminChatApi | adminDeleteChatConversation | DELETE /api/v1/admin/chat/conversation | Delete all messages in a conversation (admin) UghuuuGamend.AdminChatApi | adminDeleteChatFilterWord | DELETE /api/v1/admin/chat/filter_words/{id} | Remove a blocklist word (admin) UghuuuGamend.AdminChatApi | adminDeleteChatFilterWordsByLang | DELETE /api/v1/admin/chat/filter_words | Remove an imported word list (admin) UghuuuGamend.AdminChatApi | adminDeleteChatMessage | DELETE /api/v1/admin/chat/{id} | Delete a chat message (admin) UghuuuGamend.AdminChatApi | adminDeleteChatReport | DELETE /api/v1/admin/chat/reports/{id} | Delete a chat report (admin) UghuuuGamend.AdminChatApi | adminImportChatFilterWords | POST /api/v1/admin/chat/filter_words/import | Import a bundled word list (admin) UghuuuGamend.AdminChatApi | adminListChatFilterLanguages | GET /api/v1/admin/chat/filter_words/languages | Languages with a bundled word list (admin) UghuuuGamend.AdminChatApi | adminListChatFilterWords | GET /api/v1/admin/chat/filter_words | List blocklist words (admin) UghuuuGamend.AdminChatApi | adminListChatMessages | GET /api/v1/admin/chat | List all chat messages (admin) UghuuuGamend.AdminChatApi | adminListChatReports | GET /api/v1/admin/chat/reports | List chat reports (admin) UghuuuGamend.AdminChatApi | adminResolveChatReport | POST /api/v1/admin/chat/reports/{id}/resolve | Resolve a chat report (admin) UghuuuGamend.AdminChatApi | adminTestChatPhrase | POST /api/v1/admin/chat/filter_words/test | Test a phrase against the filter (admin) UghuuuGamend.AdminChatApi | adminUpdateChatFilterWord | PATCH /api/v1/admin/chat/filter_words/{id} | Update a blocklist word (admin) UghuuuGamend.AdminEconomyApi | adminConsumeItem | POST /api/v1/admin/economy/consume_item | Consume items from a user (admin) UghuuuGamend.AdminEconomyApi | adminGrantCurrency | POST /api/v1/admin/economy/grant | Grant currency to a user (admin) UghuuuGamend.AdminEconomyApi | adminGrantItem | POST /api/v1/admin/economy/grant_item | Grant items to a user (admin) UghuuuGamend.AdminEconomyApi | adminListInventory | GET /api/v1/admin/economy/items | List inventory item stacks (admin) UghuuuGamend.AdminEconomyApi | adminListLedger | GET /api/v1/admin/economy/ledger | List ledger entries (admin) UghuuuGamend.AdminEconomyApi | adminListWallets | GET /api/v1/admin/economy/wallets | List wallets (admin) UghuuuGamend.AdminEconomyApi | adminSpendCurrency | POST /api/v1/admin/economy/spend | Spend currency from a user (admin) UghuuuGamend.AdminGroupsApi | adminDeleteGroup | DELETE /api/v1/admin/groups/{id} | Delete a group (admin) UghuuuGamend.AdminGroupsApi | adminListGroups | GET /api/v1/admin/groups | List all groups (admin) UghuuuGamend.AdminGroupsApi | adminUpdateGroup | PATCH /api/v1/admin/groups/{id} | Update a group (admin) UghuuuGamend.AdminKVApi | adminCreateKvEntry | POST /api/v1/admin/kv/entries | Create KV entry (admin) UghuuuGamend.AdminKVApi | adminDeleteKv | DELETE /api/v1/admin/kv | Delete KV by key (admin) UghuuuGamend.AdminKVApi | adminDeleteKvEntry | DELETE /api/v1/admin/kv/entries/{id} | Delete KV entry by id (admin) UghuuuGamend.AdminKVApi | adminListKvEntries | GET /api/v1/admin/kv/entries | List KV entries (admin) UghuuuGamend.AdminKVApi | adminUpdateKvEntry | PATCH /api/v1/admin/kv/entries/{id} | Update KV entry by id (admin) UghuuuGamend.AdminKVApi | adminUpsertKv | PUT /api/v1/admin/kv | Upsert KV by key (admin) UghuuuGamend.AdminLeaderboardsApi | adminCreateLeaderboard | POST /api/v1/admin/leaderboards | Create leaderboard (admin) UghuuuGamend.AdminLeaderboardsApi | adminDeleteLeaderboard | DELETE /api/v1/admin/leaderboards/{id} | Delete leaderboard (admin) UghuuuGamend.AdminLeaderboardsApi | adminDeleteLeaderboardRecord | DELETE /api/v1/admin/leaderboards/{id}/records/{record_id} | Delete leaderboard record (admin) UghuuuGamend.AdminLeaderboardsApi | adminDeleteLeaderboardUserRecord | DELETE /api/v1/admin/leaderboards/{id}/records/user/{user_id} | Delete a user's record (admin) UghuuuGamend.AdminLeaderboardsApi | adminEndLeaderboard | POST /api/v1/admin/leaderboards/{id}/end | End leaderboard (admin) UghuuuGamend.AdminLeaderboardsApi | adminLeaderboardIconUploadUrl | POST /api/v1/admin/leaderboards/{id}/icon/upload_url | Request an upload ticket for a leaderboard icon (admin) UghuuuGamend.AdminLeaderboardsApi | adminSetLeaderboardIcon | POST /api/v1/admin/leaderboards/{id}/icon | Confirm an uploaded leaderboard icon (admin) UghuuuGamend.AdminLeaderboardsApi | adminSubmitLeaderboardScore | POST /api/v1/admin/leaderboards/{id}/records | Submit score (admin) UghuuuGamend.AdminLeaderboardsApi | adminUpdateLeaderboard | PATCH /api/v1/admin/leaderboards/{id} | Update leaderboard (admin) UghuuuGamend.AdminLeaderboardsApi | adminUpdateLeaderboardRecord | PATCH /api/v1/admin/leaderboards/{id}/records/{record_id} | Update leaderboard record (admin) UghuuuGamend.AdminLobbiesApi | adminDeleteLobby | DELETE /api/v1/admin/lobbies/{id} | Delete lobby by id (admin) UghuuuGamend.AdminLobbiesApi | adminListLobbies | GET /api/v1/admin/lobbies | List all lobbies (admin) UghuuuGamend.AdminLobbiesApi | adminUpdateLobby | PATCH /api/v1/admin/lobbies/{id} | Update lobby by id (admin) UghuuuGamend.AdminMatchmakingApi | adminCancelMatchmakingTicket | DELETE /api/v1/admin/matchmaking/tickets/{id} | Cancel a matchmaking ticket (admin) UghuuuGamend.AdminMatchmakingApi | adminListMatchmakingTickets | GET /api/v1/admin/matchmaking/tickets | List matchmaking tickets (admin) UghuuuGamend.AdminMatchmakingApi | adminMatchmakingStats | GET /api/v1/admin/matchmaking/stats | Matchmaking statistics (admin) UghuuuGamend.AdminNotificationsApi | adminCreateNotification | POST /api/v1/admin/notifications | Create a notification (admin) UghuuuGamend.AdminNotificationsApi | adminDeleteNotification | DELETE /api/v1/admin/notifications/{id} | Delete a notification (admin) UghuuuGamend.AdminNotificationsApi | adminListNotifications | GET /api/v1/admin/notifications | List all notifications (admin) UghuuuGamend.AdminPushApi | adminDeletePushToken | DELETE /api/v1/admin/push/tokens/{id} | Delete a device push token (admin) UghuuuGamend.AdminPushApi | adminListPushTokens | GET /api/v1/admin/push/tokens | List registered device push tokens (admin) UghuuuGamend.AdminPushApi | adminSendPush | POST /api/v1/admin/push/send | Send a push notification to a user (admin) UghuuuGamend.AdminQuestsApi | adminClaimQuest | POST /api/v1/admin/quests/claim | Claim a completed quest on a user's behalf (admin) UghuuuGamend.AdminQuestsApi | adminCreateQuest | POST /api/v1/admin/quests | Create quest (admin) UghuuuGamend.AdminQuestsApi | adminCreateQuestCode | POST /api/v1/admin/quests/{id}/codes | Add one redemption code with a chosen token (admin) UghuuuGamend.AdminQuestsApi | adminDeleteQuest | DELETE /api/v1/admin/quests/{id} | Delete quest and all user progress (admin) UghuuuGamend.AdminQuestsApi | adminGenerateQuestCodes | POST /api/v1/admin/quests/{id}/codes/generate | Generate random redemption codes (admin) UghuuuGamend.AdminQuestsApi | adminGrantQuest | POST /api/v1/admin/quests/grant | Force-complete a quest for a user (admin) UghuuuGamend.AdminQuestsApi | adminListQuestCodes | GET /api/v1/admin/quests/{id}/codes | List a quest's redemption codes (admin) UghuuuGamend.AdminQuestsApi | adminListQuestProgress | GET /api/v1/admin/quests/progress | List quest progress rows (admin) UghuuuGamend.AdminQuestsApi | adminListQuests | GET /api/v1/admin/quests | List all quest definitions (admin, includes inactive/hidden) UghuuuGamend.AdminQuestsApi | adminQuestFunnel | GET /api/v1/admin/quests/{key}/funnel | Per-status progress counts for one quest (admin) UghuuuGamend.AdminQuestsApi | adminQuestIconUploadUrl | POST /api/v1/admin/quests/{id}/icon/upload_url | Request an upload ticket for a quest icon (admin) UghuuuGamend.AdminQuestsApi | adminResetQuest | POST /api/v1/admin/quests/reset | Reset a user's current-period quest progress (admin) UghuuuGamend.AdminQuestsApi | adminSetQuestIcon | POST /api/v1/admin/quests/{id}/icon | Confirm an uploaded quest icon (admin) UghuuuGamend.AdminQuestsApi | adminUpdateQuest | PATCH /api/v1/admin/quests/{id} | Update quest (admin) UghuuuGamend.AdminQuestsApi | adminUpdateQuestCode | PATCH /api/v1/admin/quest_codes/{id} | Revoke or restore a redemption code (admin) UghuuuGamend.AdminReadyChecksApi | adminCancelReadyCheck | DELETE /api/v1/admin/ready_checks/{id} | Force-cancel a pending ready check (admin) UghuuuGamend.AdminReadyChecksApi | adminListReadyChecks | GET /api/v1/admin/ready_checks | List ready checks (admin) UghuuuGamend.AdminReadyChecksApi | adminReadyCheckStats | GET /api/v1/admin/ready_checks/stats | Ready check outcomes over the last 24 hours (admin) UghuuuGamend.AdminResultsApi | adminDeleteResult | DELETE /api/v1/admin/results/{id} | Delete a result and its events (admin) UghuuuGamend.AdminResultsApi | adminGetResult | GET /api/v1/admin/results/{id} | Get a result (admin) UghuuuGamend.AdminResultsApi | adminListResultEvents | GET /api/v1/admin/results/{id}/events | List a result's events (admin) UghuuuGamend.AdminResultsApi | adminListResults | GET /api/v1/admin/results | List results (admin) UghuuuGamend.AdminRetentionApi | adminGetRetentionStatus | GET /api/v1/admin/retention | Last retention sweep (admin) UghuuuGamend.AdminRetentionApi | adminRunRetention | POST /api/v1/admin/retention/run | Run a retention sweep now (admin) UghuuuGamend.AdminSessionsApi | adminDeleteSession | DELETE /api/v1/admin/sessions/{id} | Delete session token by id (admin) UghuuuGamend.AdminSessionsApi | adminDeleteUserSessions | DELETE /api/v1/admin/users/{id}/sessions | Delete all session tokens for a user (admin) UghuuuGamend.AdminSessionsApi | adminListSessions | GET /api/v1/admin/sessions | List sessions (admin) UghuuuGamend.AdminStorageApi | adminDeleteStorageObject | DELETE /api/v1/admin/storage | Delete a stored object (admin) UghuuuGamend.AdminStorageApi | adminDownloadStorageObject | GET /api/v1/admin/storage/object | Download an object by key (admin) UghuuuGamend.AdminStorageApi | adminListStorageObjects | GET /api/v1/admin/storage | List stored objects with usage (admin) UghuuuGamend.AdminStorageApi | adminStorageUsage | GET /api/v1/admin/storage/usage | Objects and bytes stored under a prefix (admin) UghuuuGamend.AdminStorageApi | adminUploadStorageObject | PUT /api/v1/admin/storage/object | Upload or overwrite an object at any key (admin) UghuuuGamend.AdminTournamentsApi | adminCancelTournament | POST /api/v1/admin/tournaments/{id}/cancel | Cancel tournament (admin; terminal, no recurrence spawn) UghuuuGamend.AdminTournamentsApi | adminCreateTournament | POST /api/v1/admin/tournaments | Create tournament (admin) UghuuuGamend.AdminTournamentsApi | adminDeleteTournament | DELETE /api/v1/admin/tournaments/{id} | Delete tournament and all its entries/matches (admin) UghuuuGamend.AdminTournamentsApi | adminDrawTournament | POST /api/v1/admin/tournaments/{id}/draw | Draw the bracket now (admin; pulls starts_at to now) UghuuuGamend.AdminTournamentsApi | adminFinishTournament | POST /api/v1/admin/tournaments/{id}/finish | Finish tournament now (admin; pulls ends_at to now) UghuuuGamend.AdminTournamentsApi | adminReopenTournament | POST /api/v1/admin/tournaments/{id}/reopen | Reopen a cancelled tournament (admin) UghuuuGamend.AdminTournamentsApi | adminResolveTournamentMatch | POST /api/v1/admin/tournaments/{id}/matches/{match_id}/resolve | Force a match verdict (admin) UghuuuGamend.AdminTournamentsApi | adminSetTournamentIcon | POST /api/v1/admin/tournaments/{id}/icon | Confirm an uploaded tournament icon (admin) UghuuuGamend.AdminTournamentsApi | adminTournamentIconUploadUrl | POST /api/v1/admin/tournaments/{id}/icon/upload_url | Request an upload ticket for a tournament icon (admin) UghuuuGamend.AdminTournamentsApi | adminUpdateTournament | PATCH /api/v1/admin/tournaments/{id} | Update tournament (admin) UghuuuGamend.AdminUsersApi | adminDeleteUser | DELETE /api/v1/admin/users/{id} | Delete user (admin) UghuuuGamend.AdminUsersApi | adminUpdateUser | PATCH /api/v1/admin/users/{id} | Update user (admin) UghuuuGamend.AuthenticationApi | confirmRegistration | POST /api/v1/register/confirm | Confirm a registration with its code UghuuuGamend.AuthenticationApi | deviceLogin | POST /api/v1/login/device | Device login UghuuuGamend.AuthenticationApi | linkAppleIos | POST /api/v1/me/providers/apple/ios | Link Apple (native iOS) UghuuuGamend.AuthenticationApi | linkDevice | POST /api/v1/me/device | Link device ID UghuuuGamend.AuthenticationApi | linkGoogleIdToken | POST /api/v1/me/providers/google/id_token | Link Google with an ID token UghuuuGamend.AuthenticationApi | linkProvider | POST /api/v1/me/providers/{provider} | Link a provider with a code UghuuuGamend.AuthenticationApi | linkProviderRequest | POST /api/v1/me/providers/{provider}/authorize | Start linking a provider UghuuuGamend.AuthenticationApi | linkSessionStatus | GET /api/v1/me/providers/sessions/{session_id} | Poll a provider link UghuuuGamend.AuthenticationApi | listAuthProviders | GET /api/v1/auth/providers | List sign-in providers UghuuuGamend.AuthenticationApi | login | POST /api/v1/login | Login UghuuuGamend.AuthenticationApi | logout | DELETE /api/v1/logout | Logout UghuuuGamend.AuthenticationApi | oauthApiCallback | POST /api/v1/auth/{provider}/callback | Sign in with a provider code UghuuuGamend.AuthenticationApi | oauthCallbackApiAppleIos | POST /api/v1/auth/apple/ios/callback | Sign in with Apple (native iOS) UghuuuGamend.AuthenticationApi | oauthGoogleIdToken | POST /api/v1/auth/google/id_token | Sign in with a Google ID token UghuuuGamend.AuthenticationApi | oauthRequest | GET /api/v1/auth/{provider} | Start a provider sign-in UghuuuGamend.AuthenticationApi | oauthSessionStatus | GET /api/v1/auth/session/{session_id} | Poll a provider sign-in UghuuuGamend.AuthenticationApi | refreshToken | POST /api/v1/refresh | Refresh access token UghuuuGamend.AuthenticationApi | register | POST /api/v1/register | Register UghuuuGamend.AuthenticationApi | resendConfirmation | POST /api/v1/register/resend | Send the confirmation email again UghuuuGamend.AuthenticationApi | unlinkDevice | DELETE /api/v1/me/device | Unlink device ID UghuuuGamend.AuthenticationApi | unlinkProvider | DELETE /api/v1/me/providers/{provider} | Unlink OAuth provider UghuuuGamend.ChatApi | chatUnreadCount | GET /api/v1/chat/unread | Get unread message count UghuuuGamend.ChatApi | deleteChatMessage | DELETE /api/v1/chat/messages/{id} | Delete your own chat message UghuuuGamend.ChatApi | getChatMessage | GET /api/v1/chat/messages/{id} | Get a single chat message UghuuuGamend.ChatApi | listChatMessages | GET /api/v1/chat/messages | List chat messages UghuuuGamend.ChatApi | listGroupMutes | GET /api/v1/groups/{id}/mutes | List active mutes in a group UghuuuGamend.ChatApi | listLobbyMutes | GET /api/v1/lobbies/mutes | List active mutes in your lobby UghuuuGamend.ChatApi | listPartyMutes | GET /api/v1/parties/mutes | List active mutes in your party UghuuuGamend.ChatApi | markChatRead | POST /api/v1/chat/read | Mark chat as read UghuuuGamend.ChatApi | muteGroupMember | POST /api/v1/groups/{id}/mute | Mute a player in a group UghuuuGamend.ChatApi | muteLobbyMember | POST /api/v1/lobbies/mute | Mute a player in your lobby UghuuuGamend.ChatApi | mutePartyMember | POST /api/v1/parties/mute | Mute a player in your party UghuuuGamend.ChatApi | reportChatMessage | POST /api/v1/chat/messages/{id}/report | Report a chat message UghuuuGamend.ChatApi | sendChatMessage | POST /api/v1/chat/messages | Send a chat message UghuuuGamend.ChatApi | unmuteGroupMember | POST /api/v1/groups/{id}/unmute | Lift a mute in a group UghuuuGamend.ChatApi | unmuteLobbyMember | POST /api/v1/lobbies/unmute | Lift a mute in your lobby UghuuuGamend.ChatApi | unmutePartyMember | POST /api/v1/parties/unmute | Lift a mute in your party UghuuuGamend.ChatApi | updateChatMessage | PATCH /api/v1/chat/messages/{id} | Update your own chat message UghuuuGamend.ClientLogsApi | getClientLogPolicy | GET /api/v1/client_logs/policy | Client log capture policy UghuuuGamend.ClientLogsApi | uploadClientLogs | POST /api/v1/client_logs | Upload a batch of client log entries UghuuuGamend.EconomyApi | getCurrentUserInventory | GET /api/v1/me/inventory | Current user's item quantities UghuuuGamend.EconomyApi | getCurrentUserWallet | GET /api/v1/me/wallet | Current user's currency balances UghuuuGamend.EconomyApi | listCurrentUserLedger | GET /api/v1/me/wallet/ledger | Current user's ledger history UghuuuGamend.FriendsApi | acceptFriendRequest | POST /api/v1/friends/{id}/accept | Accept a friend request UghuuuGamend.FriendsApi | blockFriendRequest | POST /api/v1/friends/{id}/block | Block a friend request / user UghuuuGamend.FriendsApi | blockUser | POST /api/v1/users/{user_id}/block | Blacklist a user, with or without an existing friendship UghuuuGamend.FriendsApi | createFriendRequest | POST /api/v1/friends | Send a friend request UghuuuGamend.FriendsApi | listBlacklistedUsers | GET /api/v1/me/blacklist | List the users you've blocked UghuuuGamend.FriendsApi | listBlockedFriends | GET /api/v1/me/blocked | List users you've blocked UghuuuGamend.FriendsApi | listFriendRequests | GET /api/v1/me/friend_requests | List pending friend requests (incoming and outgoing) UghuuuGamend.FriendsApi | listFriends | GET /api/v1/me/friends | List current user's friends (returns a paginated set of user objects) UghuuuGamend.FriendsApi | rejectFriendRequest | POST /api/v1/friends/{id}/reject | Reject a friend request UghuuuGamend.FriendsApi | removeFriendship | DELETE /api/v1/friends/{id} | Remove/cancel a friendship or request UghuuuGamend.FriendsApi | unblockFriend | POST /api/v1/friends/{id}/unblock | Unblock a previously-blocked friendship UghuuuGamend.FriendsApi | unblockUser | POST /api/v1/users/{user_id}/unblock | Remove a user from your blacklist UghuuuGamend.GroupsApi | acceptGroupInvite | POST /api/v1/groups/invitations/{invite_id}/accept | Accept a group invitation UghuuuGamend.GroupsApi | approveJoinRequest | POST /api/v1/groups/{id}/join_requests/{request_id}/approve | Approve a join request (admin only) UghuuuGamend.GroupsApi | cancelGroupInvite | DELETE /api/v1/groups/sent_invitations/{invite_id} | Cancel a pending group invitation UghuuuGamend.GroupsApi | cancelJoinRequest | DELETE /api/v1/groups/{id}/join_requests/{request_id} | Cancel your own pending join request UghuuuGamend.GroupsApi | createGroup | POST /api/v1/groups | Create a group UghuuuGamend.GroupsApi | createGroupIconUploadUrl | POST /api/v1/groups/{id}/icon/upload_url | Request a group icon upload ticket (admin only) UghuuuGamend.GroupsApi | createGroupInviteLink | POST /api/v1/groups/{id}/invite_link | Make a group's invite link (admin only) UghuuuGamend.GroupsApi | declineGroupInvite | POST /api/v1/groups/invitations/{invite_id}/decline | Decline a group invitation UghuuuGamend.GroupsApi | deleteGroup | DELETE /api/v1/groups/{id} | Delete a group (admin only) UghuuuGamend.GroupsApi | deleteGroupInviteLink | DELETE /api/v1/groups/{id}/invite_link | Turn a group's invite link off (admin only) UghuuuGamend.GroupsApi | demoteGroupMember | POST /api/v1/groups/{id}/demote | Demote admin to member UghuuuGamend.GroupsApi | getGroup | GET /api/v1/groups/{id} | Get group details UghuuuGamend.GroupsApi | getGroupInviteLink | GET /api/v1/groups/{id}/invite_link | Get a group's invite link (admin only) UghuuuGamend.GroupsApi | inviteToGroup | POST /api/v1/groups/{id}/invite | Invite a user to a group (admin only) UghuuuGamend.GroupsApi | joinGroup | POST /api/v1/groups/{id}/join | Join a group UghuuuGamend.GroupsApi | joinGroupByInviteLink | POST /api/v1/groups/invite_links/{token}/join | Join a group through its invite link UghuuuGamend.GroupsApi | kickGroupMember | POST /api/v1/groups/{id}/kick | Kick a member (admin only) UghuuuGamend.GroupsApi | leaveGroup | POST /api/v1/groups/{id}/leave | Leave a group UghuuuGamend.GroupsApi | listGroupInvitations | GET /api/v1/groups/invitations | List my group invitations UghuuuGamend.GroupsApi | listGroupInvites | GET /api/v1/groups/{id}/invites | List a group's pending invitations (admin only) UghuuuGamend.GroupsApi | listGroupMembers | GET /api/v1/groups/{id}/members | List group members UghuuuGamend.GroupsApi | listGroups | GET /api/v1/groups | List groups UghuuuGamend.GroupsApi | listJoinRequests | GET /api/v1/groups/{id}/join_requests | List pending join requests (admin only) UghuuuGamend.GroupsApi | listMyGroups | GET /api/v1/groups/me | List groups I belong to UghuuuGamend.GroupsApi | listSentInvitations | GET /api/v1/groups/sent_invitations | List group invitations I have sent UghuuuGamend.GroupsApi | previewGroupInviteLink | GET /api/v1/groups/invite_links/{token} | See the group an invite link opens UghuuuGamend.GroupsApi | promoteGroupMember | POST /api/v1/groups/{id}/promote | Promote member to admin UghuuuGamend.GroupsApi | rejectJoinRequest | POST /api/v1/groups/{id}/join_requests/{request_id}/reject | Reject a join request (admin only) UghuuuGamend.GroupsApi | setGroupIcon | POST /api/v1/groups/{id}/icon | Confirm an uploaded group icon (admin only) UghuuuGamend.GroupsApi | updateGroup | PATCH /api/v1/groups/{id} | Update a group (admin only) UghuuuGamend.HealthApi | index | GET /api/v1/health | Health check UghuuuGamend.HooksApi | callHook | POST /api/v1/hooks/call | Invoke a hook function UghuuuGamend.HooksApi | listHooks | GET /api/v1/hooks | List available hook functions UghuuuGamend.KVApi | getKv | GET /api/v1/kv/{key} | Get a key/value entry UghuuuGamend.LeaderboardsApi | getLeaderboard | GET /api/v1/leaderboards/{id} | Get a leaderboard by ID UghuuuGamend.LeaderboardsApi | getMyRecord | GET /api/v1/leaderboards/{id}/records/me | Get current user's record UghuuuGamend.LeaderboardsApi | listLeaderboardKeys | GET /api/v1/leaderboards/{id}/keys | List a leaderboard's rankings UghuuuGamend.LeaderboardsApi | listLeaderboardRecords | GET /api/v1/leaderboards/{id}/records | List leaderboard records UghuuuGamend.LeaderboardsApi | listLeaderboards | GET /api/v1/leaderboards | List leaderboards UghuuuGamend.LeaderboardsApi | listRecordsAbove | GET /api/v1/leaderboards/{id}/records/above | List the records just ahead of a score UghuuuGamend.LeaderboardsApi | listRecordsAroundUser | GET /api/v1/leaderboards/{id}/records/around/{user_id} | List records around a user UghuuuGamend.LeaderboardsApi | resolveLeaderboardSlugs | POST /api/v1/leaderboards/resolve | Resolve multiple slugs to active leaderboards UghuuuGamend.LobbiesApi | createLobby | POST /api/v1/lobbies | Create a lobby UghuuuGamend.LobbiesApi | disbandLobby | POST /api/v1/lobbies/disband | Disband the current lobby (host only) UghuuuGamend.LobbiesApi | getLobby | GET /api/v1/lobbies/{id} | Get a single lobby UghuuuGamend.LobbiesApi | joinLobby | POST /api/v1/lobbies/{id}/join | Join a lobby UghuuuGamend.LobbiesApi | kickUser | POST /api/v1/lobbies/kick | Kick a user from the lobby (host only) UghuuuGamend.LobbiesApi | leaveLobby | POST /api/v1/lobbies/leave | Leave the current lobby UghuuuGamend.LobbiesApi | listLobbies | GET /api/v1/lobbies | List lobbies UghuuuGamend.LobbiesApi | lobbyStats | GET /api/v1/lobbies/stats | Lobby counts UghuuuGamend.LobbiesApi | quickJoin | POST /api/v1/lobbies/quick_join | Quick-join or create a lobby UghuuuGamend.LobbiesApi | setLobbyState | POST /api/v1/lobbies/state | Set lobby state (host or pinned WebRTC host) UghuuuGamend.LobbiesApi | updateLobby | PATCH /api/v1/lobbies | Update lobby (host or pinned WebRTC host) UghuuuGamend.MatchmakingApi | matchmakingCancel | DELETE /api/v1/matchmaking/tickets | Leave the matchmaking queue UghuuuGamend.MatchmakingApi | matchmakingJoin | POST /api/v1/matchmaking/tickets | Join the matchmaking queue UghuuuGamend.MatchmakingApi | matchmakingMyTicket | GET /api/v1/matchmaking/tickets/me | Get my current ticket UghuuuGamend.MatchmakingApi | matchmakingStats | GET /api/v1/matchmaking/stats | Queue statistics UghuuuGamend.NotificationsApi | deleteNotifications | DELETE /api/v1/notifications | Delete notifications by IDs UghuuuGamend.NotificationsApi | listNotifications | GET /api/v1/notifications | List own notifications UghuuuGamend.NotificationsApi | sendNotification | POST /api/v1/notifications | Send a notification to a friend UghuuuGamend.PartiesApi | acceptPartyInvite | POST /api/v1/parties/invite/accept | Accept a party invite UghuuuGamend.PartiesApi | cancelPartyInvite | POST /api/v1/parties/invite/cancel | Cancel a pending party invite (leader only) UghuuuGamend.PartiesApi | createParty | POST /api/v1/parties | Create a party UghuuuGamend.PartiesApi | declinePartyInvite | POST /api/v1/parties/invite/decline | Decline a party invite UghuuuGamend.PartiesApi | disbandParty | POST /api/v1/parties/disband | Disband the current party (leader only) UghuuuGamend.PartiesApi | inviteToParty | POST /api/v1/parties/invite | Invite a user to the party (leader only) UghuuuGamend.PartiesApi | kickPartyMember | POST /api/v1/parties/kick | Kick a member from the party (leader only) UghuuuGamend.PartiesApi | leaveParty | POST /api/v1/parties/leave | Leave the current party UghuuuGamend.PartiesApi | listPartyInvitations | GET /api/v1/parties/invitations | List pending party invites for the current user UghuuuGamend.PartiesApi | listSentPartyInvitations | GET /api/v1/parties/invitations/sent | List pending party invites sent by the current leader UghuuuGamend.PartiesApi | partyCreateLobby | POST /api/v1/parties/create_lobby | Create a lobby with the party (leader only) UghuuuGamend.PartiesApi | partyJoinLobby | POST /api/v1/parties/join_lobby/{id} | Join a lobby with the party (leader only) UghuuuGamend.PartiesApi | partyStats | GET /api/v1/parties/stats | Party counts UghuuuGamend.PartiesApi | showParty | GET /api/v1/parties/me | Get current party UghuuuGamend.PartiesApi | updateParty | PATCH /api/v1/parties | Update party settings (leader only) UghuuuGamend.PaymentsApi | paymentsAppleWebhook | POST /api/v1/payments/webhooks/apple | Receive App Store Server Notification v2 events UghuuuGamend.PaymentsApi | paymentsCatalog | GET /api/v1/payments/catalog | List active payment catalog entries UghuuuGamend.PaymentsApi | paymentsEntitlements | GET /api/v1/payments/entitlements | List current user's active entitlements UghuuuGamend.PaymentsApi | paymentsGoogleWebhook | POST /api/v1/payments/webhooks/google | Receive Google Play RTDN Pub/Sub push events UghuuuGamend.PaymentsApi | paymentsSteamCheckout | POST /api/v1/payments/checkout/steam | Create a Steam MicroTxn transaction UghuuuGamend.PaymentsApi | paymentsSteamFinalize | POST /api/v1/payments/steam/finalize | Finalize an authorized Steam MicroTxn transaction UghuuuGamend.PaymentsApi | paymentsStripeCheckout | POST /api/v1/payments/checkout/stripe | Create a Stripe Checkout Session UghuuuGamend.PaymentsApi | paymentsStripeWebhook | POST /api/v1/payments/webhooks/stripe | Receive Stripe webhook events UghuuuGamend.PaymentsApi | paymentsValidateStorePurchase | POST /api/v1/payments/validate/{provider} | Validate an Apple, Google, or Steam purchase UghuuuGamend.PushApi | deletePushToken | DELETE /api/v1/me/push_tokens/{id} | Unregister one of the current user's devices UghuuuGamend.PushApi | listPushTokens | GET /api/v1/me/push_tokens | List the current user's registered devices UghuuuGamend.PushApi | registerPushToken | POST /api/v1/me/push_tokens | Register a device push token UghuuuGamend.QuestsApi | claimQuest | POST /api/v1/me/quests/{key}/claim | Claim a completed quest UghuuuGamend.QuestsApi | listQuests | GET /api/v1/quests | List quests UghuuuGamend.QuestsApi | listRedeemableQuests | GET /api/v1/quests/redeemable | List quests a code can finish UghuuuGamend.QuestsApi | myQuests | GET /api/v1/me/quests | List my quests UghuuuGamend.QuestsApi | questStats | GET /api/v1/quests/stats | Quest progress counts UghuuuGamend.QuestsApi | redeemQuestCode | POST /api/v1/me/quests/redeem | Redeem a code UghuuuGamend.QuestsApi | userQuests | GET /api/v1/quests/user/{user_id} | List a user's completed quests UghuuuGamend.ReadyChecksApi | cancelLobbyReadyCheck | DELETE /api/v1/lobbies/ready_check | Call off the ready check in the caller's lobby (host only) UghuuuGamend.ReadyChecksApi | cancelPartyReadyCheck | DELETE /api/v1/parties/ready_check | Call off the ready check in the caller's party (leader only) UghuuuGamend.ReadyChecksApi | getMyReadyCheck | GET /api/v1/me/ready_check | Get the caller's open ready checks UghuuuGamend.ReadyChecksApi | openLobbyReadyCheck | POST /api/v1/lobbies/ready_check | Open (or reset) the ready board in the caller's lobby (host only) UghuuuGamend.ReadyChecksApi | openPartyReadyCheck | POST /api/v1/parties/ready_check | Open (or reset) the ready board in the caller's party (leader only) UghuuuGamend.ReadyChecksApi | respondReadyCheck | POST /api/v1/me/ready_check | Answer one of the caller's open ready checks UghuuuGamend.ReportsApi | createReport | POST /api/v1/reports | File a report UghuuuGamend.ReportsApi | listReportKinds | GET /api/v1/reports/kinds | Report kinds UghuuuGamend.ResultsApi | getResult | GET /api/v1/results/{id} | Get a result UghuuuGamend.ResultsApi | listResultEvents | GET /api/v1/results/{id}/events | List a result's events UghuuuGamend.ResultsApi | listResults | GET /api/v1/results | List the caller's results UghuuuGamend.SignalingApi | signalingStats | GET /api/v1/signaling/stats | WebRTC room counts UghuuuGamend.StatsApi | getStats | GET /api/v1/stats | All public server counters in one call UghuuuGamend.TimeApi | getServerTime | GET /api/v1/time | Server clock *UghuuuGamend.Tourname
