Prediction Market Odds Feed: Polymarket Prices & Probabilities
Pricing
from $1.00 / 1,000 market results
Prediction Market Odds Feed: Polymarket Prices & Probabilities
Live prediction market odds in one clean table: question, outcome prices, implied probability, bid/ask, volume, liquidity, open interest, close date and result. Filter by keyword, category, volume and closing date. Optional price history. Official public API, no login.
Pricing
from $1.00 / 1,000 market results
Rating
0.0
(0)
Developer
SteadyScrape
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 hours ago
Last modified
Categories
Share
Get live prediction market odds as one clean table. Each row is one market with its question, every outcome price, the implied probability, best bid and ask, 24h and 1-week price change, volume, liquidity and open interest, close date, status and the result once it resolves. Filter by keyword, category, minimum volume or liquidity, and "closes within N days", and add a price history series if you need one.
Data comes from Polymarket's official public market-data APIs (Gamma, Data API and CLOB). There's no login, no browser and no scraping of web pages, so runs are fast: about 5,000 markets in under a minute.
- 🎯 Odds you can use straight away: prices are on a 0–1 scale, so
impliedProbability: 0.195means 19.5%. Every outcome is listed with its price and token ID - 🔎 Keyword search that's precise: every word has to appear, word prefixes count, and quoted phrases match exactly. "fed rates" finds Fed rate decisions, not every market that mentions "rate"
- 🗂️ Normalized categories: politics, elections, economy, finance, companies, crypto, sports, esports, geopolitics, tech, science, culture, weather
- ⏱️ Event-driven filters: closing within N days, minimum lifetime volume, minimum liquidity, open only or include resolved markets with their result
- 📈 Optional price history: daily or hourly probability series for up to 1,000 markets per run, up to 365 days back
- 🔗 Look up exact markets: paste market URLs, event URLs (you get every market in the event), slugs, IDs or condition IDs
- 🧱 Stable flat schema: the same field names on every row, ready for a spreadsheet, a database or a dashboard
Who uses this
- Analysts and researchers: track what the crowd expects for elections, Fed decisions, crypto prices or geopolitics, and keep the history
- Journalists and newsletters: pull current odds for a story with a link to each market
- Dashboards and bots: a scheduled feed of the markets that moved, the markets closing this week, or the biggest markets in a category
- Builders: clean market metadata (IDs, token IDs, close dates, rules) without handling paging and API quirks yourself
Quick start
The 100 biggest open markets, with no input needed:
{}
Keyword search with price history:
{"searchTerms": ["fed rates", "bitcoin"],"maxItems": 40,"includePriceHistory": true,"priceHistoryDays": 30}
More examples:
- Crypto and economy markets with at least $50k volume that close in the next 14 days, soonest first:
{"categories": ["crypto", "economy"], "minVolume": 50000, "closingWithinDays": 14, "sortBy": "closingSoon"} - Exact markets, including resolved ones:
{"marketIds": ["https://polymarket.com/event/will-the-us-invade-iran-before-2027", "xi-jinping-out-before-2027"], "activeOnly": false} - A large daily snapshot:
{"maxItems": 5000, "sortBy": "volume24h"}
Output
You get one item per market. The Console's overview view shows the headline fields. Key fields:
| Field | Example |
|---|---|
platform, marketId, marketSlug | polymarket, "665374", "will-the-us-invade-iran-before-2027" |
question, outcomeLabel | "Will the U.S. invade Iran before 2027?", null (filled in multi-outcome events, e.g. a candidate or price bracket) |
eventId, eventSlug, eventTitle | "73130", ..., "Will the U.S. invade Iran before 2027?" |
category, tags | geopolitics, ["Military Strikes", "Politics", "Iran", ...] |
outcomes | [{"name": "Yes", "price": 0.195, "probability": 0.195, "tokenId": "5511..."}, {"name": "No", ...}] |
yesPrice, noPrice, impliedProbability, leadingOutcome | 0.195, 0.805, 0.195, "No" |
bestBid, bestAsk, spread, lastTradePrice | 0.19, 0.20, 0.01, 0.19 |
priceChange24h, priceChange1w | -0.005, 0.04 (absolute change in the Yes price) |
volume, volume24h, volume1w, volumeUnit | 75541247.44, 157338.15, 886168.71, usd |
liquidity, openInterest, eventOpenInterest | 307787.42, 6844927.29, 6845032.29 |
status, acceptingOrders, result | open / paused / upcoming / closed / resolved, true, winning outcome once resolved |
openDate, closeDate, resolvedDate, daysToClose | "2025-11-05T17:52:17Z", "2027-01-01T04:59:00Z", null, 66.29 |
url, image | https://polymarket.com/event/will-the-us-invade-iran-before-2027/will-the-us-invade-iran-before-2027 |
rules, resolutionSource | full resolution rules (when includeRules is on) |
platformIds | {"conditionId": "0x5db9...", "clobTokenIds": [...], "negRisk": false} |
priceHistory | [{"t": "2026-10-01T00:00:00Z", "p": 0.155}, ...] (when includePriceHistory is on) |
updatedAt, scrapedAt, source | when the venue last updated the market and when we fetched it |
The run summary is saved as OUTPUT in the key-value store. It has counts by status and category, request counts, notes (for example references that weren't found) and the filters used.
Good to know
- One row per tradable market. Multi-outcome events such as "2028 Democratic nominee" are made of many yes/no markets, so you get one row per candidate.
eventTitleandoutcomeLabelgroup them, and an event URL inmarketIdsreturns the whole event. - Prices are probabilities on a 0–1 scale.
impliedProbabilityis the price the venue shows (the order-book midpoint, or the last trade when the spread is wide). Thin markets can show large spreads, so checkspreadandliquidity. - Volume and liquidity are in USD.
openInterestisnullwhen the venue reports none for a market (common for small sub-markets). - Keyword search goes through the venue's own search first and then applies the strict word match. Set
strictKeywordMatch: falseto keep everything the venue returns. - Price history covers the first outcome (Yes). It costs one extra request per market and is capped by
priceHistoryMaxMarkets. - Freshness: data is read live when the run starts. Schedule the Actor (for example every 15 minutes or hourly) to build your own time series.
- Not for capital-markets or data-redistribution businesses. Polymarket's terms require brokers, exchanges, trading firms, market data distributors and similar firms to license data directly from Polymarket. This Actor is meant for research, journalism, dashboards and personal analysis. Please check the venue's terms for your use.
- This Actor isn't affiliated with or endorsed by Polymarket. It is not financial advice.
Pricing
Pay per event: $1 per 1,000 markets ($0.001 per market row returned), plus Apify's tiny default start fee per run. Nothing is charged for references that aren't found. A run stops cleanly at your maximum charge.
More tools from SteadyScrape
- Keyword Search Volume: Google search volume and a 12-month trend for the topics behind the markets you follow.
- Career Site Jobs Search: open jobs from tens of thousands of company career sites, another public signal for research dashboards.
Questions or a missing field? Open an issue on the Actor page. SteadyScrape