# Yelp Email Scraper (`solid-scraper/yelp-email-scraper`) Actor

📧 Yelp Email Scraper extracts business emails from Yelp listings fast and accurately. Ideal for sales, marketing, and lead generation teams seeking targeted contacts—no hassle, just results. 🚀

- **URL**: https://apify.com/solid-scraper/yelp-email-scraper.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 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

### Yelp Email Scraper 📬

**Yelp Email Scraper** is an Apify actor that scrapes email addresses from Yelp-related publicly available sources using your chosen keywords and email-domain filters. If you’re looking for a **Yelp email extractor**, a **Yelp email scraper tool**, or **scrape emails from Yelp** for outreach, this actor helps you turn search-driven leads into a structured dataset—saving you hours of manual work.

Whether you’re a marketer, growth researcher, or data analyst, you can use **Yelp leads email scraping** to collect contact emails tied to Yelp listings, then export the results for CRM enrichment and campaign workflows at scale.

---

### 🚀 Why choose Yelp Email Scraper?

| Feature | Benefit |
|---|---|
| ✅ **Keyword-based email discovery** | Uses your keywords to find relevant Yelp profiles and related pages containing email addresses |
| ✅ **Custom email domains** | Filters extracted emails to only the domains you care about (for example, targeting `@gmail.com`) |
| ✅ **Reliability with engine options** | Choose an engine for different performance/reliability tradeoffs (cost-effective vs legacy) |
| ✅ **Resilient scraping with retries** | Includes retries and fallback behavior to improve outcome stability on harder-to-retrieve pages |
| ✅ **Structured JSON output** | Pushes consistent records into Apify datasets with fields like `title`, `url`, and `email` |
| ✅ **Scales with limits you control** | Use `maxEmails` to stop when you reach your target volume and manage run duration |

---

### 🔎 Key features

- 🧠 **Keyword-driven targeting**: Find Yelp-related contact emails using your input `keywords` (great for a **Yelp business email scraper** workflow)
- 🎯 **Domain-focused extraction**: Collects emails only matching your `customDomains`, helping you build cleaner **Yelp outreach email list** datasets
- 🛡️ **Engine choice for reliability**: Select `engine` to balance speed vs reliability for your **Yelp email scraper tool** needs
- 🔄 **Retries and fallbacks**: Includes built-in handling for pages that return no results, improving the chances of completing your run
- 📊 **Rich dataset records**: Each pushed item includes metadata like `network`, `keyword`, `title`, `description`, `url`, and `proxyGroups`
- 💾 **Real-time saving to dataset**: As soon as an email is found, it’s pushed to the dataset so you don’t lose progress
- ♻️ **Progress persistence**: Saves progress (cursor + seen emails) to resume effectively across runs

---

### 📝 Input

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

