👤 My Account
View and update your account information
Account Details
Username
—
Email
—
Member Since
—
Game Library
📚 My Library →
My Profile
👤 View My Profile →
Update Information
🔑 API Token
Use your personal API token to let C# programs (or any app) read and update your Game OS data in real time — games, achievements, activity & more. Treat it like a password: keep it secret.
Your Token
The token is only shown in full once after generation. Store it safely.
C# Quick-Start Example
// ── Option A: Per-user token (authenticate as yourself) ──────────────────────
// A token is generated automatically when you create your account.
// You can also regenerate it here at any time.
// Get (or regenerate) your token:
var payload = new { username = "youruser", password = "yourpass" };
var resp = await httpClient.PostAsJsonAsync("https://your-backend/api/auth/token", payload);
var result = await resp.Content.ReadFromJsonAsync<TokenResponse>();
string userToken = result.Token; // store this securely
// Use the token for any API call:
httpClient.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", userToken);
// Get YOUR game library:
var games = await httpClient.GetFromJsonAsync<GamesResponse>(
"https://your-backend/api/me/games");
// Log a gaming session:
await httpClient.PostAsJsonAsync("https://your-backend/api/me/activity", new {
platform = "PC",
gameTitle = "Halo Infinite",
sessionStart = DateTime.UtcNow.AddHours(-2).ToString("o"),
sessionEnd = DateTime.UtcNow.ToString("o"),
minutesPlayed = 120
});
// ── Option B: Public API key (read any user, no per-user login needed) ────────
// Set PUBLIC_API_KEY in your server .env and use it as a Bearer token.
// Great for game launchers or server-side apps that query multiple users.
string publicKey = "your_public_api_key_from_env"; // keep this secret!
httpClient.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", publicKey);
// Read any user's profile, game library, or achievements:
var profile = await httpClient.GetFromJsonAsync<ProfileResponse>(
"https://your-backend/api/users/someuser");
var library = await httpClient.GetFromJsonAsync<GamesResponse>(
"https://your-backend/api/users/someuser/games");
var achievements = await httpClient.GetFromJsonAsync<AchievementsResponse>(
"https://your-backend/api/users/someuser/achievements");