Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Polymarket Indexer

Complete prediction market data including trades, order book events, and market metadata.

:::info Access $200/month with 7-day free trial. Contact us to get started. :::


What's Indexed

TableDescriptionSize
orderbook_eventsAll order book activity1.2B rows
marketsMarket metadata and conditions45K rows
tokensToken/outcome information90K rows

Coverage: All Polymarket activity. Updated in real-time.


Key Features

Complete Order Book History

Every order book event is captured:

  • Placements and cancellations
  • Fills and partial fills
  • Maker and taker attribution

Market Context

Join with markets table to get:

  • Question text and descriptions
  • Resolution conditions
  • End dates and outcomes
  • Category and tags

Price Discovery Analysis

Track how prices evolve around events:

SELECT
    toStartOfMinute(timestamp) as minute,
    outcome,
    avg(price) as avg_price,
    sum(size) as volume
FROM orderbook_events
WHERE market_id = 'your_market_id'
  AND event_type = 'FILL'
  AND timestamp > now() - INTERVAL 24 HOUR
GROUP BY minute, outcome
ORDER BY minute

Sample Queries

Recent Fills

SELECT
    timestamp,
    market_id,
    outcome,
    side,
    price,
    size,
    maker,
    taker
FROM orderbook_events
WHERE event_type = 'FILL'
  AND timestamp > now() - INTERVAL 1 HOUR
ORDER BY timestamp DESC
LIMIT 100

Volume by Market

SELECT
    e.market_id,
    m.question,
    count(*) as fills,
    sum(e.size * e.price) as volume
FROM orderbook_events e
LEFT JOIN markets m ON e.market_id = m.id
WHERE e.event_type = 'FILL'
  AND e.timestamp > now() - INTERVAL 24 HOUR
GROUP BY e.market_id, m.question
ORDER BY volume DESC
LIMIT 20

Active Traders

SELECT
    taker as wallet,
    count(*) as trades,
    sum(size * price) as volume,
    count(DISTINCT market_id) as markets_traded
FROM orderbook_events
WHERE event_type = 'FILL'
  AND timestamp > now() - INTERVAL 7 DAY
GROUP BY wallet
ORDER BY volume DESC
LIMIT 50

-> More examples


Connection Details

FieldValue
Host51.68.240.215
Port28123 (HTTP) / 29000 (native)
Databasepolymarket

Python

import clickhouse_connect
 
client = clickhouse_connect.get_client(
    host='51.68.240.215',
    port=28123,
    username='your_user',
    password='your_pass',
    database='polymarket'
)
 
df = client.query_df("""
    SELECT * FROM orderbook_events
    WHERE event_type = 'FILL'
      AND timestamp > now() - INTERVAL 1 HOUR
    LIMIT 1000
""")

DBeaver

  1. New Connection -> ClickHouse
  2. Host: 51.68.240.215, Port: 28123
  3. Database: polymarket
  4. Enter credentials and test connection

Next Steps

Polymarket Indexer$200/month
Unlimited queries · Direct support · Community access
Start Free Trial →
Join traders already using our infrastructure