- Fixed WebSocket trade serialization to send numeric fields as strings and return null for ‘side’ field on non-fill trade types (Redemption, Merge, Split)
- Added wallet tracking webhook and new WebSocket event types for market trades, asset prices, and candle data updates
- Enhanced position and market metrics with granular timeframe-based analytics
- Fixed position title display and search to use market title as fallback when position title is missing, and improved position search to match against both position and market titles
- Fixed position ID conversion from hexadecimal to decimal format for consistent position identifiers
- Removed ‘worst_trade’ sort option from global PnL leaderboard API and fixed worst trade calculation to only consider closed market positions
- Added min_shares filter to trader position PnL endpoint to exclude dust positions
- Added current_shares_balance and image_url fields to trader positions and trades with real-time WebSocket updates
- Expanded REST API with comprehensive market analysis endpoints including trader PnL tracking, order book data, trades, price movements, metrics, volume charts, spread history, and position data
- Added offset-based pagination to trader trades and P&L endpoints, with offset taking precedence over cursor-based pagination
- Search endpoint now supports type filtering and optional trader PnL data enrichment with dynamic credit pricing
- API endpoints now return empty results instead of 404 errors when data is not found; PnL endpoints default to lifetime calculations; renamed pnl_usd to realized_pnl_usd for clarity across REST and WebSocket APIs
- Updated PnL data types and tracking system to V2 versions across all PnL-related APIs and data streams, including timestamp field on trader PnL candle data for improved data freshness tracking
- Added comprehensive PnL tracking with position-level and market-level metrics, enriched candle and calendar endpoints with multiple timeframe options (1d, 7d, 30d, lifetime), and pagination support
- Enhanced webhook system with wallet address allowlist filtering, timeframe filtering for PnL events, condition ID and sell volume filtering, new trade execution notifications, and spike webhooks now include previous and current probability/price values with 10-second deduplication across subscriptions
- Positions API now includes market slug and image URL for each position with market_slug as a filterable query parameter, and renamed buy/sell USD fields to total_buy_usd and total_sell_usd for clarity
- Renamed query parameters (‘start’/‘end’ to ‘from’/‘to’) and standardized response field names across order book, PnL candles, and WebSocket chart data endpoints
- Added support for DOGE, BNB, and HYPE asset symbols in price history queries, webhooks, WebSocket filters, and asset price API with validation for unsupported symbols
- Added realized_pnl_usd sorting option for positions with automatic win rate and average PnL metrics calculation
- Added comprehensive Order Book APIs with real-time WebSocket streams, historical snapshots, and spread time-series data with filtering by market, condition, and position ID
- Added support for 4-hour (4h) interval in asset price history across all APIs and webhooks
- Improved Polymarket market search with relevance scoring and enhanced validation for character counting and timeframe parameters
- Improved orderbook parsing to support both object and array formats for bid/ask levels
- Fixed orderbook metrics calculation, market endpoints to return proper 404 responses, and eliminated duplicate history records from redundant WebSocket connections
- Added 24-hour volume data to AI market responses and introduced an AI credit system with automatic billing for API, WebSocket, and webhook usage
- Added
exclude_shortterm_markets boolean flag to webhook filtering options
- Implemented connection and message rate limiting (30 connections per 60 seconds, 30 messages per second per organization) with improved error handling and validation to ensure clients join rooms before messaging
- Reduced WebSocket ping timeout from 30 minutes to 30 seconds for faster detection of inactive connections
- Fixed credit tracking and webhook suspension logic to prevent negative balances and duplicate suspensions
- Enhanced price-spike and volume-spike webhooks with configurable thresholds, time windows, and deduplication to detect market movements with reduced latency and false positives
- Webhook management enforces plan-based limits with automatic deletion or suspension on subscription changes
- Removed min_usd_value filter from asset price tick webhooks; use asset_symbols to filter tracked crypto assets instead
- Purchased credits now persist when changing subscription plans, with add-on credits consumed after plan credits are exhausted
- Added comprehensive event data including 24-hour volume, credit usage tracking, AI-optimized API response formats, and new webhook event types (Close to Bond, Market Created, Asset Price Ticks, Window Updates, Condition/Event/Position Metrics, Volume/Probability Milestones, and Volume Spikes)
- Introduced subscription filters for webhook events, enabling filtering by market, event, trader, position, and other criteria
- Improved WebSocket price feeds with immediate updates on new candle periods and enhanced webhook performance through rate limiting and stricter validation
- Updated market webhook payloads to use server timestamps, enriched events with Gamma API category metadata, and now include all markets regardless of metadata availability
- Fixed whale trade webhooks to only trigger for actual OrderFilled trades and corrected partial updates validation
- Webhooks now support per-endpoint event queue limits with enhanced delivery analytics tracking all attempts, failures, and error details
- Search API now returns markets and traders alongside events with independent pagination, new sorting parameters, and increased base credits from 2 to 3
- Added support for NegRisk contract adapter with new trade types (Split, Merge, Redemption, PositionsConverted) and enriched metadata
- Market data processing now automatically recovers from service crashes and replays pending updates on startup
- Trades stream payload includes updated confirmation timestamps with improved accuracy and deduplication logic
- Fixed trader PnL data accuracy, API cache separation between public and authenticated requests, and catchup buffer deduplication
- Added comprehensive webhook events for trader transactions, market entries, volume spikes, probability spikes, and real-time asset price updates with customizable timeframes, thresholds, and asset symbol filtering, plus 24-hour credit usage tracking with analytics
- Enhanced data reliability across trader PnL candles, condition metrics, event metrics, holder stats, and liquidity streams with exactly-once delivery guarantees and improved consumer catchup with non-blocking ack signal draining
- Improved Polymarket event and market search performance with optimized title-based search and faster indexing
- Removed price and probability open/close/high/low fields from Polymarket event and condition metrics
- Added
ai=true query parameter to API endpoints for optimized AI agent responses with truncated JSON payloads
- Webhook events API now includes category, credits cost, and applicable filter fields for each event type, with validation for webhook filters and subscriptions to enforce required fields at creation time
- Webhook delivery logging now visible by default with info-level logs for successful deliveries and warning-level logs for failures, including delivery ID, status code, and duration
- Fixed webhook credit deduction to use per-event costs instead of a global rate, eliminating silent webhook drops
- Added price jumps detection API endpoint (/v1/polymarket/market/price-jumps) that identifies significant price movements (configurable threshold, default 10%) within configurable candle windows (1, 5, 15, 30, 60, 240 minutes), with support for condition_id or market_slug lookup and millisecond timestamps for direct compatibility with the trades API
- Trader PnL now displays accurate average hold time for lifetime statistics
- Webhooks API endpoints updated to
/v1/webhooks and now support both API key and bearer token authentication methods
- WebSocket price updates now only trigger when candles are fully settled, preventing mid-candle close price changes and duplicate data during reconnections
- Added new webhook event types (market_created, volume_spike, volume_milestone, probability_spike, position_metrics, first_trade, new_market, whale_trade, close_to_bond, and PnL tracking) with customizable filters, 6-hour deduplication, concurrent execution support, and 7-day/30-day metrics periods
- Webhook subscriptions now use a single
event field per subscription; migrated API endpoints from /frontend/webhooks/* to /v1/webhook/* with volume testing endpoints to estimate delivery costs
- Added webhook management endpoints (list_events, rotate_secret) and improved WebSocket PING/PONG handling for more reliable connection management
- Asset history now returns null for incomplete time windows, webhook outcomes properly zero out incomplete candle data, and token account data on Polygon filters to Polymarket-relevant collateral tokens (USDC and USDe)
- Added trader PnL statistics including average PnL per market, average PnL per trade, and average hold time
- Implemented webhook deduplication to prevent duplicate webhooks with the same URL and event configuration
- Webhook API restructured with organization-based authentication, new event listing endpoint, and secret rotation capability
- FirstTradePayload webhook schema updated with improved numeric precision (f64 with 6 decimal places), removed unnecessary fields, and renamed slug to market_slug
- Removed ‘All’ event variant from webhook subscriptions and failure tracking fields for more precise event filtering and cleaner responses
- Market images now included in trade results and position queries across all APIs
- Asset price history query time bounds extended by 1 day to include in-progress candles with immediate queryability upon candle opening
- Real-time price updates now powered by Chainlink WebSocket integration for improved accuracy and reliability
- Price change percentage automatically computed from open and close prices for better data consistency
- Fixed asset price history data alignment across WebSocket, REST API, and backfill sources, with improved candle initialization and correct handling of price conflicts and invalid values
- Added market and event chart endpoints with TradingView-style resolutions (1H, 6H, 1D, 1W, 1M, ALL) with 2-3x faster queries via pre-aggregated data
- Extended markets and outcomes endpoints with new fields: series_slug, accepting_orders, uma_resolution_status, liquidity_usd, and liquidity_updated_at
- Added asset price history API endpoint for BTC, ETH, XRP, and SOL across multiple timeframes with cursor-based pagination using Chainlink price data
- Enhanced trader profile batch endpoint with lifetime timeframe support and ability to retrieve winning outcomes for resolved markets
- Improved WebSocket and Kafka resilience with automatic reconnection, sharded connections with redundancy, and exponential backoff retries
- Fixed trader PnL candles API response and improved chart query performance by ~75% for 1-week resolution
- API now uses explicit field names (market_slug, event_slug, created_time, start_time, end_time) with full backwards compatibility
- Added real-time Polymarket CLOB WebSocket streaming with market price feeds, sports updates, user order/trade channels, and automatic reconnection
- Added position-level PnL tracking and querying across 1d, 7d, 30d, and lifetime timeframes with filtering and sorting options
- Market responses enhanced with resolution source, CLOB rewards, individual outcome prices, lifetime metrics, detailed PnL analytics, and full outcome details including outcome_index and MarketStatus ‘all’ filter support
- Improved data quality by filtering invalid trades, protocol contract activities, fixing market outcome prices, correcting trade fees, and determining market closed status from Gamma metadata
- Added shares_usd field to event holder endpoints and expanded metrics API with new trading volume, fees, and trader count endpoints across multiple timeframes
- Improved Trader Positions endpoint with sorting by shares, USD value, PnL, and price, plus event slug filtering and increased limits to 50/200
- Enhanced market tracking with accepting_orders and uma_resolution_status fields, Cancelled trade type, and accurate UMA assertion state tracking; improved dispute tracking for UMA oracle markets with clear status distinction between disputed and settled outcomes
- Updated API responses to use typed enums instead of integers, numeric volume metrics, and Unix epoch format for timestamps; standardized end_time field naming and increased recommended markets endpoint limit to 250
- Added cursor-based pagination support to candlestick, volume chart, and trader endpoints for better time-series data handling
- Fixed market status API mapping and WebSocket URL configuration for Polygon chain; fixed UMA resolution status and market status updates to correctly handle out-of-order events and prevent data loss
- Market metrics API now returns nested metrics organized by multiple timeframes (1m, 5m, 30m, 1h, 6h, 24h, 7d, 30d) with volume, fees, transaction count, unique traders, and open interest change
- Added real-time PnL tracking across multiple timeframes for traders at market, event, and global levels with best/worst trade statistics and enhanced leaderboard sorting
- Restructured trader positions API with clearer field names and nested market-level PnL data under pnl field, plus market metadata in responses
- Simplified PnL data in holder responses with a single realized_pnl_usd field across event, market, and position holders
- Fixed share balance scaling issue in market holders, position holders, and trader positions endpoints
- Improved performance of holder and position queries through SQL refactoring with subquery patterns
- Added 7-day and 30-day metrics timeframes to events and markets with optional include_metrics parameter; market metrics now include volume, fees, transaction counts, trader counts, and open interest across all timeframes (1m, 5m, 30m, 1h, 6h, 24h, 7d, 30d)
- Added ability to fetch up to 50 events by ID or slug using comma-separated lists with enhanced sorting options (title, relevance, creation_date, start_date, EndTime, StartTime, CreatedTime)
- Implemented cursor-based pagination for event and market listing with up to 100 items per page, using base64-encoded pagination_key parameter
- Enhanced market filtering with advanced options including volume, liquidity, holders, tags, and status, plus bulk search across multiple fields
- Market API now returns granular time fields (created_time, start_time, game_start_time, closed_time, end_time) instead of end_date and resolution_date across REST and WebSocket APIs, and market status is now returned as a string (“open”/“closed”) instead of a number
- Events with a future start_date now return status “upcoming” instead of “open”, with added support for filtering by status and improved event status logic to distinguish between upcoming, open, and closed events; added show_market_images field to event list responses
Last modified on April 5, 2026