```json
{
  "keywords": ["founder", "marketing"],
  "location": "",
  "platform": "Yelp",
  "customDomains": ["@gmail.com"],
  "maxEmails": 20,
  "engine": "legacy",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
````

#### Input Fields

| Field | Required | Description |
|---|---:|---|
| `keywords` | ✅ Yes | A list of keywords to search for. The scraper uses these keywords to look for relevant Yelp-related sources where emails may appear. |
| `location` | ❌ No | Location to filter search results. Leave it empty (`""`) to not apply location filtering. |
| `platform` | ❌ No | Select platform. Available option is `Yelp` (default: `Yelp`). |
| `customDomains` | ❌ No | List of custom email domains to target (for example, `@gmail.com`). Extracted emails are filtered to match these domains. |
| `maxEmails` | ❌ No | Maximum number of emails to collect. The scraper stops once the limit is reached; higher values may take longer and don’t guarantee reaching the exact number. |
| `engine` | ❌ No | Choose scraping engine. Use `cost-effective` for residential proxies with faster, cheaper scraping, or `legacy` for more traditional scraping that is described as more reliable but slower and more expensive. |
| `proxyConfiguration` | ❌ No | Configure proxies for this Actor. Use Apify proxy settings or your own proxy configuration (as supported by Apify’s proxy input editor). |

***

### 📦 Output

The actor saves each found email record into your Apify dataset (JSON objects pushed via `Actor.push_data`).

Example output object:

```json
{
  "network": "Yelp.com",
  "keyword": "founder",
  "title": "No title",
  "description": "No data",
  "url": "No URL",
  "email": "example@gmail.com",
  "proxyGroups": ["GOOGLE_SERP"]
}
```

#### Output Fields

| Field | Type | Description |
|---|---|---|
| `network` | string | Source network label used by the actor (set to `Yelp.com`). |
| `keyword` | string | The keyword that was used for the current email discovery. |
| `title` | string | The result title text associated with where the email was found. |
| `description` | string | The description/snippet text associated with the result where the email appeared. |
| `url` | string | The URL linked to the result item where the email was found. |
| `email` | string | The extracted email address. |
| `proxyGroups` | array | Proxy group identifiers used for scraping (as provided by the proxy selection/config in the run). |

> The actor also persists internal progress using a key named `progress_li` (cursor + `seen_emails`) in Apify’s key-value store, but those internals are not emitted as dataset rows.

***

### ▶️ How to use Yelp Email Scraper (via Apify Console)

1. **Open Apify Console**\
   Log in at https://console.apify.com and go to the **Actors** section.

2. **Find the actor card**\
   Search for **Yelp Email Scraper** and open the actor details page.

3. **Go to the INPUT tab**\
   Use the built-in input form to set your scraping goals:
   set `keywords`, optionally `location`, choose `customDomains`, and decide `maxEmails`.

4. **Choose the scraping engine**\
   Pick `engine` as either `legacy` or `cost-effective` based on your priorities (reliability vs speed/cost).

5. **Set Proxy configuration (optional but recommended)**\
   If you have proxy preferences, configure `proxyConfiguration`. The actor supports proxy setup for improved scraping reliability.

6. **Run the actor**\
   Click **Run**. While it runs, you can watch logs for progress, retries, and when the actor pushes found emails to the dataset.

7. **Open the OUTPUT tab**\
   After the run completes, open the dataset and preview the records (each email with `title`, `url`, `description`, etc.).

8. **Export your results**\
   Export your dataset to JSON/CSV from Apify to power your **Yelp business data scraper** workflows, CRM updates, or **Yelp contact information scraper** analysis.

No coding required—get accurate results in minutes with **Yelp email scraping software** built for lead discovery.

***

### ⚙️ Advanced features & SEO optimization

- 🧩 **Engine-tuned email scraping for Yelp outreach**: Yelp Email Scraper is engineered for **Yelp email extractor** and **scrape emails from Yelp** use cases, with a selectable `engine` to fit your needs.
- 🎚️ **Targeted extraction with custom domains**: Using `customDomains` helps you focus your **Yelp listing email finder** results on the inbox providers that matter to your strategy.
- ⏱️ **Run duration control**: Use `maxEmails` to stop early when you’ve collected enough, helping manage scraping time and cost.
- 🧾 **Progress persistence for long runs**: The actor saves progress (cursor + seen emails) so repeated runs are more resilient—useful for **Yelp review site email extraction** projects at scale.

***

### 💡 Best use cases

- 📈 **Lead generation teams building a Yelp outreach email list**: Collect relevant emails tied to Yelp-related content using keyword and domain filters, then import into outreach tools.
- 🧑‍💼 **Sales development (SDR) workflows**: Generate prospect email contacts quickly for high-intent **Yelp business email scraper** campaigns.
- 🔬 **Market researchers running vertical contact discovery**: Use keywords to build structured datasets for **Yelp customer email scraper** analysis.
- 🗂️ **Data analysts enriching CRM records**: Combine `keyword`, `title`, `url`, and extracted `email` to validate contact coverage and improve segmentation.
- 👩‍💻 **Developer teams automating lead pipelines**: Integrate dataset exports into downstream automation (ETL, enrichment, or deduplication systems).
- ✉️ **Email marketing builders curating verified-looking domains**: Filter to your preferred providers (via `customDomains`) to improve deliverability consistency.
- 🌐 **Sourcing researchers scaling contact discovery from public web data**: Run broader searches with controlled limits to expand a **Yelp email scraper tool** pipeline.

***

### 🔧 Technical specifications

**Supported Input Formats**

- ✅ `keywords`: array of strings (required)
- ✅ `location`: string (optional)
- ✅ `customDomains`: array of strings (optional)
- ✅ `maxEmails`: integer (optional, min `1`, max `10000`)
- ✅ `engine`: `cost-effective` or `legacy`
- ✅ `proxyConfiguration`: Apify-supported proxy input object

**Proxy Support**

- ✅ Built-in proxy support via `proxyConfiguration` and the `engine` choice
- ✅ Designed to work with proxy settings to improve reliability during scraping runs

**Retry Mechanism**

- ✅ Includes retries and fallbacks to improve result stability when pages return no results or fail intermittently

**Dataset Structure**

- ✅ JSON objects pushed per found email with fields:
  `network`, `keyword`, `title`, `description`, `url`, `email`, `proxyGroups`

**Rate Limits & Performance**

- ⚠️ Large searches or high `maxEmails` may take longer (you can increase timeouts in Run Options for big runs)

**Limitations**

- ❌ Results depend on what’s publicly available in the sources and whether matching emails appear for your chosen keywords/domains
- ❌ A higher `maxEmails` doesn’t guarantee reaching that exact number—it controls an upper bound to help manage run duration and cost

***

### ❓ FAQ

#### Can I scrape emails only from specific email providers?

✅ Yes. Use `customDomains` to filter extracted emails to matching domains like `@gmail.com`. This helps you build a cleaner **Yelp email extractor** result set aligned with your outreach strategy.

#### What keywords should I use for a Yelp email scraper tool?

Use keywords that match the type of people or businesses you’re targeting (for example, `founder`, `marketing`). For best results, use multiple closely related keywords so Yelp Email Scraper can discover more relevant pages for **Yelp leads email scraping**.

#### How do I control how many emails the actor collects?

Use `maxEmails`. The actor stops once it reaches your limit, which helps control scraping time and budget. Keep in mind that it won’t necessarily reach the limit if fewer matching emails are found.

#### Which engine should I pick: legacy or cost-effective?

Choose `engine` based on your needs. The actor offers `legacy` for more traditional scraping behavior described as more reliable but slower/expensive, while `cost-effective` is described as faster and cheaper using residential proxies.

#### Do I need special setup to use proxies?

No special setup is required, but using `proxyConfiguration` is recommended for more reliable runs—especially for larger keyword batches or higher `maxEmails`. Yelp Email Scraper includes proxy support and resilience patterns to help runs complete.

#### What does the output dataset contain?

The dataset consists of JSON objects pushed by the actor. Each record includes `network`, `keyword`, `title`, `description`, `url`, `email`, and `proxyGroups`, so you can immediately use it for a **Yelp business email scraper** pipeline.

#### Is this intended for automated lead generation and CRM enrichment?

💻 Yes. Yelp Email Scraper is well-suited for **Yelp contact information scraper** use cases where you want to build or enrich outreach lists using extracted emails from publicly available sources.

#### Is scraping legal and compliant?

✅ You’re responsible for complying with applicable laws and platform terms. The actor collects information only from **publicly accessible sources**, so always ensure your use aligns with relevant privacy, spam, and data-handling requirements.

***

### 🤝 Support & feature requests

If you’re using Yelp Email Scraper for **Yelp outreach email list** building and you have feedback, we’d love to hear it.

- 💡 **Feature Requests**: Want CSV export, additional filtering options, or enhancements for **Yelp business data scraper** workflows? Share your ideas and tell us what output or automation would help most.
- 📧 **Contact**: For support or feature requests, email us at <dataforleads@gmail.com>

Your feedback directly shapes what we improve next for Yelp Email Scraper.

***

- *Yelp Email Scraper is the most comprehensive, SEO-optimized way to scrape emails from Yelp for outreach and lead discovery—powered by keyword targeting and structured dataset output.* \*

# Actor input Schema

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

A list of keywords to search for.

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

Location to filter search results.

## `platform` (type: `string`):

Select platform.

## `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.

