Smarkets Betting Exchange Scraper - Odds, Volume & Results avatar

Smarkets Betting Exchange Scraper - Odds, Volume & Results

Pricing

from $1.40 / 1,000 results

Go to Apify Store
Smarkets Betting Exchange Scraper - Odds, Volume & Results

Smarkets Betting Exchange Scraper - Odds, Volume & Results

Back and lay odds with available stake, last traded prices and matched volume from the Smarkets betting exchange for football, tennis, US sports, horse racing, politics and more, plus settled results and traded-price history (candles, pre-play closing odds).

Pricing

from $1.40 / 1,000 results

Rating

0.0

(0)

Developer

Artsiom Kunitsyn

Artsiom Kunitsyn

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

2

Monthly active users

3 days ago

Last modified

Categories

Security

Limited permissions

Share

Exchange odds from Smarkets, the UK betting exchange, for football, tennis, US sports, horse and greyhound racing, golf, cricket, darts, politics and more:

  • Back and lay odds with the stake available at each price (an order-book ladder), the last traded price and the matched volume of every market.
  • Results: finished events with the score and which selection won, lost or was voided, plus the last traded price.
  • Traded-price history: price candles per selection from before the start to the final whistle, with the last pre-play price (the exchange's closing odds), first traded, highest and lowest odds and the stake traded.

Exchange prices are the sharpest public odds there are: no bookmaker margin, real money on both sides. Use them as a benchmark against sportsbook lines, to measure closing-line value, or to track political and entertainment markets.

⚖️ Strengths and limits

Read this before you run a big job, so you know exactly what you get.

Strengths

  • Real exchange prices. Back and lay odds with the stake available, last traded price and matched volume, from Smarkets' own public API.
  • Closing prices and price charts. priceHistory gives the last pre-play price and traded-price candles.
  • Wide coverage. 26 sports and categories, including politics and entertainment.
  • Light. A default run takes a few seconds; no login, no proxy needed.

Limits

  • Only about 10 days of history. Smarkets drops finished events after about 10 days, so results and priceHistory can't go further back. For a longer archive, schedule your own runs.
  • Snapshots, not a live stream. Each run shows prices at that moment. There's no stored order-book history: priceHistory holds traded prices only, and only candles with trades.
  • Candle size isn't your choice. Smarkets returns about 480 candles per request, so a longer window means longer candles.
  • No incremental mode. Every run returns everything in scope. To track changes, compare runs on external_id and scraped_at yourself.
  • Thin markets have gaps. Lower leagues and far-off outrights often show one side only, or no price at all, and available stakes can be small. This is one exchange's liquidity, not the whole market.
  • One row per selection, so rows add up. Every upcoming football match, main markets only, was about 30,000 rows (about $60 at $2 per 1,000 on the free plan). Results for all sports passed 361,000 rows in a 30-minute test (over $700). markets: all multiplies this: about 80 markets per football match. Use sports, dates and Max results.
  • Speed is limited by Smarkets. 60 requests per minute per IP: that football run took about 8 minutes, or about 4 with Apify Proxy.
  • GBP only. Stakes and volumes are in pounds, odds are decimal.
  • Results come oldest first, because Smarkets only sorts that way, so a capped results run gives the oldest events in your window.
  • Read-only. It doesn't place bets.
  • It depends on Smarkets' public API. If that changes, the actor stops working until it's updated. Not affiliated with Smarkets.

What you get

One row per selection of each market. Every row carries the event (event_name, competition, sport, start_time, event_state, event_url, venue), the live or final score where there is one (home_score, away_score, match_period, scores) and the market (market_name, market_type, market_volume_gbp).

entityType: "markets" (prices, the default)

FieldExample
event_name, competition, market_nameRC Lens vs Sporting, UEFA Champions League, Full-time result
contract_name, contract_typeLens, HOME
back_odds, back_probability, back_stake_available_gbp5.6, 17.86, 112.79
lay_odds, lay_probability, lay_stake_available_gbp5.8, 17.24, 71.81
back_depth, lay_depth[{"odds": 5.6, "probability": 17.86, "stake_gbp": 112.79}, {"odds": 5.4, ...}]
last_traded_odds, last_traded_at5.6, 2026-10-13T17:51:07Z
market_volume_gbp74927

Back odds are what you get backing a selection (the best price on offer); lay odds are what you pay laying it. Stake is the backer's stake in GBP available at the best price. Standing orders at the price limits (odds 1.0001 and 10000), which many markets carry, are left out.

entityType: "results"

Finished events with outcome per selection (winner, loser, voided), the final score and score breakdown (halves, periods, sets, extra time), actual start and end times, the last traded price and the market volume.

entityType: "priceHistory"

FieldExample
event_name, contract_name, outcomeLiverpool vs Man City, Man City, winner
first_traded_odds, preplay_last_odds, last_traded_odds2.36, 2.1, 1.0
highest_odds, lowest_odds3.15, 1.0
total_trades, traded_back_stake_gbp1975, 145004.49
history_from, history_to, bucket_seconds48 hours before kick-off, the final whistle, 180
candles[{"time": "2026-10-09T15:57:00Z", "open_odds": 3.05, "high_odds": 3.05, "low_odds": 3.05, "close_odds": 3.05, "close_probability": 32.79, "trades": 1, "back_stake_gbp": 0.74}, ...]

Candle length follows the window: Smarkets returns about 480 candles per request, so a 48-hour window plus the match gives candles of a few minutes. Only candles with trades are included.

How to use it

  • Current prices for the next events, every sport (the default): just run it.
  • Premier League match odds and goal lines for the weekend: sports Football (soccer), dateFrom: 2026-10-17, dateTo: 2026-10-19, clear Max results. Main markets are kept by default.
  • Every market of one match: eventIds: ["https://smarkets.com/event/45317409/..."], markets: all.
  • Yesterday's football results with closing exchange prices: entityType: "results", sports Football (soccer), dateFrom = yesterday, dateTo = yesterday.
  • Closing odds and price charts for settled races: entityType: "priceHistory", sports Horse racing, historyHoursBefore: 24.
  • Outrights (tournament winners, elections): eventScope: outrights or all.
  • Monitoring: schedule a markets run every few minutes and diff on external_id + scraped_at.

Input

FieldWhat it does
entityTypemarkets, results or priceHistory.
sportsAny of 26 sports and categories (football, tennis, basketball, American football, baseball, ice hockey, horse racing, greyhound racing, golf, cricket, rugby, darts, snooker, boxing, MMA, esports, politics, current affairs, TV & entertainment...). Empty = all.
eventScopematches (matches and races), outrights or all.
eventIdsSpecific events by id or URL; overrides sports, dates and states.
dateFrom, dateToStart-time window: a date (2026-10-31) or a UTC time (2026-10-31T18:00:00Z).
eventStatesOverride the listed states (upcoming, live, ended).
marketsmain (winner, over/under, handicaps, both teams to score, draw no bet, place, plus each event's headline market) or all.
marketTypesExact market types instead, e.g. CORRECT_SCORE, PLAYER_PASSING_YARDS.
includeOrderBook, orderBookDepthPrices: back/lay ladder on or off, and how many levels (default 3).
historyHoursBeforePrice history: how long before the start the window opens (default 48).
maxItemsRow cap, 50 by default. Clear it for everything.
proxyConfiguration, proxyLanesOptional Apify Proxy, spread over several sessions to go faster.
impersonateBrowser fingerprint (default chrome). Change only if requests start failing.

Good to know

  • Finished events are kept for about 10 days. After that Smarkets no longer serves them, so results and priceHistory cover the last ~10 days. Schedule a daily run to build your own archive.
  • Speed. Smarkets allows 60 requests per minute per IP, and one request covers up to 100 markets. Every upcoming football match on Smarkets (about 1,000 events, 30,000 rows of main markets) takes about 8 minutes without a proxy and about 4 minutes with Apify Proxy on 6 sessions; each proxy session gets its own budget.
  • Prices are in GBP, the exchange's currency. Odds are decimal; probabilities are in percent.
  • Football has about 80 markets per match and an NFL game more than 100 with player props, so markets: all gives many rows per event.
  • No login needed, and no proxy needed except to go faster.

FAQ

What is the difference between back and lay odds? Backing is betting that a selection wins, at the best odds someone is offering. Laying is betting against it. The gap between the two is the exchange's spread.

Why is back_odds empty for some selections? No one is offering a price on that side right now. Thin markets (lower leagues, far-off outrights) often have one side only.

What is preplay_last_odds? The last traded price before the scheduled start, i.e. the exchange's closing price. Comparing it with the odds you bet at gives your closing-line value.

Can I get older results? Only what Smarkets still lists (about 10 days). Older events return nothing.

Feedback and reviews

Missing a field or hit a problem? Open an issue on the Issues tab: issues are answered promptly.

If this Actor is useful to you, please leave a short review on this page. Reviews help other people find it and help decide what to improve next. Thank you!

  • Action Network Scraper — US sportsbook odds, public betting splits, line movement, props, injuries and futures.
  • Sports Odds History Scraper — opening and closing lines per sportsbook since 2021 and ATS results since 2006.
  • TennisExplorer Scraper — tennis results, bookmaker odds per match, match statistics and point-by-point.
  • Kalshi & Polymarket Scraper — prediction market odds, settled results and price history for sports, politics, economics and crypto.
  • SofaScore Scraper — results, team statistics, lineups with player ratings, incidents and odds for football, basketball, hockey, tennis and 17 more sports.
  • Flashscore Scraper — results, statistics, lineups, incidents and opening/closing odds from ~20 bookmakers for 17 sports.