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

📍 Google Maps Scraper extracts verified local business data from Google Maps—names, addresses, phones, websites, ratings, hours, categories & coordinates. 🔎 Perfect for lead gen, local SEO, market research & CRM enrichment. 🚀 Fast, accurate, CSV/JSON-ready.

- **URL**: https://apify.com/scrapium/google-maps-scraper.md
- **Developed by:** [Scrapium](https://apify.com/scrapium) (community)
- **Categories:** Automation, Lead generation, Social media
- **Stats:** 2 total users, 1 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 production-ready Google Maps data extractor that collects verified local business data from Google Maps at scale — including names, addresses, phones, websites, ratings, hours, categories, and coordinates. It helps you scrape Google Maps business listings reliably for lead generation, local SEO, market research, and CRM enrichment. Built for marketers, developers, data analysts, and researchers, this Google Places scraper automates discovery across locations, keywords, or direct Maps URLs to enable high-quality data pipelines at scale.

### What data / output can you get?

Below are the exact fields this Google My Business scraper returns. All fields come directly from the actor’s dataset writes.

| Data field | Description | Example value |
| --- | --- | --- |
| name | Place name | “Sample Coffee” |
| website | Website URL (cleaned) | “https://samplecoffee.com” |
| avg_rating | Average rating | 4.6 |
| total_reviews | Total review count | 128 |
| street_address | Street line | “123 Main St” |
| city | City | “New York” |
| state | State/region | “NY” |
| zip | Postal code | “10001” |
| country_code | ISO country code | “US” |
| full_address | Concatenated full address | “123 Main St New York NY 10001 US” |
| tags | Categories/labels | ["Coffee shop"] |
| notes | Additional notes (if present) | null |
| place_id | Unique Google identifier | “abcd1234” |
| phone | Phone number | “+1 212-555-0100” |
| lat | Latitude | 40.75 |
| long | Longitude | -73.99 |
| hours | Array of objects with day/hours info | [{"day": "Monday", "hours": "8 AM–6 PM", ...}] |
| success | Extraction success flag | true |

Bonus outputs:
- When review capture is enabled, each place in the final file can include “reviews” (an array of review objects) and “review_count”.
- Exports are available from the Apify Dataset in CSV, JSON, or Excel — perfect to export Google Maps listings to CSV and feed analytics or CRM workflows.

### Key features

- 🔁 Bold proxy fallback ladder (direct → datacenter → residential, sticky)
  - Automatic, resilient proxy fallback with clear logs. Once on residential, sessions stay sticky for stability — ideal for a Google Maps scraping service at scale.

- 🗺️ Grid-based viewport coverage
  - Systematically covers each location’s map viewport to maximize discovery and reduce blind spots. Great for thorough Google Maps data mining software workflows.

- 🧹 Deduplication by place_id
  - Clean results while you scrape Google Maps business listings, ensuring unique records for downstream systems.

- 📝 Optional review capture
  - Best-effort review fetching per place. Ideal when you need to extract Google Maps reviews for sentiment or QA analysis.

- 🧮 Sorting for final results
  - Final merged results in Key-Value Store can be sorted by rating, review_count, name, relevance, or distance.

- ⚡ Live dataset writes + final maps.json
  - Results stream to the Apify Dataset during the run to avoid data loss; the final merged, sorted list is saved as maps.json in the Key-Value Store.

- 💻 Developer-friendly Google Maps scraper Python actor
  - Built on the Apify Python stack for easy API integration and automation. Prefer robust infrastructure over a Google Maps scraper Chrome extension.

- 📦 Flexible exports and integrations
  - Export to CSV/JSON/Excel from the Dataset and plug into CRMs, BI tools, Make, n8n, or custom pipelines.

- 🛡️ Production-ready reliability
  - Detailed logs, retry logic, and a proxy ladder make it a dependable Google Maps scraper without API dependencies.

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

1. Sign in to your Apify account and open the Google Maps Scraper actor.
2. In the Input, add:
   - Locations (e.g., “New York”, “Florida”) and Keywords (e.g., “coffee shops”), or
   - Google Maps URLs for direct searches.
3. Set Max Results to control total places returned across all searches.
4. Leave Proxy Configuration blank to start direct; the actor auto-falls back to datacenter and then residential (sticky) if blocked.
5. Click Start. Watch logs for grid progress, deduplication, and proxy events.
6. During the run, items stream to the Dataset live. After completion, the final sorted list is saved to the Key-Value Store as maps.json.
7. Export results from the Dataset in CSV, JSON, or Excel, or fetch maps.json via API for downstream processing.

Pro tip: Automate your pipeline via the Apify API and SDK. Use this Google Business Profile scraper as a backend component for enrichment, reporting, and territory planning.

### Use cases

| Use case | Description |
| --- | --- |
| Local SEO lead generation | Build targeted lists by city and category using a Google Maps business leads extractor to fuel outreach campaigns. |
| Competitive landscape analysis | Map competitor presence and ratings across regions using a robust Google Maps scraping tool. |
| CRM enrichment | Update website, phone, address, coordinates, and ratings for existing records from a trusted Google Places scraper. |
| Market research | Analyze density, categories, and ratings to inform expansion or advertising strategies. |
| Academic and policy research | Study small business distribution and ratings patterns with reproducible, exportable datasets. |
| API-driven data pipelines | Use the Apify platform to schedule runs and export Google Maps listings to CSV/JSON for analytics stacks. |
| Territory mapping | Enrich geospatial workflows with accurate lat/long and place_id identifiers. |

### Why choose Google Maps Scraper?

This Google Maps scraping tool is built for precision, automation, and reliability — not a fragile extension.

- ✅ Accuracy from grid-based coverage and place_id deduplication
- 🌍 Scalable collection across multiple locations, keywords, and URLs
- 💻 Developer-first: Python-based actor with Apify API integration
- 🧰 Flexible exports: CSV, JSON, Excel from the Dataset
- 🛡️ Ethical by design: Only public Google Maps pages are targeted
- 🔗 Easy automation: Integrate with Make, n8n, and custom systems
- 🚦 Proven reliability: Automatic proxy fallback and live dataset writes

Bottom line: It’s a production-ready Google Maps data extractor that outperforms unstable DIY scripts or a Google Maps scraper Chrome extension.

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

Yes — when done responsibly. This actor collects data from public Google Maps pages only and does not access private or authenticated content.

Guidelines for compliant use:
- Scrape publicly available business information only.
- Respect platform terms and local regulations (e.g., GDPR, CCPA).
- Use data responsibly for analysis and enrichment, not spam.
- Consult your legal team for edge cases and jurisdiction-specific requirements.

### Input parameters & output format

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

Schema parameters

- locations (array)
  - Description: List of location names (e.g., New York, Florida).
  - Required: No
  - Default: None
- keywords (array)
  - Description: Search keywords or user-specified terms (supports bulk).
  - Required: Yes
  - Default: None
- urls (array)
  - Description: Direct Google Maps search URLs (optional, supports bulk).
  - Required: No
  - Default: \[]
- maxResults (integer)
  - Description: Maximum number of places to return (cap across all searches).
  - Required: No
  - Default: 20 (min 1, max 10000)
- proxyConfiguration (object)
  - Description: Default is direct (no proxy). Actor auto-falls back to datacenter → residential if blocked.
  - Required: No
  - Default: { "useApifyProxy": false }

Advanced optional fields supported by the actor (via code)

- sortOrder (string): “relevance” | “rating” | “review\_count” | “distance” | “name” (sorting applies to the final maps.json).
- maxComments (integer): Number of reviews to fetch per place (0 disables review capture).
- gridSize (integer): Grid dimension for viewport coverage (controls coverage vs. speed).

Output format

- Dataset:
  - Base place items with full business fields are pushed live during the run.
  - If review capture is enabled, additional review-only records are added for each place\_id.

Example place item (Dataset)

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

Example review-only record (Dataset, when reviews are enabled)

```json
{
  "place_id": "abcd1234",
  "reviews": [
    {
      "author_name": "John Doe",
      "author_url": "https://www.google.com/maps/contrib/123",
      "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:
  - maps.json contains the final sorted list of place objects. When reviews are enabled, each place object in maps.json includes “reviews” and “review\_count”.

### FAQ

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

Yes. On Apify, this actor includes trial minutes so you can test before subscribing. The listing currently offers 120 trial minutes, enabling quick evaluation of your pipeline and performance.

#### Do I need to log in or provide cookies?

No. This Google Maps scraper without API or login works on public Google Maps pages and does not require session cookies or authentication.

#### Can I export results to CSV or Excel?

Yes. You can export from the Apify Dataset in CSV, JSON, or Excel formats, making it easy to share with teams or load into CRMs and BI tools.

#### Does it extract Google Maps reviews?

Yes — optionally. Set the maxComments parameter (> 0) to enable review capture. Review records are added to the Dataset, and reviews are also attached to the final maps.json items.

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

Use maxResults to cap total places across all searches. Grid-based coverage boosts discovery, while deduplication by place\_id ensures clean results.

#### Is there a developer API or Python integration?

Yes. This is a Python-based actor running on Apify’s infrastructure. You can trigger runs, pass inputs, and download outputs via the Apify API — ideal for building automated pipelines.

#### How does this compare to a Chrome extension?

This server-side Google Maps scraping tool is more reliable for scale, with automatic proxy fallback (direct → datacenter → residential, sticky) and live dataset writes, unlike most browser extensions.

#### What contact details are included?

The actor extracts website and phone when present, along with addresses, coordinates, ratings, and categories — a complete Google Maps contact details extractor for enrichment workflows.

### Closing CTA / Final thoughts

Google Maps Scraper is built for accurate, scalable extraction of local business data from public Google Maps pages. With grid-based coverage, proxy fallback, and live dataset writes, it’s ideal for lead gen, local SEO, market research, and data enrichment. Marketers, developers, analysts, and researchers can export clean CSV/JSON/Excel outputs or automate via the Apify API. Start extracting smarter Google Maps insights and power your next growth or analytics initiative with a production-ready workflow.

# 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("scrapium/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("scrapium/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 scrapium/google-maps-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Maps Scraper",
        "description": "📍 Google Maps Scraper extracts verified local business data from Google Maps—names, addresses, phones, websites, ratings, hours, categories & coordinates. 🔎 Perfect for lead gen, local SEO, market research & CRM enrichment. 🚀 Fast, accurate, CSV/JSON-ready.",
        "version": "0.1",
        "x-build-id": "Fc4JiT24dFCWUbxjy"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapium~google-maps-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapium-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/scrapium~google-maps-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapium-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/scrapium~google-maps-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapium-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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
