# Google Maps Leads+ Scraper (`crawlerforge/google-maps-leads`) Actor

Enriched Google Maps scraper for B2B lead generation: emails, phones, social links, websites & ratings. Fast, easy, export-ready (CSV/JSON).

- **URL**: https://apify.com/crawlerforge/google-maps-leads.md
- **Developed by:** [CrawlerForge](https://apify.com/crawlerforge) (community)
- **Categories:** Lead generation, Automation, Open source
- **Stats:** 148 total users, 1 monthly users, 100.0% runs succeeded, 4 bookmarks
- **User rating**: 1.90 out of 5 stars

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

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

## Google Maps Scraper · B2B Lead Generation with Emails & Social Profiles

**Extract verified business contacts from Google Maps: emails, phone numbers, social media profiles, and more. Export to CSV/JSON for sales prospecting and lead generation.**

![Sample Output](docs/sample_preview.png)
---

### 🎯 Use Cases

<ul>
  <li><strong>Sales prospecting:</strong> Build targeted B2B contact lists</li>
  <li><strong>Local SEO:</strong> Analyze competitor presence and ratings</li>
  <li><strong>Market research:</strong> Map business distribution by category and location</li>
  <li><strong>Data enrichment:</strong> Enhance existing CRM data with social profiles and emails</li>
  <li><strong>Lead generation:</strong> Export qualified leads to CSV for outreach campaigns</li>
</ul>

---

### 🎯 What you get

Extract complete business profiles with:

<table>
  <tr>
    <th>Category</th>
    <th>Fields</th>
  </tr>
  <tr>
    <td><strong>📋 Company Info</strong></td>
    <td><code>name</code>, <code>category</code>, <code>address_full</code>, <code>maps_url</code></td>
  </tr>
  <tr>
    <td><strong>⭐ Trust Signals</strong></td>
    <td><code>rating</code>, <code>reviews_count</code></td>
  </tr>
  <tr>
    <td><strong>📞 Contact Details</strong></td>
    <td><code>phone</code> (international format), <code>website</code>, <code>contact_page_url</code>, <code>emails_found</code></td>
  </tr>
  <tr>
    <td><strong>🌐 Social Presence</strong></td>
    <td><code>facebook</code>, <code>instagram</code>, <code>linkedin_company</code>, <code>x</code></td>
  </tr>
  <tr>
    <td><strong>🎯 Lead Quality</strong></td>
    <td><code>quality_score</code> (higher = more complete data)</td>
  </tr>
</table>

---

### 🌟 What Makes This Different

<table>
  <tr>
    <th>Feature</th>
    <th>This Actor</th>
    <th>Most Competitors</th>
  </tr>
  <tr>
    <td><strong>Email extraction</strong></td>
    <td>✅ Included</td>
    <td>❌ Extra cost or not available</td>
  </tr>
  <tr>
    <td><strong>Social profiles</strong></td>
    <td>✅ Facebook, Instagram, LinkedIn, X</td>
    <td>❌ Usually not included</td>
  </tr>
  <tr>
    <td><strong>Phone normalization</strong></td>
    <td>✅ International format (+XX)</td>
    <td>⚠️ Raw format only</td>
  </tr>
  <tr>
    <td><strong>Quality scoring</strong></td>
    <td>✅ Built-in quality_score</td>
    <td>❌ Manual filtering needed</td>
  </tr>
  <tr>
    <td><strong>Pricing</strong></td>
    <td>✅ $10/1,000 leads all-in</td>
    <td>⚠️ $15-30/1,000 basic data only</td>
  </tr>
</table>

---

### 🚀 Quick Start

#### Using Apify Console (No Code Required)

<ol>
  <li>Open this Actor in Apify Console</li>
  <li>Fill in the required fields:
    <ul>
      <li><strong>Query</strong>: Business type (e.g., <code>plumber</code>, <code>dentist</code>, <code>marketing agency</code>)</li>
      <li><strong>Location</strong>: City or region (e.g., <code>Paris, France</code>)</li>
    </ul>
  </li>
  <li>Configure optional filters (rating, reviews, website requirement)</li>
  <li>Click <strong>Start</strong> and download your CSV/JSON from the Dataset tab</li>
</ol>

<p align="center">
  <strong>👉 <a href="https://console.apify.com/actors/IcHlikfYCrBENinFI">Try it now for free</a></strong>
</p>

#### Example Searches

```json
{
  "query": "Italian restaurant",
  "location": "Paris, France",
  "maxResults": 100,
  "minimumRating": 4.0,
  "mustHaveWebsite": true
}
````

```json
{
  "query": "Digital marketing agency",
  "location": "New York, USA",
  "maxResults": 50,
  "minimumReviews": 10
}
```

### ⚙️ Input Configuration

<table> <tr> <th>Field</th> <th>Type</th> <th>Required</th> <th>Description</th> </tr> <tr> <td><strong>query</strong></td> <td>String</td> <td>✅ Yes</td> <td>Business type or keyword (e.g., <code>plumber</code>, <code>restaurant</code>)</td> </tr> <tr> <td><strong>location</strong></td> <td>String</td> <td>✅ Yes</td> <td>City, region, or country (e.g., <code>Berlin, Germany</code>)</td> </tr> <tr> <td><strong>maxResults</strong></td> <td>Number</td> <td>❌ No</td> <td>Maximum results to scrape (default: 50, max: 500)</td> </tr> <tr> <td><strong>concurrency</strong></td> <td>Number</td> <td>❌ No</td><td>Parallel detail pages (1-6, recommended: 3-4, default: 3)</td>
 </tr> <tr> <td><strong>minimumRating</strong></td> <td>Number</td> <td>❌ No</td> <td>Filter by minimum rating (e.g., 4.0)</td> </tr> <tr> <td><strong>minimumReviews</strong></td> <td>Number</td> <td>❌ No</td> <td>Filter by minimum review count</td> </tr> <tr> <td><strong>mustHaveWebsite</strong></td> <td>Boolean</td> <td>❌ No</td> <td>Only include businesses with websites</td> </tr> </table>

### 📊 Output Format

#### Dataset Fields

```json
{
  "name": "Chez Pierre Restaurant",
  "category": "French restaurant",
  "rating": "4.5",
  "reviews_count": "245",
  "phone": "+33 1 42 33 44 55",
  "website": "https://chezpierre.fr",
  "contact_page_url": "https://chezpierre.fr/contact",
  "enrichment": {
    "emails_found": ["contact@chezpierre.fr", "info@chezpierre.fr"],
    "social": {
      "facebook": "https://facebook.com/chezpierre",
      "instagram": "https://instagram.com/chezpierre"
    }
  },
  "address_full": "15 Rue de Rivoli, 75001 Paris, France",
  "maps_url": "https://www.google.com/maps/place/...",
  "quality_score": 85
}
```

#### Export Options

<ol>
  <li>CSV: Flattened structure with email_1, email_2, etc.</li>
  <li>JSON: Complete nested structure</li>
  <li>Apify Dataset: Direct integration with Apify platform</li>
</ol>

***

***

### 💰 Pricing

This Actor uses a **pay-per-result** pricing model + Apify compute resources.

#### Cost Breakdown

<table>
  <tr>
    <th>Component</th>
    <th>Price</th>
    <th>Description</th>
  </tr>
  <tr>
    <td><strong>💎 Actor fee</strong></td>
    <td><strong>$0.01 per lead</strong></td>
    <td>You only pay for successfully scraped leads</td>
  </tr>
  <tr>
    <td><strong>⚡ Apify compute</strong></td>
    <td>~$0.0003 per lead</td>
    <td>Platform usage (CPU, memory, network)</td>
  </tr>
  <tr>
    <td><strong>📊 TOTAL</strong></td>
    <td><strong>~$0.0103 per lead</strong></td>
    <td>All-inclusive per successful result</td>
  </tr>
</table>

#### Pricing Examples

<table>
  <tr>
    <th>Leads Scraped</th>
    <th>Actor Fee</th>
    <th>Apify Compute</th>
    <th>Total Cost</th>
    <th>Cost per Lead</th>
  </tr>
  <tr>
    <td>50 leads</td>
    <td>$0.50</td>
    <td>~$0.02</td>
    <td><strong>~$0.52</strong></td>
    <td>$0.0104</td>
  </tr>
  <tr>
    <td>100 leads</td>
    <td>$1.00</td>
    <td>~$0.03</td>
    <td><strong>~$1.03</strong></td>
    <td>$0.0103</td>
  </tr>
  <tr>
    <td>500 leads</td>
    <td>$5.00</td>
    <td>~$0.15</td>
    <td><strong>~$5.15</strong></td>
    <td>$0.0103</td>
  </tr>
  <tr>
    <td>1,000 leads</td>
    <td>$10.00</td>
    <td>~$0.30</td>
    <td><strong>~$10.30</strong></td>
    <td>$0.0103</td>
  </tr>
  <tr>
    <td>5,000 leads</td>
    <td>$50.00</td>
    <td>~$1.50</td>
    <td><strong>~$51.50</strong></td>
    <td>$0.0103</td>
  </tr>
  <tr>
    <td>10,000 leads</td>
    <td>$100.00</td>
    <td>~$3.00</td>
    <td><strong>~$103.00</strong></td>
    <td>$0.0103</td>
  </tr>
</table>

#### 🎯 What Counts as a "Lead"?

You're only charged for **successfully scraped business listings** that include:

- ✅ Business name
- ✅ Google Maps URL
- ✅ At least one contact field (phone, website, or address)

**Not charged for:**

- ❌ Failed scrapes or errors
- ❌ Duplicate entries (automatic deduplication)
- ❌ Results filtered out by your criteria (rating, reviews, etc.)

#### 🆓 Free Trial

New Apify users receive **$5 free credits** — enough to scrape ~480 leads and test the full functionality.

#### 💡 Cost Optimization Tips

<ol>
  <li><strong>Use filters wisely:</strong> Set <code>minimumRating</code> and <code>minimumReviews</code> to reduce low-quality results</li>
  <li><strong>Enable <code>mustHaveWebsite</code>:</strong> Ensures better lead quality (fewer directories)</li>
  <li><strong>Start small:</strong> Test with 50-100 leads before scaling up</li>
  <li><strong>Specific queries:</strong> "Italian restaurant Paris" beats generic "restaurant"</li>
</ol>

#### 💳 Billing

- Billed monthly via your Apify account
- Transparent usage tracking in Apify Console
- Cancel anytime (no subscriptions)

> 📊 **Compare:** Most competitors charge $15-30 per 1,000 leads without enrichment. We include emails, social profiles, and quality scoring at $10/1,000.

***

### 💡 Best Practices

#### Optimize Your Searches

##### ✅ DO

<ol>
  <li>Include country in location for better phone normalization</li>
  <li>Use specific keywords for better relevance</li>
  <li>Apply filters to reduce noise (rating, reviews, website)</li>
  <li>Keep concurrency ≤ 4 for stability</li>
</ol>

##### ❌ DON'T

<ol>
  <li>Request more results than needed (wastes CU)</li>
  <li>Set concurrency > 4 (may cause timeouts)</li>
  <li>Scrape without filters (increases directory spam)</li>
</ol>

#### Performance Tips

<ol>
  <li><strong>Better quality:</strong> Apply minimumReviews and mustHaveWebsite filters</li>
  <li><strong>International searches:</strong> Always include the country name</li>
</ol>

### ❓FAQ

#### Why are some phone numbers not in international format?

Include the **country** in the Location field (e.g., "Paris, France") to enable automatic phone normalization to +XX format.

***

#### Why don't I see many email addresses?

We extract emails from the homepage and contact page when available. Not all businesses publicly display email addresses on their websites.

***

#### I'm getting fewer results than requested. Why?

Google Maps may limit results based on the search query. Try:

- Using more specific keywords
- Adjusting the location
- Reducing concurrency
- Running the search again

***

#### Why do directories (Yelp, PagesJaunes) appear in results?

Use the `mustHaveWebsite` filter and apply rating/review minimums to reduce directory entries. The Actor also deduplicates by website and phone.

***

#### Is this compliant with Google's Terms of Service?

⚠️ Always review and comply with [Google Maps Terms of Service](https://www.google.com/intl/en/help/terms_maps/) and applicable laws (GDPR, CAN-SPAM, etc.) when scraping and contacting leads.

> 💡 **Best practice:** Use this data for market research and lead qualification. Always obtain consent before cold outreach.

***

# Actor input Schema

## `query` (type: `string`):

Search term — e.g. plumber, dentist, Italian restaurant.

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

City or region (add country for better phone normalization). e.g. Paris, France

## `language` (type: `string`):

Interface language for Google Maps. Use 'auto' to detect automatically based on your query and location.

## `maxResults` (type: `integer`):

Maximum number of businesses to scrape (1–500).

## `concurrency` (type: `integer`):

How many details pages to open in parallel (1–8). Higher = faster but heavier.

## `min_rating` (type: `string`):

Filter: keep only places with rating ≥ this value (e.g. 4.2).

## `min_reviews` (type: `integer`):

Filter: keep only places with at least this number of reviews.

## `has_website` (type: `boolean`):

Filter: keep only businesses with a website.

## `exportFile` (type: `boolean`):

Save results to local files in addition to Apify dataset.

## Actor input object example

```json
{
  "query": "plumber",
  "location": "Paris, France",
  "language": "auto",
  "maxResults": 50,
  "concurrency": 4,
  "min_rating": "0",
  "min_reviews": 0,
  "has_website": false,
  "exportFile": true
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerforge/google-maps-leads").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("crawlerforge/google-maps-leads").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 '{}' |
apify call crawlerforge/google-maps-leads --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawlerforge/google-maps-leads",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Maps Leads+ Scraper",
        "description": "Enriched Google Maps scraper for B2B lead generation: emails, phones, social links, websites & ratings. Fast, easy, export-ready (CSV/JSON).",
        "version": "1.4",
        "x-build-id": "pbeGky8bQwVxgKa6R"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerforge~google-maps-leads/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerforge-google-maps-leads",
                "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/crawlerforge~google-maps-leads/runs": {
            "post": {
                "operationId": "runs-sync-crawlerforge-google-maps-leads",
                "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/crawlerforge~google-maps-leads/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerforge-google-maps-leads",
                "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": [
                    "query",
                    "location"
                ],
                "properties": {
                    "query": {
                        "title": "Query",
                        "type": "string",
                        "description": "Search term — e.g. plumber, dentist, Italian restaurant.",
                        "default": "plumber"
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "City or region (add country for better phone normalization). e.g. Paris, France",
                        "default": "Paris, France"
                    },
                    "language": {
                        "title": "Language",
                        "enum": [
                            "auto",
                            "fr",
                            "en",
                            "es",
                            "de"
                        ],
                        "type": "string",
                        "description": "Interface language for Google Maps. Use 'auto' to detect automatically based on your query and location.",
                        "default": "auto"
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of businesses to scrape (1–500).",
                        "default": 50
                    },
                    "concurrency": {
                        "title": "Concurrency",
                        "minimum": 1,
                        "maximum": 8,
                        "type": "integer",
                        "description": "How many details pages to open in parallel (1–8). Higher = faster but heavier.",
                        "default": 4
                    },
                    "min_rating": {
                        "title": "Minimum rating",
                        "type": "string",
                        "description": "Filter: keep only places with rating ≥ this value (e.g. 4.2).",
                        "default": "0"
                    },
                    "min_reviews": {
                        "title": "Minimum reviews",
                        "type": "integer",
                        "description": "Filter: keep only places with at least this number of reviews.",
                        "default": 0
                    },
                    "has_website": {
                        "title": "Must have website",
                        "type": "boolean",
                        "description": "Filter: keep only businesses with a website.",
                        "default": false
                    },
                    "exportFile": {
                        "title": "Export results.json & results.csv",
                        "type": "boolean",
                        "description": "Save results to local files in addition to Apify dataset.",
                        "default": true
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
