# Flashscore Live Matches — Football Scores, Stats & Lineups (`extractify-labs/flashscore-live-matches`) Actor

Extract live football match data from Flashscore — scores, events, statistics, lineups, and odds in real time. No proxy required.

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

## Pricing

from $0.001 / result

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 Live Matches** scrapes every currently live football match from Flashscore and returns fully structured data — scores, match minute, goal/card/substitution timeline, statistics (xG, possession, shots, corners, and 30+ stat types per period), starting lineups, and live 1×2 odds — in a single on-demand run. No proxy required. Designed to run on a 1–5 minute [Apify schedule](https://docs.apify.com/platform/schedules) as a real-time football data feed.

### What data does this actor extract?

Each run returns one dataset item per live match. Every item contains 29 structured fields covering match identity, score, timeline, venue, and optional deep data.

#### Core match fields

| Field | Type | Example |
|-------|------|---------|
| `match_id` | string | `"lhiFkQyH"` |
| `match_url` | string | `"https://www.flashscore.com/match/football/..."` |
| `status` | string | `"LIVE"` |
| `match_minute` | integer or null | `63` |
| `match_period` | string or null | `"2nd Half"` |
| `kickoff_time` | string (ISO 8601 UTC) | `"2026-04-18T14:00:00+00:00"` |
| `home_team` | string | `"Wellington Phoenix"` |
| `away_team` | string | `"Western Sydney Wanderers"` |
| `home_team_id` | string or null | `"vJj5pktK"` |
| `away_team_id` | string or null | `"A1syuT3s"` |
| `home_score` | integer | `2` |
| `away_score` | integer | `1` |
| `home_score_halftime` | integer or null | `1` — null until the first half ends |
| `away_score_halftime` | integer or null | `0` — null until the first half ends |
| `round` | string or null | `"2"` or `"Round of 16"` |
| `has_live_stream` | boolean | `false` |
| `league` | string | `"AUSTRALIA: A-League"` |
| `league_id` | string | `"EcZwBi3N"` |
| `league_url` | string | `"/football/australia/a-league/"` |
| `referee` | string or null | `"Abraham B."` |
| `venue` | string or null | `"Sky Stadium"` |
| `venue_city` | string or null | `"Wellington"` |
| `venue_capacity` | integer or null | `34500` |
| `lineups_confirmed` | boolean | `true` |
| `scraped_at` | string (ISO 8601 UTC) | `"2026-04-18T15:32:07+00:00"` |

#### Events array

`events` is always present (may be an empty list early in a match). Each entry covers one match event:

| Field | Type | Example |
|-------|------|---------|
| `event_id` | string | `"xK3mQ9A1"` |
| `side` | string | `"home"` or `"away"` |
| `minute` | string | `"16'"` or `"90+3'"` |
| `type` | string | `"goal"`, `"yellow_card"`, `"red_card"`, `"sub_in"`, `"sub_out"`, `"assist"` |
| `type_label` | string | `"Goal"` |
| `player_name` | string or null | `"Eze I."` |
| `player_id` | string or null | `"rwVQyUb6"` |
| `extra_info` | string or null | `"misses next match"` |
| `home_score_after` | integer or null | `1` — running score after a goal |
| `away_score_after` | integer or null | `0` |

#### Statistics array

`statistics` is populated when `includeStatistics` is `true` (the default). Each entry is one stat row for one period:

| Field | Type | Example |
|-------|------|---------|
| `period` | string | `"Match"`, `"1st Half"`, `"2nd Half"` |
| `category` | string | `"Top stats"`, `"Shots"`, `"Passes"`, `"Defense"` |
| `stat_id` | integer | `432` |
| `stat_name` | string | `"Expected goals (xG)"` |
| `home_value` | string | `"1.73"` |
| `away_value` | string | `"0.94"` |

#### Lineups object

`lineups` is populated when `includeLineups` is `true` (the default):

```json
{
  "home_formation": "1-4-4-2",
  "away_formation": "1-4-3-3",
  "confirmed": true,
  "home": [ { "player_id": "rwVQyUb6", "name": "Eze I.", "shirt_number": 10, "position": "Midfielder", "is_starter": true, "rating": "7.2", "nationality": "Nigeria", ... } ],
  "away": [ ... ]
}
````

Each player object includes: `player_id`, `name`, `surname`, `shirt_number`, `position`, `position_badge`, `nationality`, `rating`, `is_starter`, `in_match_event`.

#### Odds object

`odds` is populated when `includeOdds` is `true`. **Availability depends on your geographic region — in some regions no bookmakers serve data and the field will be `null` even when the option is enabled.**

```json
{
  "bookmaker_id": "8",
  "home": { "current": "2.1", "opening": "2.0", "change": "UP", "previous": "2.0" },
  "draw": { "current": "3.4", "opening": "3.5", "change": null, "previous": null },
  "away": { "current": "3.8", "opening": "4.0", "change": "DOWN", "previous": "4.2" }
}
```

`change` is `"UP"`, `"DOWN"`, or `null` (no movement since opening).

### Sample output

One complete item from a real run (China FA Cup, live at 13 minutes):

```json
{
  "match_id": "E1O1JiXo",
  "match_url": "https://www.flashscore.com/match/football/xiamen-chengyi-2RZ1iwrR/shenzhen-2028-nRHE5gqe/?mid=E1O1JiXo",
  "status": "LIVE",
  "match_minute": 13,
  "match_period": "2nd Half",
  "kickoff_time": "2026-04-20T07:00:00+00:00",
  "home_team": "Xiamen Chengyi",
  "away_team": "Shenzhen",
  "home_team_id": "SltLcBJc",
  "away_team_id": "E5vTeklA",
  "home_score": 1,
  "away_score": 0,
  "home_score_halftime": 1,
  "away_score_halftime": 0,
  "round": "2",
  "has_live_stream": false,
  "league": "CHINA: FA Cup",
  "league_id": "hQWz6gLn",
  "league_url": "/football/china/fa-cup/",
  "referee": null,
  "venue": null,
  "venue_city": null,
  "venue_capacity": null,
  "lineups_confirmed": true,
  "events": [
    {
      "event_id": "d2UAI37M",
      "side": "home",
      "minute": "45'",
      "type": "goal",
      "type_label": "Goal",
      "player_name": "Lin Y.",
      "player_id": "kQ9mRpXv",
      "extra_info": null,
      "home_score_after": 1,
      "away_score_after": 0
    }
  ],
  "statistics": [
    { "period": "Match", "category": "Top stats", "stat_id": 432, "stat_name": "Expected goals (xG)", "home_value": "1.73", "away_value": "0.94" },
    { "period": "Match", "category": "Top stats", "stat_id": 12, "stat_name": "Ball Possession", "home_value": "53%", "away_value": "47%" }
  ],
  "lineups": {
    "home_formation": "1-4-4-2",
    "away_formation": "1-4-3-3",
    "confirmed": true,
    "home": [],
    "away": []
  },
  "odds": null,
  "scraped_at": "2026-04-20T07:15:32+00:00"
}
```

### Quick start

1. Open the actor on the [Apify Store](https://apify.com/extractify-labs/flashscore-live-matches).
2. Leave all parameters at their defaults to get every live match with statistics and lineups included.
3. (Optional) Set `includeOdds` to `true` to add live 1×2 odds per match.
4. (Optional) Set `maxItems` to a small number (e.g. `2`) for a test run.
5. Click **Start**. The actor completes in seconds and returns one dataset item per live match.
6. Download results as **JSON, CSV, Excel, or XML** from the Dataset tab.

**Sample input (test run with all data):**

```json
{
  "includeStatistics": true,
  "includeLineups": true,
  "includeOdds": true,
  "maxItems": 3
}
```

### Input parameters

All parameters are optional. Leave everything at the defaults to return all currently live matches with statistics and lineups.

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `includeStatistics` | boolean | `true` | Fetch full match statistics per period: xG, possession, shots, corners, fouls, and 30+ stat categories. Adds one API call per live match. Set to `false` for score-only runs. |
| `includeLineups` | boolean | `true` | Fetch starting XI for both teams: formations, shirt numbers, positions, ratings, and nationalities. Adds one API call per live match. Set to `false` for score-only runs. |
| `includeOdds` | boolean | `false` | Fetch live 1×2 odds with current value, opening value, and movement direction. Adds one API call per live match. **Availability depends on geographic region — the `odds` field may be `null` even when this is enabled if no bookmakers are available in your region.** |
| `maxItems` | integer | unlimited | Maximum number of live matches to return. Leave unset to return all currently live matches. Minimum: 1. Useful for test runs. |
| `proxyConfiguration` | object | `{"useApifyProxy": false}` | Apify proxy configuration. **Not needed for normal use** — Flashscore APIs do not block direct requests. Enable only if your network restricts outbound connections. |

### Scheduling for real-time monitoring

This actor is designed to be run on a recurring schedule to keep your data continuously up to date.

**Recommended cadence:** every 1–5 minutes during live match windows. A full run with all options enabled at 31 live matches makes approximately 158 HTTP requests and typically completes in under 30 seconds.

To set up a schedule:

1. Open [Apify Scheduler](https://docs.apify.com/platform/schedules) in the Apify Console.
2. Create a new schedule pointing to this actor.
3. Set the interval to every 1–5 minutes using a cron expression (e.g. `*/2 * * * *` for every 2 minutes).
4. Each run replaces the previous dataset — or use the [Apify Dataset API](https://docs.apify.com/api/v2#/reference/datasets) to append results to your own storage.

#### How often should I run this actor?

For live scores and events, every 1–2 minutes is sufficient. For statistics and lineups (which update less frequently), every 3–5 minutes is appropriate. Odds change more frequently during the match — run every 1 minute if you need near-real-time odds.

### Use cases

**Live scores dashboard:** Schedule the actor every 2 minutes to power a football dashboard showing all in-progress matches worldwide. Each item includes the current score, match minute, period, and goal timeline — everything needed to render a live scorecard.

**In-play betting and odds tracking:** Enable `includeOdds` and run every minute to feed your in-play betting model with live 1×2 odds alongside xG, possession, and shot data per half. One dataset item per match keeps your data pipeline simple.

**Real-time sports analytics:** Monitor expected goals (xG), ball possession, shots on target, and 30+ stat categories per period across all live matches simultaneously. Schedule at 3-minute intervals to capture tactical shifts throughout each match.

**Goal and event notification system:** After each run, scan the `events` array for new goals, red cards, or substitutions since your last poll. Each event includes `minute`, `type`, `player_name`, and the running score after the event — everything needed to trigger an automated notification.

**Fantasy sports and trading platforms:** Combine lineups (starting XI with shirt numbers, positions, and ratings) with live match stats to power real-time fantasy scoring or trading signals during match windows.

**Academic and commercial football research:** Capture per-match statistics for every league worldwide — not just top-5 leagues. The actor covers all competitions Flashscore indexes. Over a full match day, this can represent hundreds of matches with 30+ stat types each.

### Notes and limitations

- **Football only.** This actor extracts football (soccer) matches exclusively. Multi-sport support is planned for a future version.
- **Live matches only.** The actor returns only currently in-progress matches (`status: "LIVE"`). For historical results, upcoming fixtures, or a wider date window, use the sibling [Flashscore Extractor](https://apify.com/extractify-labs/flashscore-extractor) actor.
- **Odds are geo-dependent.** Live 1×2 odds depend on your geographic region. In some regions no bookmakers serve data, so the `odds` field will be `null` even when `includeOdds` is `true`. This is a Flashscore data availability constraint, not an actor bug.
- **Halftime scores are null before half-time ends.** `home_score_halftime` and `away_score_halftime` are `null` until the first half is complete and the half-time score is confirmed.
- **One item per match, not a single JSON blob.** Each live match is its own dataset record, enabling Apify's native per-record webhooks, dataset filtering, and pagination — unlike actors that wrap all matches in a single output object.
- **Point-in-time snapshot.** Each run captures the current state of all live matches at that moment. The actor does not push updates in real time. Schedule it for polling-based monitoring.

### Frequently asked questions

#### Does this actor work without a proxy?

Yes. The actor fetches directly from Flashscore's internal feed APIs — no residential or datacenter proxy is required. You pay only for Apify compute, not proxy bandwidth. Enable the `proxyConfiguration` option only if your network restricts outbound connections.

#### How often can I run this actor?

As often as every 1 minute. A full run with statistics, lineups, and odds enabled for 31 live matches makes approximately 158 requests and typically completes in well under 30 seconds. This is well within normal Apify scheduling limits and Flashscore's tolerance for direct requests.

#### Why are odds sometimes empty (`null`)?

Odds availability depends on the geographic region where the actor runs. Flashscore serves bookmaker data based on the region of the requesting IP. In some regions no bookmakers are configured, so `odds` is `null` even when `includeOdds: true`. This is a Flashscore data availability constraint. If odds are important to your use case, confirm that live odds display when you browse Flashscore directly from your network.

#### What sports does this actor support?

Football (soccer) only in the current version. The actor is intentionally football-specific — it uses Flashscore's football live feed directly with no multi-sport selector. Support for additional sports is planned for a future release.

#### How is this different from the Flashscore Extractor actor?

The [Flashscore Extractor](https://apify.com/extractify-labs/flashscore-extractor) covers historical results, today's matches, and upcoming fixtures across a 14-day window for football and basketball — but it returns only basic match listing data (teams, score, status, tournament). It does not extract events, statistics, lineups, or odds.

This actor specialises in the live snapshot: it captures every currently in-progress match with the full data depth (events, 30+ stat types per period, starting XI, live odds). Use the Flashscore Extractor for scheduling and historical data; use this actor for real-time live match depth.

#### How do I get xG or possession statistics?

Enable `includeStatistics` (the default is `true`). The `statistics` array in each match item contains all available stat types for the current match, broken down by period (`Match`, `1st Half`, `2nd Half`). Expected goals (xG) has `stat_id: 432`, ball possession has `stat_id: 12`. Each stat row includes `home_value` and `away_value` as raw strings (which may be percentages like `"53%"` or compound strings like `"82% (233/285)"`).

#### How do I export results to CSV or Excel?

When the actor run completes, open the **Dataset** tab in the Apify Console and click **Export**. Apify natively supports JSON, CSV, XLSX, XML, and HTML exports. For automated pipelines, use the [Apify Dataset API](https://docs.apify.com/api/v2#/reference/datasets) to pull results programmatically after each run.

### Related actors

- [Flashscore Extractor](https://apify.com/extractify-labs/flashscore-extractor) — Extract football and basketball match listings, results, and fixtures from Flashscore across a 14-day window. Use this for historical and scheduled data; use the live matches actor for real-time in-progress match depth.

# Actor input Schema

## `includeStatistics` (type: `boolean`):

Fetch full match statistics (xG, possession, shots, corners, fouls, and 30+ stat types broken down by period). Requires one extra API call per live match. Set to false for score-only runs to reduce request volume.

## `includeLineups` (type: `boolean`):

Fetch starting XI, formations, shirt numbers, positions, ratings, and nationalities for both teams. Requires one extra API call per live match. Set to false for score-only runs.

## `includeOdds` (type: `boolean`):

Fetch live 1x2 odds (current value, opening value, and movement direction). Requires one extra API call per live match. Odds availability depends on your geographic region — in some regions no bookmakers are available and the odds field will be empty even when this option is enabled.

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

Maximum number of live matches to return. Leave unset to return all currently live matches. Useful for test runs.

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

Apify proxy configuration. Not needed for normal use — Flashscore APIs do not block direct requests. Enable only if running from a restricted network.

## Actor input object example

```json
{
  "includeStatistics": true,
  "includeLineups": true,
  "includeOdds": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("extractify-labs/flashscore-live-matches").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("extractify-labs/flashscore-live-matches").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 '{}' |
apify call extractify-labs/flashscore-live-matches --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Flashscore Live Matches — Football Scores, Stats & Lineups",
        "description": "Extract live football match data from Flashscore — scores, events, statistics, lineups, and odds in real time. No proxy required.",
        "version": "0.0",
        "x-build-id": "ubb3byAWoyOT89npd"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/extractify-labs~flashscore-live-matches/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-extractify-labs-flashscore-live-matches",
                "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-live-matches/runs": {
            "post": {
                "operationId": "runs-sync-extractify-labs-flashscore-live-matches",
                "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-live-matches/run-sync": {
            "post": {
                "operationId": "run-sync-extractify-labs-flashscore-live-matches",
                "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": {
                    "includeStatistics": {
                        "title": "Include statistics",
                        "type": "boolean",
                        "description": "Fetch full match statistics (xG, possession, shots, corners, fouls, and 30+ stat types broken down by period). Requires one extra API call per live match. Set to false for score-only runs to reduce request volume.",
                        "default": true
                    },
                    "includeLineups": {
                        "title": "Include lineups",
                        "type": "boolean",
                        "description": "Fetch starting XI, formations, shirt numbers, positions, ratings, and nationalities for both teams. Requires one extra API call per live match. Set to false for score-only runs.",
                        "default": true
                    },
                    "includeOdds": {
                        "title": "Include live odds",
                        "type": "boolean",
                        "description": "Fetch live 1x2 odds (current value, opening value, and movement direction). Requires one extra API call per live match. Odds availability depends on your geographic region — in some regions no bookmakers are available and the odds field will be empty even when this option is enabled.",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Maximum live matches",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of live matches to return. Leave unset to return all currently live matches. Useful for test runs."
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify proxy configuration. Not needed for normal use — Flashscore APIs do not block direct requests. Enable only if running from a restricted network.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
