Flashscore Betting Odds Extractor avatar

Flashscore Betting Odds Extractor

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Flashscore Betting Odds Extractor

Flashscore Betting Odds Extractor

Extract live and opening betting odds from Flashscore for football and basketball. Get odds by bookmaker, bet type, and match for odds comparison, arbitrage detection, and prediction models.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Extractify Labs

Extractify Labs

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

18 hours ago

Last modified

Categories

Share

Extract live and opening betting odds from Flashscore for football and basketball matches. Get bookmaker-level odds across multiple bet types — 1X2, over/under, Asian handicap, draw no bet, double chance, and European handicap — in a structured JSON format ready for odds comparison, arbitrage detection, and prediction model pipelines. No proxy required.

Features

  • Multi-bookmaker odds — Returns all bookmakers available for each match via the Flashscore odds feed
  • 8 bet types — HOME_DRAW_AWAY (1X2), HOME_AWAY (two-way), OVER_UNDER, ASIAN_HANDICAP, DRAW_NO_BET, DOUBLE_CHANCE, EUROPEAN_HANDICAP, BOTH_TEAMS_TO_SCORE
  • Opening odds + live odds — Both current and opening lines returned per selection, enabling line movement tracking
  • Football and basketball — Works for any football or basketball match on Flashscore
  • Flexible input — Accept Flashscore match page URLs or raw match IDs (same IDs output by Flashscore Extractor)
  • Bet type filter — Limit output to specific bet types to reduce data volume and cost
  • Structured JSON output — Nested bookmakers → markets → odds hierarchy, suitable for direct database ingestion
  • No proxy required — Communicates directly with Flashscore's odds API; no residential proxy costs
  • $1 per 1,000 results — Pay-per-result billing; one result = one match item

Use Cases

Odds Comparison Platforms Aggregate live and opening odds from multiple bookmakers in a single actor run. The nested bookmakers → markets → odds structure maps cleanly to comparison UI components. Feed results into a database and surface best-price tables in real time.

Arbitrage Detection Identify mispriced markets by comparing odds across bookmakers for the same selection. Opening odds establish the market's initial line; current odds reveal where the market has moved. Example: if Bookmaker A prices Home at 2.10 and Bookmaker B at 2.40, the spread may support a surebet.

Prediction Model Training Use opening odds as the market's consensus probability at match start. Compare your model's implied probability to the market's implied probability to detect edge. Feed opening_odds into your baseline and odds as the closing line.

Line Movement Analysis Track how bookmakers adjust lines from open to match time. By comparing opening_odds with odds per selection and bookmaker, you can infer sharp money activity and market direction.

Real-Time Odds Monitoring Schedule actor runs at regular intervals to capture a time series of odds snapshots. Trigger alerts when the difference between current and opening odds exceeds a threshold.

Sports Media and Content Feeds Power odds tickers, matchup preview articles, and editorial content with live bookmaker lines directly from Flashscore.

Input Parameters

ParameterTypeRequiredDefaultDescription
startUrlsarrayConditionalFlashscore match page URLs. Required if matchIds is not provided. Example: https://www.flashscore.com/match/football/arsenal-west-ham/8Cxbx9Wh/
matchIdsarrayConditionalFlashscore match IDs (e.g. ["8Cxbx9Wh", "8r8XHz43"]). These are the same IDs in the match_id field of Flashscore Extractor output. Either startUrls or matchIds must be provided.
betTypesarrayNoall typesFilter results to specific bet types. Accepted values: HOME_DRAW_AWAY, HOME_AWAY, OVER_UNDER, ASIAN_HANDICAP, DRAW_NO_BET, DOUBLE_CHANCE, EUROPEAN_HANDICAP, BOTH_TEAMS_TO_SCORE. Omit to return all available bet types.
maxItemsintegerNounlimitedMaximum number of match items to return. Each match is one item.

Note on bookmaker availability: Bookmakers published for each match depend on the geographic location of the Apify server running the actor. Flashscore validates requests against the actual client IP — this cannot be overridden. When run on Apify's infrastructure, the actor returns bookmakers available in the European/UK region.

