# Yahoo Finance Stock Data Scraper (`fetch_cat/yahoo-finance-stock-data-scraper`) Actor

📈 Extract Yahoo Finance quote metadata and OHLCV chart rows for stocks, ETFs, indices, forex, crypto, and funds in clean datasets.

- **URL**: https://apify.com/fetch\_cat/yahoo-finance-stock-data-scraper.md
- **Developed by:** [Hanna Nosova](https://apify.com/fetch_cat) (community)
- **Categories:** Business, News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.06 / 1,000 chart rows

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

## Yahoo Finance Stock Data Scraper
Extract public Yahoo Finance stock quote metadata and historical OHLCV chart rows for stocks, ETFs, indices, crypto pairs, forex pairs, and funds. Use it to turn symbols such as `AAPL`, `MSFT`, `SPY`, `BTC-USD`, or `^GSPC` into clean dataset rows that are ready for spreadsheets, dashboards, backtests, and automations.

### What does Yahoo Finance Stock Data Scraper do?
- 📈 Fetches Yahoo Finance chart rows for one or many symbols.
- 🕯️ Returns open, high, low, close, and volume values for each timestamp.
- 🏷️ Adds quote metadata such as exchange, currency, previous close, and current regular market price.
- 📦 Saves flat JSON rows that export cleanly to CSV, Excel, Google Sheets, databases, and BI tools.
- ⚠️ Keeps per-symbol error rows so bad tickers do not stop the whole run.


### Who is it for?
- Investors can collect repeatable historical prices for portfolio analysis.
- Market researchers can compare symbols across a consistent period and interval.
- Data teams can schedule stock datasets for warehouses and dashboards.
- Automation builders can trigger alerts or enrich workflows with recent Yahoo Finance market data.
- Developers can call the Actor API instead of maintaining ticker-fetching scripts.


### Why use this actor?
- ✅ Multi-symbol input in one run.
- ✅ Simple range and interval controls.
- ✅ Flat, typed output with timestamp and ISO date.
- ✅ Works well for recurring jobs because the input stays compact.
- ✅ Designed for public market data workflows without browser automation.


### Example use cases
- Build a daily stock-price export for watchlists.
- Collect ETF OHLCV data for allocation dashboards.
- Backfill one month or one year of candles for a trading model.
- Compare market movements across tickers after earnings or macro events.
- Refresh Google Sheets, Airtable, or a database with clean Yahoo Finance rows.


### Data returned
- Each dataset row represents one symbol at one chart timestamp.
- The same quote metadata is repeated per row so exported files remain self-contained.
- Rows with a symbol-level problem include the `error` field instead of failing the entire run.
- Numeric fields are returned as numbers, not formatted strings.
- Dates are returned in ISO format for easy sorting and parsing.


### Output fields
- `symbol` — Yahoo Finance symbol returned by the source.
- `exchangeName` — exchange code when available.
- `currency` — quote currency.
- `regularMarketPrice` — latest regular market price from quote metadata.
- `previousClose` and `chartPreviousClose` — previous close values from metadata.
- `timezone` — exchange timezone.
- `range` and `interval` — requested chart settings.
- `timestamp` and `date` — raw Unix timestamp and ISO date.
- `open`, `high`, `low`, `close`, `volume` — OHLCV values.
- `sourceUrl` — Yahoo Finance quote page URL.
- `scrapedAt` — when the row was collected.
- `error` — per-symbol error message when applicable.


### How much does it cost to scrape Yahoo Finance stock data?
- The Actor uses pay-per-event pricing: a `$0.005` start event plus one `result` event for each saved chart row.
- Current per-row tiers are `$0.000115` on FREE, `$0.0001` on BRONZE, `$0.000078` on SILVER, `$0.00006` on GOLD, `$0.00004` on PLATINUM, and `$0.000028` on DIAMOND.
- Example FREE-plan cost: 3 symbols × about 22 daily rows for `1mo` = 66 rows × `$0.000115` + `$0.005` start ≈ `$0.0126`.
- Example BRONZE cost: 10 symbols × about 252 daily rows for `1y` = 2,520 rows × `$0.0001` + `$0.005` start ≈ `$0.257`.
- Example GOLD cost: 50 symbols × about 22 daily rows for `1mo` = 1,100 rows × `$0.00006` + `$0.005` start ≈ `$0.071`.
- Free-plan users can run small watchlists and short daily ranges cheaply; use shorter ranges or coarser intervals when testing.


### How to use it
- Open the Actor input page.
- Enter one or more ticker symbols.
- Choose a range such as `1mo`, `6mo`, `1y`, or `max`.
- Choose an interval such as `1d`, `1wk`, or `1mo`.
- Run the Actor and export the dataset as JSON, CSV, Excel, or via API.


### Input: symbols
- Use Yahoo Finance ticker syntax.
- Examples: `AAPL`, `MSFT`, `SPY`, `BTC-USD`, `EURUSD=X`, `^GSPC`.
- Symbols are normalized to uppercase and duplicates are removed.
- Invalid symbols create error rows so valid symbols still finish.
- Start with a small watchlist when testing a new interval or range.


### Input: range
- Supported values include `1d`, `5d`, `1mo`, `3mo`, `6mo`, `1y`, `2y`, `5y`, `10y`, `ytd`, and `max`.
- The default range is `1mo`.
- Longer ranges produce more rows and therefore cost more.
- Some intervals are only available for shorter ranges.
- If Yahoo Finance rejects a combination, the actor records an error row for the symbol.


### Input: interval
- Supported intervals include `1m`, `2m`, `5m`, `15m`, `30m`, `60m`, `90m`, `1h`, `1d`, `5d`, `1wk`, `1mo`, and `3mo`.
- The default interval is `1d`.
- Intraday intervals usually work only for recent ranges.
- Daily, weekly, and monthly intervals are best for historical backfills.
- Use the same interval across symbols when comparing time series.


### Tips for best results
- Use valid Yahoo Finance symbols exactly as shown on Yahoo Finance.
- Prefer daily candles for long-range historical analysis.
- Keep concurrency at the default unless you have a large watchlist.
- Review the `error` column after each run.
- Schedule recurring runs for stable dashboards.


### Integrations
- Send dataset rows to Google Sheets for lightweight portfolio tracking.
- Load CSV exports into Excel or Numbers for analysis.
- Connect Apify integrations to Make, Zapier, or webhooks.
- Use the API to push rows into PostgreSQL, BigQuery, Snowflake, or a data lake.
- Trigger downstream alerts when recent close prices meet your rules.


### API usage with Node.js
Install the Apify client with `npm install apify-client`, set `APIFY_TOKEN`, and call the actor by its full owner/name ID.

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });

