# Local Google Maps Lead Scraper (`piotrv1001/local-google-maps-lead-scraper`) Actor

The Local Google Maps Lead Scraper extracts business listings from Google Maps and enriches each lead with emails, social links, contact pages, detected tech stack, lead score, and an optional AI-generated pitch angle — ideal for local SEO, web design, reputation management, and SMB lead generation.

- **URL**: https://apify.com/piotrv1001/local-google-maps-lead-scraper.md
- **Developed by:** [FalconScrape](https://apify.com/piotrv1001) (community)
- **Categories:** AI, Lead generation, SEO tools
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.00 / 1,000 leads

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

### 🚀 Local Google Maps Lead Miner

Find local business leads from Google Maps. The **Local Google Maps Lead Miner** extracts SMB prospects, enriches their websites, detects digital-presence gaps, and returns outreach-ready leads — built for local SEO, web design, reputation management, and B2B SaaS targeting small businesses.

### ✨ Features

- 🗺️ **Google Maps extraction** — business name, category, rating, review count, address, phone, website, coordinates, place ID and CID.
- 🌐 **Website enrichment** — emails, social links (Facebook, Instagram, X, LinkedIn, YouTube, TikTok), contact/about pages, contact-form detection and tech stack (WordPress, Shopify, Wix, …).
- 🤖 **Optional AI enrichment** — GPT-generated business summary, ICP fit, pitch angle, pain points and recommended offer for every lead.
- 🎯 **Smart filtering** — `minRating`, `minReviews`, `onlyWithWebsite`, `onlyWithPhone`, plus closed-business toggles.
- ♻️ **Bulletproof dedupe** — by `placeId`, `cid`, normalized Maps URL, phone+domain and name+address.
- 📈 **Lead scoring** — every result ships with a 0–100 `leadScore` and a human-readable `leadScoreReason`.
- 🛡️ **Reliable extraction** — works with Apify residential proxy, conservative concurrency, automatic pagination across multi-page result sets.

### 🛠️ How It Works

1. **Enter search queries** — e.g. `dentists in Warsaw`, `roofers in Chicago`, `law firms in London`.
2. **(Optional) tune filters** — minimum rating/reviews, must-have website or phone, etc.
3. **Run the Actor** — it collects matching businesses, enriches each lead's website (when enabled), and optionally generates an AI pitch.
4. **Get clean leads** — deduplicated, filtered, scored and ready to import into your CRM.

### 📥 Input

| Field | Type | Default | Description |
| --- | --- | --- | --- |
| `searchQueries` | `string[]` | `[]` | Google Maps queries (e.g. `dentists in Warsaw`). |
| `startUrls` | `{ url: string }[]` | `[]` | Pre-built Google Maps search URLs (alternative to `searchQueries`). |
| `language` | `string` | `"en"` | Locale code passed as `hl`. |
| `country` | `string` | `""` | Country code passed as `gl`. |
| `maxPlacesPerSearch` | `integer` | `100` | Max place URLs to extract per query (Google caps at ~120). |
| `maxRequestsPerCrawl` | `integer` | `1000` | Hard cap on total requests; `0` = unlimited. |
| `maxConcurrency` | `integer` | `3` | Parallel pages. Keep low (1–5) to avoid blocks. |
| `requestHandlerTimeoutSecs` | `integer` | `120` | Per-page handler timeout. |
| `minRating` | `integer` | `0` | Drop businesses below this rating (`0` disables). |
| `minReviews` | `integer` | `0` | Drop businesses with fewer reviews (`0` disables). |
| `onlyWithWebsite` | `boolean` | `false` | Keep only leads that list a website. |
| `onlyWithPhone` | `boolean` | `false` | Keep only leads with a phone number. |
| `includeClosedBusinesses` | `boolean` | `false` | Include permanently closed businesses. |
| `includeTemporarilyClosed` | `boolean` | `true` | Include temporarily closed businesses. |
| `enrichWebsite` | `boolean` | `true` | Fetch the lead's website to extract emails, socials, tech, etc. |
| `websiteEnrichmentTimeoutSecs` | `integer` | `30` | Per-site fetch timeout. |
| `aiEnrichment` | `boolean` | `false` | Add the AI-generated `ai` object to each lead (billed separately). |
| `proxyConfiguration` | `object` | residential | Proxy settings — residential is strongly recommended for Maps. |

### 📊 Sample Output Data

The Actor returns structured JSON. You can download the dataset as JSON, CSV, Excel or HTML.

```json
{
    "searchQuery": "dentists in Warsaw",
    "businessName": "Warsaw Dental Center",
    "category": "Dental clinic",
    "rating": 4.8,
    "reviewCount": 541,
    "address": "Aleje Jerozolimskie, Warsaw, Poland",
    "phone": "+48 22 542 18 04",
    "website": "https://warsawdentalcenter.pl/",
    "domain": "warsawdentalcenter.pl",
    "googleMapsUrl": "https://www.google.com/maps/place/Warsaw+Dental+Center/...",
    "placeId": "ChIJ…",
    "cid": "1234567890",
    "latitude": 52.2387485,
    "longitude": 21.0246285,
    "businessStatus": "open",
    "websiteEnrichment": {
        "title": "Warsaw Dental Center — Premium Dental Clinic",
        "metaDescription": "Comprehensive dental services in central Warsaw…",
        "emails": ["info@warsawdentalcenter.pl"],
        "phones": ["+48 22 542 18 04"],
        "socialLinks": {
            "facebook": ["https://facebook.com/warsawdentalcenter"],
            "instagram": ["https://instagram.com/warsawdentalcenter"],
            "twitter": [],
            "linkedin": [],
            "youtube": [],
            "tiktok": [],
            "other": []
        },
        "contactPageUrl": "https://warsawdentalcenter.pl/contact",
        "aboutPageUrl": "https://warsawdentalcenter.pl/about",
        "hasContactForm": true,
        "detectedTechnologies": ["wordpress", "google-tag-manager"]
    },
    "leadSignals": {
        "hasWebsite": true,
        "hasPhone": true,
        "hasEmail": true,
        "hasSocialLinks": true,
        "hasManyReviews": true
    },
    "leadScore": 80,
    "leadScoreReason": "Has website; Has phone number; Email found; Has social links; Has meaningful review volume",
    "ai": {
        "businessSummary": "Highly-rated dental clinic in central Warsaw with strong online reputation.",
        "idealCustomerFit": "medium",
        "pitchAngle": "Boost your already excellent reputation with stronger local SEO.",
        "painPoints": ["No contact form on homepage", "Limited social engagement"],
        "recommendedOffer": "Google Business Profile optimization"
    }
}
````

### 💰 Pricing

This Actor uses **pay-per-event** pricing — you only pay for what you actually receive. Failed page loads, dropped leads (filters/dedupe), failed website fetches and failed AI calls are **never** charged.

| Event | When it fires | Price per event |
| --- | --- | --- |
| `lead-extracted` | Every unique business lead pushed to the dataset (after filtering and dedupe). Always fires. | **$0.008** |
| `website-enriched` | When `enrichWebsite=true` **and** the website fetch yields useful data (emails, socials, contact/about page, contact form, detected tech, or page title). | **$0.004** |
| `ai-enrichment` | When `aiEnrichment=true` and the AI fields (`ai.businessSummary`, `ai.idealCustomerFit`, `ai.pitchAngle`, `ai.painPoints`, `ai.recommendedOffer`) are successfully populated. | **$0.012** |

**Three usage tiers:**

| Tier | Toggles | Cost per 1 000 leads |
| --- | --- | --- |
| 📞 Phones-only outreach | `enrichWebsite=false`, `aiEnrichment=false` | **$8** |
| 📧 Standard (emails + socials) | `enrichWebsite=true`, `aiEnrichment=false` | **~$12** |
| 🎯 Sales-ready w/ AI pitch | `enrichWebsite=true`, `aiEnrichment=true` | **~$24** |

Turn local searches into outreach-ready leads — try **Local Google Maps Lead Miner** today! 🚀

# Actor input Schema

## `searchQueries` (type: `array`):

Google Maps search queries, e.g. "dentists in Warsaw". Each query is converted into a Google Maps search URL.

## `startUrls` (type: `array`):

Optional list of Google Maps search URLs to start from. Use either searchQueries, startUrls, or both.

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

Language/locale code passed to Google Maps (hl parameter).

## `country` (type: `string`):

Optional country code passed to Google Maps (gl parameter).

## `maxPlacesPerSearch` (type: `integer`):

Maximum number of place URLs to extract per search query.

## `maxRequestsPerCrawl` (type: `integer`):

Maximum total requests for the entire crawl. 0 = unlimited.

## `maxConcurrency` (type: `integer`):

Maximum number of pages to scrape in parallel. Keep low (1-5) to avoid blocks.

## `requestHandlerTimeoutSecs` (type: `integer`):

How long a single page handler may run before timing out.

## `minRating` (type: `integer`):

Filter out businesses with average rating below this value (0 = disabled).

## `minReviews` (type: `integer`):

Filter out businesses with fewer reviews than this (0 = disabled).

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

If true, drop leads that do not have a website on Google Maps.

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

If true, drop leads that do not have a phone number.

## `includeClosedBusinesses` (type: `boolean`):

If false, permanently closed businesses are filtered out.

## `includeTemporarilyClosed` (type: `boolean`):

If false, temporarily closed businesses are filtered out.

## `enrichWebsite` (type: `boolean`):

Visit each business's website to extract emails, social links, contact page, title and meta description.

## `aiEnrichment` (type: `boolean`):

Generate an AI-powered business summary, ICP fit, pitch angle, pain points and recommended offer for every lead. Billed as a separate event. Requires the actor maintainer to have configured an OpenAI API key.

## `websiteEnrichmentTimeoutSecs` (type: `integer`):

Per-site timeout for website enrichment.

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

Proxy settings. Residential proxy is recommended for Google Maps scraping.

## Actor input object example

```json
{
  "searchQueries": [
    "dentists in Warsaw"
  ],
  "startUrls": [],
  "language": "en",
  "country": "",
  "maxPlacesPerSearch": 100,
  "maxRequestsPerCrawl": 1000,
  "maxConcurrency": 3,
  "requestHandlerTimeoutSecs": 120,
  "minRating": 0,
  "minReviews": 0,
  "onlyWithWebsite": false,
  "onlyWithPhone": false,
  "includeClosedBusinesses": false,
  "includeTemporarilyClosed": true,
  "enrichWebsite": true,
  "aiEnrichment": false,
  "websiteEnrichmentTimeoutSecs": 30,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "searchQueries": [
        "dentists in Warsaw"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("piotrv1001/local-google-maps-lead-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 = {
    "searchQueries": ["dentists in Warsaw"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("piotrv1001/local-google-maps-lead-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 '{
  "searchQueries": [
    "dentists in Warsaw"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call piotrv1001/local-google-maps-lead-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Local Google Maps Lead Scraper",
        "description": "The Local Google Maps Lead Scraper extracts business listings from Google Maps and enriches each lead with emails, social links, contact pages, detected tech stack, lead score, and an optional AI-generated pitch angle — ideal for local SEO, web design, reputation management, and SMB lead generation.",
        "version": "0.0",
        "x-build-id": "FreC6wz7qc9Zu7UIp"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/piotrv1001~local-google-maps-lead-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-piotrv1001-local-google-maps-lead-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/piotrv1001~local-google-maps-lead-scraper/runs": {
            "post": {
                "operationId": "runs-sync-piotrv1001-local-google-maps-lead-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/piotrv1001~local-google-maps-lead-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-piotrv1001-local-google-maps-lead-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",
                "properties": {
                    "searchQueries": {
                        "title": "Search queries",
                        "type": "array",
                        "description": "Google Maps search queries, e.g. \"dentists in Warsaw\". Each query is converted into a Google Maps search URL.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Optional list of Google Maps search URLs to start from. Use either searchQueries, startUrls, or both.",
                        "default": [],
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "language": {
                        "title": "Language",
                        "type": "string",
                        "description": "Language/locale code passed to Google Maps (hl parameter).",
                        "default": "en"
                    },
                    "country": {
                        "title": "Country",
                        "type": "string",
                        "description": "Optional country code passed to Google Maps (gl parameter).",
                        "default": ""
                    },
                    "maxPlacesPerSearch": {
                        "title": "Max places per search",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of place URLs to extract per search query.",
                        "default": 100
                    },
                    "maxRequestsPerCrawl": {
                        "title": "Max requests per crawl",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum total requests for the entire crawl. 0 = unlimited.",
                        "default": 1000
                    },
                    "maxConcurrency": {
                        "title": "Max concurrency",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Maximum number of pages to scrape in parallel. Keep low (1-5) to avoid blocks.",
                        "default": 3
                    },
                    "requestHandlerTimeoutSecs": {
                        "title": "Request handler timeout (seconds)",
                        "minimum": 30,
                        "maximum": 600,
                        "type": "integer",
                        "description": "How long a single page handler may run before timing out.",
                        "default": 120
                    },
                    "minRating": {
                        "title": "Minimum rating",
                        "minimum": 0,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Filter out businesses with average rating below this value (0 = disabled).",
                        "default": 0
                    },
                    "minReviews": {
                        "title": "Minimum number of reviews",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Filter out businesses with fewer reviews than this (0 = disabled).",
                        "default": 0
                    },
                    "onlyWithWebsite": {
                        "title": "Only businesses with a website",
                        "type": "boolean",
                        "description": "If true, drop leads that do not have a website on Google Maps.",
                        "default": false
                    },
                    "onlyWithPhone": {
                        "title": "Only businesses with a phone number",
                        "type": "boolean",
                        "description": "If true, drop leads that do not have a phone number.",
                        "default": false
                    },
                    "includeClosedBusinesses": {
                        "title": "Include permanently closed businesses",
                        "type": "boolean",
                        "description": "If false, permanently closed businesses are filtered out.",
                        "default": false
                    },
                    "includeTemporarilyClosed": {
                        "title": "Include temporarily closed businesses",
                        "type": "boolean",
                        "description": "If false, temporarily closed businesses are filtered out.",
                        "default": true
                    },
                    "enrichWebsite": {
                        "title": "Enrich website",
                        "type": "boolean",
                        "description": "Visit each business's website to extract emails, social links, contact page, title and meta description.",
                        "default": true
                    },
                    "aiEnrichment": {
                        "title": "AI enrichment (billed separately)",
                        "type": "boolean",
                        "description": "Generate an AI-powered business summary, ICP fit, pitch angle, pain points and recommended offer for every lead. Billed as a separate event. Requires the actor maintainer to have configured an OpenAI API key.",
                        "default": false
                    },
                    "websiteEnrichmentTimeoutSecs": {
                        "title": "Website enrichment timeout (seconds)",
                        "minimum": 5,
                        "maximum": 120,
                        "type": "integer",
                        "description": "Per-site timeout for website enrichment.",
                        "default": 30
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings. Residential proxy is recommended for Google Maps scraping.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
