Real-time prediction market odds data: US 2026 midterm control of Congress
Polymarket prices the Democratic Party at 93% to control the House and 70% to control the Senate, as of Oct 30. Five months of odds and volume from Goldsky's Polymarket data, and how to get the same data with Turbo or x402.

Head of Operations
Polymarket's highest-volume open market on US House control prices the Democratic Party at 93%, as of 2026-10-30 20:43 UTC. The highest-volume open market on US Senate control prices the Democratic Party at 70%. Election Day for the 2026 midterms is 2026-11-03.
This post shows how those prices moved since June, and how much traders put behind them. It then shows three ways to get the same Polymarket data from Goldsky. Use a Turbo pipeline, use the Feeds API, or let an AI agent pay per request with x402.
Five months of control odds
Polymarket runs one market for each party in each chamber, for example "Will the Republican Party control the House?" The chart plots the daily price of each party's market, with daily USDC volume as bars.

| Chamber | Party market | 2026-06-01 | 2026-10-30 |
|---|---|---|---|
| House | Democratic Party | 81.7% | 93.5% |
| House | Republican Party | 19.2% | 6.3% |
| Senate | Democratic Party | 47.0% | 70.0% |
| Senate | Republican Party | 53.1% | 30.6% |
Daily prices are daily averages, so they differ from the latest-trade prices above.
- House. The Democratic Party market rose from 81.7% to 93.5% over five months. The Republican Party market fell from 19.2% to 6.3%.
- Senate. The Republican Party market led in June and July. The Democratic Party market first moved above it on 2026-08-12, at 52.1%. It is above it on every day from 2026-08-31 to 2026-10-30.
- Senate, mid-September. The Democratic Party market rose from 53.0% on 2026-09-14 to 61.0% on 2026-09-20.
Volume grew as Election Day came closer
| Chamber | Volume since 2026-06-01 | Trades since 2026-06-01 | Share of that volume in October | Volume, last 14 days | Trades, last 14 days |
|---|---|---|---|---|---|
| House | $15.56M | 35,079 | 78.8% | $10.02M | 17,461 |
| Senate | $4.97M | 26,770 | 71.2% | $2.76M | 11,564 |
The largest day for the House markets was 2026-10-29, with $3.45M. The largest day for the Senate markets was 2026-10-30, with $0.81M. The last 14 days are 2026-10-17 to 2026-10-30.
Polymarket data at Goldsky
Goldsky indexes Polymarket's contracts on Polygon and streams four datasets, version 2.0.0, with all historical data. Polymarket moved to its v2 contracts on 2026-04-28. Goldsky recommends these datasets over the older public subgraphs, which no longer return complete data.
| Dataset | One row per | Key columns |
|---|---|---|
polymarket.order_filled | Side of a filled order (maker or taker) | asset, price, amount_usdc, amount_shares, side, order_type, user_id, block_timestamp |
polymarket.orders_matched | Taker order matched against maker orders | asset, price, amount_usdc, amount_shares, side, user_id |
polymarket.user_balances | Outcome-token balance of a wallet | owner_address, token_id, balance |
polymarket.user_positions | Position of a wallet, with profit and loss | user_id, token_id, amount, avg_price, realized_pnl, total_bought |
Each market outcome, such as "Yes" in the House Democratic Party market, is one token. The asset and token_id columns hold that token's ID. Every number in this post comes from order_filled.
Stream the midterm markets into your own database with Turbo
A Turbo pipeline copies a dataset into a database you own, in real time and with full history. This pipeline streams every fill in the House and Senate Democratic Party markets into PostgreSQL.
name: polymarket-midterms
resource_size: s
sources:
fills:
type: dataset
dataset_name: polymarket.order_filled
version: 2.0.0
start_at: earliest
filter: >-
asset IN (
'83247781037352156539108067944461291821683755894607244160607042790356561625563',
'33156410999665902694791064431724433042010245771106314074312009703157423879038',
'113287701564209339913693347405685749986285999146352375265161592243948562084773',
'107118433685650702332040991454078902188473746599223732907923581436160160612542'
)
transforms:
midterm_fills:
type: sql
primary_key: id
sql: |
SELECT id, block_number, block_timestamp, transaction_hash,
asset, side, order_type, price, amount_usdc, amount_shares
FROM fills
sinks:
postgres_midterm_fills:
type: postgres
from: midterm_fills
schema: public
table: polymarket_midterm_fills
secret_name: MY_POSTGRES_SECRET
primary_key: id- Install the Goldsky CLI and run
goldsky login. - Create a secret for your database, named
MY_POSTGRES_SECRETin this example. - Run
goldsky turbo validate polymarket-midterms.yaml, thengoldsky turbo apply polymarket-midterms.yaml. - Run
goldsky turbo inspect polymarket-midterms.yamlto see rows as they arrive.
To track other markets, change the token IDs in the filter. To keep every Polymarket fill, remove the filter. Turbo also writes to ClickHouse, Kafka, S3, webhooks, and other sinks.
With the rows in PostgreSQL, this query returns the daily price and volume of the House Democratic Party market:
SELECT
date_trunc('day', to_timestamp(block_timestamp)) AS day,
sum(CASE WHEN asset = '83247781037352156539108067944461291821683755894607244160607042790356561625563'
THEN price ELSE 1 - price END * amount_shares) / sum(amount_shares) AS dem_house_price,
sum(amount_usdc) FILTER (WHERE order_type = 'taker') AS usdc_volume
FROM polymarket_midterm_fills
WHERE asset IN (
'83247781037352156539108067944461291821683755894607244160607042790356561625563',
'33156410999665902694791064431724433042010245771106314074312009703157423879038'
)
GROUP BY 1
ORDER BY 1;What teams build with this data
- Live odds pages and widgets. Show current prices and trends next to news coverage.
- Large-trade alerts. Send fills above a USDC amount to a webhook as they happen.
- Trader analytics. Show a wallet's positions, average entry price, and realized profit and loss from
user_positions. - Research and backtests. Compare full price history with polls, events, or other markets.
- Liquidity monitoring. Split maker and taker fills to see who provides and who takes liquidity in a market.
- AI agents. Let an agent read prices or positions before it acts, as the next section shows.
AI agents: pay per request with x402
An agent does not need a Goldsky account or an API key to read Polymarket data. Goldsky's Feeds API accepts payment per request in USDC over the x402 protocol.
- Activity, Positions, and Balances. The Feeds API serves Polymarket fills and other events, wallet positions with profit and loss, and outcome-token balances.
- Price. Each Prediction markets request costs $0.00001 (10 atomic USDC), for any number of rows.
- Payment. The first request funds a prepaid balance of at least $0.005, which covers about 500 Prediction markets requests. A standard v2 x402 client pays in USDC on Base, Polygon, Arbitrum, World Chain, or Monad.
A request without a key returns HTTP 402 with a payment challenge:
curl -i "https://edge.goldsky.com/data/polymarket/activity?token_id=83247781037352156539108067944461291821683755894607244160607042790356561625563&limit=5"An x402 client, such as @x402/fetch or the Coinbase CDP SDK, signs the payment and sends the request again. The response holds the newest fills for that token. The same prepaid balance also pays for Goldsky Edge RPC, at $0.000005 per call, so an agent can read raw Polygon contract logs with eth_getLogs.
| Need | Goldsky product |
|---|---|
| Full history in your own database, updated in real time | Turbo pipeline |
| REST queries with no infrastructure to run | Feeds API with an API key |
| An agent with a wallet and no account | Feeds API or Edge RPC, paid with x402 |
Method
- Daily price. For each party's market, the daily price is the share-weighted average fill price of the "Yes" outcome. A fill of the "No" outcome at price p counts as a "Yes" price of 1 − p.
- Volume and trades. Volume and trade counts use taker fills only. Each match emits one fill for the taker and one for each maker, so counting all fills counts each trade twice.
- Market choice. In each chamber, the Democratic Party market has the most lifetime volume of the open control markets. The latest prices at the top of this post are the last fill of the "Yes" token in those markets.
- Window. 2026-06-01 00:00 to 2026-10-30 20:43 UTC. 2026-10-30 is a partial day. The control markets opened on 2025-07-11.
This post checked each market's question text against Polymarket's public events and markets endpoints on 2026-10-29, for labels only. All prices, trade counts, and volumes come from Goldsky's data.
FAQ
Do these prices predict who wins the House or Senate?
No. Market prices are not polls or forecasts. A price shows what traders paid for a share. This post reports prices only.
Why don't the two party prices for a chamber add to exactly 100%?
Each party has its own market with its own order book. Trading keeps the two prices close to 100% in total, but each book fills on its own.
How can I get this data from Goldsky?
Use a Turbo pipeline to stream the polymarket.order_filled dataset into your own database. Use the Feeds API to query Polymarket activity, positions, and balances over REST. See the Goldsky Polymarket page (opens in a new tab).
Can an AI agent get this data without an account?
Yes. The Feeds API accepts x402 payments in USDC, at $0.00001 per Prediction markets request. See Pay per request with x402 (opens in a new tab).