Skip to main content
The Polymarket Exchange provides gRPC streaming services for real-time market data and order execution updates. This enables low-latency, efficient data delivery for applications that need continuous updates.

Why Use gRPC Streaming?

gRPC streaming offers several advantages:
  • Bidirectional Communication: Server can push updates without client polling
  • Type Safety: Strongly-typed messages defined in Protocol Buffers
  • Real-time Updates: Receive market data and order updates as they happen

REST + gRPC Hybrid Approach

Most participants use REST for requests and gRPC for streaming. This hybrid approach combines the simplicity of REST with the efficiency of gRPC streaming.

Typical Integration Pattern

  1. REST API - Used for:
    • Placing orders (/v1/trading/orders)
    • Canceling orders (/v1/trading/orders/cancel)
    • Querying account information
    • One-time data requests
  2. gRPC Streaming - Used for:
    • Real-time market data updates
    • Live order execution reports
    • Continuous position monitoring
    • Order book changes

Available Streaming Services

Market Data Streaming

Subscribe to real-time market data updates including:
  • Order book (bids and offers)
  • Instrument state changes
  • Trade statistics (last price, OHLC, volume)
  • Open interest
Service: MarketDataSubscriptionAPI.CreateMarketDataSubscription Learn more about Market Data Streaming →

Order Execution Streaming

Subscribe to real-time order and execution updates:
  • New order confirmations
  • Partial and complete fills
  • Order cancellations and rejections
  • Execution reports with trade details
Service: OrderEntryAPI.CreateOrderSubscription Learn more about Order Streaming →

RFQ Events Streaming

Upcoming - beta access required. RFQ events are part of the upcoming RFQ API beta. Reach out to institutional@polymarket.us to join the beta test.
Subscribe to live combo RFQ and quote lifecycle events:
  • RFQ creation and closure
  • Quote creation, deletion, acceptance, confirmation, and execution
Service: RFQAPI.StreamRFQEvents Learn more about RFQ Events Streaming →

Server Endpoints

Pre-Production Environment

Production Environment

Both endpoints use TLS/SSL for secure communication. All connections must be encrypted.

Protocol Buffer Definitions

The exchange uses Protocol Buffers (proto3) to define message structures. Download the canonical polymarket-protos.zip bundle. Do not make client startup depend on gRPC reflection. Reflection availability can differ by environment.

Package Structure

Quick Start

Ready to get started? Follow our Getting Started Guide to:
  1. Install Python gRPC libraries
  2. Obtain and compile proto files
  3. Authenticate and connect
  4. Subscribe to your first data stream

Architecture Overview

Authentication Flow

  1. Obtain JWT Token: Request M2M token using client credentials
  2. Attach Token: Include token in gRPC metadata as authorization header
  3. Stream Data: Receive continuous updates over persistent connection
Learn more about Authentication →

Rate Limits

Ingress Rate LimitClient-to-server messages are limited to 100 messages per second across all streams per firm, averaged over a 1-minute window. Short bursts above this rate are allowed. This applies to requests you send, not to server-pushed updates like market data. Exceeding the average limit will result in throttled or rejected messages.

Key Concepts

Heartbeats

Periodic keep-alive messages ensure connection health. If heartbeats stop, the connection may be stale.

Snapshots

Initial state of data (e.g., all open orders) sent when subscription starts.

Updates

Incremental changes streamed continuously after the snapshot.

Session IDs

Unique identifiers for each streaming session, useful for logging and debugging.

Next Steps

Getting Started

Set up your first gRPC stream

Authentication

Learn how to authenticate gRPC connections

Market Data

Stream real-time market data

Order Updates

Subscribe to order execution updates

RFQ Events

Subscribe to combo RFQ and quote events