Source

Query Manifold Markets with SQL

The full Manifold prediction-market corpus — every market, every bet, every comment — queryable with read-only SQL and kept minutes-fresh from the live API.

Surface

  • Recordsmarkets + bets + comments
  • Canonicalmanifold.markets
  • Extentcreated_at_source 2021-12-17 to 2026-09-11
  • Cadencelive: new bets land within seconds, new markets and comments within minutes
  • MethodPublic Manifold v0 API; source-native market, bet, and comment records.
  • StatsLast stats snapshot: 2026-09-11T21:13:49Z

Query surfaces

  • manifold.markets
  • manifold.bets
  • manifold.comments

Public Manifold v0 API; source-native market, bet, and comment records.

Best for

probability time series for any market from per-bet prob_before/prob_after
trader-level activity and market-moving bets across ~23M bets
market discussion with each commenter's live position attached

Fields

  • market_id
  • search_key
  • source
  • external_type
  • kind
  • entity_id
  • slug
  • uri
  • title
  • payload
  • text_description
  • creator_id
  • creator_username
  • creator_name
  • creator_avatar_url
  • close_time
  • created_at_source
  • updated_at_source
  • last_bet_at
  • last_comment_at
  • resolution_time
  • outcome_type
  • mechanism
  • visibility
  • is_resolved
  • probability
  • pool
  • p
  • volume
  • volume_24h
  • total_liquidity
  • unique_bettor_count
  • resolution
  • raw_market
  • metadata
  • blake3_hash
  • word_count
  • is_deleted
  • created_at
  • updated_at
  • archived_at

Read live from the schema registry for manifold.markets — 41 columns. Every relation's full contract is served by /v1/scry/schema.

Queries

Most-traded open markets, latest state

Collapse observation-append state rows to the latest per market, then rank open markets by volume.

SELECT market_id, title, probability, volume, unique_bettor_count
FROM (
  SELECT * FROM manifold.markets
  ORDER BY updated_at DESC
  LIMIT 1 BY market_id
)
WHERE is_resolved = 0
ORDER BY volume DESC
LIMIT 20;

A market's probability path, bet by bet

Every bet carries the market probability before and after it — the full price path of a question.

SELECT created_at_source, prob_before, prob_after, amount, outcome
FROM manifold.bets
WHERE contract_id = '<market-id>'
  AND is_redemption = 0
ORDER BY created_at_source
LIMIT 1000;

Gaps

  • HolesNone declared on the live schema entry for manifold.markets (declared holes are curation, not a measurement of completeness).
  • Notemanifold.markets is observation-append: take the latest state per market with ORDER BY updated_at DESC LIMIT 1 BY market_id before aggregating
  • Notemanifold.bets orders by bet_id only — scope contract_id or a created_at_source window before scanning ~23M rows
  • Noteis_redemption = 1 bet rows are share redemptions, not directional trades

Related proof pages