# Substack Email Scraper Fast Advanced And Cheapest (`solid-scraper/substack-email-scraper-fast-advanced-and-cheapest`) Actor

📩 Substack Email Scraper—Fast, Advanced & Affordable. Extract verified subscriber emails from niche newsletters quickly using smart filters. Ideal for marketers, agencies, and sales teams to grow outreach lists with confidence. 🚀

- **URL**: https://apify.com/solid-scraper/substack-email-scraper-fast-advanced-and-cheapest.md
- **Developed by:** [SolidScraper](https://apify.com/solid-scraper) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

### Substack Email Scraper - Fast, Advanced and Cheapest 📬

**Substack Email Scraper - Fast, Advanced and Cheapest** helps you quickly extract email addresses from Substack using the keywords and filters you choose. If you’re building a **Substack email outreach list**, doing lead research, or enriching CRM data, this actor automates the email-finding workflow so you don’t waste hours on manual searching. It’s a **Substack email extractor** and **Substack subscriber email scraper** designed to return structured results you can use right away—at scale, with practical controls to manage run time.

Whether you're a marketer, researcher, or data analyst, this tool is built for anyone who needs a fast way to find **Substack contact email finder** details from publicly available web data and then turn them into actionable leads.

---

### What is Substack Email Scraper - Fast, Advanced and Cheapest?

**Substack Email Scraper - Fast, Advanced and Cheapest** is an Apify actor that extracts email addresses from Substack based on **your input keywords** and **email-domain filters** (like `@gmail.com`). It solves a common problem in outreach and research: finding the right contact emails for Substack publishers without doing everything manually.

This **Substack leads scraper** works best when you provide targeted terms (for example roles like “manager” or “founder”) and one or more domains. The actor collects emails from publicly available sources and saves each match into a dataset so you can review, export, and use the results in your outreach workflows.

At the end of your run, you get a clean dataset you can use for **Substack email list scraper** style bulk outreach, faster **Substack email scraping API**-like workflows (via dataset export), and repeatable lead generation.

---

### Why choose Substack Email Scraper - Fast, Advanced and Cheapest?

| Feature | Benefit |
| --- | --- |
| ✅ **All-in-one email extraction** | Extract emails and Substack profile details in one run and store them in a dataset |
| ✅ **Keyword + domain filtering** | Use keywords and email domains to focus on the contacts you care about |
| ✅ **Reliability-focused scraping** | Includes retries and fallbacks for resilience when results are limited or blocked |
| ✅ **Structured dataset output** | Produces consistent fields like `keyword`, `title`, `url`, and `email` for easy export |
| ✅ **Scales to larger runs** | Supports larger keyword/domain coverage while stopping once your `maxEmails` is reached |
| ✅ **Dataset-first workflow** | Data is pushed incrementally so you can monitor progress and export after the run |

---

### Key features

- 📌 **Targeted Substack Email Extraction**: Uses your `keywords` and `customDomains` to find relevant contact emails
- 🧠 **Flexible Keyword Inputs**: Accepts a list of keywords (multiple roles/queries) to broaden coverage for a **Substack bulk email scraper**
- 🎯 **Domain Filters for Better Matches**: Helps prioritize specific email types (e.g., `@gmail.com`, `@yahoo.com`) like an advanced **Substack contact email finder**
- 🛡️ **Built-in Resilience**: Designed to handle limited results with retries and fallbacks for more dependable runs
- 💾 **Incremental Data Saving**: Each discovered lead is pushed to the dataset immediately during the run
- 🔄 **Duplicate Avoidance**: Tracks already-seen emails so repeated matches don’t bloat your output
- ⏱️ **Run Control with `maxEmails`**: Stops once your requested email count is reached, helping manage time and cost for a fast **Substack email scraping software** workflow
- 🌐 **Location Filtering Option**: Lets you optionally add a `location` filter to narrow results for region-specific research

---

### Input

Provide input via an `input.json` file. Example structure:

```json
{
  "keywords": ["manager", "founder"],
  "location": "New York",
  "customDomains": ["@gmail.com", "@yahoo.com"],
  "maxEmails": 50
}
````

#### Input Fields

| Field | Required | Description |
| --- | --- | --- |
| `keywords` | ✅ | A list of keywords to search for when extracting emails from Substack. Use targeted terms for better results (e.g., titles like “manager” or “founder”). |
| `location` | ❌ | Location filter to narrow results. Leave it empty to keep the search broad. |
| `customDomains` | ❌ | A list of email domains to prioritize (for example `@gmail.com`, `@yahoo.com`). This helps you build a cleaner **Substack email extractor** output focused on the types of contacts you want. |
| `maxEmails` | ❌ | Maximum number of emails to collect. The scraper stops once this limit is reached. Higher values can take longer and don’t guarantee the exact number will be found. |

***

### Output

After execution, the actor saves each lead’s data into the **Substack Emails Dataset** in JSON format. Each dataset row represents one discovered email tied to the keyword/domain combination.

```json
[
  {
    "network": "Substack.com",
    "keyword": "manager",
    "title": "No title",
    "description": "No data",
    "url": "No URL",
    "email": "example@gmail.com"
  }
]
```

#### Output Fields

| Field | Type | Description |
| --- | --- | --- |
| `network` | string | The source network label for the scraped leads. |
| `keyword` | string | The keyword used for the run context when the email was found. |
| `title` | string | The title text associated with the matched result (or a fallback like `No title`). |
| `description` | string | The extracted descriptive text used for email matching (or fallback like `No data`). |
| `url` | string | The URL associated with the matched result (or fallback like `No URL`). |
| `email` | string | The extracted email address. |

> Notes on exports: You can export the dataset (commonly as JSON/CSV from Apify) after the run completes. The dataset is filled incrementally as results are found.

***

### How to use Substack Email Scraper - Fast, Advanced and Cheapest (via Apify Console)

1. **Open Apify Console**: Go to [console.apify.com](https://console.apify.com) and sign in.
2. **Find the actor**: Search for **Substack Email Scraper - Fast, Advanced and Cheapest** in the Apify Actors page.
3. **Go to the Input section**: You’ll see the built-in input form for `keywords`, `location`, `customDomains`, and `maxEmails`.
4. **Set `keywords`**: Add one or more keywords like `manager`, `founder`, or other role/niche terms to power your **Substack subscriber email scraper** results.
5. **Optionally add `customDomains`**: Use domains such as `@gmail.com` or `@yahoo.com` to improve lead relevance for **Substack email list scraper** workflows.
6. **Optionally set `location`**: If you want more regional targeting, enter a location string; otherwise keep it blank for broader coverage.
7. **Set `maxEmails` (recommended)**: Choose a practical email cap to control runtime. The actor will stop when the limit is reached.
8. **Click Run**: Watch logs during execution for progress and discovered emails.
9. **Open the dataset output**: After the run, open the dataset titled **Substack Emails Dataset** and export the results to JSON/CSV for your CRM or outreach pipeline.

No coding required—get accurate results in minutes with this **Substack email scraping software**.

***

### Advanced features & SEO optimization

- 🚀 **Engineered for Substack email outreach**: Ideal for **Substack email outreach list** building and **Substack email outreach** research where you want structured output for each match.
- 🔎 **Keyword + email-domain tuning**: Uses your `keywords` and `customDomains` together to improve the quality of a **Substack email extractor** workflow (e.g., filtering to specific domains like `@gmail.com`).
- 🔄 **Resilience when results are limited**: Includes retries and fallbacks for reliability when runs face empty/limited results.
- 🧾 **Real-time dataset pushes**: Leads are pushed incrementally, so you can start exporting/processing without waiting for everything to finish.
- ⏳ **Timeout and scale awareness**: Bigger searches and higher limits can take longer; you can extend the timeout in **Run Options** (default is 3600 seconds / 1 hour) when needed.

***

### Best use cases

- 📈 **Marketing teams building outbound lists**: Collect emails from Substack leads faster to kick off targeted outreach campaigns.
- 🧑‍💼 **Recruiters sourcing talent-related newsletters**: Find publisher contact emails tied to roles/keywords for efficient sourcing research.
- 🔬 **Competitive research analysts**: Harvest contact emails from publicly available Substack data to track messaging and publisher themes over time.
- ✉️ **Growth marketers doing bulk email campaigns**: Build a **Substack bulk email scraper** dataset you can import and segment for campaigns.
- 🧩 **CRM and automation workflows**: Export structured results for pipelines that act like a **Substack email scraping API** (via dataset export).
- 🏢 **B2B prospecting researchers**: Use domain filters (like company-style domains) to prioritize likely business contacts for **Substack leads scraper** use cases.
- 🧾 **Data scientists & enrichment projects**: Combine email contact fields with other enrichment steps using consistent dataset columns like `url`, `keyword`, and `email`.

***

### Technical specifications

- **Supported Input Formats**
  - ✅ `keywords` as an array of strings
  - ✅ Optional `location` as a string
  - ✅ Optional `customDomains` as an array of strings (e.g. `@gmail.com`)
  - ✅ Optional `maxEmails` as an integer (1 to 10000)
- **Proxy Support**
  - ✅ Includes built-in proxy support for more reliable scraping runs
- **Retry Mechanism**
  - ✅ Includes retries and fallbacks for resilience when results are limited or blocked
- **Dataset Structure**
  - ✅ Dataset title: **Substack Emails Dataset**
  - ✅ Dataset view: **Scraped Leads**
  - ✅ Row fields pushed include: `network`, `keyword`, `title`, `description`, `url`, `email`
- **Rate Limits & Performance**
  - ✅ Uses practical run controls with `maxEmails` to manage time/cost
  - ✅ Larger runs can take longer (use higher timeout in **Run Options** when necessary)
- **Limitations**
  - ❌ Results depend on publicly available sources and what contact emails are discoverable
  - ❌ Setting very high expectations with `maxEmails` doesn’t guarantee reaching the exact number—scraping stops when emails found or `maxEmails` is reached

***

### FAQ

#### Does Substack Email Scraper - Fast, Advanced and Cheapest require login or special setup?

✅ You can run it directly from Apify Console. The actor uses the input you provide (`keywords`, optional `location`, optional `customDomains`, and `maxEmails`) to scrape publicly available sources and save results into the dataset.

#### What’s the difference between `keywords` and `customDomains`?

`keywords` control what the actor searches for to find relevant Substack leads, while `customDomains` filters which email types are considered valid matches (for example `@gmail.com` or `@yahoo.com`). Together, they help you build a more targeted Substack email list scraper.

#### How many emails can the actor collect?

It collects up to your requested `maxEmails`. The actor stops once the limit is reached. If fewer emails are found from the available sources, you may end up with fewer results than the requested amount.

#### Why might the scraper return fewer emails than expected?

Common reasons include overly narrow keywords/domains, limited public availability of matching emails, or results that don’t contain emails in the formats you filtered for. Expanding keywords, adjusting domains, or widening (or removing) `location` typically improves outcomes.

#### Can I run it for multiple keywords and domains in one go?

✅ Yes. Provide multiple entries in `keywords` and multiple entries in `customDomains`. The actor processes combinations and saves discovered leads incrementally into the dataset.

#### Is this a good tool for building a Substack email outreach list?

✅ Yes. The dataset output includes `email`, plus context fields like `keyword`, `url`, and `title`, making it suitable for outreach list creation and downstream segmentation.

#### How do I export the results?

After the run completes (or while it’s running, since data is saved incrementally), open the dataset output and export from Apify to formats like JSON/CSV depending on what you need for your workflow.

#### Is it safe to scrape emails from publicly available sources?

✅ The actor is designed to extract emails from publicly available sources. You’re responsible for complying with applicable laws and platform terms, including GDPR/CCPA considerations and spam regulations, before using any harvested contact data.

***

### Support & feature requests

Want to improve **Substack Email Scraper - Fast, Advanced and Cheapest** or request enhancements for your Substack email extractor workflow? 💡

- 💡 **Feature Requests**: Share ideas like better export options, additional filtering controls, or enhancements that make results more useful for your **Substack bulk email scraper** pipelines.
- 📧 **Contact**: Email us at <dataforleads@gmail.com>.

Your feedback helps shape the roadmap for this Substack email scraping software, so keep the suggestions coming! 🚀

***

*If you’re looking for the most comprehensive and SEO-optimized way to build a Substack email outreach list, **Substack Email Scraper - Fast, Advanced and Cheapest** is built to help you move faster with structured results.*

***

### Disclaimer

**This tool accesses publicly accessible sources.** It does not access private profiles, authenticated data, or password-protected content.

It is the user’s responsibility to comply with applicable laws and platform terms (including GDPR/CCPA where relevant) and to follow spam and contact-data regulations. Always use scraped data responsibly and ethically for legitimate purposes.

For data-removal requests, contact: <dataforleads@gmail.com>.

# Actor input Schema

## `keywords` (type: `array`):

A list of keywords or queries to search for.

## `location` (type: `string`):

Location to filter search results.

## `customDomains` (type: `array`):

List of custom email domains

## `maxEmails` (type: `integer`):

Maximum number of emails to collect. The scraper will stop once this limit is reached. Setting a higher limit allows for more potential results but doesn't guarantee reaching that number. This helps save costs by controlling scraping time.

## Actor input object example

```json
{
  "keywords": [
    "manager",
    "founder"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "maxEmails": 20
}
```

# 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 = {
    "keywords": [
        "manager",
        "founder"
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("solid-scraper/substack-email-scraper-fast-advanced-and-cheapest").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 = {
    "keywords": [
        "manager",
        "founder",
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("solid-scraper/substack-email-scraper-fast-advanced-and-cheapest").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 '{
  "keywords": [
    "manager",
    "founder"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ]
}' |
apify call solid-scraper/substack-email-scraper-fast-advanced-and-cheapest --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=solid-scraper/substack-email-scraper-fast-advanced-and-cheapest",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Substack Email Scraper Fast Advanced And Cheapest",
        "description": "📩 Substack Email Scraper—Fast, Advanced & Affordable. Extract verified subscriber emails from niche newsletters quickly using smart filters. Ideal for marketers, agencies, and sales teams to grow outreach lists with confidence. 🚀",
        "version": "1.0",
        "x-build-id": "e3RalLK5YszZx7D5y"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solid-scraper~substack-email-scraper-fast-advanced-and-cheapest/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solid-scraper-substack-email-scraper-fast-advanced-and-cheapest",
                "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/solid-scraper~substack-email-scraper-fast-advanced-and-cheapest/runs": {
            "post": {
                "operationId": "runs-sync-solid-scraper-substack-email-scraper-fast-advanced-and-cheapest",
                "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/solid-scraper~substack-email-scraper-fast-advanced-and-cheapest/run-sync": {
            "post": {
                "operationId": "run-sync-solid-scraper-substack-email-scraper-fast-advanced-and-cheapest",
                "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": [
                    "keywords"
                ],
                "properties": {
                    "keywords": {
                        "title": "Keywords or Queries",
                        "type": "array",
                        "description": "A list of keywords or queries to search for.",
                        "default": [
                            "manager",
                            "founder"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "Location to filter search results.",
                        "default": ""
                    },
                    "customDomains": {
                        "title": "Enter Custom Email Domains (e.g. @gmail.com, @yahoo.com)",
                        "type": "array",
                        "description": "List of custom email domains",
                        "default": [
                            "@gmail.com",
                            "@yahoo.com"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxEmails": {
                        "title": "Enter Max Emails",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of emails to collect. The scraper will stop once this limit is reached. Setting a higher limit allows for more potential results but doesn't guarantee reaching that number. This helps save costs by controlling scraping time.",
                        "default": 20
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
