<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.bconomy.net/w/index.php?action=history&amp;feed=atom&amp;title=Data_API%2FProfile</id>
	<title>Data API/Profile - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.bconomy.net/w/index.php?action=history&amp;feed=atom&amp;title=Data_API%2FProfile"/>
	<link rel="alternate" type="text/html" href="https://wiki.bconomy.net/w/index.php?title=Data_API/Profile&amp;action=history"/>
	<updated>2026-11-06T05:17:25Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://wiki.bconomy.net/w/index.php?title=Data_API/Profile&amp;diff=464&amp;oldid=prev</id>
		<title>TheCarriedOne: Publish from docs/data-api.md</title>
		<link rel="alternate" type="text/html" href="https://wiki.bconomy.net/w/index.php?title=Data_API/Profile&amp;diff=464&amp;oldid=prev"/>
		<updated>2026-11-02T12:19:57Z</updated>

		<summary type="html">&lt;p&gt;Publish from docs/data-api.md&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;small&amp;gt;[[Data API|Data API]] · [[Data API/Types|Types]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;user/profile&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Returns a single user&amp;#039;s full public profile, enriched with inventory, faction, linked Discord info (if public), and BCS roles. Leaderboard positions are fetched separately via &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;user/lbPositions&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (they are slow to compute and loaded lazily by the client).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Request&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{ &amp;quot;type&amp;quot;: &amp;quot;user/profile&amp;quot;, &amp;quot;id&amp;quot;: 1 }&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Response&amp;lt;/strong&amp;gt; — [[Data API/Types#User|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;User&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;]] extended with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  // All User fields, plus:&lt;br /&gt;
  bcsRoles: Array&amp;amp;lt;&amp;quot;moderator&amp;quot; | &amp;quot;developer&amp;quot; | &amp;quot;inactiveModerator&amp;quot;&amp;amp;gt;&lt;br /&gt;
  inventory: Inventory&lt;br /&gt;
  faction?: Faction              // present only if user is in a faction&lt;br /&gt;
  displayStatValue?: number      // value of the stat shown under Triumphs&lt;br /&gt;
  presence?: { status: &amp;quot;online&amp;quot; | &amp;quot;idle&amp;quot; | &amp;quot;offline&amp;quot;; lastSeenAt?: Date | null }&lt;br /&gt;
  discordOnline: boolean         // linked account is in the latest Discord snapshot and publicDiscordProfile is enabled&lt;br /&gt;
  discordId?: string | null      // only present if user has set publicDiscordProfile&lt;br /&gt;
  discordUsername?: string | null&lt;br /&gt;
  discordAvatarHash?: string | null&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The profile badge prioritizes game Online, then Idle, then Discord, then Offline. Discord requires a matching linked account in the latest server presence snapshot and the profile&amp;#039;s &amp;lt;strong&amp;gt;Show Discord Profile&amp;lt;/strong&amp;gt; setting. Cached Discord presence does not expire; a later profile response updates &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;discordOnline&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The last-activity tooltip continues to describe game activity.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;user/get&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Returns the core [[Data API/Types#User|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;User&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;]] object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Request&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{ &amp;quot;type&amp;quot;: &amp;quot;user/get&amp;quot;, &amp;quot;id&amp;quot;: 1 }&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Response&amp;lt;/strong&amp;gt; — [[Data API/Types#User|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;User&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;user/lbPositions&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Returns a user&amp;#039;s leaderboard positions, scoped to that profile&amp;#039;s own type (main / ironman / hardcore rank among their own kind only). Split out from &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;user/profile&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; because computing it warms many leaderboard boards and is slow; the client fetches it lazily when the profile modal opens.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Request&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{ &amp;quot;type&amp;quot;: &amp;quot;user/lbPositions&amp;quot;, &amp;quot;id&amp;quot;: 1 }&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Response&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  lbPositions: Record&amp;amp;lt;string, number&amp;amp;gt;  // e.g. { &amp;quot;rank&amp;quot;: 14, &amp;quot;questLevel&amp;quot;: 2 }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;user/inventory&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Returns the inventory of a user. Keys are item &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;idName&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; strings; values are positive integer quantities. Only items owned in non-zero amounts are included.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Request&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{ &amp;quot;type&amp;quot;: &amp;quot;user/inventory&amp;quot;, &amp;quot;id&amp;quot;: 1 }&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Response&amp;lt;/strong&amp;gt; — [[Data API/Types#Inventory|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Inventory&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{ &amp;quot;rocks&amp;quot;: 500, &amp;quot;wood&amp;quot;: 120 }&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;stats/user&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Returns all tracked lifetime and periodic statistics for a user.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Request&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{ &amp;quot;type&amp;quot;: &amp;quot;stats/user&amp;quot;, &amp;quot;id&amp;quot;: 1 }&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Response&amp;lt;/strong&amp;gt; — [[Data API/Types#UserStats|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;UserStats&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;stats/trophies&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Returns the trophy record for a user.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Request&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{ &amp;quot;type&amp;quot;: &amp;quot;stats/trophies&amp;quot;, &amp;quot;id&amp;quot;: 1 }&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Response&amp;lt;/strong&amp;gt; — [[Data API/Types#UserTrophies|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;UserTrophies&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;user/otherProfiles&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Returns public summary information for other profiles belonging to the same account as the requested profile.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Request&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{ &amp;quot;type&amp;quot;: &amp;quot;user/otherProfiles&amp;quot;, &amp;quot;id&amp;quot;: 1 }&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Required&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;id&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| positive integer&lt;br /&gt;
| yes&lt;br /&gt;
| User BcID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Response&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface OtherProfilesResponse {&lt;br /&gt;
  profiles: Array&amp;amp;lt;{&lt;br /&gt;
    bcId: number&lt;br /&gt;
    type: &amp;quot;main&amp;quot; | &amp;quot;ironman&amp;quot; | &amp;quot;hardcore&amp;quot;&lt;br /&gt;
    trophyCount: number&lt;br /&gt;
    titleEmoji: string&lt;br /&gt;
    factionTag: string | null&lt;br /&gt;
    title: string&lt;br /&gt;
    name: string&lt;br /&gt;
  }&amp;amp;gt;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;stats/userWindowed&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Returns time-windowed statistics for a user across multiple aggregation buckets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Request&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{ &amp;quot;type&amp;quot;: &amp;quot;stats/userWindowed&amp;quot;, &amp;quot;bcId&amp;quot;: 1 }&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field&lt;br /&gt;
! Type&lt;br /&gt;
! Required&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;bcId&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| positive integer&lt;br /&gt;
| yes&lt;br /&gt;
| User BcID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Response&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;type UserWindowedStats = Record&amp;amp;lt;string, {&lt;br /&gt;
  today: number&lt;br /&gt;
  thisWeek: number&lt;br /&gt;
  thisMonth: number&lt;br /&gt;
  lastDay: number&lt;br /&gt;
  lastWeek: number&lt;br /&gt;
  lastMonth: number&lt;br /&gt;
  total: number&lt;br /&gt;
}&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;stats/burnOdds&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Returns daily and weekly first-draw Burn odds for a user in their profile mode, using all eligible positive burns, with no leaderboard page cutoff.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Request&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{ &amp;quot;type&amp;quot;: &amp;quot;stats/burnOdds&amp;quot;, &amp;quot;bcId&amp;quot;: 1 }&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Response&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface BurnDrawResponse {&lt;br /&gt;
  daily: BurnDrawStanding&lt;br /&gt;
  weekly: BurnDrawStanding&lt;br /&gt;
}&lt;br /&gt;
interface BurnDrawStanding {&lt;br /&gt;
  burned: number&lt;br /&gt;
  rank: number | null // null for a user without an eligible positive burn&lt;br /&gt;
  chance: number // 0–1; sqrt(user burn) / sum(sqrt(eligible burns))&lt;br /&gt;
  participants: number&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Banned users are excluded. The two windows use the same database snapshot. These are first-draw odds, not the chance of winning at least one prize. Weekly Genesis Egg and Forbidden Modifier draws use different winners when at least two users qualify; other draws allow repeat wins. Odds change as players burn.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Generated from the Bconomy source documentation. Edits made on the wiki are overwritten on the next publish; ask the developers to change the source.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Data API]]&lt;/div&gt;</summary>
		<author><name>TheCarriedOne</name></author>
	</entry>
</feed>