## `engine` (type: `string`):

Choose scraping engine. 🚀 Cost Effective (New): Uses residential proxies with async requests for faster, cheaper scraping. 🔧 Legacy: Uses GOOGLE\_SERP proxy with traditional selectors - more reliable but slower and more expensive.

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

Configure proxies for this Actor.

## Actor input object example

```json
{
  "keywords": [
    "founder",
    "marketing"
  ],
  "location": "",
  "platform": "Yelp",
  "customDomains": [
    "@gmail.com"
  ],
  "maxEmails": 20,
  "engine": "legacy"
}
```

# 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": [
        "founder",
        "marketing"
    ],
    "location": "",
    "customDomains": [
        "@gmail.com"
    ]
};

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

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

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Yelp Email Scraper",
        "description": "📧 Yelp Email Scraper extracts business emails from Yelp listings fast and accurately. Ideal for sales, marketing, and lead generation teams seeking targeted contacts—no hassle, just results. 🚀",
        "version": "0.0",
        "x-build-id": "YMgdIQ4lGT2igS1jd"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solid-scraper~yelp-email-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solid-scraper-yelp-email-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/solid-scraper~yelp-email-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solid-scraper-yelp-email-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/solid-scraper~yelp-email-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solid-scraper-yelp-email-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": [
                    "keywords"
                ],
                "properties": {
                    "keywords": {
                        "title": "Keywords",
                        "type": "array",
                        "description": "A list of keywords to search for.",
                        "default": [
                            "founder",
                            "marketing"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "Location to filter search results.",
                        "default": ""
                    },
                    "platform": {
                        "title": "Platform",
                        "enum": [
                            "Yelp"
                        ],
                        "type": "string",
                        "description": "Select platform.",
                        "default": "Yelp"
                    },
                    "customDomains": {
                        "title": "Custom Email Domains",
                        "type": "array",
                        "description": "List of custom email domains",
                        "default": [
                            "@gmail.com"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxEmails": {
                        "title": "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
                    },
                    "engine": {
                        "title": "Engine",
                        "enum": [
                            "cost-effective",
                            "legacy"
                        ],
                        "type": "string",
                        "description": "Choose scraping engine. 🚀 Cost Effective (New): Uses residential proxies with async requests for faster, cheaper scraping. 🔧 Legacy: Uses GOOGLE_SERP proxy with traditional selectors - more reliable but slower and more expensive.",
                        "default": "legacy"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Configure proxies for this Actor."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
