# Google Maps Scraper (`scrapeengine/google-maps-scraper`) Actor

Scrape Google Maps business data with ease 📍🏢 Extract names, addresses, phone numbers, websites, ratings, reviews, categories, and more from any search or location. Perfect for lead generation, local SEO, competitor research, and market analysis at scale 🚀

- **URL**: https://apify.com/scrapeengine/google-maps-scraper.md
- **Developed by:** [ScrapeEngine](https://apify.com/scrapeengine) (community)
- **Categories:** Lead generation, SEO tools, Automation
- **Stats:** 3 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$19.99/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

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

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

Google Maps Scraper is a scalable Google Maps data scraper that turns public map search results into clean, structured business listings. It solves the challenge of messy map views by extracting names, addresses, websites, phone numbers, ratings, categories, and more — ideal for marketers, developers, data analysts, and researchers. Built for repeatable workflows, this Google Maps scraping tool supports bulk searches by location names or direct Maps URLs to power lead generation, local SEO, competitor research, and market analysis at scale. 🚀

### What data / output can you get?

| Data type | Description | Example value |
| --- | --- | --- |
| name | Place name as shown on Google Maps | “Sample Coffee” |
| website | Resolved website URL (cleaned of redirect params) | “https://samplecoffee.com” |
| avg_rating | Average star rating | 4.6 |
| total_reviews | Total number of reviews | 128 |
| street_address | Street line from the address | “123 Main St” |
| city | City component from the address | “New York” |
| state | State/region component | “NY” |
| zip | Postal/ZIP code | “10001” |
| country_code | Country code | “US” |
| full_address | Concatenated address string | “123 Main St New York NY 10001 US” |
| tags | Category/tags array | ["Coffee shop"] |
| notes | Additional note when available | null |
| place_id | Unique Google place identifier | “abcd1234” |
| phone | Phone number if present | “+1 212-555-0100” |
| lat | Latitude | 40.75 |
| long | Longitude | -73.99 |
| hours | Opening hours array (day/hours/open24Hour/close24Hour) | [] |
| success | Extraction flag | true |

Bonus outputs:
- Optional review entities (when reviews are fetched) are pushed as separate dataset items containing place_id, reviews[], and review_count.
- Final merged results are also saved to the Key-Value Store as maps.json for convenient export.

Export your data from the Apify Dataset in CSV, JSON, or Excel formats for easy analysis and integration.

### Key features

- 🔁 Automatic proxy fallback ladder  
  Resilient Google Maps scraping tool: starts direct, then auto-falls back to datacenter → residential proxies with sticky mode and clear logging when blocks occur.

- 🗺️ Grid-based viewport coverage  
  Discovers more listings by sweeping a grid across the map viewport — great for a Google Maps listings scraper focused on broad spatial coverage.

- 🧹 Deduplication by place_id  
  Ensures clean output across grid points and sources by filtering on unique Google place identifiers.

- 💾 Live writes & final merge  
  Streams results to the Dataset during the run to reduce data loss, then writes a final, sorted list to the Key-Value Store as maps.json.

- 📝 Optional reviews capture  
  Acts as a Google Maps reviews scraper on a best-effort basis, adding per-place reviews when fetched.

- 🔎 Smart sorting  
  Results are sorted by relevance by default, with support for rating, review_count, and name.

- 🧰 Developer-friendly & automation-ready  
  Runs on Apify infrastructure and integrates into pipelines via the Google Maps scraper API. Export to CSV/JSON/Excel and connect to CRMs and analytics with ease.

- 🔒 No login required  
  Extracts public Google Maps data without authentication or cookies.

- 🏗️ Production-ready reliability  
  Detailed logs, retries, and proxy fallback provide consistent operation for teams that need to scrape Google Maps businesses at scale.

### How to use Google Maps Scraper - step by step

1. Sign in to your Apify account and open the Google Maps Scraper actor in the Apify Console.
2. In the Input tab, provide:
   - Locations: list of city/region names (e.g., “New York”, “Florida”).
   - Keywords / Terms: the search terms to find businesses (required).
   - Google Maps URLs: optional direct Maps search URLs (bulk supported).
   - Max Results: cap the total number of places returned across all searches.
   - Proxy Configuration: leave as default (direct) or configure Apify Proxy if desired.
3. Start the run. The actor resolves viewports and uses grid-based coverage to find places.
4. Monitor logs for progress, proxy mode changes, and grid coverage status.
5. As results stream in, open the Dataset to preview items (contact data, address, geolocation, ratings, tags, hours, place_id, success).
6. When the run finishes, download your data from:
   - Dataset: export to CSV, JSON, or Excel.
   - Key-Value Store: download the final merged maps.json.
7. Pro Tip: Use the Apify API to programmatically trigger runs, pull datasets, and automate pipelines for Google Maps lead generation scraper workflows.

### Use cases

| Use case name | Description |
| --- | --- |
| Local SEO + citation building | Collect and validate business NAP data (name, address, phone) to improve local visibility and correct citations. |
| Sales prospecting for SMBs | Build targeted lead lists by category and city to power outreach and territory planning. |
| Competitor landscape scans | Analyze ratings, review counts, and categories across regions to benchmark competitors. |
| Market analysis & mapping | Aggregate geolocated listings to study density, coverage, and service gaps in specific markets. |
| Data enrichment pipelines (API) | Feed structured place data into CRMs and analytics via the Apify API for automated enrichment. |
| Academic & research projects | Extract structured business datasets for regional studies, economic research, and public datasets. |
| Operations & expansion planning | Identify high-density areas by category to inform store placement and service zone planning. |

### Why choose Google Maps Scraper?

This Google Maps scraping software is engineered for precision, automation, and reliability on Apify.

- 🎯 Accurate, structured output with place_id-based deduplication for clean datasets.
- 🌍 Public data only — built to extract what’s visible on Google Maps without login.
- 📈 Scales to bulk runs using grid-based viewport coverage and automatic retries.
- 🧑‍💻 Developer access via Apify API for streamlined pipelines and integrations.
- 🛡️ Ethical-by-design: uses public pages; no authenticated/private access.
- 💰 Cost-effective: 120 trial minutes available to evaluate before committing.
- 🔗 Easy exports for CSV/JSON/Excel and simple integration into analytics or CRM stacks.

Compared to unstable browser extensions, this production-ready Google Maps business scraper runs headlessly with a robust proxy fallback system and detailed run logs — a dependable choice to extract business data from Google Maps at scale.

### Is it legal / ethical to use Google Maps Scraper?

Yes — when done responsibly. This actor extracts publicly available information from Google Maps pages and does not access authenticated or private data.

Guidelines for compliant use:
- Only collect public business information visible without login.
- Observe applicable laws and regulations (e.g., GDPR, CCPA) in your jurisdiction.
- Review and respect the source website’s terms of service.
- Use collected data responsibly and avoid spam or misuse.
- Consult your legal team for edge cases and region-specific requirements.

### Input parameters & output format

Example JSON input
```json
{
  "locations": ["New York"],
  "keywords": ["coffee shops"],
  "urls": [],
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
````

Parameters

- locations (array)
  - Description: List of location names (e.g., New York, Florida).
  - Default: none
  - Required: No

- keywords (array)
  - Description: Search keywords or user-specified terms (supports bulk).
  - Default: none
  - Required: Yes

- urls (array)
  - Description: Direct Google Maps search URLs (optional, supports bulk).
  - Default: \[]
  - Required: No

- maxResults (integer)
  - Description: Maximum number of places to return (cap across all searches).
  - Default: 20
  - Required: No

- proxyConfiguration (object)
  - Description: Default is direct (no proxy). Actor auto-falls back to datacenter → residential if blocked.
  - Default: { "useApifyProxy": false }
  - Required: No

Example JSON output (Dataset place item)

```json
{
  "street_address": "123 Main St",
  "city": "New York",
  "zip": "10001",
  "state": "NY",
  "country_code": "US",
  "full_address": "123 Main St New York NY 10001 US",
  "website": "https://samplecoffee.com",
  "avg_rating": 4.6,
  "total_reviews": 128,
  "name": "Sample Coffee",
  "tags": ["Coffee shop"],
  "notes": null,
  "place_id": "abcd1234",
  "phone": "+1 212-555-0100",
  "lat": 40.75,
  "long": -73.99,
  "hours": [],
  "success": true
}
```

Example JSON output (Dataset review entry for a place)

```json
{
  "place_id": "abcd1234",
  "reviews": [
    {
      "author_name": "John Doe",
      "author_url": "https://example.com/profile",
      "rating": 5,
      "text": "Great coffee and friendly staff!",
      "time": 1700000000,
      "relative_time": "2 months ago",
      "author_reviews_count": 12,
      "author_photo": "https://example.com/photo.jpg",
      "likes": 3
    }
  ],
  "review_count": 1
}
```

Key-Value Store output (maps.json)

- Contains the final sorted array of place objects as shown in the first example.
- When reviews are fetched, each place object in maps.json includes additional fields “reviews” and “review\_count”.

Note: Some fields (e.g., website, phone, hours, notes) may be missing on certain listings and return empty strings, nulls, or empty arrays depending on availability on the page.

### FAQ

#### Is there a free trial for this Google Maps scraping tool?

Yes. The actor includes 120 trial minutes so you can run tests and evaluate output quality directly on Apify before subscribing.

#### Do I need to log in to Google to use the Google Maps Scraper?

No. It collects data from public Google Maps pages without requiring a Google login or cookies.

#### Can I use this with the Apify API or from Python?

Yes. As a Google Maps scraper API on Apify, you can trigger runs and fetch datasets via the Apify API. Developers commonly integrate it into Python pipelines for automated Google Maps data extraction and enrichment.

#### What kinds of Google Maps data can I extract?

You can scrape Google Maps businesses for names, websites, ratings, review counts, address components, phone numbers, categories/tags, hours, geolocation, place\_id, and success status. Optionally, it can add reviews as separate dataset entries.

#### How does it handle blocks from Google?

It implements an automatic proxy fallback ladder: starts direct, then falls back to datacenter, then residential (sticky), with retries and detailed logs. This makes it a resilient Google Maps scraper software for production runs.

#### Can it scrape reviews too?

Yes, on a best-effort basis. When reviews are fetched, they are pushed to the Dataset as separate entries containing place\_id, reviews\[], and review\_count, and also attached to items in the final maps.json.

#### How many results can I fetch?

The actor respects the maxResults cap across all searches. It also uses grid-based viewport coverage to increase the chance of discovering more listings within each location.

#### What export formats are supported?

All Apify Datasets support CSV, JSON, and Excel exports. This makes it easy to move data into CRMs, BI tools, or custom dashboards using this Google Maps lead generation scraper.

### Closing thoughts

Google Maps Scraper is built for reliable, structured extraction of public Google Maps business data at scale. With grid-based discovery, automatic proxy fallback, and clean, deduplicated outputs, it’s ideal for marketers, developers, analysts, and researchers. Use the Apify API to automate runs and export to CSV/JSON/Excel, or plug the results directly into your enrichment and analytics pipelines. Start extracting smarter local business insights and power your next campaign or research project today.

# Actor input Schema

## `locations` (type: `array`):

🏙️ Examples: *New York*, *Texas*, *Downtown Chicago* — mix and match for bulk coverage.

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

☕ Describe the businesses or places you care about — *coffee shops*, *dentists*, *coworking*, *hotels near airport*, and so on. 📝 Add many keywords to multiply your searches!

## `urls` (type: `array`):

🌐 Bulk-friendly list of map links. ✨ Great when you’ve bookmarked exact searches.

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

🔢 Total unique places across **all** locations, keywords, and URLs (duplicates are merged automatically). ✨ Default is friendly for quick tests; raise it for big lists.

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

🎛️ Optional Apify Proxy — leave off for simple runs; turn on for heavier jobs or picky networks.

## Actor input object example

```json
{
  "locations": [
    "New York"
  ],
  "keywords": [
    "coffee shops"
  ],
  "urls": [],
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "locations": [
        "New York"
    ],
    "keywords": [
        "coffee shops"
    ],
    "urls": [],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapeengine/google-maps-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 = {
    "locations": ["New York"],
    "keywords": ["coffee shops"],
    "urls": [],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapeengine/google-maps-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 '{
  "locations": [
    "New York"
  ],
  "keywords": [
    "coffee shops"
  ],
  "urls": [],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call scrapeengine/google-maps-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Maps Scraper",
        "description": "Scrape Google Maps business data with ease 📍🏢 Extract names, addresses, phone numbers, websites, ratings, reviews, categories, and more from any search or location. Perfect for lead generation, local SEO, competitor research, and market analysis at scale 🚀",
        "version": "0.1",
        "x-build-id": "Oag39D1US8DlT7sUU"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapeengine~google-maps-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapeengine-google-maps-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/scrapeengine~google-maps-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapeengine-google-maps-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/scrapeengine~google-maps-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapeengine-google-maps-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": {
                    "locations": {
                        "title": "📍 Cities, regions, or neighborhoods",
                        "type": "array",
                        "description": "🏙️ Examples: *New York*, *Texas*, *Downtown Chicago* — mix and match for bulk coverage.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "keywords": {
                        "title": "🔎 What to find (keywords)",
                        "type": "array",
                        "description": "☕ Describe the businesses or places you care about — *coffee shops*, *dentists*, *coworking*, *hotels near airport*, and so on. 📝 Add many keywords to multiply your searches!",
                        "items": {
                            "type": "string"
                        }
                    },
                    "urls": {
                        "title": "🔗 Optional: Google Maps links",
                        "type": "array",
                        "description": "🌐 Bulk-friendly list of map links. ✨ Great when you’ve bookmarked exact searches.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResults": {
                        "title": "🎯 How many places to collect",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "🔢 Total unique places across **all** locations, keywords, and URLs (duplicates are merged automatically). ✨ Default is friendly for quick tests; raise it for big lists.",
                        "default": 20
                    },
                    "proxyConfiguration": {
                        "title": "🌐 Connection & reliability",
                        "type": "object",
                        "description": "🎛️ Optional Apify Proxy — leave off for simple runs; turn on for heavier jobs or picky networks."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
