# App Store Email Scraper (`scraperoka/app-store-email-scraper`) Actor

📧 App Store Email Scraper extracts business emails from iOS App Store profiles quickly and accurately. Perfect for B2B leads, outreach, and market research. 📈 Save time, streamline prospecting, and grow your pipeline—no hassle.

- **URL**: https://apify.com/scraperoka/app-store-email-scraper.md
- **Developed by:** [Scraperoka](https://apify.com/scraperoka) (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 $0.01 / 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

### App Store Email Scraper 🎯

Manually visiting thousands of App Store profiles to collect developer contact emails wastes hours you don’t have. **App Store Email Scraper** automatically pulls emails from App Store bios based on your keywords, giving you a ready-to-use list for app store developer contact email scraping. This app store email lead generation tool is ideal for marketers, recruiters, and growth teams who need results fast—thousands of relevant records in minutes, depending on your filters and limits.

---

### What You Get: Sample Output

Here’s a sample record from a single run:

```json
{
  "network": "App Store.com",
  "keyword": "founder",
  "title": "Acme Labs — Marketing & Growth",
  "description": "We build tools for founders and teams. Contact: hello@gmail.com • Built with care",
  "url": "https://example.com/app/acme-labs",
  "email": "hello@gmail.com",
  "proxyGroups": ["legacy"],
  "error_message": null
}
````

**Output Fields**

| Field | Type | What It Tells You |
|---|---|---|
| `network` | string | The source network label for where the contact was found (always `App Store.com`). |
| `keyword` | string | The keyword that was used to drive discovery for this email lead. |
| `title` | string | The title text associated with the result where the email was detected. |
| `description` | string | The text snippet used to find the email address (useful for auditing context). |
| `url` | string | The result URL tied to the found email address. |
| `email` | string | The extracted email address that matches your `customDomains` filter. |
| `proxyGroups` | array | The proxy group configuration used for this record (useful for traceability). |
| `error_message` | string | Error details if something goes wrong for a pushed item (otherwise `null`). |
| `status` | string | You may see run-level statuses in Apify logs/dashboards if an item fails to push. |
| `success` | boolean | Records are only useful if they’re successfully pushed to the dataset; rely on the presence of the pushed fields. |
| `maxEmails_limit_flag` | boolean | If you set `maxEmails`, the run stops once the limit is reached (no guarantee the exact number will be hit). |
| `deduplication_behavior` | string | Emails are deduplicated during the run using a seen-email set, so repeats are skipped. |
| `progress_tracking` | object | The actor persists progress so interrupted runs can continue without starting over. |

Export your dataset as JSON, CSV, or Excel — straight from the Apify dashboard.

***

### Why App Store Email Scraper?

There are a lot of ways to pull data from app marketplaces—here’s what sets App Store Email Scraper apart.

#### Keyword-led email discovery

App Store Email Scraper uses your `keywords` to find relevant App Store bios and extracts matching email addresses from publicly available sources, making it a practical app store developer email lookup workflow.

#### Domain-targeted precision

With `customDomains`, you can focus your scraping on the domains you care about (for example, `@gmail.com`), so your automated app store email collection stays relevant and reduces manual cleanup.

#### Resilient runs with stop conditions

The actor enforces a `maxEmails` cap to control scraping time and cost, and includes stopping logic when results are sparse—helpful when you’re scraping at scale with an app store email scraper.

#### Structured dataset-ready records

Each pushed dataset item includes clear fields like `keyword`, `email`, `url`, and the text `description` where the email was found—ideal for importing into outreach lists and CRM workflows.

***

### Configuring Your Run

Drop this into your `input.json` to get started:

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

**Input Parameters**

| Parameter | Required | What It Does |
|---|---:|---|
| `keywords` | ✅ | A list of keywords the actor uses to find relevant App Store bios where contact emails may appear. |
| `location` | ⬜ | Filters discovery results by a location string (leave empty for no location filtering). |
| `platform` | ⬜ | Selects the platform to target. This actor supports `App Store`. |
| `customDomains` | ⬜ | Limits extraction to email addresses that end with the domains you provide (for example `@gmail.com`). |
| `maxEmails` | ⬜ | Maximum number of emails to collect. The scraper stops once this limit is reached (higher values may take longer). |
| `engine` | ⬜ | Chooses the scraping engine mode: `cost-effective` (faster/cheaper approach using residential proxies with async requests) or `legacy` (more traditional approach, described as more reliable but slower and more expensive). |
| `proxyConfiguration` | ⬜ | Configure proxies for this Actor at run level. |

***

### Core Capabilities

#### App Store bio email extraction

App Store Email Scraper finds emails from App Store bios and posts related to your keywords. If you’re trying to scrape app store developer email addresses or extract emails from app store listings, this is the core behavior that powers your lead generation.

#### Flexible targeting with keywords and domains

Use `keywords` to steer discovery, and `customDomains` to keep results focused on the inboxes you want. This combination is especially helpful for an app store developer contact email scraper workflow where relevance matters.

#### Built-in resilience and controlled stopping

The actor includes retries and fallback behavior for resilience, and it can stop early when it reaches `maxEmails` or when results appear to be exhausted. This helps keep runs predictable when you’re running an app store email scraping software at scale.

#### Dataset-first output you can act on immediately

Results are pushed into your Apify dataset as they’re found. That means you can start processing leads right away instead of waiting for the full run to complete.

#### Scales with your batch size

You can increase keyword/domain coverage via wider inputs, then control cost and runtime using `maxEmails` and run timeout settings in Run Options. For marketers and researchers, this supports automated app store email collection without manual tab-switching.

***

### Who Gets the Most Out of This

Here’s how different teams put App Store Email Scraper to work:

**Growth and performance marketers** — build app store email lead generation lists from developer bios using keyword filters, then export results to your outreach stack without spending days on manual copying.

**Partnership and recruiting teams** — use app store contact email finder workflows to quickly gather publisher or founder emails for inbound partnerships and hiring pipelines.

**Sales development reps (SDRs)** — turn lists of app-related targets into structured contact leads, using keyword + domain filters to focus on the email types that convert.

**Freelance researchers and data analysts** — generate clean datasets for reporting by extracting emails from publicly available sources and keeping contextual fields like `description` and `url` alongside each `email`.

**Automation specialists and developers** — integrate the dataset into downstream processes via the Apify platform, so app store developer contact scraper results can flow directly into your CRM, dashboards, or alerting.

***

### Step-by-Step: How to Use It

No coding needed. Here's how to run App Store Email Scraper from start to finish:

1. **Open the actor on Apify** — visit [console.apify.com](https://console.apify.com) and open the **App Store Email Scraper** actor page.
2. **Enter your inputs** — set `keywords` (required), then optionally `customDomains`, `location`, `maxEmails`, and `engine`.
3. **Configure proxy settings** — adjust `proxyConfiguration` for your run if you want custom proxy behavior.
4. **Hit Run and watch the live log** — monitor progress and see when the actor finds and pushes emails.
5. **View results in the dataset tab** — each pushed item includes `email`, `url`, `keyword`, and the text `description` used for extraction.
6. **Export as JSON, CSV, or Excel** — download directly from Apify to import into your tools.

The whole process takes under 5 minutes to set up.

***

### Integrations & Export Options

Once your data is collected, App Store Email Scraper plugs directly into your existing workflow.

You can export your Apify dataset as **JSON, CSV, or Excel** from the Apify dashboard, then import it into spreadsheets, CRMs, or analytics tools. For “app store email scraper” teams who want automation, Apify also supports **API access** (via [apify.com/docs/api](https://apify.com/docs/api)) so you can pull results programmatically.

You can also connect results to tools like **Google Sheets** and automation platforms such as **Zapier** or **Make**, and use **webhooks** or **scheduled runs** to keep your app store developer contact email scraper pipeline fresh.

***

### Pricing & Free Trial

App Store Email Scraper runs on the Apify platform, which offers a **free tier** — no credit card required to get started. You’ll also have the option to use pay-as-you-go usage based on Apify platform compute units, with no per-result markup mentioned in this actor documentation.

Start with a test run using a small `maxEmails` value, validate the lead quality for your target domains, then scale the number of keywords/domains once you’re confident. Start for free at [apify.com](https://apify.com) and scale when you're ready.

***

### Reliability & Performance

| What We Handle | How |
|---|---|
| Rate-limited scenarios | Retries and fallbacks are included so runs keep moving when results become sparse. |
| Proxy support | Built-in proxy support for reliable scraping. |
| Run interruptions | Progress is persisted, so you don’t necessarily lose everything if a run stops early. |
| Data control | `maxEmails` caps how many emails you collect to manage runtime and cost. |
| Dataset output | Results are pushed to your dataset as they’re found. |
| Scale behavior | Designed to handle larger searches, with guidance to increase timeout for bigger runs. |

**Limitations:** The actor extracts emails only from **publicly available sources** displayed on App Store profiles. If a profile doesn’t include relevant emails in its visible bios/posts, there may be fewer results—so broader keywords and more domains can help when data looks low. For enterprise-scale runs, contact us to discuss custom configurations.

***

### Frequently Asked Questions

#### Is there a free plan or trial?

Yes—Apify offers a free tier to help you test App Store Email Scraper before scaling up. Start with a small `maxEmails` value to validate your keyword + domain targeting.

#### Do I need to log in to App Store to use this?

No. This actor is designed to work with publicly available information displayed on App Store profiles, so you don’t need to provide login credentials.

#### How accurate is the data?

Accuracy depends on what the app publishers include in their publicly visible bios/posts. App Store Email Scraper extracts emails from bios that match your `customDomains`, so you’ll generally get precise results for targeted inbox types like `@gmail.com`.

#### How many results can I get per run?

You can request up to `maxEmails` emails per run. The actor stops when the limit is reached, but higher limits don’t guarantee you’ll always hit the cap—availability varies by keyword and domain targeting.

#### How often is the data updated / how fresh is it?

Data freshness depends on the time of your run because it scrapes the publicly available bios/posts at runtime. If you need periodic updates for app store email lead generation, consider scheduled runs on Apify.

#### Is this legal? Does it comply with GDPR / CCPA?

The actor extracts emails from **publicly available data** shown on App Store profiles. You are responsible for ensuring your use complies with GDPR, CCPA, platform terms, and any local regulations applicable to your outreach.

#### Can I export results to Google Sheets or Excel?

Yes. You can export from the Apify dataset tab as JSON, CSV, or Excel, and you can connect to tools like Google Sheets using Apify integrations or automation platforms such as Zapier or Make.

#### Can I run this on a schedule automatically?

Yes. You can schedule Apify actors to run automatically on a cron-like schedule using Apify’s scheduling features, so your app store developer contact scraper workflow stays up to date.

#### Can I access this via API?

Yes. You can trigger runs and retrieve results programmatically using the Apify API—see [apify.com/docs/api](https://apify.com/docs/api).

#### What happens if the actor hits an error?

If the actor encounters issues, it may retry and use fallbacks to improve resilience. Progress is saved during the run, so you can often resume instead of starting from scratch, and you can check the dataset for successfully pushed items.

***

### Need Help or Have a Request?

Got a question about App Store Email Scraper or want a new feature added? Reach out at <dataforleads@gmail.com>. We actively maintain this actor and welcome requests like batch CSV upload and webhook notifications on completion.

***

### Disclaimer & Responsible Use

*App Store Email Scraper is the fastest, most reliable way to collect app publisher and developer contact emails from public profiles — start your free run today.*

This actor accesses **publicly available data** from App Store profiles. It does not access private accounts, login-gated content, or password-protected pages. You are responsible for ensuring your use complies with GDPR, CCPA, applicable laws, and platform terms of service. For data removal requests, contact <dataforleads@gmail.com>. Use responsibly, ethically, and only for lawful purposes.

# 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": "App Store",
  "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("scraperoka/app-store-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("scraperoka/app-store-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 scraperoka/app-store-email-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "App Store Email Scraper",
        "description": "📧 App Store Email Scraper extracts business emails from iOS App Store profiles quickly and accurately. Perfect for B2B leads, outreach, and market research. 📈 Save time, streamline prospecting, and grow your pipeline—no hassle.",
        "version": "0.0",
        "x-build-id": "yNTTkGetmZYZbzfb2"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scraperoka~app-store-email-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scraperoka-app-store-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/scraperoka~app-store-email-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scraperoka-app-store-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/scraperoka~app-store-email-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scraperoka-app-store-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": [
                            "App Store"
                        ],
                        "type": "string",
                        "description": "Select platform.",
                        "default": "App Store"
                    },
                    "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
