Flashscore Basketball Live Matches
Pricing
from $1.00 / 1,000 results
Flashscore Basketball Live Matches
Scrape all live basketball matches from Flashscore. Returns scores, quarter breakdowns, per-quarter stats, starting five lineups, referees, and optional live 1x2 odds for every in-progress game — NBA, EuroLeague, ACB, and more. No proxy required.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Extractify Labs
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Share
🏀 Flashscore Basketball Live Matches scrapes every currently live basketball match from Flashscore and returns fully structured data — live scores, quarter-by-quarter breakdowns, team statistics, starting lineups, and optional live 1×2 odds — in a single on-demand run. No proxy required. Designed to run on a 1–5 minute Apify schedule as a real-time basketball data feed.
What data does this actor extract?
Each run returns one dataset item per live match. Every item contains 27 structured fields covering match identity, score, quarter model, venue, officials, and optional deep data.
Core match fields
| Field | Type | Example |
|---|---|---|
match_id | string | "lhiFkQyH" |
match_url | string | "https://www.flashscore.com/match/basketball/..." |
status | string | "LIVE" |
match_period | string or null | "3rd Quarter" |
quarter_minute | integer or null | 7 |
kickoff_time | string (ISO 8601 UTC) | "2026-04-18T19:30:00Z" |
home_team | string | "Boston Celtics" |
away_team | string | "Miami Heat" |
home_team_id | string or null | "vJj5pktK" |
away_team_id | string or null | "A1syuT3s" |
home_score | integer | 78 |
away_score | integer | 74 |
quarter_scores | array of objects | [{"home": 25, "away": 18}, {"home": 28, "away": 22}, {"home": 25, "away": 34}] |
round | string or null | "Regular Season" |
has_live_stream | boolean | false |
league | string | "USA: NBA" |
league_id | string | "EcZwBi3N" |
league_url | string | "/basketball/usa/nba/" |
venue | string or null | "TD Garden" |
venue_city | string or null | "Boston" |
referees | array of strings | ["Thompson A.", "Davis R.", "Wilson C."] |
scraped_at | string (ISO 8601 UTC) | "2026-04-18T21:32:07Z" |
Basketball-specific fields explained
quarter_scores — An array of per-quarter score objects, one entry per completed or in-progress quarter. Each object has home and away integer keys. The array grows as each quarter is played: a match in Q3 has three entries; a match that went to overtime has five entries. Use this to build quarter-by-quarter score visualisations.
quarter_minute — The elapsed time within the current quarter (0–10 minutes for regulation quarters; 0–5 minutes for overtime). This resets to 0 at the start of each new quarter. This differs from football's cumulative match_minute.
match_period — The current period label. Values: "1st Quarter", "2nd Quarter", "3rd Quarter", "4th Quarter", "Overtime", or a break label such as "Quarter Break". Null for matches in an undefined state.
referees — Basketball games have up to 3 officials. The array contains the name of each referee present in the feed. The array may be empty if the feed does not carry official names for the match.
Statistics array
statistics is populated when includeStatistics is true (the default). Each entry is one stat row for one period:
| Field | Type | Example |
|---|---|---|
period | string | "Match", "1st Quarter", "2nd Quarter" |
stat_name | string | "Field Goals", "3-Point %", "Rebounds" |
home_value | string | "32/68" |
away_value | string | "28/71" |
Basketball statistics include field goals (attempted/made), 3-point percentage, free throw percentage, rebounds (offensive and defensive), assists, blocks, steals, turnovers, and personal fouls — broken down by quarter and match total.
Lineups object
lineups is populated when includeLineups is true (the default):
{"home": [{"player_id": "rwVQyUb6","name": "Jayson","surname": "Tatum","shirt_number": 0,"position": "Forward","position_badge": "F","nationality": "USA","rating": "8.1","is_starter": true,"in_match_event": null}],"away": [ ... ]}
Each player object includes: player_id, name, surname, shirt_number, position, position_badge, nationality, rating, is_starter, in_match_event.
is_starter — true for the starting five players on each team (slot index ≤ 4 in the feed). Bench players have is_starter: false. Basketball uses a starting five, not a starting eleven as in football.
Odds object
odds is populated when includeOdds is true. Availability varies significantly by league — NBA matches are the most likely to be covered; regional leagues (EuroLeague, CBA, NBB, ACB) may return null even when the option is enabled.
{"bookmaker_id": "8","home": { "current": "1.85", "opening": "1.90", "change": "DOWN", "previous": "1.90" },"draw": { "current": "8.50", "opening": "8.00", "change": "UP", "previous": "8.00" },"away": { "current": "2.10", "opening": "2.05", "change": "UP", "previous": "2.05" }}
change is "UP", "DOWN", or null (no movement since opening).
Sample output
One complete item from a real run (EuroLeague match, live in Q3):
{"match_id": "lhiFkQyH","match_url": "https://www.flashscore.com/match/basketball/boston-celtics-vJj5pktK/miami-heat-A1syuT3s/?mid=lhiFkQyH","status": "LIVE","match_period": "3rd Quarter","quarter_minute": 7,"kickoff_time": "2026-04-18T19:30:00Z","home_team": "Barcelona","away_team": "Real Madrid","home_team_id": "vJj5pktK","away_team_id": "A1syuT3s","home_score": 78,"away_score": 74,"quarter_scores": [{ "home": 25, "away": 18 },{ "home": 28, "away": 22 },{ "home": 25, "away": 34 }],"round": "Regular Season","has_live_stream": false,"league": "SPAIN: ACB","league_id": "EcZwBi3N","league_url": "/basketball/spain/acb/","venue": "Palau Blaugrana","venue_city": "Barcelona","referees": ["Thompson A.", "Davis R.", "Wilson C."],"statistics": [{ "period": "Match", "stat_name": "Field Goals", "home_value": "32/68", "away_value": "28/71" },{ "period": "Match", "stat_name": "3-Point %", "home_value": "38%", "away_value": "41%" },{ "period": "Match", "stat_name": "Rebounds", "home_value": "34", "away_value": "29" },{ "period": "Match", "stat_name": "Assists", "home_value": "18", "away_value": "21" },{ "period": "1st Quarter", "stat_name": "Field Goals", "home_value": "11/22", "away_value": "8/20" },{ "period": "2nd Quarter", "stat_name": "Field Goals", "home_value": "12/24", "away_value": "9/25" }],"lineups": {"home": [{ "player_id": "rwVQyUb6", "name": "Nikola", "surname": "Mirotic", "shirt_number": 10, "position": "Forward", "position_badge": "F", "nationality": "Spain", "rating": "7.8", "is_starter": true, "in_match_event": null },{ "player_id": "kQ9mRpXv", "name": "Alex", "surname": "Abrines", "shirt_number": 0, "position": "Guard", "position_badge": "G", "nationality": "Spain", "rating": "7.1", "is_starter": false, "in_match_event": null }],"away": [{ "player_id": "d2UAI37M", "name": "Sergio", "surname": "Llull", "shirt_number": 23, "position": "Guard", "position_badge": "G", "nationality": "Spain", "rating": "8.2", "is_starter": true, "in_match_event": null }]},"odds": {"bookmaker_id": "8","home": { "current": "1.85", "opening": "1.90", "change": "DOWN", "previous": "1.90" },"draw": { "current": "8.50", "opening": "8.00", "change": "UP", "previous": "8.00" },"away": { "current": "2.10", "opening": "2.05", "change": "UP", "previous": "2.05" }},"scraped_at": "2026-04-18T21:32:07Z"}
Quick start
- Open the actor on the Apify Store.
- Leave all parameters at their defaults to get every live match with statistics and lineups included.
- (Optional) Set
includeOddstotrueto add live 1×2 odds per match. - (Optional) Set
maxItemsto a small number (e.g.2) for a test run. - Click Start. The actor completes in seconds and returns one dataset item per live match.
- Download results as JSON, CSV, Excel, or XML from the Dataset tab.
Sample input (test run with all data):
{"includeStatistics": true,"includeLineups": true,"includeOdds": true,"maxItems": 3}
Input parameters
All parameters are optional. Leave everything at the defaults to return all currently live matches with statistics and lineups.
| Parameter | Type | Default | Description |
|---|---|---|---|
includeStatistics | boolean | true | Fetch per-quarter team statistics: field goals, 3-point %, free throws, rebounds, assists, blocks, steals, turnovers, and fouls broken down by quarter and match total. Adds one API call per live match. Set to false for score-only runs. |
includeLineups | boolean | true | Fetch starting five and bench players for both teams: shirt numbers, positions, ratings, and nationalities. Adds one API call per live match. Set to false for score-only runs. |
includeOdds | boolean | false | Fetch live 1×2 odds with current value, opening value, and movement direction. Adds one API call per live match. Coverage varies by league — NBA is most likely covered; regional leagues may return null. |
maxItems | integer | unlimited | Maximum number of live matches to return. Leave unset to return all currently live matches. Minimum: 1. Useful for test runs. |
proxyConfiguration | object | {"useApifyProxy": false} | Apify proxy configuration. Not needed for normal use — Flashscore APIs do not block direct requests. Enable only if your network restricts outbound connections. |
Scheduling for real-time monitoring
This actor is designed to be run on a recurring schedule to keep your data continuously up to date.
Recommended cadence: every 1–5 minutes during live game windows. A full run with all options enabled for a typical slate of live basketball games makes approximately 5 HTTP requests per match and typically completes in under 30 seconds.
To set up a schedule:
- Open Apify Scheduler in the Apify Console.
- Create a new schedule pointing to this actor.
- Set the interval to every 1–5 minutes using a cron expression (e.g.
*/2 * * * *for every 2 minutes). - Each run replaces the previous dataset — or use the Apify Dataset API to append results to your own storage.
How often should I run this actor?
For live scores and quarter breakdowns, every 1–2 minutes is sufficient. Statistics and lineups update less frequently — every 3–5 minutes is appropriate. If you have includeOdds: true, odds can change quickly during games; every 1 minute is recommended for near-real-time odds tracking. Basketball games run 2–2.5 hours, so a typical live monitoring window is shorter than football.
Use cases
Live scores dashboard: Schedule the actor every 2 minutes to power a basketball dashboard showing all in-progress matches worldwide. Each item includes the current score, quarter, elapsed time within the quarter, and the cumulative quarter-by-quarter breakdown — everything needed to render a live scorecard.
In-play betting and odds tracking: Enable includeOdds and run every 1–2 minutes to feed your in-play betting model with live 1×2 odds alongside field goal percentages, rebounds, and turnovers. The quarter-by-quarter score history provides context for momentum shifts.
Fantasy sports platforms: Combine lineups (starting five with shirt numbers, positions, and ratings) with per-quarter statistics to power real-time fantasy scoring during live games. The is_starter flag identifies the starting five so your scoring engine can apply the correct multipliers.
Sports media and live commentary apps: Monitor quarter_scores and quarter_minute to surface quarter-end scores and mid-quarter updates in broadcast applications. The referees array (up to 3 officials) and venue details round out the context for editorial content.
Betting analytics research: Capture match statistics for all available basketball leagues worldwide — not just NBA. Over a full basketball day, the actor covers hundreds of matches across Europe, Americas, and Asia. Use per-quarter stat breakdowns to build in-game momentum models.
Data archiving and training sets: Run the actor throughout a game day and collect the output snapshots. Each snapshot records the in-progress state of all live matches at that moment. A series of snapshots across a game constitutes a time-series record suitable for model training.
Notes and limitations
- Basketball only. This actor extracts basketball matches exclusively using Flashscore's basketball feed (
sport_id=3). For live football matches with events, xG, and possession, use the sibling Flashscore Live Matches actor. - Live matches only. The actor returns only currently in-progress matches (
status: "LIVE"). For historical results, upcoming fixtures, or a wider date window, use the Flashscore Extractor actor. - No play-by-play events. The basketball feed does not provide basket-by-basket or foul-by-foul event timelines. The
eventsfield is intentionally absent. Use thequarter_scoresarray for scoring progression. - Odds coverage varies by league. Live 1×2 odds are most reliably available for NBA matches. Regional leagues (EuroLeague, CBA, NBB, ACB) may return
nulleven whenincludeOdds: true. This is a Flashscore data availability constraint, not an actor bug. - Referees may be absent. The
refereesfield is always an array but may be empty if the feed does not provide official names for the match. - Quarter scores grow over time. The
quarter_scoresarray reflects quarters completed or in progress at the time of the run. A match in Q1 returns one entry; a match that finished overtime returns five entries. - One item per match, not a single JSON blob. Each live match is its own dataset record, enabling Apify's native per-record webhooks, dataset filtering, and pagination.
- Point-in-time snapshot. Each run captures the current state of all live matches at that moment. The actor does not push updates continuously. Schedule it for polling-based monitoring.
Frequently asked questions
How often should I run this actor to get live basketball scores?
Every 1–2 minutes is a good baseline for live scores and quarter data. If you only need quarter-end snapshots, every 5 minutes is sufficient. For near-real-time odds, run every 1 minute. Basketball games last 2–2.5 hours, so a typical evening monitoring window covers 3–4 game hours.
Does this actor cover NBA matches?
Yes. NBA is the most common league returned during North American prime time. The actor covers all basketball leagues indexed by Flashscore — NBA, EuroLeague, Liga ACB, CBA, NBB, and dozens of domestic leagues worldwide. The feed returns all leagues currently live at the time of the run; there is no league filter in the current version.
Why are odds empty (null) for some matches?
Odds availability depends on the geographic region of the Apify server running the actor, and on whether Flashscore serves bookmaker data for that league. NBA odds are most likely to be present. For regional leagues, odds may be null even when includeOdds: true. This is a Flashscore data constraint. If live odds appear when you browse Flashscore directly from your own network, they will likely be present here too.
How is quarter_minute different from a match clock?
quarter_minute is the elapsed time within the current quarter only (0–10 minutes for regulation quarters, 0–5 for overtime). It resets to 0 at the start of each new quarter. This is different from football's cumulative match_minute, which counts from kickoff without resetting. Use match_period + quarter_minute together to locate the exact point in the game.
Does this actor work without a proxy?
Yes. The actor fetches directly from Flashscore's internal feed APIs — no residential or datacenter proxy is required. You pay only for Apify compute, not proxy bandwidth. Enable the proxyConfiguration option only if your network restricts outbound connections.
How is this different from the multi-sport FlashScore Scraper Live actor?
Multi-sport actors prioritise breadth across many sports but return shallower data per match. This actor is basketball-specific and returns the full depth: quarter-by-quarter scores with individual quarter objects, per-quarter team statistics, the starting five with bench players, and 3-official referees arrays. If you only need basketball and want the complete picture, this actor is the right choice.
How is this different from the Flashscore Extractor or Flashscore Live Matches actors?
The Flashscore Extractor covers historical results and upcoming fixtures but returns only basic listing data (teams, score, status). The Flashscore Live Matches actor covers live football only with goal events, xG, and possession stats.
This actor specialises in live basketball depth: quarter-by-quarter breakdowns, basketball-specific statistics (field goals, rebounds, assists), starting five lineups, and live odds — for every basketball match in progress worldwide.
Related actors
- Flashscore Live Matches — Live football matches with goal/card/substitution events, xG, possession, starting XI, and live 1×2 odds. Use this for live football; use the basketball actor for live basketball.
- Flashscore Extractor — Football and basketball match listings, results, and fixtures across a 14-day window. Use this for historical and scheduled data; use the live matches actors for real-time in-progress depth.