# Global Health Stats Scraper - COVID, Vaccines & Epidemiology (`logiover/global-health-stats-scraper`) Actor

Scrape global epidemiological data by country, continent, or US state. Extract COVID-19 cases, deaths, recoveries, vaccinations, and historical time series. No API key, no login.

- **URL**: https://apify.com/logiover/global-health-stats-scraper.md
- **Developed by:** [Logiover](https://apify.com/logiover) (community)
- **Categories:** Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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

## Global Health Stats Scraper — COVID-19 Data, Vaccines, Historical Time Series & US States

Extract comprehensive epidemiological data for 200+ countries, all US states, and global continents — including COVID-19 case counts, deaths, recoveries, vaccination coverage, and historical time series — with zero API keys or login required.

### What does Global Health Stats Scraper do?

This actor queries the **disease.sh** open-source disease data API (`https://disease.sh/v3/`) to retrieve real-time and historical epidemiological statistics. It operates in four configurable modes:

- **Countries mode** fetches live COVID-19 stats for all 200+ countries or a filtered subset — cases, deaths, recoveries, active cases, critical patients, tests performed, and population figures, all in a single structured dataset.
- **Historical mode** unpacks time-series data across every date available (up to 1,000+ days per country), producing one row per country per date with cumulative case/death/recovered counts.
- **Vaccine mode** retrieves vaccination coverage timelines, showing how many doses were administered per country per day across the entire rollout period.
- **US States mode** delivers state-level breakdowns for all 50+ US states, mirroring the country format but granular to individual states.

All data is fetched from a stable, openly accessible JSON API — no scraping of HTML, no CAPTCHA challenges, no login walls. The API is updated multiple times per day from Johns Hopkins, Worldometer, and other authoritative sources.

### Who is it for?

- **Epidemiologists and public health researchers** who need structured, downloadable disease datasets without manual data collection.
- **Journalists and data analysts** tracking pandemic trends, comparing country responses, or building interactive dashboards.
- **Software developers** building health apps, monitoring tools, or integrating live disease stats into their platforms.
- **Students and academics** who need historical COVID-19 data for statistical modeling, machine learning, or coursework projects.
- **Policy analysts and NGOs** monitoring vaccination rollouts and healthcare outcomes across specific countries or regions.

### Use cases

- Download complete COVID-19 country-by-country statistics for 200+ nations in one run for a global comparison spreadsheet.
- Pull historical case time series for a set of countries (e.g., USA, Germany, Brazil) and load into Google Sheets for trend visualization.
- Track vaccination coverage progress per country over the entire rollout period, extracting daily vaccination totals.
- Monitor all US state-level data simultaneously, feeding a real-time dashboard or alerting system.
- Build training datasets for machine learning models predicting disease spread, healthcare system strain, or policy intervention effects.

### Why use Global Health Stats Scraper?

- **Completely keyless**: no API registration, no token management, no account needed.
- **20+ output fields per record**: country, continent, ISO codes, cases, deaths, recoveries, active, critical, tests, population, per-million ratios, vaccination totals, and flag URLs.
- **Bulk output**: countries mode yields 200+ rows, historical mode yields tens of thousands of time-series rows in a single run.
- **Four modes in one actor**: switch between live stats, historical trends, vaccination data, and US state detail without switching tools.
- **Country filtering**: supply a list of country names or ISO codes to narrow output to only the countries you care about.
- **Export to CSV, JSON, or Excel** directly from the Apify dataset interface or via API — no post-processing required.

### What data can you extract?

The actor returns structured records with the following fields depending on mode:

| Field | Type | Description |
|---|---|---|
| `mode` | string | Scrape mode: countries, historical, vaccine, usStates |
| `country` | string | Country name (or US state name in usStates mode) |
| `continent` | string | Continent name (e.g., Asia, Europe, North America) |
| `date` | string | Date in YYYY-MM-DD (historical/vaccine mode only) |
| `iso2` | string | ISO 3166-1 alpha-2 country code (e.g., US, DE) |
| `iso3` | string | ISO 3166-1 alpha-3 country code (e.g., USA, DEU) |
| `flag` | string | URL to country flag image |
| `cases` | string | Cumulative confirmed COVID-19 cases |
| `todayCases` | string | New cases reported today |
| `deaths` | string | Cumulative COVID-19 deaths |
| `todayDeaths` | string | New deaths reported today |
| `recovered` | string | Total recovered patients |
| `active` | string | Currently active (cases - deaths - recovered) |
| `critical` | string | Patients in critical/ICU condition |
| `tests` | string | Total COVID-19 tests performed |
| `population` | string | Country population |
| `casesPerMillion` | string | Cases per one million population |
| `deathsPerMillion` | string | Deaths per one million population |
| `testsPerMillion` | string | Tests per one million population |
| `vaccinated` | string | Total vaccine doses administered (vaccine mode) |
| `vaccinatedPerHundred` | string | Daily doses or per-hundred rate (vaccine mode) |
| `updated` | string | Date of last data update (YYYY-MM-DD) |

**Sample JSON output (countries mode):**
```json
{
  "mode": "countries",
  "country": "Germany",
  "continent": "Europe",
  "date": null,
  "iso2": "DE",
  "iso3": "DEU",
  "flag": "https://disease.sh/assets/img/flags/de.png",
  "cases": "38437756",
  "todayCases": "0",
  "deaths": "174979",
  "todayDeaths": "0",
  "recovered": "37900000",
  "active": "362777",
  "critical": "605",
  "tests": "122332384",
  "population": "84270625",
  "casesPerMillion": "456216",
  "deathsPerMillion": "2077",
  "testsPerMillion": "1452176",
  "vaccinated": null,
  "vaccinatedPerHundred": null,
  "updated": "2024-03-15"
}
````

### How to use

#### Option A — All countries (countries mode)

Get live COVID-19 statistics for every country in one run. No filters needed.

**Steps:**

1. Open the actor on Apify and click **Try for free**.
2. Set **Mode** to `countries`.
3. Leave the **Countries filter** empty.
4. Click **Start** and wait for results (typically under 30 seconds).

**Input JSON:**

```json
{
  "mode": "countries"
}
```

#### Option B — Specific countries with historical time series

Pull day-by-day case counts for a specific list of countries over a custom time window.

**Steps:**

1. Set **Mode** to `historical`.
2. Enter country names or ISO codes in the **Countries filter** (e.g., `USA`, `Germany`, `Turkey`).
3. Set **Historical days** to the number of days back (e.g., `90` for three months, `0` for all data).
4. Click **Start**.

**Input JSON:**

```json
{
  "mode": "historical",
  "countries": ["USA", "Germany", "Turkey"],
  "lastDays": 90
}
```

#### Option C — Vaccination coverage

Retrieve daily vaccination dose counts per country.

**Input JSON:**

```json
{
  "mode": "vaccine",
  "countries": ["USA", "UK", "India"],
  "lastDays": 60
}
```

#### Option D — US States breakdown

Get per-state COVID statistics for all US states.

**Input JSON:**

```json
{
  "mode": "usStates"
}
```

### Input parameters

| Parameter | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `countries` | Data mode: `countries`, `historical`, `vaccine`, `usStates` |
| `countries` | array | `[]` | Optional list of country names or ISO codes to filter. Empty = all countries. |
| `lastDays` | integer | `30` | Days of historical or vaccine data to retrieve. Set `0` for all available history. |
| `proxy` | object | datacenter | Apify proxy configuration. Datacenter proxies work fine. |

**Full input example:**

```json
{
  "mode": "historical",
  "countries": ["USA", "Brazil", "India", "Germany"],
  "lastDays": 365,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["SHADER_DATACENTER"]
  }
}
```

### Output example

**Historical time series row:**

```json
{
  "mode": "historical",
  "country": "USA",
  "continent": null,
  "date": "2022-01-15",
  "iso2": null,
  "iso3": null,
  "flag": null,
  "cases": "64984610",
  "todayCases": null,
  "deaths": "848877",
  "todayDeaths": null,
  "recovered": "40547832",
  "active": null,
  "critical": null,
  "tests": null,
  "population": null,
  "casesPerMillion": null,
  "deathsPerMillion": null,
  "testsPerMillion": null,
  "vaccinated": null,
  "vaccinatedPerHundred": null,
  "updated": null
}
```

### Tips for best results

- Use **mode: countries** for a quick snapshot of all 200+ countries — it completes in under 30 seconds and returns 200+ rows.
- For historical analysis, set **lastDays: 0** to retrieve the entire available timeline — this can return 50,000+ rows for all countries combined.
- When targeting specific countries, use **ISO codes** (e.g., `US`, `DE`, `TR`) rather than full country names to avoid mismatches.
- The **vaccine mode** with `fullData: true` returns daily dose counts — more useful for trend analysis than cumulative totals alone.
- For US state data, no `countries` filter is needed — the `usStates` mode always returns all 50+ states.
- Schedule this actor daily using **Apify Scheduler** to build a running historical archive of global health data.
- Use **Apify Webhooks** to trigger a Slack or email notification when a run completes, giving you fresh data alerts automatically.
- Combine **countries** and **historical** modes in consecutive scheduled runs to maintain both a current snapshot and a growing time series dataset.
- Export results directly to Google Sheets via the Apify Google Sheets integration for automatic dashboard updates.
- The API updates multiple times per day — running this actor twice daily captures both morning and evening data cycles.

### Integrations

**Google Sheets** — Use the native Apify → Google Sheets integration to automatically push every new run's results into a spreadsheet. Ideal for building live dashboards that update without manual downloads.

**Slack** — Configure a Webhook in Apify to post a message to your Slack channel whenever a scheduled run completes, keeping your team updated on the latest data.

**Zapier / Make** — Connect Apify to thousands of apps via Zapier or Make. Trigger workflows on run completion, push data to Airtable, Notion, or any database, or send automated reports.

**Scheduled runs** — Use Apify Scheduler to run this actor daily or weekly. Build a continuously growing time series dataset that logs global health stats automatically over months.

**Webhooks** — POST run results to your own endpoint for custom processing — feed a dashboard, trigger analytics pipelines, or archive data to S3.

### API usage

**cURL:**

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/logiover~global-health-stats-scraper/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode":"countries"}'
```