Example Input

Using match URLs:

{
"startUrls": [
{ "url": "https://www.flashscore.com/match/football/arsenal-west-ham/8Cxbx9Wh/" }
],
"betTypes": ["HOME_DRAW_AWAY", "OVER_UNDER"],
"maxItems": 100
}

Using match IDs (from Flashscore Extractor output):

{
"matchIds": ["8Cxbx9Wh", "8r8XHz43"],
"betTypes": ["HOME_DRAW_AWAY"]
}

Output Format

One item per match. Each item contains top-level match metadata and a bookmakers array with nested markets and odds.

Top-Level Fields

FieldTypeExampleNotes
match_idstring"8Cxbx9Wh"Flashscore match ID; cross-reference with Flashscore Extractor
match_urlstring"https://www.flashscore.com/match/football/arsenal-west-ham/8Cxbx9Wh/"Full URL for startUrls input; redirect URL (/match/?mid=…) for matchIds input
sportstring"football""football" or "basketball". Absent when matchIds input is used.
scraped_atstring"2026-05-11T15:24:38+00:00"ISO 8601 UTC timestamp of extraction
bookmakersarrayArray of bookmaker objects (see below)

Bookmaker Object

FieldTypeExampleNotes
bookmaker_idinteger16Flashscore internal bookmaker ID
bookmaker_namestring"bet365"Bookmaker display name
marketsarrayArray of market objects (see below)

Market Object

FieldTypeExampleNotes
bet_typestring"HOME_DRAW_AWAY"Bet type category (see Input Parameters for full list)
bet_scopestring"FULL_TIME"Match period the market covers: FULL_TIME = 90 minutes; FULL_TIME_OVER_TIME = includes extra time
has_live_bettingbooleanfalseWhether in-play odds are available for this market. Always false in v1 — see Limitations.
oddsarrayArray of odds objects (see below)

Odds Object

FieldTypeExampleNotes
selectionstring"HOME", "DRAW", "AWAY", "OVER", "UNDER"Outcome label
oddsfloat2.1Current decimal odds
opening_oddsfloat or null2.25Opening line at market open; null if not available
handicapfloat or null2.5Handicap value for OVER_UNDER and ASIAN_HANDICAP bets; null for all other bet types
is_activebooleantrueWhether odds are currently live

Example Output

{
"match_id": "8Cxbx9Wh",
"match_url": "https://www.flashscore.com/match/football/arsenal-west-ham/8Cxbx9Wh/",
"sport": "football",
"scraped_at": "2026-05-11T15:24:38.247353+00:00",
"bookmakers": [
{
"bookmaker_id": 16,
"bookmaker_name": "bet365",
"markets": [
{
"bet_type": "HOME_DRAW_AWAY",
"bet_scope": "FULL_TIME",
"has_live_betting": false,
"odds": [
{
"selection": "HOME",
"odds": 6.0,
"opening_odds": 5.5,
"handicap": null,
"is_active": true
},
{
"selection": "DRAW",
"odds": 4.2,
"opening_odds": 4.33,
"handicap": null,
"is_active": true
},
{
"selection": "AWAY",
"odds": 1.55,
"opening_odds": 1.62,
"handicap": null,
"is_active": true
}
]
},
{
"bet_type": "OVER_UNDER",
"bet_scope": "FULL_TIME",
"has_live_betting": false,
"odds": [
{
"selection": "OVER",
"odds": 1.87,
"opening_odds": 1.9,
"handicap": 2.5,
"is_active": true
},
{
"selection": "UNDER",
"odds": 1.87,
"opening_odds": 1.85,
"handicap": 2.5,
"is_active": true
}
]
}
]
}
]
}

Chaining with Flashscore Extractor

This actor chains directly with Flashscore Extractor. The match_id field in Flashscore Extractor output is the same ID used by the matchIds input here. A typical pipeline:

  1. Run Flashscore Extractor with your sport, day offset, and league filter to get a list of match items
  2. Extract the match_id values from the output
  3. Pass them as matchIds to Flashscore Betting Odds Extractor to get betting odds per match

