# 📍 Google Maps Email Scraper - Business Leads (`berkaydev/google-maps-email-scraper-business-leads`) Actor

Scrape Google Maps for business leads with contact emails. Get name, phone, website, rating and email for any city or niche. No code, export to CSV/JSON

- **URL**: https://apify.com/berkaydev/google-maps-email-scraper-business-leads.md
- **Developed by:** [Berkay](https://apify.com/berkaydev) (community)
- **Categories:** Lead generation, Business, Automation
- **Stats:** 5 total users, 2 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 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

**Find business leads on Google Maps anywhere in the world - and get their contact email in the same run.** This scraper pulls the business name, address, phone, website, rating, GPS coordinates and a contact email for any business type, in any city, and gives it all back as clean, flat JSON.

One run, all the data, email included. No add-ons, no second tool, no nested objects to untangle.

### What does the Google Maps Lead Scraper do?

You tell it what to look for (for example "dentists") and where (for example "London, UK"), and it does two things:

1. It searches Google Maps and collects every matching business it can find.
2. For each business with a website, it opens that site and tries to pull a real contact email address.

The result is a ready-to-use lead list. Because it runs on the Apify platform, you also get scheduling, an API, integrations with tools like Make and n8n, and the option to export to JSON, CSV or Excel.

### Why scrape business leads from Google Maps?

Most Google Maps scrapers give you the place data, then sell email enrichment as a separate, more expensive add-on - so you end up running two tools and paying twice. This one does both in a single run, and returns a flat 18-field structure that drops straight into a CRM or an automation without any reshaping.

It is built for:

- **Sales teams** building targeted prospect lists by city and industry.
- **Agencies** finding local businesses that match an ideal-customer profile (filter by rating or "has a website").
- **Automation builders** feeding clean JSON into Make, n8n, Clay or a custom AI workflow.
- **Market research** mapping competitor density and contactability across a city.

### How to scrape Google Maps leads with emails

1. Click **Try for free**.
2. Enter the business type (for example `dentists`) and the location (for example `London, UK`).
3. Optionally set filters: minimum rating, only businesses with a website, language.
4. Click **Start** and wait for the run to finish.
5. Download the results as JSON, CSV or Excel, or pull them through the API.

No coding needed - you just fill in a form and run it.

### Input

The Actor takes a simple JSON input. Here is a typical example:

```json
{
  "searchTerms": ["dentists"],
  "location": "London, UK",
  "maxResults": 100,
  "extractEmail": true,
  "minRating": 4.0,
  "onlyWithWebsite": true,
  "language": "en"
}
````

You can also configure everything through the visual input form in the Apify Console - no JSON required.

### Output

Every business comes back as one flat JSON object with 18 fields. Here is a real example:

```json
{
  "place_id": "ChIJYyTiQ1gbdkgRnDRYs8__GbY",
  "name": "London Dental Centre",
  "category": "Dentist",
  "address": "109 Lever St, London EC1V 3RQ, United Kingdom",
  "city": "London",
  "country": "United Kingdom",
  "phone": "+44 20 3667 7070",
  "website": "http://www.thelondondentalcentre.co.uk/",
  "email": "info@thelondondentalcentre.co.uk",
  "email_source": "mailto_link",
  "rating": 4.8,
  "latitude": 51.527144,
  "longitude": -0.095682,
  "maps_url": "https://www.google.com/maps/place/London+Dental+Centre/...",
  "opening_hours": ["Monday: 9:00-18:00", "Tuesday: 9:00-18:00"],
  "price_level": 2,
  "is_permanently_closed": false,
  "scraped_at": "2026-06-11T13:22:46Z"
}
```

You can download the dataset in various formats such as JSON, HTML, CSV or Excel.

### Data fields

Every field is always present. When a value is missing it comes back as `null` instead of being dropped, so your downstream tools never break on a missing key.

| Field | Description |
|-------|-------------|
| `place_id` | Unique Google Maps ID, useful for deduplicating across runs |
| `name` | Business name |
| `category` | Primary category, e.g. Dentist, Restaurant, Lawyer |
| `address` | Full address string |
| `city` | City parsed from the address |
| `country` | Country parsed from the address |
| `phone` | Phone number |
| `website` | Website URL |
| `email` | Contact email extracted from the business website |
| `email_source` | Where the email was found: `mailto_link`, `homepage` or `contact_page` |
| `rating` | Google rating from 0 to 5 |
| `latitude` | GPS latitude |
| `longitude` | GPS longitude |
| `maps_url` | Direct link to the Google Maps listing |
| `opening_hours` | List of opening hours per day |
| `price_level` | Price bracket from 1 to 4 |
| `is_permanently_closed` | True if the business is permanently closed |
| `scraped_at` | Timestamp in ISO 8601 format |

### How email extraction from business websites works

There is no magic and no third-party AI involved - just a careful, layered approach that is transparent about where each email came from:

1. **mailto links** on the homepage - the fastest and most reliable source.
2. **Text matching** on the homepage, for emails written in plain text.
3. **The contact or imprint page** - the Actor looks for a "contact", "imprint" or "Impressum" link, opens it, and repeats the search there.

The `email_source` field tells you exactly which step found the email, so you always know how it was obtained.

A realistic expectation: how many businesses yield an email depends heavily on the industry and on whether they publish a website at all. For local service businesses with a website, somewhere around half is typical. Businesses without a website are skipped for email, since there is nowhere to look.

### All input options

- **`searchTerms`** (required, list) - business types to search for. Multiple terms widen coverage. Examples: `["dentists"]`, `["Italian restaurants"]`, `["plumbers", "electricians"]`.
- **`location`** (required, text) - city and country. Examples: `"London, UK"`, `"Berlin, Germany"`, `"Tokyo, Japan"`.
- **`maxResults`** (default 50) - maximum places per search term, up to 500.
- **`extractEmail`** (default true) - visit each website to pull a contact email. This is the main value of the Actor, so keep it on unless you only need map data.
- **`minRating`** (default 0) - only keep businesses at or above this rating. Set `4.0` for higher-quality leads.
- **`onlyWithWebsite`** (default false) - skip businesses with no website.
- **`onlyWithPhone`** (default false) - skip businesses with no phone number.
- **`language`** (default "en") - search language. Available: en, de, fr, es, it, nl, pt, pl, tr, sv.
- **`maxRunTimeSecs`** (default 3000) - a safety limit. The Actor saves everything collected so far and exits cleanly before this time, so a large job never gets killed by the platform timeout with empty output.

### Pricing - how much does it cost to scrape Google Maps?

This Actor uses pay-per-event pricing, so you only pay for what you actually run:

- `$0.00005` per run, charged once when the run starts.
- `$0.003` per business result.

There are no subscriptions and no minimum spend.

| Volume | Approximate cost |
|--------|------------------|
| 100 leads | about $0.30 |
| 1,000 leads | about $3.00 |
| 10,000 leads | about $30.00 |

### How long does a run take?

Reliability is the priority here, so by default the Actor scrapes carefully rather than aggressively. As a rough guide, expect a few seconds per business - a 40-lead run takes around five to six minutes, and larger runs scale roughly in proportion.

If you need large jobs to finish faster, increase the Actor's memory in the run settings. The Actor automatically scrapes more pages in parallel when it has more CPU available (on Apify, CPU scales with memory), so a higher memory setting directly translates into a faster run.

### How to get more Google Maps results per city

A single Google Maps query usually returns somewhere between 20 and 120 results. To cover a large city more thoroughly, run several search terms aimed at different districts:

```json
{
  "searchTerms": [
    "Zahnarzt Berlin Mitte",
    "Zahnarzt Berlin Kreuzberg",
    "Zahnarzt Berlin Prenzlauer Berg",
    "Zahnarzt Berlin Charlottenburg"
  ],
  "location": "Berlin, Germany",
  "maxResults": 50
}
```

Results are automatically deduplicated by `place_id`, so overlapping districts will not create duplicate rows.

### Use the Google Maps scraper via API

You can run this Actor from any application. Here is a Python example using the Apify client:

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run_input = {
    "searchTerms": ["dentists"],
    "location": "London, UK",
    "maxResults": 50,
    "extractEmail": True,
    "minRating": 4.0,
}

run = client.actor("berkaydev/google-maps-lead-scraper-emails-contacts").call(run_input=run_input)
items = client.dataset(run["defaultDatasetId"]).list_items().items

print(f"Got {len(items)} leads")
```

For no-code tools like Make, n8n or Zapier, search for this Actor in the Apify integrations and connect it without writing any code.

### FAQ

**What email hit rate can I expect?**
It varies a lot by industry and by how many of the businesses actually have a website. For local services with a website, around half is a fair expectation. Treat any single number as a rough guide, not a guarantee.

**Can I import the results into HubSpot or Salesforce?**
Yes. Export as CSV from Apify, or use the API. The flat structure imports cleanly with no transformation step.

**What happens on very large jobs?**
The Actor keeps an eye on the clock and exits cleanly with everything collected so far before it can hit the platform timeout. You get a partial result you can use, never an empty failed run.

**Support?**
Use the Issues tab on this Actor's page. I read and respond to every report.

### Legal and responsible use

This Actor extracts publicly available business information from Google Maps - the same names, addresses, phone numbers and websites that Google shows to everyone.

You are responsible for using that data lawfully. In practice that means:

- For B2B outreach, make sure your offer is genuinely relevant to the business you contact.
- Follow the rules that apply to you - for example GDPR in the EU, CAN-SPAM in the US, CASL in Canada, and UWG in Germany.
- Always identify yourself clearly and make opting out easy.
- Do not send mass spam, do not resell the raw data without proper licensing, and do not keep contacting a business that has asked you to stop.

The Actor is a technical tool. Lawful use of what it collects is your responsibility, and if you are unsure, talk to a data protection lawyer.

# Actor input Schema

## `searchTerms` (type: `array`):

What kind of businesses to find. You can add multiple terms for broader coverage. Examples: 'dentists', 'Italian restaurants', 'Zahnarzt', 'plumbers'

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

City and country to search in. Examples: 'London, UK', 'Berlin, Germany', 'New York, USA'

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

Maximum number of businesses to scrape per search term. Higher = longer runtime. We recommend 50-100 for testing, up to 500 for production.

## `extractEmail` (type: `boolean`):

Visit each business website and extract contact email addresses. This is what makes this Actor valuable for lead generation. Adds ~1-2 seconds per result.

## `minRating` (type: `number`):

Only include businesses with at least this Google Maps rating. Set to 4.0 for high-quality leads, leave at 0 for no filter.

## `onlyWithWebsite` (type: `boolean`):

Skip businesses with no website listed. Useful if email extraction is your main goal.

## `onlyWithPhone` (type: `boolean`):

Skip businesses with no phone number listed.

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

Language used for the Google Maps search. Use the language that matches your target country.

## `maxRunTimeSecs` (type: `integer`):

Hard limit on run duration. The Actor will save all results collected so far and exit cleanly before hitting the platform's 3600s timeout. Default 3000s is safe for most runs.

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

Use Apify Proxy to avoid Google rate limits. Recommended for runs with more than 100 results. Requires a paid Apify plan for Residential proxies.

## Actor input object example

```json
{
  "searchTerms": [
    "dentists"
  ],
  "location": "London, UK",
  "maxResults": 50,
  "extractEmail": true,
  "minRating": 0,
  "onlyWithWebsite": false,
  "onlyWithPhone": false,
  "language": "en",
  "maxRunTimeSecs": 3000,
  "proxyConfiguration": {}
}
```

# 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 = {
    "searchTerms": [
        "dentists"
    ],
    "location": "London, UK",
    "maxResults": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("berkaydev/google-maps-email-scraper-business-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 = {
    "searchTerms": ["dentists"],
    "location": "London, UK",
    "maxResults": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("berkaydev/google-maps-email-scraper-business-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 '{
  "searchTerms": [
    "dentists"
  ],
  "location": "London, UK",
  "maxResults": 50
}' |
apify call berkaydev/google-maps-email-scraper-business-leads --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "📍 Google Maps Email Scraper - Business Leads",
        "description": "Scrape Google Maps for business leads with contact emails. Get name, phone, website, rating and email for any city or niche. No code, export to CSV/JSON",
        "version": "1.0",
        "x-build-id": "wA8q0jcwj1W8XxqM0"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/berkaydev~google-maps-email-scraper-business-leads/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-berkaydev-google-maps-email-scraper-business-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/berkaydev~google-maps-email-scraper-business-leads/runs": {
            "post": {
                "operationId": "runs-sync-berkaydev-google-maps-email-scraper-business-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/berkaydev~google-maps-email-scraper-business-leads/run-sync": {
            "post": {
                "operationId": "run-sync-berkaydev-google-maps-email-scraper-business-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": [
                    "searchTerms",
                    "location"
                ],
                "properties": {
                    "searchTerms": {
                        "title": "Business types to search",
                        "minItems": 1,
                        "type": "array",
                        "description": "What kind of businesses to find. You can add multiple terms for broader coverage. Examples: 'dentists', 'Italian restaurants', 'Zahnarzt', 'plumbers'",
                        "items": {
                            "type": "string"
                        }
                    },
                    "location": {
                        "title": "Location",
                        "minLength": 2,
                        "type": "string",
                        "description": "City and country to search in. Examples: 'London, UK', 'Berlin, Germany', 'New York, USA'"
                    },
                    "maxResults": {
                        "title": "Max results per search term",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of businesses to scrape per search term. Higher = longer runtime. We recommend 50-100 for testing, up to 500 for production.",
                        "default": 50
                    },
                    "extractEmail": {
                        "title": "Extract email from business websites",
                        "type": "boolean",
                        "description": "Visit each business website and extract contact email addresses. This is what makes this Actor valuable for lead generation. Adds ~1-2 seconds per result.",
                        "default": true
                    },
                    "minRating": {
                        "title": "Minimum Google rating",
                        "minimum": 0,
                        "maximum": 5,
                        "type": "number",
                        "description": "Only include businesses with at least this Google Maps rating. Set to 4.0 for high-quality leads, leave at 0 for no filter.",
                        "default": 0
                    },
                    "onlyWithWebsite": {
                        "title": "Only businesses with a website",
                        "type": "boolean",
                        "description": "Skip businesses with no website listed. Useful if email extraction is your main goal.",
                        "default": false
                    },
                    "onlyWithPhone": {
                        "title": "Only businesses with a phone number",
                        "type": "boolean",
                        "description": "Skip businesses with no phone number listed.",
                        "default": false
                    },
                    "language": {
                        "title": "Results language",
                        "enum": [
                            "en",
                            "de",
                            "fr",
                            "es",
                            "it",
                            "nl",
                            "pt",
                            "pl",
                            "tr",
                            "sv"
                        ],
                        "type": "string",
                        "description": "Language used for the Google Maps search. Use the language that matches your target country.",
                        "default": "en"
                    },
                    "maxRunTimeSecs": {
                        "title": "Max run time (seconds)",
                        "minimum": 60,
                        "maximum": 3500,
                        "type": "integer",
                        "description": "Hard limit on run duration. The Actor will save all results collected so far and exit cleanly before hitting the platform's 3600s timeout. Default 3000s is safe for most runs.",
                        "default": 3000
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Use Apify Proxy to avoid Google rate limits. Recommended for runs with more than 100 results. Requires a paid Apify plan for Residential proxies.",
                        "default": {}
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