**Node.js (Apify client):**

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

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

const run = await client.actor('logiover/global-health-stats-scraper').call({
  mode: 'countries',
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Fetched ${items.length} health records`);
```

**Python:**

```python
from apify_client import ApifyClient

client = ApifyClient(token="YOUR_TOKEN")

run = client.actor("logiover/global-health-stats-scraper").call(run_input={
    "mode": "historical",
    "countries": ["USA", "Germany"],
    "lastDays": 90,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["country"], item["date"], item["cases"])
```

### Use with AI agents (MCP)

Global Health Stats Scraper is available as an MCP (Model Context Protocol) tool, making it directly callable from Claude and other AI agents. You can prompt an AI to pull live health data on your behalf:

> "Use the Global Health Stats Scraper to fetch the latest COVID-19 statistics for Germany, France, and Italy, then summarize which country has the highest active case rate per million population."

The actor returns structured JSON that AI agents can reason over directly — no manual data wrangling required.

### FAQ

#### Does this actor require an API key?

No. The disease.sh API is fully open and keyless. You do not need to register, create an account, or obtain any token. Just run the actor and get data.

#### How many countries are covered?

The **countries mode** covers 200+ countries and territories globally. The **usStates mode** covers all 50 US states plus territories. The **historical** and **vaccine** modes cover roughly the same set of countries, depending on data availability.

#### How far back does historical data go?

The disease.sh API provides historical data back to early 2020 for most countries. Set `lastDays: 0` to retrieve the entire available timeline. For popular countries like the USA, this yields 1,000+ daily data points.

#### Why are some fields null?

Not all endpoints return all fields. For example, `historical` mode only returns cases, deaths, and recovered — not tests or population. `vaccine` mode returns vaccination figures only. Fields not available in a given mode are returned as `null`.

#### What happens if I search for a country that doesn't exist?

The actor will log a warning and exit cleanly. Make sure to use either the full country name (e.g., "Germany") or a valid ISO-2 code (e.g., "DE"). You can check valid names against the list returned by an unfiltered `countries` mode run.

#### Can I export results to Excel or CSV?

Yes. From the Apify dataset view, click **Export** and select your preferred format — CSV, JSON, Excel (XLSX), XML, or RSS. All formats are available for free.

#### How fast does it run?

Countries mode completes in 10–30 seconds for all 200+ countries. Historical mode with `lastDays: 0` for all countries may take 2–5 minutes due to the volume of data rows. US states mode completes in under 15 seconds.

#### Is this legal to use?

Yes. disease.sh is an open-source project that aggregates publicly available health data from sources including Johns Hopkins University and Worldometer. The data is freely available and intended for public use. This actor simply accesses the API as any browser or app would.

#### How often is the data updated?

The disease.sh API typically updates multiple times per day — approximately every 15–30 minutes for live data, and once per day for historical snapshots. Schedule your runs accordingly.

#### Can I filter by continent?

The `continents` endpoint exists on disease.sh, but this actor focuses on country and state-level granularity. To filter by continent, run `countries` mode without filters and then group the results by the `continent` field in your spreadsheet or database.

#### What if I get zero results?

Zero results can happen if you specify an invalid country name or ISO code. Try using the actor without a countries filter first to confirm the API is responding, then verify your country names against the output list.

#### Are there related actors for other health data?

Yes — see the Related scrapers section below for links to other data extraction tools in the logiover portfolio.

### Is it legal?

This actor retrieves data from the disease.sh open API, which aggregates publicly available epidemiological data from Johns Hopkins University, Worldometer, CDC, and other authoritative sources. All data accessed is public domain and provided by disease.sh explicitly for open use. No authentication is bypassed, no private data is accessed, and no terms of service are violated. Users are responsible for ensuring their use of the extracted data complies with applicable laws and platform terms in their jurisdiction.

### Related scrapers

- **[logiover/b2b-lead-scraper](https://apify.com/logiover/b2b-lead-scraper)** — Extract B2B company leads by industry and country using OSM/Overpass data.
- **[logiover/ct-domain-monitor](https://apify.com/logiover/ct-domain-monitor)** — Monitor Certificate Transparency logs for new domain registrations.
- **[logiover/cve-advisory-tracker](https://apify.com/logiover/cve-advisory-tracker)** — Track CVE vulnerability advisories from NVD, OSV, and GitHub Security Advisories.
- **[logiover/news-multi-source-scraper](https://apify.com/logiover/news-multi-source-scraper)** — Aggregate news from multiple sources by keyword or topic for media monitoring.

# Actor input Schema

## `mode` (type: `string`):

Data type to fetch: 'countries' (per-country COVID stats), 'historical' (time series), 'vaccine' (vaccination coverage), 'usStates' (US state-level data).

## `countries` (type: `array`):

Optional list of country names or ISO codes to filter (e.g. \["USA", "Germany", "Turkey"]). Leave empty to get all countries. Not used in US States mode.

## `lastDays` (type: `integer`):

Number of days for historical / vaccine modes (e.g. 30, 90, 365). Use 0 for all available data.

## `proxy` (type: `object`):

Apify proxy settings. Apify Proxy (automatic) is recommended for reliability; the source is a keyless public API so a direct connection also works.

## Actor input object example

```json
{
  "mode": "countries",
  "countries": [],
  "lastDays": 30,
  "proxy": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

All records extracted by this run. Open the Dataset tab to browse, filter, and export as CSV, JSON, or Excel.

# 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 = {
    "proxy": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/global-health-stats-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 = { "proxy": { "useApifyProxy": True } }

# Run the Actor and wait for it to finish
run = client.actor("logiover/global-health-stats-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 '{
  "proxy": {
    "useApifyProxy": true
  }
}' |
apify call logiover/global-health-stats-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Global Health Stats Scraper - COVID, Vaccines & Epidemiology",
        "description": "Scrape global epidemiological data by country, continent, or US state. Extract COVID-19 cases, deaths, recoveries, vaccinations, and historical time series. No API key, no login.",
        "version": "1.0",
        "x-build-id": "tHQjrxHXn4Kkb3UIj"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/logiover~global-health-stats-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-logiover-global-health-stats-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/logiover~global-health-stats-scraper/runs": {
            "post": {
                "operationId": "runs-sync-logiover-global-health-stats-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/logiover~global-health-stats-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-logiover-global-health-stats-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": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "countries",
                            "historical",
                            "vaccine",
                            "usStates"
                        ],
                        "type": "string",
                        "description": "Data type to fetch: 'countries' (per-country COVID stats), 'historical' (time series), 'vaccine' (vaccination coverage), 'usStates' (US state-level data).",
                        "default": "countries"
                    },
                    "countries": {
                        "title": "Countries filter",
                        "type": "array",
                        "description": "Optional list of country names or ISO codes to filter (e.g. [\"USA\", \"Germany\", \"Turkey\"]). Leave empty to get all countries. Not used in US States mode.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "lastDays": {
                        "title": "Historical days",
                        "minimum": 0,
                        "maximum": 9999,
                        "type": "integer",
                        "description": "Number of days for historical / vaccine modes (e.g. 30, 90, 365). Use 0 for all available data.",
                        "default": 30
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify proxy settings. Apify Proxy (automatic) is recommended for reliability; the source is a keyless public API so a direct connection also works.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
