# Flashscore Basketball Box Scores & Team Stats Scraper (`extractify-labs/flashscore-basketball-match-stats`) Actor

Extract basketball match box scores, player statistics, and quarter-by-quarter team performance data from Flashscore. Covers FG%, 3P%, FT%, rebounds, assists, steals, blocks, and 21 per-player stats. No proxy required.

- **URL**: https://apify.com/extractify-labs/flashscore-basketball-match-stats.md
- **Developed by:** [Extractify Labs](https://apify.com/extractify-labs) (community)
- **Categories:** News, Other
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Flashscore Basketball Box Scores & Team Stats Scraper

Extract detailed basketball match statistics from Flashscore — **21 per-player box score fields** and **per-quarter team performance metrics** — for any completed or live basketball match. Supply Flashscore match URLs or raw match IDs; the actor returns one structured item per match with a full nested players array and team statistics breakdown.

> **Data source:** Flashscore internal feed endpoints (`df_st_1` for team stats, `df_psn_1` for player box scores). No proxy required.

---

### What basketball data can you extract?

#### Player box scores (21 statistics per player)

For every player on both teams, the actor returns:

| Stat group | Fields |
|-----------|--------|
| **Identity** | `player_name`, `team`, `team_abbreviation`, `player_url`, `nationality`, `height_cm` |
| **Scoring** | `points`, `fg_made`, `fg_attempted`, `fg2_made`, `fg2_attempted`, `fg3_made`, `fg3_attempted`, `ft_made`, `ft_attempted` |
| **Rebounding** | `total_rebounds`, `offensive_rebounds`, `defensive_rebounds` |
| **Playmaking** | `assists`, `turnovers` |
| **Defense** | `steals`, `blocks`, `blocks_against`, `personal_fouls`, `technical_fouls` |
| **Efficiency** | `plus_minus`, `minutes` |

Per-player fields that are not recorded for a given match (e.g. `blocks_against`, `technical_fouls`) are **omitted** from that player's object — they will not appear as zero or null.

#### Team statistics (per quarter and match total)

For each period (`Match`, `1st Quarter`, `2nd Quarter`, `3rd Quarter`, `4th Quarter`, `OT`), the actor returns rows across three categories:

- **Scoring:** Field goals %, 3-point field goals %, Free throws %
- **Rebounds:** Total rebounds, Offensive rebounds, Defensive rebounds
- **Other:** Assists, Blocks, Steals, Turnovers, Personal fouls

---

### Key features

- **21 player statistics per match** — complete box score for all players on both teams
- **Per-quarter team statistics** — FG%, 3P%, FT%, rebounds, assists, blocks, steals, turnovers, fouls broken down by quarter and match total
- **Flexible input** — supply Flashscore match URLs (`startUrls`) or raw 8-character match IDs (`matchIds`), or both
- **Selective data fetching** — toggle team stats and player box scores independently; each toggle corresponds to one HTTP request per match
- **No proxy required** — direct requests to Flashscore feed APIs; 2 requests per match in the default configuration
- **Covers all basketball leagues** — NBA, EuroLeague, national leagues, and any other basketball sport on Flashscore
- **Clean, absent-field output** — missing player stats are omitted (not null), compatible with strict dataset schema validation

---

### Limitations

| Limitation | Detail |
|-----------|--------|
| **Final scores not available** | `home_score` and `away_score` are not present in the Flashscore `df_st_1` historical feed. This actor does not output a final score field. |
| **Quarter scores not available** | `quarter_scores` is always an empty array (`[]`). The per-quarter score data (`IG÷`/`IH÷` fields) exists only in live feeds, not in the historical `df_st_1` endpoint used by this actor. |
| **Team names require player stats** | `home_team` and `away_team` are sourced from the player stats feed (`df_psn_1`). If `includePlayerStats` is disabled, team names will be absent from output. |
| **Height data quality** | `height_cm` is sourced directly from Flashscore. For some non-NBA leagues the field contains placeholder values (e.g. `102`). If the value appears implausible, treat it as not recorded. |
| **Point-in-time snapshot** | Each run captures data at the moment of execution. The actor does not subscribe to live updates. |
| **Basketball only** | Sport ID 3 (basketball). For football or other sports, use the relevant Flashscore actor. |

---

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `startUrls` | array | Yes (if `matchIds` absent) | — | Flashscore basketball match page URLs. The match ID is extracted from the URL path or `?mid=` query parameter. |
| `matchIds` | array | Yes (if `startUrls` absent) | — | Raw Flashscore match IDs — 8-character alphanumeric strings (e.g. `"OxuYoJH6"`). |
| `includeTeamStats` | boolean | No | `true` | Fetch per-quarter team statistics. Disabling skips the `df_st_1` feed request (one fewer HTTP request per match). |
| `includePlayerStats` | boolean | No | `true` | Fetch per-player box scores. Disabling skips the `df_psn_1` feed request. Also removes `home_team` and `away_team` from output. |
| `maxItems` | integer | No | (unlimited) | Maximum number of matches to process. Leave blank for no limit. |

**Validation rules:**
- At least one of `startUrls` or `matchIds` must be provided and non-empty.
- At least one of `includeTeamStats` or `includePlayerStats` must be `true`. If both are `false`, the actor exits immediately with an error.

#### Supported URL formats

The actor accepts two Flashscore URL formats:

**Format A — with `?mid=` query parameter:**
````

https://www.flashscore.com/match/basketball/new-york-knicks-WCNO4nbt/philadelphia-76ers-vwRW2QSh/?mid=OxuYoJH6

```
Match ID extracted from `?mid=OxuYoJH6`.

**Format B — match ID in trailing path segment:**
```

https://www.flashscore.com/match/basketball/knicks-76ers-OxuYoJH6/

````
Match ID extracted from the final 8-character path segment.

URLs from which a match ID cannot be extracted are logged as warnings and skipped.

#### Sample input (both toggles enabled)

```json
{
  "matchIds": ["OxuYoJH6", "nRQtuO9m"],
  "includeTeamStats": true,
  "includePlayerStats": true
}
````

#### Sample input (player stats only, from URL)

```json
{
  "startUrls": [
    "https://www.flashscore.com/match/basketball/new-york-knicks-WCNO4nbt/philadelphia-76ers-vwRW2QSh/?mid=OxuYoJH6"
  ],
  "includeTeamStats": false,
  "includePlayerStats": true
}
```

***

### Output fields

#### Top-level fields (one item per match)

| Field | Type | Always present | Description |
|-------|------|---------------|-------------|
| `match_id` | string | Yes | Flashscore internal match identifier (8 characters) |
| `match_url` | string | Yes | Flashscore match page URL |
| `home_team` | string | Only when `includePlayerStats: true` | Full home team name |
| `away_team` | string | Only when `includePlayerStats: true` | Full away team name |
| `quarter_scores` | array | Yes | Always `[]` — see Limitations |
| `team_stats` | array | Only when `includeTeamStats: true` | Team statistics rows (see below) |
| `players` | array | Only when `includePlayerStats: true` | Player box scores (see below) |
| `scraped_at` | string | Yes | ISO 8601 UTC timestamp |

#### `team_stats[]` element fields

| Field | Type | Example | Description |
|-------|------|---------|-------------|
| `period` | string | `"Match"` | Period label: `"Match"`, `"1st Quarter"`, `"2nd Quarter"`, `"3rd Quarter"`, `"4th Quarter"`, `"OT"` |
| `category` | string | `"Scoring"` | Stat group: `"Scoring"`, `"Rebounds"`, `"Other"` |
| `stat_name` | string | `"Field goals %"` | Stat label from Flashscore feed |
| `home_value` | string | `"50.63%"` | Home team value (raw string — may include `%`) |
| `away_value` | string | `"45.33%"` | Away team value |

#### `players[]` element fields

| Field | Type | Notes |
|-------|------|-------|
| `team` | string | Full team name |
| `team_abbreviation` | string | E.g. `"NYK"`, `"PHI"` |
| `player_name` | string | Display name as shown on Flashscore |
| `player_url` | string | Relative Flashscore player profile URL |
| `nationality` | string | Player nationality |
| `height_cm` | integer | Height in centimetres; absent if not recorded |
| `points` | integer | Points scored |
| `total_rebounds` | integer | Total rebounds |
| `assists` | integer | Assists |
| `minutes` | string | Minutes played in `MM:SS` format |
| `fg_made` | integer | Field goals made |
| `fg_attempted` | integer | Field goals attempted |
| `fg2_made` | integer | 2-point field goals made |
| `fg2_attempted` | integer | 2-point field goals attempted |
| `fg3_made` | integer | 3-point field goals made |
| `fg3_attempted` | integer | 3-point field goals attempted |
| `ft_made` | integer | Free throws made |
| `ft_attempted` | integer | Free throws attempted |
| `plus_minus` | integer | Plus/minus; absent if not recorded |
| `offensive_rebounds` | integer | Offensive rebounds; absent if not recorded |
| `defensive_rebounds` | integer | Defensive rebounds; absent if not recorded |
| `personal_fouls` | integer | Personal fouls; absent if not recorded |
| `steals` | integer | Steals; absent if not recorded |
| `turnovers` | integer | Turnovers; absent if not recorded |
| `blocks` | integer | Blocks; absent if not recorded |
| `blocks_against` | integer | Blocks against; absent if not recorded |
| `technical_fouls` | integer | Technical fouls; absent if not recorded |

***

### Sample output

The following is real output from match `OxuYoJH6` (New York Knicks vs Philadelphia 76ers, NBA). Two players shown (10 per team in the actual dataset); `team_stats` truncated to 4 of ~40 rows.

```json
{
  "match_id": "OxuYoJH6",
  "match_url": "https://www.flashscore.com/match/basketball/OxuYoJH6/",
  "home_team": "New York Knicks",
  "away_team": "Philadelphia 76ers",
  "quarter_scores": [],
  "team_stats": [
    {
      "period": "Match",
      "category": "Scoring",
      "stat_name": "Field goals %",
      "home_value": "50.63%",
      "away_value": "45.33%"
    },
    {
      "period": "Match",
      "category": "Scoring",
      "stat_name": "3-point field goals %",
      "home_value": "25.00%",
      "away_value": "43.59%"
    },
    {
      "period": "Match",
      "category": "Rebounds",
      "stat_name": "Total rebounds",
      "home_value": "37",
      "away_value": "32"
    },
    {
      "period": "1st Quarter",
      "category": "Scoring",
      "stat_name": "Field goals %",
      "home_value": "57.14%",
      "away_value": "38.46%"
    }
  ],
  "players": [
    {
      "team": "New York Knicks",
      "team_abbreviation": "NYK",
      "player_name": "Anunoby OG.",
      "player_url": "/player/anunoby-og-ogugua/jiNJMxEa/",
      "nationality": "United Kingdom",
      "height_cm": 197,
      "points": 24,
      "total_rebounds": 5,
      "assists": 2,
      "minutes": "37:25",
      "fg_made": 9,
      "fg_attempted": 17,
      "fg2_made": 7,
      "fg2_attempted": 10,
      "fg3_made": 2,
      "fg3_attempted": 7,
      "ft_made": 4,
      "ft_attempted": 4,
      "plus_minus": 12,
      "offensive_rebounds": 2,
      "defensive_rebounds": 3,
      "personal_fouls": 3,
      "steals": 4,
      "blocks": 1
    },
    {
      "team": "Philadelphia 76ers",
      "team_abbreviation": "PHI",
      "player_name": "Maxey T.",
      "player_url": "/player/maxey-tyrese/r9DvnZeC/",
      "nationality": "USA",
      "height_cm": 200,
      "points": 26,
      "total_rebounds": 3,
      "assists": 6,
      "minutes": "46:48",
      "fg_made": 9,
      "fg_attempted": 23,
      "fg2_made": 8,
      "fg2_attempted": 17,
      "fg3_made": 1,
      "fg3_attempted": 6,
      "ft_made": 7,
      "ft_attempted": 9,
      "defensive_rebounds": 3,
      "personal_fouls": 1,
      "steals": 1,
      "turnovers": 6
    }
  ],
  "scraped_at": "2026-05-09T18:19:58Z"
}
```

***

### Use cases

#### Fantasy sports developers

Build or power fantasy basketball applications with per-match player box score data. The 21-field player output covers every statistic used in standard fantasy scoring systems: points, rebounds, assists, steals, blocks, turnovers, three-pointers made, plus/minus, and more. Fetch historical match data to backfill a season, or run the actor on a schedule after each match to keep your scoring engine current.

#### Betting analytics

Enrich sports betting models with historical per-quarter team performance metrics. The `team_stats` output provides field goal %, 3-point %, free throw %, and rebounding breakdowns split by quarter — useful for building pre-match and historical spread models, identifying teams that struggle in specific quarters, or validating line movement against statistical trends.

#### Sports research and analytics

Conduct season-level analysis by extracting box scores across hundreds of matches. Compare player efficiency across different leagues (NBA, EuroLeague, national leagues), study team-level performance patterns, or track individual player progression across a season. All 21 player stat fields are available; absent fields are omitted (not zero), preserving data fidelity.

#### Sports journalism and fact-checking

Verify game statistics quickly for match reporting and fact-checking. Query a specific match by ID and retrieve the complete box score in seconds — no browser automation, no scraping overhead. Useful for confirming player scoring lines, team shooting percentages, or quarter-by-quarter performance narratives before publication.

***

### How it works

1. The actor fetches the Flashscore homepage to extract an authentication token from the core JavaScript bundle.
2. For each match ID (from `startUrls` or `matchIds`), the actor makes up to two direct HTTP requests to Flashscore's internal feed endpoints:
   - `df_st_1_{matchId}` — team statistics (if `includeTeamStats: true`)
   - `df_psn_1_{matchId}` — player box scores (if `includePlayerStats: true`)
3. Responses are parsed using a state-machine feed parser (delimiter-separated text format used internally by Flashscore).
4. One dataset item is emitted per match.

**Request budget:** 2 fixed requests (homepage + token) + up to 2 per match. A 10-match run with both toggles on = 22 HTTP requests total.

No browser, no proxy, no JavaScript rendering. All data comes from lightweight feed endpoints.

***

### Related actors

| Actor | What it does |
|-------|-------------|
| [Flashscore Basketball Live Matches](https://apify.com/extractify-labs/flashscore-basketball-live-matches) | Live basketball scores, current quarter, team lineups — for in-progress matches |
| [Flashscore: Match Listings, Scores & Fixtures](https://apify.com/extractify-labs/flashscore-extractor) | Multi-sport match listings by date — get match IDs for use with this actor |
| [Flashscore Results](https://apify.com/extractify-labs/flashscore-results) | Completed match results with scores across all sports |
| [Flashscore Team Fixtures](https://apify.com/extractify-labs/flashscore-team-fixtures) | Upcoming and past fixtures for a specific team |
| [Flashscore Countries & Leagues](https://apify.com/extractify-labs/flashscore-countries-leagues) | Full directory of sports, countries, and league URLs on Flashscore |

***

### FAQ

**Q: How do I find a Flashscore basketball match ID?**

Navigate to any basketball match page on Flashscore. The match ID is the 8-character alphanumeric segment in the URL, or the value of the `?mid=` query parameter. You can also use the [Flashscore: Match Listings, Scores & Fixtures](https://apify.com/extractify-labs/flashscore-extractor) actor to retrieve match IDs for a given date and sport.

**Q: Why is `quarter_scores` always an empty array?**

Quarter score data (`IG÷`/`IH÷` fields) is only available in Flashscore's live feed endpoints, not in the historical `df_st_1` feed used by this actor. The field is always present but always empty. Per-quarter team statistics (FG%, rebounds, etc.) are still available through the `team_stats` array.

**Q: Why are `home_score` and `away_score` missing from the output?**

Final score data is not available in the `df_st_1` or `df_psn_1` Flashscore feed endpoints. To get final scores, use the [Flashscore: Match Listings, Scores & Fixtures](https://apify.com/extractify-labs/flashscore-extractor) or [Flashscore Results](https://apify.com/extractify-labs/flashscore-results) actor.

**Q: Does this actor cover leagues outside the NBA?**

Yes. Any basketball match on Flashscore is supported — NBA, EuroLeague, FIBA competitions, national leagues, and more. Data availability depends on Flashscore's coverage for that league. Matches with no team statistics recorded will return an absent `team_stats` field; player stats are typically available regardless of league.

**Q: What happens if a player stat field is not recorded?**

Fields are omitted from that player's object entirely — they will never appear as `null` or `0`. For example, if a player did not record any blocks, the `blocks` field will not be present in their object at all.

**Q: Can I use this for live matches?**

The actor fetches a point-in-time snapshot. For matches currently in progress, it will return whatever statistics Flashscore has recorded up to the moment of the request. For continuous live monitoring, schedule the actor to run at regular intervals (e.g. every 5 minutes). For dedicated live match tracking, consider the [Flashscore Basketball Live Matches](https://apify.com/extractify-labs/flashscore-basketball-live-matches) actor.

# Actor input Schema

## `startUrls` (type: `array`):

Flashscore basketball match page URLs (e.g. https://www.flashscore.com/match/basketball/team1-ID/team2-ID/?mid=OxuYoJH6). The match ID is extracted from the URL. At least one of startUrls or matchIds must be provided.

## `matchIds` (type: `array`):

Raw Flashscore match IDs (8-character alphanumeric strings, e.g. OxuYoJH6). Use when sourcing match IDs programmatically. At least one of startUrls or matchIds must be provided.

## `includeTeamStats` (type: `boolean`):

Fetch per-quarter team statistics (field goals %, 3-point %, free throws %, rebounds, assists, blocks, turnovers, steals, fouls) broken down by quarter and match total. Requires one extra API call per match. Set to false for player-stats-only runs. If both includeTeamStats and includePlayerStats are disabled, the actor will exit with an error.

## `includePlayerStats` (type: `boolean`):

Fetch per-player box score statistics (points, rebounds, assists, minutes, fouls, steals, blocks, turnovers, +/-, etc. — 21 stat fields per player) for all players on both teams. Disabling this also removes home\_team and away\_team from output. Requires one extra API call per match. Set to false for team-stats-only runs. If both includeTeamStats and includePlayerStats are disabled, the actor will exit with an error.

## `maxItems` (type: `integer`):

Maximum number of matches to process. Leave unset to process all matches. Useful for test runs.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.flashscore.com/match/basketball/new-york-knicks-WCNO4nbt/philadelphia-76ers-vwRW2QSh/?mid=OxuYoJH6"
    }
  ],
  "matchIds": [],
  "includeTeamStats": true,
  "includePlayerStats": true
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.flashscore.com/match/basketball/new-york-knicks-WCNO4nbt/philadelphia-76ers-vwRW2QSh/?mid=OxuYoJH6"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("extractify-labs/flashscore-basketball-match-stats").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "startUrls": [{ "url": "https://www.flashscore.com/match/basketball/new-york-knicks-WCNO4nbt/philadelphia-76ers-vwRW2QSh/?mid=OxuYoJH6" }] }

# Run the Actor and wait for it to finish
run = client.actor("extractify-labs/flashscore-basketball-match-stats").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.flashscore.com/match/basketball/new-york-knicks-WCNO4nbt/philadelphia-76ers-vwRW2QSh/?mid=OxuYoJH6"
    }
  ]
}' |
apify call extractify-labs/flashscore-basketball-match-stats --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=extractify-labs/flashscore-basketball-match-stats",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Flashscore Basketball Box Scores & Team Stats Scraper",
        "description": "Extract basketball match box scores, player statistics, and quarter-by-quarter team performance data from Flashscore. Covers FG%, 3P%, FT%, rebounds, assists, steals, blocks, and 21 per-player stats. No proxy required.",
        "version": "1.0",
        "x-build-id": "xuaJRvZQY8PIQy7PB"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/extractify-labs~flashscore-basketball-match-stats/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-extractify-labs-flashscore-basketball-match-stats",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/extractify-labs~flashscore-basketball-match-stats/runs": {
            "post": {
                "operationId": "runs-sync-extractify-labs-flashscore-basketball-match-stats",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/extractify-labs~flashscore-basketball-match-stats/run-sync": {
            "post": {
                "operationId": "run-sync-extractify-labs-flashscore-basketball-match-stats",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "startUrls": {
                        "title": "Match URLs",
                        "type": "array",
                        "description": "Flashscore basketball match page URLs (e.g. https://www.flashscore.com/match/basketball/team1-ID/team2-ID/?mid=OxuYoJH6). The match ID is extracted from the URL. At least one of startUrls or matchIds must be provided.",
                        "default": [],
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "matchIds": {
                        "title": "Match IDs",
                        "type": "array",
                        "description": "Raw Flashscore match IDs (8-character alphanumeric strings, e.g. OxuYoJH6). Use when sourcing match IDs programmatically. At least one of startUrls or matchIds must be provided.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "includeTeamStats": {
                        "title": "Include team statistics",
                        "type": "boolean",
                        "description": "Fetch per-quarter team statistics (field goals %, 3-point %, free throws %, rebounds, assists, blocks, turnovers, steals, fouls) broken down by quarter and match total. Requires one extra API call per match. Set to false for player-stats-only runs. If both includeTeamStats and includePlayerStats are disabled, the actor will exit with an error.",
                        "default": true
                    },
                    "includePlayerStats": {
                        "title": "Include player box scores",
                        "type": "boolean",
                        "description": "Fetch per-player box score statistics (points, rebounds, assists, minutes, fouls, steals, blocks, turnovers, +/-, etc. — 21 stat fields per player) for all players on both teams. Disabling this also removes home_team and away_team from output. Requires one extra API call per match. Set to false for team-stats-only runs. If both includeTeamStats and includePlayerStats are disabled, the actor will exit with an error.",
                        "default": true
                    },
                    "maxItems": {
                        "title": "Maximum matches",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of matches to process. Leave unset to process all matches. Useful for test runs."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