No additional URL construction is needed. Team names and match metadata from Flashscore Extractor can be joined to this actor's output using match_id.

Limitations

  • No team names in output — Home team and away team names are not available from the odds API without an additional request per match. To get team names, use Flashscore Extractor and join on match_id. This is a known v1 limitation.
  • No match date or league name — Match date/time and competition name are not included in v1 output. Join with Flashscore Extractor output using match_id to enrich your dataset.
  • sport absent for matchIds input — When you provide match IDs rather than URLs, the sport field is not present in the output (there is no URL to parse the sport from). Use startUrls input if you need the sport field, or join with Flashscore Extractor on match_id.
  • has_live_betting always false — The current API response does not include in-play betting availability. This field is present in the output schema for forward compatibility and will be populated in a future version.
  • Bookmaker availability is geo-fixed — The bookmakers returned are those available from Apify's server location (European/UK region). This cannot be changed via input parameters.
  • Football and basketball only — Other sports available on Flashscore (tennis, hockey, etc.) may work but are not tested or supported in v1.
  • Point-in-time snapshot — Each run captures odds at the moment of execution. The actor does not stream or poll odds changes. For continuous monitoring, schedule repeated runs.
  • No historical odds — Odds from completed matches are not retained after the match ends. Archive your results if you need historical data.

FAQ

Q: Why are some bookmakers not showing in my results?

A: Bookmaker availability on Flashscore is determined by the geographic location of the server making the request. The Flashscore odds API validates requests against the actual client IP address, and there is no way to override this. When you run this actor on Apify's infrastructure, you will receive bookmakers available in the European/UK region.

Q: What is the difference between odds and opening_odds?

A: opening_odds is the line published when the betting market first opened (typically days before the match). odds is the current line at the time the actor ran. The difference between them reveals line movement: if opening_odds = 2.5 and odds = 2.1, the bookmaker has moved the line significantly, which often signals sharp money on the other side. For arbitrage detection, compare odds across bookmakers. For line movement analysis, compare opening_odds to odds for each selection.

Q: Does this actor require a proxy?

A: No. This actor communicates directly with Flashscore's odds API without a proxy. No residential proxy costs apply.

Q: Why is sport missing from some items?

A: When you provide match IDs via the matchIds parameter rather than full match URLs, there is no URL to parse the sport name from, so the sport field is absent. To get the sport field in output, either use startUrls with full Flashscore match page URLs, or join with Flashscore Extractor output on match_id.

Q: How do I get team names in the output?

A: Team names are not available from the odds API endpoint in v1. Run Flashscore Extractor to get match metadata (which includes home_team_name and away_team_name) and join the two datasets on match_id.

Q: What bet types are supported?

A: Eight bet types are supported: HOME_DRAW_AWAY (1X2), HOME_AWAY (two-way, common for basketball), OVER_UNDER, ASIAN_HANDICAP, DRAW_NO_BET, DOUBLE_CHANCE, EUROPEAN_HANDICAP, and BOTH_TEAMS_TO_SCORE. The actual types available for a given match depend on what Flashscore bookmakers publish. Use the betTypes input parameter to filter to specific types.

Q: One of my match IDs returned an empty bookmakers array. Why?

A: If a match ID is invalid or the match has no odds data on Flashscore (for example, the match has not opened for betting, or it is from a league that bookmakers do not cover), the actor returns an item with bookmakers: [] and continues processing remaining matches. No error is raised and the actor does not stop.

  • Flashscore Extractor — Extract match listings, scores, fixtures, and standings from Flashscore. Use this to discover match IDs and metadata, then feed them into this actor for odds data.
  • Flashscore Results — Historical match results and scores. Pair with odds data to build post-match analysis datasets and backtesting pipelines.
  • Flashscore Team Fixtures — Upcoming and past fixtures for a specific team. Use to identify which matches to pull odds for.
  • Flashscore Countries & Leagues — Discover all countries, leagues, and sports available on Flashscore.