const run = await client.actor('fetch_cat/yahoo-finance-stock-data-scraper').call({
  symbols: ['AAPL', 'MSFT', 'SPY'],
  range: '1mo',
  interval: '1d',
  includeRawTimestamps: true,
  maxConcurrency: 3,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems({ limit: 1000 });
console.log(items.slice(0, 3));
````

### API usage with Python

Install the client with `pip install apify-client`, set `APIFY_TOKEN`, and stream rows from the default dataset.

```python
import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])

run = client.actor("fetch_cat/yahoo-finance-stock-data-scraper").call(run_input={
    "symbols": ["AAPL", "MSFT", "SPY"],
    "range": "1mo",
    "interval": "1d",
    "includeRawTimestamps": True,
    "maxConcurrency": 3,
})

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

### API usage with cURL

Use the synchronous dataset-items endpoint for small jobs when you want results returned directly in the response.

```bash
RUN_JSON=$(curl -sS \
  "https://api.apify.com/v2/acts/fetch_cat~yahoo-finance-stock-data-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "symbols": ["AAPL", "MSFT", "SPY"],
    "range": "1mo",
    "interval": "1d",
    "includeRawTimestamps": true,
    "maxConcurrency": 3
  }')

echo "$RUN_JSON"
```

For larger jobs, start an async run with `/runs`, poll until it succeeds, and download `https://api.apify.com/v2/datasets/<DATASET_ID>/items`.

### MCP usage

- You can connect this Actor to Claude through Apify MCP.
- Use the MCP URL with `?tools=fetch_cat/yahoo-finance-stock-data-scraper`.
- Claude Code setup example: `claude mcp add apify-yahoo-finance https://mcp.apify.com/?tools=fetch_cat/yahoo-finance-stock-data-scraper`.
- Claude Desktop JSON config example:

```json
{
  "mcpServers": {
    "apify-yahoo-finance": {
      "url": "https://mcp.apify.com/?tools=fetch_cat/yahoo-finance-stock-data-scraper"
    }
  }
}
```

- Example prompt: “Fetch one month of daily rows for AAPL, MSFT, and SPY.”
- Example prompt: “Compare closing prices for BTC-USD and ETH-USD over the last five days.”
- MCP is useful for ad hoc research and spreadsheet-style workflows.

### Scheduling

- Create a schedule in Apify Console for daily or weekly refreshes.
- Use a small symbol list for frequent jobs.
- Use longer ranges for backfills and shorter ranges for ongoing updates.
- Export each run or connect it to a webhook.
- Monitor run errors if your ticker universe changes over time.

### Troubleshooting

- If a symbol returns an error, verify it on Yahoo Finance and copy the exact ticker.
- If intraday data fails, try a shorter range or daily interval.
- If a run returns fewer rows than expected, remember markets close on weekends and holidays.
- If costs are higher than expected, reduce range length or use a coarser interval.
- If you need fields not included here, request a feature for fundamentals, news, or options.

### Legality and responsible use

- This Actor extracts publicly available market data.
- Respect Yahoo Finance terms and applicable laws for your use case.
- Do not use scraped data for unlawful trading, market manipulation, or redistribution that violates your agreements.
- For regulated investment workflows, verify data quality independently.
- You are responsible for how you use and store the exported data.

### Related scrapers

These related actors from `fetch_cat` can complement Yahoo Finance price data:

- [Google News Scraper](https://apify.com/fetch_cat/google-news-scraper) — monitor public news results for tickers, companies, competitors, or market themes.
- [Google Trending Searches Scraper](https://apify.com/fetch_cat/google-trending-searches-scraper) — track broad public search interest that may explain market attention.
- [Y Combinator Companies Scraper](https://apify.com/fetch_cat/y-combinator-companies-scraper) — collect startup/company data for market maps and lead lists.
- [LinkedIn Jobs Scraper](https://apify.com/fetch_cat/linkedin-jobs-scraper) — enrich market research with hiring demand signals.
- Schedule each actor separately so failures stay isolated and datasets stay easy to troubleshoot.

### FAQ

- Can I scrape multiple tickers? Yes, add them to the `symbols` array.
- Can I get crypto data? Yes, use Yahoo Finance symbols such as `BTC-USD`.
- Can I get forex data? Yes, use Yahoo Finance symbols such as `EURUSD=X`.
- Can I export to CSV? Yes, every Apify dataset can be exported as CSV.
- Does one invalid ticker stop the run? No, it creates an error row and continues.

### Changelog

- Version 0.1 focuses on chart rows and quote metadata.
- Initial fields include OHLCV, timestamp, exchange, currency, market price, and errors.
- Future versions may add fundamentals, dividends, news, or options if requested.
- Pricing is pay-per-result so small tests stay inexpensive.
- The default input is intentionally small for a cheap first run.

### Example input

```json
{
  "symbols": ["AAPL", "MSFT", "SPY"],
  "range": "1mo",
  "interval": "1d",
  "includeRawTimestamps": true,
  "maxConcurrency": 3
}
```

### Example output row

```json
{
  "symbol": "AAPL",
  "exchangeName": "NMS",
  "currency": "USD",
  "regularMarketPrice": 295.95,
  "range": "1mo",
  "interval": "1d",
  "date": "2026-06-17T20:00:00.000Z",
  "open": 294.38,
  "high": 302.07,
  "low": 294.38,
  "close": 295.95,
  "volume": 42329351,
  "error": null
}
```

### Field checklist for exports

- Include `symbol` in downstream schema mappings.
- Include `exchangeName` in downstream schema mappings.
- Include `currency` in downstream schema mappings.
- Include `regularMarketPrice` in downstream schema mappings.
- Include `previousClose` in downstream schema mappings.
- Include `chartPreviousClose` in downstream schema mappings.
- Include `timezone` in downstream schema mappings.
- Include `range` in downstream schema mappings.
- Include `interval` in downstream schema mappings.
- Include `timestamp` in downstream schema mappings.
- Include `date` in downstream schema mappings.
- Include `open` in downstream schema mappings.
- Include `high` in downstream schema mappings.
- Include `low` in downstream schema mappings.
- Include `close` in downstream schema mappings.
- Include `volume` in downstream schema mappings.
- Include `sourceUrl` in downstream schema mappings.
- Include `scrapedAt` in downstream schema mappings.
- Include `error` in downstream schema mappings.

# Actor input Schema

## `symbols` (type: `array`):

Yahoo Finance symbols to fetch, for example AAPL, MSFT, SPY, BTC-USD, EURUSD=X, or ^GSPC.

## `range` (type: `string`):

Yahoo Finance chart range to request.

## `interval` (type: `string`):

Candle interval. Some short intervals are only available for recent ranges on Yahoo Finance.

## `includeRawTimestamps` (type: `boolean`):

Keep the raw Yahoo Finance Unix timestamp in each output row in addition to the ISO date.

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

How many symbols to request at the same time. Lower this if Yahoo Finance rate limits large symbol batches.

## Actor input object example

```json
{
  "symbols": [
    "AAPL",
    "MSFT",
    "SPY"
  ],
  "range": "1mo",
  "interval": "1d",
  "includeRawTimestamps": true,
  "maxConcurrency": 3
}
```

# Actor output Schema

## `overview` (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 = {
    "symbols": [
        "AAPL",
        "MSFT",
        "SPY"
    ],
    "range": "1mo",
    "interval": "1d",
    "includeRawTimestamps": true,
    "maxConcurrency": 3
};

// Run the Actor and wait for it to finish
const run = await client.actor("fetch_cat/yahoo-finance-stock-data-scraper").call(input);

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

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

```

## Python example

```python
from apify_client import ApifyClient

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

# Prepare the Actor input
run_input = {
    "symbols": [
        "AAPL",
        "MSFT",
        "SPY",
    ],
    "range": "1mo",
    "interval": "1d",
    "includeRawTimestamps": True,
    "maxConcurrency": 3,
}

# Run the Actor and wait for it to finish
run = client.actor("fetch_cat/yahoo-finance-stock-data-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "symbols": [
    "AAPL",
    "MSFT",
    "SPY"
  ],
  "range": "1mo",
  "interval": "1d",
  "includeRawTimestamps": true,
  "maxConcurrency": 3
}' |
apify call fetch_cat/yahoo-finance-stock-data-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Yahoo Finance Stock Data Scraper",
        "description": "📈 Extract Yahoo Finance quote metadata and OHLCV chart rows for stocks, ETFs, indices, forex, crypto, and funds in clean datasets.",
        "version": "0.1",
        "x-build-id": "sfZOpEaxfYI0LyEsb"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/fetch_cat~yahoo-finance-stock-data-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-fetch_cat-yahoo-finance-stock-data-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/fetch_cat~yahoo-finance-stock-data-scraper/runs": {
            "post": {
                "operationId": "runs-sync-fetch_cat-yahoo-finance-stock-data-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/fetch_cat~yahoo-finance-stock-data-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-fetch_cat-yahoo-finance-stock-data-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "symbols"
                ],
                "properties": {
                    "symbols": {
                        "title": "Ticker symbols",
                        "minItems": 1,
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Yahoo Finance symbols to fetch, for example AAPL, MSFT, SPY, BTC-USD, EURUSD=X, or ^GSPC.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "range": {
                        "title": "Range",
                        "enum": [
                            "1d",
                            "5d",
                            "1mo",
                            "3mo",
                            "6mo",
                            "1y",
                            "2y",
                            "5y",
                            "10y",
                            "ytd",
                            "max"
                        ],
                        "type": "string",
                        "description": "Yahoo Finance chart range to request.",
                        "default": "1mo"
                    },
                    "interval": {
                        "title": "Interval",
                        "enum": [
                            "1m",
                            "2m",
                            "5m",
                            "15m",
                            "30m",
                            "60m",
                            "90m",
                            "1h",
                            "1d",
                            "5d",
                            "1wk",
                            "1mo",
                            "3mo"
                        ],
                        "type": "string",
                        "description": "Candle interval. Some short intervals are only available for recent ranges on Yahoo Finance.",
                        "default": "1d"
                    },
                    "includeRawTimestamps": {
                        "title": "Include raw Unix timestamps",
                        "type": "boolean",
                        "description": "Keep the raw Yahoo Finance Unix timestamp in each output row in addition to the ISO date.",
                        "default": true
                    },
                    "maxConcurrency": {
                        "title": "Maximum concurrency",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "How many symbols to request at the same time. Lower this if Yahoo Finance rate limits large symbol batches.",
                        "default": 3
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
