Source
Query Manifold Markets with SQL
The Manifold prediction-market corpus, queryable with read-only SQL: markets as observation-append state rows, bets each with the market probability before and after it, and comments with the commenter’s position at comment time.
Query surfaces
manifold.marketsmanifold.betsmanifold.comments
Uses
A market’s observed price path comes from manifold.bets, since every bet has prob_before and prob_after; trader-level activity and market-moving bets aggregate the same rows by user or amount. manifold.comments attaches each commenter’s position at comment time, so discussion and exposure read from one row.
Fields
market_idsearch_keysourceexternal_typekindentity_idslugurititlepayloadtext_descriptioncreator_idcreator_usernamecreator_namecreator_avatar_urlclose_timecreated_at_sourceupdated_at_sourcelast_bet_atlast_comment_atresolution_timeoutcome_typemechanismvisibilityis_resolvedprobabilitypoolpvolumevolume_24htotal_liquidityunique_bettor_countresolutionraw_marketmetadatablake3_hashword_countis_deletedfirst_observed_onobserved_onobserved_hourobserved_at
Read from the schema registry for manifold.markets, 42 columns, last verified 2026-09-19 10:31 UTC. 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 observed_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 has the market probability before and after it — the observed price path of a question.
SELECT created_at_source, prob_before, prob_after, amount, outcome
FROM manifold.bets
WHERE contract_id = '<market-id>'
AND prob_before != prob_after
ORDER BY created_at_source
LIMIT 1000;