
Congress Stock Trades Scraper
scrape.ly/store/querystone/congress-trades-scraperNewsBusiness
3 monthly users

Scrape Polymarket prediction markets by keyword, tag or link. Get every market's question, outcomes, live odds, volume, liquidity, end date, event, tags and URL, plus optional price history, order books and recent trades. No login needed.
Get live Polymarket prediction market data as clean rows: each market's question, outcomes, current odds, volume, liquidity, end date, event, tags and link. Search by keyword, browse a tag such as politics or crypto, or paste event links. You can also add price history, order books and recent trades. No login or API key needed, and 10,000 markets take only seconds.
Yes 68.5% · No 31.5%).bitcoin, election, fed), or paste event or market links, or add tags such as politics.| Field | What it does |
|---|---|
searchQueries | Keywords to search Polymarket for. Results keep Polymarket's relevance order. |
startUrls | Event links (polymarket.com/event/<slug>), market links (.../event/<event>/<market>) or bare slugs. |
tags | Tags such as politics, crypto, sports, economy. Browsed on their own, or used to narrow keyword results. |
maxItems | Markets per keyword, tag, event link or browse (default 20, 0 = no limit). |
status | active (default), closed or all. |
minVolume / maxVolume | Total traded volume range in USD. |
minLiquidity / maxLiquidity | Liquidity range in USD. |
endDateFrom / endDateTo | End-date range (YYYY-MM-DD). |
sortBy / sortDirection | volume24hr, volume, volume1wk, volume1mo, liquidity, endDate, startDate, createdAt; desc or asc. |
includePriceHistory / priceHistoryInterval | Add the price history of each outcome for 1h, 6h, 1d, 1w, 1m or max. |
includeOrderBook / orderBookDepth | Add live bids and asks (open markets only). |
recentTradesCount | Add the latest N trades of each market. |
{
"searchQueries": ["fed rates", "bitcoin"],
"tags": ["economy", "crypto"],
"maxItems": 50,
"status": "active",
"minVolume": 100000,
"endDateTo": "2026-12-31",
"includePriceHistory": true,
"priceHistoryInterval": "1w"
}
One row per market.
| Field | Description |
|---|---|
question, url, slug, id | The market and its page |
eventTitle, eventUrl, eventSlug, groupItemTitle | The event the market belongs to and the option it stands for |
outcomes, outcomePrices, odds, oddsText | Outcomes and their prices (implied probabilities, 0–1) |
leadingOutcome, winningOutcome, status | Favourite, the winner once resolved, and active / closed / resolved |
lastTradePrice, bestBid, bestAsk, spread | Trading prices |
oneHourPriceChange … oneMonthPriceChange | Price moves |
volume, volume24hr, volume1wk, volume1mo, liquidity | Volume and liquidity in USD |
eventVolume, eventLiquidity, eventOpenInterest, commentCount | Event totals |
tags, tagSlugs | Polymarket tags |
startDate, endDate, createdAt, closedTime, resolutionStatus, resolutionSource | Dates and resolution |
description | Full resolution rules |
conditionId, questionId, clobTokenIds, negRisk, tickSize, orderMinSize | On-chain and order book identifiers |
priceHistory, orderBook, recentTrades | Only when you turn them on |
inputSource, scrapedAt | Which input found the market, and when |
{
"id": "5677939",
"question": "Will Bitcoin reach $91,000 on October 14?",
"url": "https://polymarket.com/event/what-price-will-bitcoin-hit-on-october-14-2026/will-bitcoin-reach-91k-on-october-14-2026",
"eventTitle": "What price will Bitcoin hit on October 14?",
"eventUrl": "https://polymarket.com/event/what-price-will-bitcoin-hit-on-october-14-2026",
"groupItemTitle": "↑ 91,000",
"status": "active",
"outcomes": ["Yes", "No"],
"outcomePrices": [0.0005, 0.9995],
"odds": {"Yes": 0.0005, "No": 0.9995},
"oddsText": "Yes 0.05% · No 99.95%",
"leadingOutcome": "No",
"bestAsk": 0.001,
"spread": 0.001,
"volume": 35.0,
"volume24hr": 35.0,
"liquidity": 17838.1954,
"tags": ["Crypto", "Crypto Prices", "Bitcoin", "Daily", "Hit Price"],
"startDate": "2026-10-14T04:00:10Z",
"endDate": "2026-10-15T04:00:00Z",
"resolutionSource": "https://www.binance.com/en/trade/BTC_USDT",
"conditionId": "0x88fbf5c7a32fc60ceaa1b2f06ddfedd4f9af7f0d5c924c2724f3cb03a70c5a06",
"eventVolume": 420558.72,
"eventLiquidity": 274918.36,
"priceHistory": [
{"outcome": "Yes", "tokenId": "5279768042309853...", "points": [{"t": "2026-10-14T05:00:23Z", "p": 0.0045}]}
],
"orderBook": [
{"outcome": "Yes", "bids": [], "asks": [{"price": 0.001, "size": 140.0}], "timestamp": "2026-10-14T20:32:31Z"}
],
"recentTrades": [
{"timestamp": "2026-10-14T11:22:13Z", "side": "BUY", "outcome": "No", "price": 0.999, "size": 35.0,
"wallet": "0x0000000000000000000000000000000000000abc", "transactionHash": "0x…"}
],
"inputSource": {"type": "search", "query": "bitcoin"},
"scrapedAt": "2026-10-14T20:39:13Z"
}
You pay $0.50 per 1,000 markets ($0.0005 per market saved), plus the small platform usage of the run (compute and datacenter proxy traffic). Price history, order books and trades are included at no extra charge.
Example: 1,000 markets ≈ $0.50 in market fees plus a few cents of usage. A run that finds nothing costs almost nothing.
Is it legal? The actor reads the same public market data that anyone sees on polymarket.com without logging in. Check Polymarket's terms and your local rules for how you use the data.
Do I need a Polymarket account, an API key or a crypto wallet? No. Only public data is read.
How many markets can I get? As many as Polymarket lists. Browsing with status all and no limit can return hundreds of thousands. A keyword search returns as many markets as Polymarket's search finds for it.
Why is a field empty? Polymarket leaves some fields empty for some markets. New or illiquid markets often have no last trade, no bid or no price change yet. Closed markets have no order book.
What do the prices mean? A price of 0.68 means the market gives that outcome a 68% chance; one share pays $1 if that outcome wins.
Can I schedule it or use the API? Yes. Schedule runs to track odds over time, and fetch results through the API or integrations.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchQueriesarrayOptionalSearch keywords
Keywords to search Polymarket for (for example bitcoin, election, fed rates). Each keyword returns up to 'Max results' markets.
startUrlsarrayOptionalEvent or market links
polymarket.com event or market links, or bare slugs. An event link returns its markets (up to 'Max results'); a market link returns that one market, whatever the filters.
tagsarrayOptionalTags / categories
Polymarket tags such as politics, crypto, sports, economy, tech or geopolitics. Without keywords, each tag is browsed separately; together with keywords, tags narrow the search results.
maxItemsintegerOptionaldefault 20Max results
Maximum markets per keyword, tag, event link or browse. 0 means no limit.
statusenumOptionaldefault "active"Market status
Active markets are open for trading; closed markets have ended (most are resolved).
minVolumeintegerOptionalMin total volume (USD)
Only markets that traded at least this much in total.
maxVolumeintegerOptionalMax total volume (USD)
Only markets that traded at most this much in total.
minLiquidityintegerOptionalMin liquidity (USD)
Only markets with at least this much liquidity in the order book.
maxLiquidityintegerOptionalMax liquidity (USD)
Only markets with at most this much liquidity.
endDateFromstringOptionalEnds on or after
Only markets whose end date is on or after this date (YYYY-MM-DD).
endDateTostringOptionalEnds on or before
Only markets whose end date is on or before this date (YYYY-MM-DD).
sortByenumOptionaldefault "volume24hr"Sort by
Order for tag browsing and 'all markets'. Keyword searches keep Polymarket's relevance order; markets of an event link are sorted by total volume.
sortDirectionenumOptionaldefault "desc"Sort direction
Descending puts the highest values (or latest dates) first.
includePriceHistorybooleanOptionaldefault falseInclude price history
Add the probability (price) history of every outcome.
priceHistoryIntervalenumOptionaldefault "1w"Price history range
How far back the price history goes. Point spacing: 1 min (1h), 5 min (6h), 15 min (1d), 1 h (1w), 4 h (1m), 1 day (max).
includeOrderBookbooleanOptionaldefault falseInclude order book
Add the live bids and asks of every outcome (open markets only).
orderBookDepthintegerOptionaldefault 10Order book depth
Price levels per side to keep.
recentTradesCountintegerOptionaldefault 0Recent trades per market
Add this many of the latest trades (time, side, outcome, price, size). 0 turns it off.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies are used by default and work well for Polymarket's public data.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| id | string | Polymarket market ID |
| question | string | Market question |
| url | string | Market page URL |
| outcomes | array | Outcome names |
| outcomePrices | array | Outcome prices (implied probabilities, 0-1) |
| volume | number | null | Total traded volume in USD |
| liquidity | number | null | Order book liquidity in USD |
| endDate | string | null | Scheduled end date |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Market | Charged per market saved to the dataset. Price history, order book and trades are included. | $0.0005 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('querystone/polymarket-scraper').call({
"searchQueries": [
"bitcoin"
],
"maxItems": 20,
"status": "active",
"sortBy": "volume24hr",
"sortDirection": "desc",
"priceHistoryInterval": "1w",
"orderBookDepth": 10,
"recentTradesCount": 0,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run querystone/polymarket-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=querystone/polymarket-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Active markets with daily price history.
Active markets with order book and recent trades.
Browse markets by total volume.
Keyword search of resolved markets.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.