Skip to content
Patch notes

Patch 2026.09.21

NewPlatformAnalytics

Two new API routes, a market's graded holders and a wallet's record per sport. Esports wallet chips show the wallet's win rate in that game. An open-source trader buys each Pick of the Day from your own Polymarket account. Every reader sees a trade page's position panel.

Pick of the Day

  • Every pick on GitHub now holds all 250 picks back to June 23, each with its market, side, price and result, and Verify the record no longer says the ledger is empty.
  • NewPick of the Day links an open-source trader, potd-trader, that buys each pick on your own Polymarket account from your own machine, with a guide beside the Developer docs button. Your keys never leave your computer.
  • Pick of the Day now considers every game on the Eastern calendar day, so a night game such as Monday Night Football can be the pick; the last release of a day is 23:00 Eastern.WasKickoffs before 8 PM ETnowKickoffs before midnight ET
  • An account without Pro now gets an email when the day's free pick goes live on Pick of the Day, naming the game and the sport and never the side; the switch is on the pick page and under Account, and Pro keeps its email for every pick.WasPro onlynowEvery account, for the free pick

Wallet chips

  • On an esports game, a wallet chip's win rate on the sports board, game pages, market pages, the activity rail and Pick of the Day is now the wallet's record in that game (League of Legends, CS2, Dota 2, Valorant and seven more) whenever it has at least 5 resolved markets there, and the hover names the game; a wallet with fewer keeps its whole Esports record, named as before. Game records appear from September 22.WasWin rate in EsportsnowWin rate in LoL
  • RemovedA game page's Top holders rows and the wallet card that opens from a holder on a game page or a Pick of the Day no longer show the wallet's last traded date; the wallet's profile page still does.
  • RemovedThe Polymarket activity rows on game and market pages no longer show the wallet's last traded date under the name; each row is one line again, and the wallet's profile page still shows the date.

Trade pages

  • A trade page's Position in this market panel now shows every reader whether the wallet still holds the market and on which side, its fills with their time, side, outcome and price, and its realized P&L; each fill's size and the position's value stay with Pro, named in the panel.

Security

  • NewSecurity says how to report a security issue, what a report gets, what is in scope, and which behaviors are by design, and /.well-known/security.txt now points at it.

Account

  • Deleting your account from Account now erases your personal data 30 days later, as the privacy policy promises; signing in again within those 30 days brings the account back.WasKept after deletionnowErased after 30 days

API

  • NewPay as you go for API requests is on Developers: with the switch on, requests over the 250,000 a month Pro includes keep answering and bill at USD 0.20 per 1,000 on a monthly invoice to the card on your subscription; off, they answer 429 from October 1. Off until you turn it on.
  • Pro includes 250,000 API requests a calendar month (UTC), on every plan. From October 1, request 250,001 in a month answers 429 with error.reason monthly_quota_exceeded until the month resets, unless pay as you go is on: requests over the quota then keep answering at USD 0.20 per 1,000 on a monthly invoice, turned on from Developers. Every authenticated response now carries X-Monthly-Quota-Limit, X-Monthly-Quota-Remaining and X-Monthly-Quota-Reset, GET /api/v1/usage adds monthly_quota, and Developers shows the month's count against the quota.WasNo monthly limitnow250,000 a month included
  • NewGET /api/v1/market/{condition_id}/holders lists every graded wallet holding a market on either side, the roster a Pick of the Day shows, for any market: shares, Polymarket's current value, grade, the wallet's record in the market's sport, and badges, with outcome, min_grade, limit and cursor.
  • NewGET /api/v1/trader/{address}/categories returns a wallet's record in each sport it has settled markets in: category, wins, decided, win_rate and status, with ?category=soccer to ask about one.
  • GET /api/v1/trader/{address}/categories adds games to the Esports record: the wallet's wins, decided, win_rate and status in each esports game it has settled markets in, named as the holder entries name them (LoL, CS2, Dota 2, Valorant and seven more), with series_slug as the key; the Esports row keeps the whole record.
  • GET /api/v1/pick-of-the-day, /archive and GET /api/v1/market/{condition_id}/holders add category_win_rate_game to a holder entry on an esports market: the game (LoL, CS2, Dota 2, Valorant and seven more) the entry's category_win_rate and category_win_record were measured in, present when the wallet has at least 5 resolved markets there and absent when the rate is the wallet's whole Esports record.
  • NewMCP 2.1.0 adds get_sports_edge_observations, the observation-only holder evidence behind GET /api/v1/sports-edge-observations, by cohort (wider_holder, in_play, emerging_pile), with the page's snapshot_as_of, degraded and funnel fields, over the remote endpoint and the @0xinsider/mcp package alike.
  • GET /api/v1/positions and the get_positions MCP tool accept condition_id to scope the feed to one market, and min_size=0 returns every reconciled position in it; the parameter used to be ignored.
  • GET /api/v1/pick-of-the-day/ledger returns payload on a settled uncommitted entry: the market, side and price of every pick published before sealing began.
  • GET /api/v1/pick-of-the-day/archive returns backed_price on every row that returns return_per_100, and clv_entry_price and clv_close_price on every row with a measured clv_pct.
  • clv_explanation on GET /api/v1/pick-of-the-day/archive names the entry price before the close price, and the documented meaning of backed_price is now the Polymarket order book midpoint at release rather than an executed fill.Wasclose, then entrynowentry, then close
  • POST /oauth/register accepts 10 client registrations per address every 10 minutes and answers the next with temporarily_unavailable; a client registers once and keeps its client_id.Was60 a minutenow10 per 10 minutes
  • OAuth client metadata lookups report temporarily_unavailable during temporary overload; device authorization includes Retry-After: 30.

Bug Fixes

Trade pages

  • With Pro, a trade page opens for a fill under 24 hours old, where it said Trade not found for the first day of every trade, including the fills the terminal feed and a report's View links had just handed you; without Pro, the page still opens 24 hours after the fill.

Game pages

  • When Polymarket has listed every holder of a market, a graded wallet that has left it no longer counts toward the smart money on that game.

Large positions

  • Large positions and GET /api/v1/large-positions no longer show positions in a market Polymarket has already settled; they used to reappear for a few minutes after every scan.

Trade alerts

  • The one filter alert a free account keeps from Pro now reaches its inbox: its matches showed under Trade alerts while the alert email was never sent.

API

  • A deep cursor page of GET /api/v1/positions now returns as fast as the first page; page 11 of category=Baseball at limit=100 used to time out at 30 s.Was3,707 msnow866 ms