{"name":"Hobby Market API","version":"v1","docs":"/developers","auth":"Read endpoints are public. Trading and /me endpoints take an API key as 'Authorization: Bearer hm_live_…' (mint one at /developers or POST /api/v1/me/keys), or the browser session cookie from the app origin.","endpoints":{"markets":{"GET /api/v1/markets":"List markets. ?status=open|resolving|closed|resolved|voided (default open) ?category= ?q= ?source=feed|search|quick ?limit=50 ?offset=0","GET /api/v1/tags":"Live tag numbers: ?slugs=soccer,champions-league → open markets + bets per tag; without slugs → top tags per category","GET /api/v1/arena/ladder":"Arena ladder — head-to-head Elo, records, net coins. ?limit=20","GET /api/v1/me/battles":"Your arena record and recent matches (auth)","GET /api/v1/markets/soon":"Open markets ending within ?minutes=180","GET /api/v1/markets/live":"In-play markets (open, past their scheduled start)","GET /api/v1/markets/{id}":"One market with prices and what the crowd holds","GET /api/v1/markets/{id}/history":"Yes-price history straight from Polymarket (nothing stored here). ?interval=1h|6h|1d|1w|1m|max (default max) · ?outcome=0","GET /api/v1/markets/{id}/quote":"Fill price for an order right now. ?side=buy|sell ?shares=10 &outcomeIdx=0 | &tokenId= ({id} may be a token id)"},"users":{"GET /api/v1/leaderboard":"Rankings. ?period=today|week (realized profit) or all (net worth, default) ?limit=50","GET /api/v1/users":"Find players by name: ?q= ?limit=8 (empty q = top players). Powers the header's player finder","GET /api/v1/users/{id}":"Public profile: stats, daily P&L, followers","GET /api/v1/users/{id}/positions":"Open bets","GET /api/v1/users/{id}/collection":"Owned cards"},"cards":{"GET /api/v1/cards":"Card catalog. ?league=isr|eng|esp|ita|ger|fra ?tier=normal|rare|epic|legendary ?club= ?position=GK|DF|MF|FW ?q= ?limit=100 ?offset=0","GET /api/v1/cards/{id}":"One card version (ids look like wp:Player%20Name or wp:Player%20Name%23epic)","GET /api/v1/packs":"Pack types with costs and odds"},"me":{"GET /api/v1/me":"Your wallet, stats, daily-gift and free-pack cooldown status","GET /api/v1/me/positions":"Your positions, open and closed","POST /api/v1/orders":"{ \"tokenId\" | \"marketId\"+(\"outcomeIdx\"|\"outcome\"), \"side\": \"BUY\"|\"SELL\", \"size\"|\"shares\" | \"amount\", \"price\"?: limit, \"competitionId\"? } — fill-or-kill at the mirrored price","GET /api/v1/orders":"Your fills. ?limit=50 ?offset=0 ?marketId=","GET /api/v1/orders/{id}":"One fill","GET /api/v1/me/keys":"Your API keys; POST { name } mints one (secret shown once); DELETE { id } revokes","GET /api/v1/me/views":"Saved board filters / searches; POST { name, path: '/'|'/search', query }; DELETE { id }","POST /api/v1/competitions/{id}/topup":"{ \"amount\" } — host only: add the same amount to every member's pot","GET /api/v1/me/competitions":"Your friend competitions with your rank and pot in each","GET /api/v1/competitions/{id}":"A competition you belong to: settings, rules, standings, open bets","POST /api/v1/competitions/join":"{ \"code\": \"invite code\" } — join a competition (you get its starting funds)","POST /api/v1/competitions":"{ \"name\", \"startingFunds\", \"startsAt\", \"endsAt\", \"description\"?, \"categories\"?: string[], \"maxBuyPriceCents\"?, \"maxStakeCents\"? } — create a competition","POST /api/v1/daily":"Claim the daily gift","POST /api/v1/packs/{id}/open":"Buy/open a pack (id from /api/v1/packs)"}},"units":"Coins are integers shown as ¢. A share pays 100 on the winning outcome; prices are probabilities 0..1 in market data and whole cents in orders."}