# FotMob Matches Scraper (`incognito_mode/fotmob-matches-scraper`) Actor

Scrape all football matches on FotMob for any date or date range — fixtures, live scores and final results across every competition — as one clean JSON/CSV record per match with teams, score, kickoff time, status and league. Filter by league or match status. Failed requests are never billed.

- **URL**: https://apify.com/incognito\_mode/fotmob-matches-scraper.md
- **Developed by:** [Elena Vance](https://apify.com/incognito_mode) (community)
- **Categories:** News, Developer tools, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 match 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

## FotMob Matches Scraper — Every Fixture, Live Score & Final Result, by Date

**Turn any date (or date range) on FotMob into clean, structured JSON or CSV:
every football match across every competition that day — teams, score, kickoff
time, status, and league context — one tidy record per match. Yesterday's
results, today's live scores, or next week's fixtures, all in a single dataset.**

Point it at one or more dates (or just leave it empty for today), optionally
filter by league or match status, and get back data ready for a spreadsheet,
database, model, or app. No login, no account, no HTML wrangling — and **you are
never billed for failed requests**.

> **Good to know:** every match carries its FotMob `matchId`. Feed those ids
> straight into the **[FotMob Match Details Scraper](https://apify.com/incognito_mode/fotmob-match-details-scraper)** to drill from a day's
> scoreline down to lineups, events, and per-player stats — no manual id-hunting
> in between.

---

### Why this Actor

- **A whole day of football in one run.** A single request per date returns every
  match across every competition FotMob tracks — no per-league fan-out, no
  pagination, no crawling.
- **Fixtures, live scores, and results — your choice.** Filter by status to keep
  only `finished`, `live` (in progress), or `upcoming` matches, or take them all.
- **Built to chain.** Every record carries the `matchId` and a ready-made
  `matchUrl`, designed to feed the **FotMob Match Details Scraper**.
- **Date, range, or just today.** Pass explicit dates, a `from`/`to` range, or
  leave everything empty to scrape today's matches automatically.
- **Filter to the leagues you care about.** Pass FotMob `leagueId`s to keep only
  matches in those competitions (the filter matches the league **or** its parent
  competition, so group-stage matches of a tournament are kept too).
- **Works globally, no login.** No FotMob account, no per-region setup. Apify
  Proxy (datacenter by default) handles the requests for you.
- **You never pay for failures.** A date that can't be fetched is reported in the
  run summary — **not** written to your dataset and **not billed**.
- **Clean, consistent output.** Integer ids, nested home/away team objects, ISO
  timestamps, and a stable schema across every league and date.

---

### Problems this Actor solves

| If you are… | Your problem | How this Actor solves it |
|---|---|---|
| **Building a football-data pipeline** | You need a daily feed of fixtures and results across all leagues | One run per date returns every match; chain the `matchId`s into the Match Details Scraper |
| **A model / prediction developer** | Collecting historical results day-by-day is slow and brittle | Pass a date range and pull every result with scores in one run |
| **A live-score / notifications app** | Polling many league endpoints for in-play matches is painful | Filter `status=live` and scrape today's date on a schedule |
| **A fantasy / betting tool builder** | You need upcoming fixtures across competitions in one place | Filter `status=upcoming` over a date range; export straight to your backend |
| **A content creator / journalist** | Compiling the day's scoreboard by hand is tedious | One dated record per match — export to Sheets, CSV, or your CMS |

---

### What data you get

Each match becomes one dataset record:

| Field | Description |
|---|---|
| `matchId` | FotMob's stable numeric match id (the record's unique id). Integer. Feed it to the Match Details Scraper |
| `leagueId` | FotMob league id this match belongs to. Integer |
| `leagueName` | League / competition name (e.g. `Premier League`, `World Cup Grp. K`) |
| `parentLeagueId` | Parent competition id, when the league is a stage/group (e.g. the World Cup id for a group). Integer or `null` |
| `parentLeagueName` | Parent competition name, or `null` |
| `ccode` | FIFA country code (e.g. `ENG`); `INT` for international competitions. May be `null` |
| `utcTime` | Kickoff time in UTC (ISO 8601) |
| `started` / `finished` / `cancelled` | Match status booleans |
| `statusShort` | Short status label (e.g. `FT`, `HT`, `AET`); `null` for upcoming |
| `statusLong` | Long status label (e.g. `Full-Time`); `null` for upcoming |
| `homeTeam` | `{ id, name, score }` — `score` is `null` before kickoff |
| `awayTeam` | `{ id, name, score }` — `score` is `null` before kickoff |
| `matchUrl` | Absolute FotMob match URL (`https://www.fotmob.com/match/<id>`) |
| `date` | The `YYYYMMDD` date bucket this match was scraped under |
| `source` | Always `fotmob-matches-scraper` |
| `scrapedAt` | ISO 8601 timestamp of the run |

#### Example output

```json
{
  "matchId": 4667820,
  "leagueId": 894800,
  "leagueName": "World Cup Grp. K",
  "parentLeagueId": 77,
  "parentLeagueName": "World Cup",
  "ccode": "INT",
  "utcTime": "2026-06-18T02:00:00.000Z",
  "started": true,
  "finished": true,
  "cancelled": false,
  "statusShort": "FT",
  "statusLong": "Full-Time",
  "homeTeam": { "id": 8700, "name": "Uzbekistan", "score": 1 },
  "awayTeam": { "id": 8258, "name": "Colombia", "score": 3 },
  "matchUrl": "https://www.fotmob.com/match/4667820",
  "date": "20260618",
  "source": "fotmob-matches-scraper",
  "scrapedAt": "2026-06-18T11:09:20+00:00"
}
````

Matches are **de-duplicated by `matchId`** across the dates you request, so you
get exactly one clean record per match. A date that cannot be fetched is **not**
written to the dataset (and never billed) — it is listed in the run's `SUMMARY`
record in the key-value store
(`{ "failures": [ { "input": "20260618", "error": "…" } ] }`), and the run's
status message tells you at a glance how many matches were captured.

***

### How to use it (60 seconds)

1. Click **Try for free / Start**.
2. Choose the dates:
   - **Today (default):** leave **Dates**, **Date from**, and **Date to** empty.
   - **Specific days:** add one or more dates in `YYYYMMDD` form under **Dates**
     (e.g. `20260618`).
   - **A range:** set **Date from** and **Date to** (`YYYYMMDD`, inclusive).
3. *(Optional)* Narrow the results:
   - **League ids** — keep only matches in those competitions. *(Discover ids with
     the **[FotMob Leagues List Scraper](https://apify.com/incognito_mode/fotmob-leagues-list-scraper)**.)*
   - **Match status** — `All`, `Finished only`, `Live`, or `Upcoming`.
4. Keep the **Apify Proxy** enabled (datacenter is enough — the default).
5. Click **Save & Start**. Download results as **JSON, CSV, Excel, or via API**
   from the **Dataset** tab; check **Key-value store → SUMMARY** for run totals
   and any failed dates.

***

### Input reference

| Field | Type | Default | Description |
|---|---|---|---|
| **Dates (optional)** | list | *(empty)* | Specific dates in `YYYYMMDD`. If set, the date range is ignored. Empty = today. |
| **Date from (optional)** | string | *(empty)* | Start of a `YYYYMMDD` range. Used only when **Dates** is empty. |
| **Date to (optional)** | string | *(empty)* | End of a `YYYYMMDD` range (inclusive). Used only when **Dates** is empty. |
| **League ids (optional)** | list | *(empty)* | Keep only matches in these FotMob league ids (matches the league or its parent competition). Empty = all leagues. |
| **Match status** | select | `all` | Keep only `all`, `finished`, `live`, or `upcoming` matches. |
| **Timezone** | string | `UTC` | IANA timezone FotMob uses to bucket matches into a date (e.g. `Europe/London`). |
| **Proxy configuration** | object | Apify Proxy (datacenter) | Routes requests through Apify Proxy. Datacenter is enough — keep it enabled. |
| **Max concurrency** | integer | `3` | Parallel requests, one per date (1–20). Kept moderate to be respectful. |
| **Delay between requests** | integer | `1` | Politeness delay in seconds before each request (0–10). |
| **Max items** | integer | `0` | Stop after producing this many records (`0` = no limit). |

> A single run is capped at **366 dates** as a safety limit.

***

### Pricing — what a run costs

This Actor uses transparent **pay-per-event** pricing with a built-in **volume
discount**: a small Actor-start fee, a fixed price per successful match record for
the first 10,000 results of a run, and a cheaper rate for every result beyond
that. **No subscription, no minimums, and failures are never charged.** The exact
per-result rate is shown on the Actor's **Pricing** tab.

- **One billed record per match.** Failed dates bill nothing.
- **Failed requests are free.** A date that won't load is reported in the summary,
  never billed.
- **Bigger runs cost less per item.** The discount tier resets per run, so one
  large run is cheaper than the same job split into many small ones.
- **Try it free:** an Apify free account includes **$5 of monthly platform
  credit** — enough to try the Actor before paying anything.
- **Stay in control:** set **Max items** and Apify's **maximum charge per run**;
  the Actor stops gracefully at your cap, keeping everything already scraped.

***

### Compared to the alternatives

| | **This Actor** | Build your own scraper | Manual checking |
|---|---|---|---|
| Every competition's matches for a date | Yes | You maintain it | Impractical |
| Date ranges (historical or upcoming) | Yes | You build it | One page at a time |
| Filter by league / status | Yes | You build it | – |
| Match ids that chain into match detail | Yes | You wire it up | Copy-paste |
| Handles FotMob request signing | Built in | You reverse-engineer it | – |
| Never billed for failures | Yes | – | – |
| Export JSON / CSV / Excel / API | Yes, built-in | DIY | Copy-paste |
| Setup time | ~60 seconds | Days; breaks on site changes | Hours per day |

***

### A family of FotMob Actors

This Actor is part of a set that fit together — start broad, then drill down:

- **[FotMob Leagues List Scraper](https://apify.com/incognito_mode/fotmob-leagues-list-scraper)** — discover every league/competition and its id.
- **[FotMob League Scraper](https://apify.com/incognito_mode/fotmob-league-scraper)** — standings, fixtures, results, and season top players
  per league-season.
- **FotMob Matches Scraper** *(this Actor)* — every match for a date or range, with
  scores and status; emits the `matchId`s.
- **[FotMob Match Details Scraper](https://apify.com/incognito_mode/fotmob-match-details-scraper)** — pass those `matchId`s to get lineups, events,
  and per-player match stats.

Typical flow: scrape a date here → take the `matchId`s → run the **FotMob Match
Details Scraper** for deep per-match data.

***

### Integrate the data

- **Exports:** JSON, CSV, Excel, XML from the Dataset tab — or fetch
  programmatically:
  ```
  GET https://api.apify.com/v2/datasets/{datasetId}/items?format=json
  ```
- **Run on a schedule:** use Apify **Schedules** to scrape today's matches every
  morning (or every few minutes for live scores), and **webhooks** to push
  finished runs into your pipeline (Sheets, Slack, your backend).
- **Chain to match detail:** read `matchId` from each record and pass it to the
  **FotMob Match Details Scraper** to expand a day's results into per-match data.
- **From code:** call the Actor with the [Apify API or SDKs](https://docs.apify.com/api)
  (Python / JavaScript) and read the dataset when the run finishes.
- **Run summary:** every run writes a `SUMMARY` record (key-value store) with
  totals, successes, failures, and billing counts — ideal for monitoring
  automated pipelines.

***

### FAQ

**Do I need a FotMob account or login?**
No. There is no account or login required.

**How do I get just today's matches?**
Leave **Dates**, **Date from**, and **Date to** all empty — the Actor defaults to
today (in the timezone you choose).

**Can I get live scores?**
Yes. Set **Match status** to `Live` and scrape today's date; schedule the Actor to
re-run every few minutes for a live feed.

**Why are some scores `null`?**
Matches that haven't kicked off yet appear with `score: null` and
`started: false` — exactly what you want for upcoming-fixture lists.

**What's the difference between `leagueId` and `parentLeagueId`?**
For multi-stage competitions (e.g. a World Cup group), `leagueId` is the stage and
`parentLeagueId` is the overall competition. The league filter matches either, so
passing the parent id keeps all of its groups.

**How do I get a match's full details?**
Take the `matchId` from each record and run the **FotMob Match Details Scraper** —
the two Actors are designed to chain.

**How fresh is the data?**
Each run fetches live data, so you get exactly what FotMob shows at that moment.

**What formats can I export?**
JSON, CSV, Excel, XML — from the Console or via the Apify API.

***

### Disclaimer

This Actor is intended for personal and research use. You are responsible for
ensuring your use complies with FotMob's terms and applicable law. Please scrape
responsibly — keep concurrency moderate and delays reasonable. This project is
**not affiliated with, endorsed by, or sponsored by FotMob**.

# Actor input Schema

## `dates` (type: `array`):

Specific dates in YYYYMMDD format (e.g. "20260618"). If set, the date range below is ignored. Leave everything empty to scrape today's matches.

## `dateFrom` (type: `string`):

Start of a date range, YYYYMMDD. Used only when 'Dates' is empty. Combine with 'Date to' for a range.

## `dateTo` (type: `string`):

End of a date range, YYYYMMDD (inclusive). Used only when 'Dates' is empty.

## `leagueIds` (type: `array`):

Only keep matches in these FotMob league ids (matches against either the league or its parent competition). Leave empty for all leagues. Discover ids with the FotMob Leagues List Scraper.

## `status` (type: `string`):

Keep only matches with this status.

## `timezone` (type: `string`):

Timezone used by FotMob to bucket matches into a date (IANA name, e.g. "UTC", "Europe/London").

## `proxyConfiguration` (type: `object`):

Apify Proxy routes requests. Datacenter proxy (the default) is enough for most runs; switch to Residential if you hit blocks on large date ranges.

## `maxConcurrency` (type: `integer`):

Maximum number of parallel requests (one per date). Keep this moderate to stay respectful.

## `requestDelaySecs` (type: `integer`):

Politeness delay applied before each request. Keep a delay of at least 1 second to stay respectful.

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

Stop after producing this many match records. Set to 0 for no limit.

## Actor input object example

```json
{
  "dates": [
    "20260618",
    "20260619"
  ],
  "dateFrom": "20260601",
  "dateTo": "20260607",
  "leagueIds": [
    "47",
    "87",
    "42"
  ],
  "status": "all",
  "timezone": "UTC",
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "maxConcurrency": 3,
  "requestDelaySecs": 1,
  "maxItems": 0
}
```

# Actor output Schema

## `matches` (type: `string`):

All scraped match records (one item per match).

## `summary` (type: `string`):

JSON summary of the run: totals, successes, failures, and billing counts.

# 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 = {
    "dates": [],
    "leagueIds": [],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("incognito_mode/fotmob-matches-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 = {
    "dates": [],
    "leagueIds": [],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("incognito_mode/fotmob-matches-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 '{
  "dates": [],
  "leagueIds": [],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call incognito_mode/fotmob-matches-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "FotMob Matches Scraper",
        "description": "Scrape all football matches on FotMob for any date or date range — fixtures, live scores and final results across every competition — as one clean JSON/CSV record per match with teams, score, kickoff time, status and league. Filter by league or match status. Failed requests are never billed.",
        "version": "0.1",
        "x-build-id": "iKaVhuI7QCb6ulUf9"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/incognito_mode~fotmob-matches-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-incognito_mode-fotmob-matches-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/incognito_mode~fotmob-matches-scraper/runs": {
            "post": {
                "operationId": "runs-sync-incognito_mode-fotmob-matches-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/incognito_mode~fotmob-matches-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-incognito_mode-fotmob-matches-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",
                "properties": {
                    "dates": {
                        "title": "Dates (optional)",
                        "type": "array",
                        "description": "Specific dates in YYYYMMDD format (e.g. \"20260618\"). If set, the date range below is ignored. Leave everything empty to scrape today's matches.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "dateFrom": {
                        "title": "Date from (optional)",
                        "type": "string",
                        "description": "Start of a date range, YYYYMMDD. Used only when 'Dates' is empty. Combine with 'Date to' for a range."
                    },
                    "dateTo": {
                        "title": "Date to (optional)",
                        "type": "string",
                        "description": "End of a date range, YYYYMMDD (inclusive). Used only when 'Dates' is empty."
                    },
                    "leagueIds": {
                        "title": "League ids (optional)",
                        "type": "array",
                        "description": "Only keep matches in these FotMob league ids (matches against either the league or its parent competition). Leave empty for all leagues. Discover ids with the FotMob Leagues List Scraper.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "status": {
                        "title": "Match status",
                        "enum": [
                            "all",
                            "finished",
                            "live",
                            "upcoming"
                        ],
                        "type": "string",
                        "description": "Keep only matches with this status.",
                        "default": "all"
                    },
                    "timezone": {
                        "title": "Timezone",
                        "type": "string",
                        "description": "Timezone used by FotMob to bucket matches into a date (IANA name, e.g. \"UTC\", \"Europe/London\").",
                        "default": "UTC"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify Proxy routes requests. Datacenter proxy (the default) is enough for most runs; switch to Residential if you hit blocks on large date ranges.",
                        "default": {
                            "useApifyProxy": true
                        }
                    },
                    "maxConcurrency": {
                        "title": "Max concurrency",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Maximum number of parallel requests (one per date). Keep this moderate to stay respectful.",
                        "default": 3
                    },
                    "requestDelaySecs": {
                        "title": "Delay between requests (seconds)",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Politeness delay applied before each request. Keep a delay of at least 1 second to stay respectful.",
                        "default": 1
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Stop after producing this many match records. Set to 0 for no limit.",
                        "default": 0
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
