Skip to main content

Orderbook Snapshot

Sent on initial subscription and after a resync. type: "orderbook".
parsec_id
string
Canonical market identifier.
exchange
string
Exchange identifier.
outcome
string
Outcome label.
token_id
string
Exchange-specific token or contract identifier.
market_id
string
Exchange-native market ID.
tick_size
number
Minimum price increment.
min_order_size
number | null
Minimum order size when available.
kind
string
Always "snapshot".
title
string | null
Market title when available from the market index.
bids
[price, size][]
Bid levels sorted by price descending.
asks
[price, size][]
Ask levels sorted by price ascending.
book_state
string
fresh, stale, or needs_refresh.
server_seq
number
Monotonic sequence number for this subscription.
feed_state
string
healthy, degraded, or disconnected.
stale_after_ms
number
Milliseconds after which the client should consider the book stale.
exchange_ts_ms
number | null
Upstream exchange event timestamp in milliseconds when available.
ingest_ts_ms
number | null
Server ingest timestamp in milliseconds.
{
  "type": "orderbook",
  "parsec_id": "polymarket:572473",
  "exchange": "polymarket",
  "outcome": "Yes",
  "token_id": "50310842821...",
  "market_id": "572473",
  "tick_size": 0.001,
  "min_order_size": 1.0,
  "kind": "snapshot",
  "bids": [[0.65, 1000.0], [0.64, 2500.0]],
  "asks": [[0.66, 800.0], [0.67, 1500.0]],
  "book_state": "fresh",
  "server_seq": 1234,
  "feed_state": "healthy",
  "stale_after_ms": 5000
}

Orderbook Delta

type: "orderbook_delta" uses absolute replacement semantics:
  • size > 0 means set that level to the new size
  • size == 0 means remove that level
changes
object[]
Price-level updates.
server_seq
number
Monotonic sequence number for this subscription.
feed_state
string
healthy, degraded, or disconnected.
book_state
string
fresh, stale, or needs_refresh.
stale_after_ms
number
Milliseconds after which the client should consider the book stale.
{
  "type": "orderbook_delta",
  "parsec_id": "polymarket:572473",
  "exchange": "polymarket",
  "outcome": "Yes",
  "token_id": "50310842821...",
  "market_id": "572473",
  "changes": [
    { "side": "bid", "price": 0.65, "size": 900.0 },
    { "side": "ask", "price": 0.66, "size": 0.0 }
  ],
  "server_seq": 1235,
  "feed_state": "healthy",
  "book_state": "fresh",
  "stale_after_ms": 5000
}

Activity Events

Trades and fills share type: "activity" with a kind discriminator.
kind
string
"trade" for public trades or "fill" for your own fills.
price
number
Execution price.
size
number
Execution size.
trade_id
string | null
Present on trade events.
fill_id
string | null
Present on fill events.
order_id
string | null
Present on fill events.
side
string | null
Buy or sell side when available.
aggressor_side
string | null
Aggressor side for trades when available.
liquidity_role
string | null
"maker" or "taker" for fills when available.
source_channel
string
Upstream channel or feed label that produced the event.
exchange_ts_ms
number | null
Upstream exchange event timestamp in milliseconds when available.
ingest_ts_ms
number | null
Server ingest timestamp in milliseconds.
{
  "type": "activity",
  "parsec_id": "polymarket:572473",
  "exchange": "polymarket",
  "outcome": "Yes",
  "kind": "trade",
  "price": 0.65,
  "size": 100.0,
  "trade_id": "trade_123",
  "side": "buy",
  "aggressor_side": "buy",
  "server_seq": 1236,
  "feed_state": "healthy",
  "source_channel": "polymarket_last_trade_price"
}

Connection-Level Messages

Heartbeat

{ "type": "heartbeat", "ts_ms": 1708123456400 }

Resync Required

{ "type": "resync_required", "parsec_id": "polymarket:572473", "outcome": "Yes" }

Slow Reader

{ "type": "slow_reader", "parsec_id": "polymarket:572473", "outcome": "Yes" }

Error

{ "type": "error", "code": 2001, "message": "invalid message", "parsec_id": "polymarket:572473" }