# Sports Data Scraper — Live Scores, Stats & Schedules (`sian.agency/sports-data-scraper`) Actor

Sports data scraper covering 30+ sports — football, basketball, tennis, F1, MMA, esports. Extract tournament schedules, live scores, team stats, player profiles. Six operations, one clean dataset per run. No API key.

- **URL**: https://apify.com/sian.agency/sports-data-scraper.md
- **Developed by:** [SIÁN OÜ](https://apify.com/sian.agency) (community)
- **Categories:** Automation
- **Stats:** 2 total users, 1 monthly users, 50.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## Sports Data Scraper — Live Scores, Stats & Schedules 🚀

[![SIÁN Agency Store](https://img.shields.io/badge/Store-SI%C3%81N%20Agency-1AE392)](https://apify.com/sian.agency?fpr=sian) [![Instagram AI Transcript Extractor](https://img.shields.io/badge/Store-Instagram%20AI%20Transcript%20Extractor-E4405F)](https://apify.com/sian.agency/instagram-ai-transcript-extractor?fpr=sian) [![TikTok AI Transcript Extractor](https://img.shields.io/badge/Store-TikTok%20AI%20Transcript%20Extractor-25F4EE)](https://apify.com/sian.agency/best-tiktok-ai-transcript-extractor?fpr=sian) [![Smart Idealista Scraper](https://img.shields.io/badge/Store-Smart%20Idealista%20Scraper-1AE392)](https://apify.com/sian.agency/smart-idealista-scraper?fpr=sian)

#### ⚽ Extract live sports data from 30+ sports — football, basketball, tennis, F1, MMA, esports. Six operations, one clean dataset per run.
##### Perfect for sports analysts, fantasy sports developers, betting researchers, and data scientists who need structured sports data at scale.

---

### 📋 Overview

**Sports Data Scraper is your all-in-one sports data pipeline.** No API key management, no complex integrations — pick an operation, provide IDs, and get clean structured data instantly. Covers football (soccer), basketball, tennis, Formula 1, MMA, esports, and 25+ more sports.

**Why professionals choose us:**
- ✅ **30+ Sports Covered**: Football, basketball, tennis, F1, MMA, esports, cricket, rugby, and more
- ⚡ **Six Powerful Operations**: Search tournaments, seasons, events, team details, match history, player profiles
- 🎯 **Clean Structured Data**: Every row comes with curated camelCase fields + raw upstream data
- 💰 **Pay-Per-Result**: Only charged for successful extractions — errors are free
- 💎 **No API Key Needed**: We handle the upstream — just configure and run
- 🔄 **Pagination Built-In**: Automatically fetches multiple pages for events and match history

### ✨ Features

- 🔍 **Tournament Search**: Find any tournament across 30+ sports by keyword
- 📅 **Season Discovery**: Browse all seasons within a tournament
- ⚽ **Match Events**: Extract full match schedules with scores, teams, and status
- 🏅 **Team Profiles**: Get detailed team info — name, country, sport, logos
- 🏟️ **Team Match History**: Paginated match history for any team
- 👤 **Player Profiles**: Extract player details — name, position, nationality, team
- 📄 **Smart Pagination**: Automatically fetch multiple pages with configurable limits
- 🔁 **Auto-Retry**: Exponential backoff on transient errors (429, 502, 503, 504)
- 📊 **HTML Reports**: Every run generates a visual summary report
- 📥 **Multiple Exports**: JSON, CSV, Excel — export directly from Apify dataset

### 🎬 Quick Start

Extract sports data in three simple steps. No configuration needed.

```bash
## Search for tournaments
curl -X POST https://api.apify.com/v2/acts/sian.agency~sports-data-scraper/runs?token=[YOUR_TOKEN] \
-d '{"operation":"searchTournaments","query":"Premier League"}'
````

### 🚀 Getting Started (3 Simple Steps)

#### Step 1: Choose Your Operation

Select from six operations: search tournaments, tournament seasons, season events, team details, team events, or player details.

#### Step 2: Provide IDs or Keywords

Use tournament names for search, or IDs (from previous runs) for detailed lookups. IDs chain naturally: search → seasons → events → teams → players.

#### Step 3: Run and Download

Get clean structured data in seconds. Export as JSON, CSV, or Excel directly from the Apify dataset.

**That's it! In under 10 seconds, you'll have:**

- Tournament listings with sport and category data
- Season histories with year and name
- Match events with scores, teams, timestamps, and round info
- Team profiles with country, short name, and logos
- Player profiles with position, nationality, and team affiliation

***

### 📥 Input Configuration

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| operation | string | Yes | Data extraction operation to run |
| query | string | For searchTournaments | Search keyword for finding tournaments |
| tournamentId | integer | For tournamentSeasons, seasonEvents | Tournament ID from search results |
| seasonId | integer | For seasonEvents | Season ID from tournamentSeasons results |
| teamId | integer | For teamDetails, teamEvents | Team ID from seasonEvents results |
| playerId | integer | For playerDetails | Player ID from teamDetails results |
| page | integer | No | Starting page for paginated ops (default: 0) |
| maxPages | integer | No | Max pages to fetch for paginated ops (default: 5, max: 50) |

**Operations:**

| Operation | Description | Required Input |
|-----------|-------------|----------------|
| searchTournaments | Search tournaments by keyword | `query` |
| tournamentSeasons | List seasons for a tournament | `tournamentId` |
| seasonEvents | Match events for a tournament season (paginated) | `tournamentId`, `seasonId` |
| teamDetails | Team profile | `teamId` |
| teamEvents | Team match history (paginated) | `teamId` |
| playerDetails | Player profile | `playerId` |

**Example — Search Tournaments:**

```json
{
  "operation": "searchTournaments",
  "query": "Premier League"
}
```

**Example — Season Events (paginated):**

```json
{
  "operation": "seasonEvents",
  "tournamentId": 17,
  "seasonId": 52186,
  "maxPages": 3
}
```

**Example — Player Details:**

```json
{
  "operation": "playerDetails",
  "playerId": 336579
}
```

***

### 📤 Output

Results are saved to the Apify dataset with **20+ fields** per row including:

| Field | Type | Description |
|-------|------|-------------|
| tournamentId | integer | Unique tournament identifier |
| tournamentName | string | Tournament/competition name |
| seasonId | integer | Season identifier |
| seasonName | string | Season name (e.g. "2024/2025") |
| eventId | integer | Match/event identifier |
| eventName | string | Match/event name |
| startTime | integer | Match start time (Unix timestamp) |
| homeTeam | object | Home team details (id, name, shortName, slug) |
| awayTeam | object | Away team details (id, name, shortName, slug) |
| homeScore | integer | Home team score |
| awayScore | integer | Away team score |
| matchStatus | object | Match status details |
| teamId | integer | Team identifier |
| teamName | string | Team name |
| teamCountry | object | Country info |
| playerId | integer | Player identifier |
| playerName | string | Player name |
| playerPosition | string | Playing position |
| \_operation | string | Operation that produced this row |
| \_fetchedAt | string | ISO timestamp |
| status | string | Row status: "success" or "error" |

**Example — Search Tournaments output:**

```json
{
  "tournamentId": 17,
  "tournamentName": "Premier League",
  "tournamentSlug": "premier-league",
  "sport": { "name": "Football", "slug": "football" },
  "category": { "name": "England", "slug": "england" },
  "_operation": "searchTournaments",
  "_fetchedAt": "2026-05-28T00:10:00.000Z",
  "status": "success"
}
```

**Example — Season Events output:**

```json
{
  "eventId": 12345678,
  "eventName": "Arsenal vs Chelsea",
  "startTime": 1748395200,
  "homeTeam": { "id": 42, "name": "Arsenal", "shortName": "ARS" },
  "awayTeam": { "id": 38, "name": "Chelsea", "shortName": "CHE" },
  "homeScore": 2,
  "awayScore": 1,
  "matchStatus": { "type": "finished" },
  "roundInfo": { "round": 28 },
  "_operation": "seasonEvents",
  "_fetchedAt": "2026-05-28T00:12:00.000Z",
  "status": "success"
}
```

***

### 💼 Use Cases & Examples

#### 1. 🏆 Sports Analytics Dashboard

**Build real-time analytics dashboards for 30+ sports leagues worldwide.**

**Input:** Tournament search → season events (paginated)
**Output:** Match results, scores, team performance data, round info
**Use:** Feed live data into Tableau, Power BI, or custom dashboards for league-wide performance tracking.

#### 2. 🎯 Fantasy Sports Data Feed

**Power fantasy sports platforms with up-to-date player and team data.**

**Input:** Player details + team match history (paginated)
**Output:** Player positions, nationalities, team affiliations, historical match data
**Use:** Calculate player form, fixture difficulty, and team strength metrics for fantasy scoring models.

#### 3. 📊 Betting Odds Research

**Gather historical match results and team form for betting analysis.**

**Input:** Season events (multiple pages) + team events
**Output:** Historical scores, home/away performance, round-by-round results
**Use:** Build predictive models with historical performance data across leagues and tournaments.

#### 4. 📰 Live Score Aggregation

**Build live score aggregation services across multiple sports.**

**Input:** Season events for multiple tournaments
**Output:** Match status, scores, start times, team details
**Use:** Aggregate live match data from football, basketball, tennis, F1, and more into a unified feed.

#### 5. 🗄️ Team & Player Database

**Build comprehensive databases of teams and players across sports.**

**Input:** Team details + player details (chained from search results)
**Output:** Team names, countries, logos, player positions, nationalities
**Use:** Populate a sports encyclopedia or directory with structured data from 30+ sports.

#### 6. 📈 League Season Analysis

**Track full season progression — fixtures, results, and standings data.**

**Input:** Tournament seasons → season events (max pages: 50)
**Output:** Complete fixture list with scores, round numbers, timestamps
**Use:** Analyze season patterns, identify upset trends, and track title races across leagues.

***

### 🔗 Integration Examples

#### JavaScript/Node.js

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

const client = new ApifyClient({ token: 'YOUR_TOKEN' });

// Search for tournaments
const run = await client.actor('sian.agency/sports-data-scraper').call({
  operation: 'searchTournaments',
  query: 'Premier League'
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient('YOUR_TOKEN')

## Get season events (paginated)
run = client.actor('sian.agency/sports-data-scraper').call(
    run_input={
        'operation': 'seasonEvents',
        'tournamentId': 17,
        'seasonId': 52186,
        'maxPages': 3
    }
)

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item)
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~sports-data-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"operation": "searchTournaments", "query": "Champions League"}'
```

#### Automation Workflows (N8N / Zapier / Make)

1. **Trigger**: Schedule (daily/hourly) or webhook
2. **HTTP Request**: Call actor API with operation + IDs
3. **Process**: Handle JSON results — filter, transform, enrich
4. **Action**: Save to database, send notifications, update dashboards

***

### 📊 Performance & Pricing

#### FREE Tier (Try It Now)

- Full feature access — all 6 operations available
- Test with real data, same quality as paid
- No credit card required
- Perfect for evaluation and small projects

#### PAID Tier (Production Ready)

- **Unlimited** results per run with pagination
- Pay-per-result: only charged for successful extractions
- Faster processing, no rate limits
- Priority support

💰 **Transparent pricing — only pay for successful results**

🔗 [View current pricing](https://apify.com/sian.agency/sports-data-scraper?fpr=sian)

***

### ❓ Frequently Asked Questions

**Q: How many results can I extract per run?**
A: Paginated operations (seasonEvents, teamEvents) support up to 50 pages per run. Single-result operations (teamDetails, playerDetails) return one detailed result per run.

**Q: Which sports are covered?**
A: 30+ sports including football (soccer), basketball, tennis, Formula 1, MMA, esports, cricket, rugby, handball, volleyball, baseball, ice hockey, and more.

**Q: What output formats are available?**
A: JSON, CSV, Excel — export directly from the Apify dataset. All formats include the same structured fields.

**Q: How do I find tournament/team/player IDs?**
A: Chain operations naturally: searchTournaments → tournamentSeasons → seasonEvents → teamDetails → playerDetails. Each operation's output contains the IDs needed for the next.

**Q: Do I need an API key?**
A: No. The actor handles upstream authentication. Just configure your Apify token and run.

**Q: Is historical data available?**
A: Yes. Use seasonEvents to get past match results and teamEvents for historical team performance.

***

### 🐛 Troubleshooting

**"No tournaments found" error**

- Try broader search terms (e.g., "Premier" instead of "Premier League 2024/2025")
- Check spelling of tournament names
- Some regional tournaments may use local language names

**"Team/Player not found" error**

- Verify the ID is correct — get IDs from seasonEvents or teamDetails outputs
- The ID may refer to a delisted or inactive entity

**Empty results on paginated operations**

- The season or team may have no upcoming events — try a different season
- Some tournaments only have events during their active season

***

### ⚖️ Is it legal to scrape data?

Our actors are ethical and do not extract any private user data. They only extract publicly available sports data — tournament schedules, match results, team rosters, and player statistics. We believe our actors, when used for ethical purposes, are safe to use.

However, you should be aware that your results could contain personal data. Personal data is protected by the **GDPR** in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

***

### 🤝 Support

[![Telegram Support](https://img.shields.io/badge/Telegram-Support%20Group-0088cc?logo=telegram)](https://t.me/+vyh1sRE08sAxMGRi)

**Join our active support community**

- For issues or questions, open an issue in the actor's repository
- Check [SIÁN Agency Store](https://apify.com/sian.agency?fpr=sian) for more automation tools
- ✉️ <apify@sian-agency.online>

***

**Built by [SIÁN Agency](https://www.sian-agency.online)** | **[More Tools](https://apify.com/sian.agency?fpr=sian)**

# Actor input Schema

## `operation` (type: `string`):

🎬 Select the data extraction operation to run. Each operation extracts a specific type of sports data.

## `query` (type: `string`):

🔍 Search keyword for finding tournaments. Required for searchTournaments operation.

## `tournamentId` (type: `integer`):

🏆 The unique-tournament ID (use searchTournaments to find it). Required for tournamentSeasons and seasonEvents.

## `seasonId` (type: `integer`):

📅 The season ID within a tournament. Required for seasonEvents. Use tournamentSeasons to discover available seasons.

## `teamId` (type: `integer`):

🏅 The team ID. Required for teamDetails and teamEvents operations. Find team IDs from seasonEvents results.

## `playerId` (type: `integer`):

👤 The player ID. Required for playerDetails operation. Find player IDs from teamDetails results.

## `page` (type: `integer`):

📄 Page number for paginated results (seasonEvents, teamEvents). Default: 0.

## `maxPages` (type: `integer`):

📄 Maximum number of pages to fetch for paginated operations. Default: 5, max: 50.

## Actor input object example

```json
{
  "operation": "searchTournaments",
  "query": "Premier League",
  "page": 0,
  "maxPages": 5
}
```

# Actor output Schema

## `output` (type: `string`):

Tournaments, seasons, events, teams, or player profiles — one flat row per upstream item with curated camelCase fields plus the raw upstream data spread alongside.

## `report` (type: `string`):

HTML report with run status, success/error row counts, success rate, pages fetched, duration, and the inputs used — written even on fatal crash.

# 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 = {
    "query": "Premier League"
};

// Run the Actor and wait for it to finish
const run = await client.actor("sian.agency/sports-data-scraper").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 = { "query": "Premier League" }

# Run the Actor and wait for it to finish
run = client.actor("sian.agency/sports-data-scraper").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 '{
  "query": "Premier League"
}' |
apify call sian.agency/sports-data-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=sian.agency/sports-data-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Sports Data Scraper — Live Scores, Stats & Schedules",
        "description": "Sports data scraper covering 30+ sports — football, basketball, tennis, F1, MMA, esports. Extract tournament schedules, live scores, team stats, player profiles. Six operations, one clean dataset per run. No API key.",
        "version": "0.2",
        "x-build-id": "k72OkPxID6OSLga6Z"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/sian.agency~sports-data-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-sian.agency-sports-data-scraper",
                "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/sian.agency~sports-data-scraper/runs": {
            "post": {
                "operationId": "runs-sync-sian.agency-sports-data-scraper",
                "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/sian.agency~sports-data-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-sian.agency-sports-data-scraper",
                "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",
                "required": [
                    "operation"
                ],
                "properties": {
                    "operation": {
                        "title": "Operation",
                        "enum": [
                            "searchTournaments",
                            "tournamentSeasons",
                            "seasonEvents",
                            "teamDetails",
                            "teamEvents",
                            "playerDetails"
                        ],
                        "type": "string",
                        "description": "🎬 Select the data extraction operation to run. Each operation extracts a specific type of sports data.",
                        "default": "searchTournaments"
                    },
                    "query": {
                        "title": "Search query",
                        "type": "string",
                        "description": "🔍 Search keyword for finding tournaments. Required for searchTournaments operation."
                    },
                    "tournamentId": {
                        "title": "Tournament ID",
                        "minimum": 1,
                        "type": "integer",
                        "description": "🏆 The unique-tournament ID (use searchTournaments to find it). Required for tournamentSeasons and seasonEvents."
                    },
                    "seasonId": {
                        "title": "Season ID",
                        "minimum": 1,
                        "type": "integer",
                        "description": "📅 The season ID within a tournament. Required for seasonEvents. Use tournamentSeasons to discover available seasons."
                    },
                    "teamId": {
                        "title": "Team ID",
                        "minimum": 1,
                        "type": "integer",
                        "description": "🏅 The team ID. Required for teamDetails and teamEvents operations. Find team IDs from seasonEvents results."
                    },
                    "playerId": {
                        "title": "Player ID",
                        "minimum": 1,
                        "type": "integer",
                        "description": "👤 The player ID. Required for playerDetails operation. Find player IDs from teamDetails results."
                    },
                    "page": {
                        "title": "Starting page",
                        "minimum": 0,
                        "type": "integer",
                        "description": "📄 Page number for paginated results (seasonEvents, teamEvents). Default: 0.",
                        "default": 0
                    },
                    "maxPages": {
                        "title": "Max pages",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "📄 Maximum number of pages to fetch for paginated operations. Default: 5, max: 50.",
                        "default": 5
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
