Polymarket Sports Markets
Pricing
from $1.00 / 1,000 market records
Polymarket Sports Markets
Collect Polymarket sports markets with event context, outcome probabilities, liquidity, volume, and optional order books. One record per unique market with stable source identifiers and a versioned normalized envelope. Filter by event, tag, market type, and reported activity.
Pricing
from $1.00 / 1,000 market records
Rating
0.0
(0)
Developer
Philip Kirkbride
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Quick Start
Collect Polymarket sports markets with event context, outcome probabilities, liquidity, volume, and optional order books. Use the records for research, dashboards, and scheduled snapshots.
{"tagSlug":"sports","marketTypes":["moneyline","spreads","totals"],"maxResults":250,"includeOrderBooks":false}
The default input keeps all market types, including futures and markets without a published type. A run returns up to maxResults, not necessarily the whole board. Open or active does not mean upcoming: older unresolved markets may still appear. Source tags and live flags are retained as reported; they are not independently verified game status.
Input
| Name | Type | Default | What it does |
|---|---|---|---|
eventSlugs | array | [] | Collects up to 50 selected events. Bypasses discovery tag and date bounds; other filters still apply. |
tagSlug | string | sports | Selects the discovery tag, for example nba. |
marketTypes | array | [] | Exact case-insensitive sportsMarketType values, such as moneyline, spreads, totals, or first_half_totals. Empty keeps every type. |
activeOnly | boolean | true | Excludes explicitly inactive events and markets. |
openOnly | boolean | true | Excludes closed events and markets. false includes both open and closed records. |
liveOnly | boolean | false | Keeps events explicitly marked live by the source. |
startDateMin / startDateMax | string | unset | Inclusive discovery bounds on listing time (eventListingTime), not game kickoff. ISO-8601; naive times mean UTC. Ignored for exact event slugs. |
liquidityMin / volumeMin | number | unset | Minimum reported market liquidity / lifetime volume. An explicit bound excludes unknown values, including when the bound is zero. |
pageSize | integer | 100 | Events requested per page, from 1 to 500; each event may contain many markets. |
maxResults | integer | 500 | Maximum unique market records, from 1 to 5,000, across all events. |
includeOrderBooks | boolean | false | Adds order books for the market's outcome tokens. |
orderBookConcurrency | integer | 4 | Concurrent book requests, from 1 to 16; the request delay still applies. |
includeRaw | boolean | false | Retains original event and market objects. This can substantially enlarge each row. |
requestDelaySecs | number | 0.1 | Pause between page, event, or book requests, from 0 to 10 seconds. |
Unknown input fields, invalid types, non-finite numbers, reversed date ranges, and out-of-range limits fail validation. Very restrictive filters may require scanning many event pages before enough markets match.
Output
Each dataset row represents one unique market. Identity uses conditionId when available; recordKey includes the polymarket: prefix. Rows include event details, sportsMarketType, line, outcomes (names), parallel outcomePrices (probabilities, not decimal odds), token IDs, liquidity, volume, quotes, and a versioned canonical envelope. Unpublished values remain null or empty lists; no kickoff, market type, or probability is invented.
Selected fields from a snapshot captured on 2026-10-16 (prices are historical, not current quotes):
{"recordKey": "polymarket:0xe0f7727d3f05d038618bc44f8cc2e14cefa02016b53805028e82070eb5c84a67","eventSlug": "nba-mia-orl-2026-10-16","question": "Heat vs. Magic","sportsMarketType": "moneyline","line": null,"outcomes": ["Heat", "Magic"],"outcomePrices": [0.415, 0.585],"liquidity": 51561.2906}
eventStartTime is the reported kickoff when present; eventListingTime is when the event was listed. canonical retains conservative market/participant evidence: ambiguous or unsupported interpretations remain unknown or quarantined rather than being forced into a match.
orderBooks is null when disabled. When enabled it follows clobTokenIds order; each successful book contains bids, asks, timestamps, and reported trading increments. A failed token has a tokenId and sanitized error, while its market is retained. raw is null unless enabled.
The separate OUTPUT summary reports written records, event counts, coverage counters, warnings, and succeeded, succeeded_empty, succeeded_partial, or failed. Collection or validation failures publish no buffered markets. Book failures preserve markets and report a partial result. A dataset charge limit can also produce a partial result, including zero written records; this is not reported as a genuine empty query. Coverage counters describe every market considered during collection, not necessarily the rows ultimately written.
FAQ
What sports can I collect? Use the default sports tag, another supported source tag, or exact event slugs. Market availability and published metadata vary by sport.
Are all markets moneylines, spreads, or totals? No. Keep marketTypes empty for all source types; use explicit values to restrict the result. Unknown source types are preserved, not guessed.
Is this a trading service? No. It collects snapshots; it does not place trades or guarantee game status, executable prices, settlement equivalence, or cross-book matches.
What are the limits? Up to 5,000 unique markets per run (maxResults) and up to 50 exact event slugs. Turning on order books makes runs slower.
Price
See the Actor's Pricing tab on Apify for current rates.
For support, contact Apify support and include the Actor run ID.