# Google Maps Business Scraper (`meridiancorp.ai/google-maps-business-scraper`) Actor

Extract business details from Google Maps by search query: name, address, phone, website, rating, hours, coordinates, and optionally email addresses. Pay only for records you receive ($0.003/result).

- **URL**: https://apify.com/meridiancorp.ai/google-maps-business-scraper.md
- **Developed by:** [Meridian Corp](https://apify.com/meridiancorp.ai) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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

## Google Maps Business Scraper

Extract structured business data from Google Maps by search query. Get name, address, phone, website, coordinates, ratings, hours, and optionally email addresses — all in one clean JSON dataset.

**Pay-per-result pricing:** $0.003 per business record. You pay only for what you actually receive. No monthly fees, no subscriptions.

> Verified working on live Google Maps as of 2026-04-21. Tested across EN/DE/CS/ES/FR queries.

---

### What does this actor extract?

Each business record contains the following fields:

| Field | Type | Description |
|-------|------|-------------|
| `placeId` | string | Google Place ID — stable unique identifier |
| `name` | string | Business name as shown on Google Maps |
| `category` | string | Primary business category (e.g. "Coffee shop") |
| `address` | string | Full formatted address |
| `lat` | float | Latitude (WGS84) |
| `lon` | float | Longitude (WGS84) |
| `phone` | string | Phone number as displayed on Maps |
| `website` | string | Business website URL |
| `email` | string | Contact email — extracted from website when `includeEmails=true` |
| `rating` | float | Star rating (1.0 – 5.0) |
| `reviewsCount` | integer | Total number of Google reviews |
| `priceLevel` | string | Price indicator: €, €€, €€€, or €€€€ |
| `hours` | array | Opening hours by day of week |
| `photos` | array | Photo URLs from Google Maps CDN — when `includePhotos=true` |
| `searchQuery` | string | The input query that produced this result |
| `url` | string | Full Google Maps URL for this listing |
| `scrapedAt` | datetime | ISO 8601 UTC timestamp |

Fields that Google Maps does not show for a given listing are returned as `null` rather than omitted. Your downstream code does not need to guard against missing keys.

---

### Use cases

#### B2B lead generation

Find businesses in a specific niche and city, export to CSV, load into your CRM. Enable `includeEmails=true` to get direct contact addresses alongside phone numbers.

Example: "personal trainers London" — 500 results with emails costs approximately $1.50 + $0.75 for emails (if ~50% have extractable addresses) = **$2.25 total**.

#### Market research and competitive mapping

Map all competitors in your category within a metro area. Use rating, review count, price level, and hours data to understand market positioning without manual research.

Example: "italian restaurants Munich" at 1,000 results costs **$3.00**. You get coordinates, ratings, and review counts for the full competitive landscape.

#### Directory and aggregator sites

Populate local business directories, neighbourhood guides, or niche aggregator sites. The `placeId` field gives you a stable unique key for deduplication across repeated runs.

Example: building a directory of 10,000 businesses across 20 cities costs **$30**. Incremental weekly updates scrape only changed queries.

#### Local SEO analytics

Audit local search visibility. Track which businesses appear for a given query, their ranking positions, rating trends, and category distribution over time.

---

### How it works

1. You provide a list of search queries (e.g. `["dentists Berlin", "coffee shops Prague"]`).
2. The actor opens Google Maps in a headless browser and runs each query.
3. It scrolls the results list to load up to your `maxResultsPerQuery` limit.
4. For each business, it visits the detail panel and extracts all available fields.
5. If `includeEmails=true`, it additionally visits each business website and scans contact pages for email addresses.
6. Results are pushed to the Apify dataset in real time as they are scraped — you do not wait for the full run to finish.

**Typical performance:**
- 100 businesses per query: 3–5 minutes
- 1,000 businesses per query: 30–50 minutes
- Email extraction adds approximately 1–3 seconds per business with a website

With default `concurrency=5`, scraping 20 businesses typically takes 2–3 minutes. Higher concurrency (10–15) can speed this up further but uses more memory. We recommend 5 for reliability. Each worker uses approximately 150 MB RAM at peak.

The actor uses Apify Residential proxies by default to maintain a stable success rate against Google Maps geo-restrictions. You can override this with your own proxies via `proxyConfiguration`.

---

### Input configuration

#### Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchQueries` | array of strings | required | Search phrases to run. Max 100 queries per run. |
| `maxResultsPerQuery` | integer | 100 | Businesses to scrape per query. Range: 1–1000. |
| `language` | string | `EN` | Maps interface language. Options: EN, CS, DE, ES, FR. |
| `includeEmails` | boolean | false | Visit each website and extract contact emails. |
| `includePhotos` | boolean | false | Collect photo URLs from Google Maps listings. |
| `concurrency` | integer | 5 | Parallel workers per query. Higher = faster, more memory. Max 20. |
| `proxyConfiguration` | object | Apify Residential | Proxy settings. |

#### Example: simple single query

```json
{
  "searchQueries": ["coffee shops Berlin"],
  "maxResultsPerQuery": 100,
  "language": "EN"
}
````

#### Example: multi-region sweep

```json
{
  "searchQueries": [
    "dentists Prague",
    "dentists Brno",
    "dentists Ostrava"
  ],
  "maxResultsPerQuery": 500,
  "language": "CS"
}
```

#### Example: lead generation with emails

```json
{
  "searchQueries": ["marketing agencies Amsterdam"],
  "maxResultsPerQuery": 200,
  "language": "EN",
  "includeEmails": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

***

### Output example

A single business record as returned in the Apify dataset:

```json
{
  "placeId": "0x47a84fd9d5f5ab65:0xff2f9adcd3c28c",
  "name": "Chapter One Coffee",
  "category": "Coffee shop",
  "address": "Mittenwalder Str. 30, 10961 Berlin, Germany",
  "lat": 52.4897848,
  "lon": 13.3956902,
  "phone": "+49 30 25922799",
  "website": "http://www.chapter-one-coffee.com/",
  "email": null,
  "rating": 4.6,
  "reviewsCount": 992,
  "priceLevel": "€",
  "hours": [
    {"day": "Tuesday", "hours": "8 AM–6 PM"},
    {"day": "Wednesday", "hours": "8 AM–6 PM"},
    {"day": "Saturday", "hours": "9 AM–6 PM"},
    {"day": "Sunday", "hours": "9 AM–6 PM"}
  ],
  "photos": null,
  "searchQuery": "coffee shops Berlin",
  "url": null,
  "scrapedAt": "2026-04-21T11:38:16.344659Z"
}
```

***

### Pricing

This actor uses Pay-Per-Event pricing. You are charged only for results delivered.

| Event | Price |
|-------|-------|
| Business record scraped | $0.003 |
| Email address extracted | $0.005 |

The email charge applies only when `includeEmails=true` and only when an email is actually found. If a business has no website or the site does not list an email, you are not charged the email event fee.

**Cost estimates:**

| Scenario | Records | Emails found | Cost |
|----------|---------|--------------|------|
| Quick test | 100 | 0 | $0.30 |
| City niche sweep | 1,000 | 0 | $3.00 |
| Lead gen with emails (30% hit rate) | 1,000 | 300 | $3.00 + $1.50 = **$4.50** |
| Large directory build | 10,000 | 0 | $30.00 |
| Full outreach list with emails (40% hit rate) | 5,000 | 2,000 | $15.00 + $10.00 = **$25.00** |

**Comparison to manual data collection:**

A virtual assistant typically charges $0.50–$1.00 per manually researched business record. This actor delivers the same structured data at $0.003 per record — roughly 200x cheaper — and runs unattended.

The Google Maps Platform API (Places API) charges $0.017 per place detail request at standard pricing. This actor costs $0.003 per record — about 5x less — and includes fields not available via the API such as opening hours and price level in a single call.

***

### FAQ

**Is scraping Google Maps legal?**

This actor collects publicly visible business information — the same data any person can see by opening Google Maps in a browser. Collecting publicly available business data is generally permissible in most jurisdictions, including the EU. However, your specific use case may have additional requirements. Consult your legal counsel if you are uncertain about your use case.

**Will this get my Apify account banned?**

The actor uses Apify Residential proxies by default, which rotate IP addresses and mimic normal browser behaviour. This significantly reduces the risk of blocks. Google Maps does implement anti-scraping measures that can affect success rates on some queries. We recommend using Residential proxies rather than datacenter proxies.

**How accurate is the email extraction?**

Email extraction works by visiting each business website and scanning the HTML of contact pages for email patterns. Accuracy depends on how the website presents its contact information. Addresses hidden behind contact forms or loaded by JavaScript after page render may not be captured. In practice, roughly 30–50% of businesses that have a website also have a findable email address. You are charged only when an email is successfully extracted.

**Can I run this on a schedule?**

Yes. Apify allows you to schedule any actor run via the Scheduler in your console, or via the Apify API. You can run the same queries weekly and export fresh results each time.

**Why are some businesses missing phone numbers or websites?**

Not every Google Maps listing is fully populated. Many small businesses have claimed their listing but not added a website or phone number. The actor returns whatever Google Maps shows — it does not fill in information that is not there.

**How does this compare to the official Google Places API?**

The Places API is the correct choice if you need guaranteed uptime SLAs, official Google support, or if you are building a user-facing application that must comply with Google's Terms of Service for displayed data. This actor is appropriate for research, lead generation, and data export where you own the output and are not redistributing it as a Maps-powered product.

**Do you support non-English results?**

Yes. The `language` parameter controls the Google Maps interface language, which affects business names, category labels, and address formatting. Currently supported: English (EN), Czech (CS), German (DE), Spanish (ES), French (FR).

**Why are some businesses missing reviewsCount or priceLevel?**

Google Maps does not display price levels for all business types — hotels and professional services often show no price indicator at all. For businesses where the data is visible on the public Maps page, we capture it reliably. If a field is `null`, the data was not shown on Google's interface.

**Can I run this at higher concurrency for speed?**

Yes. Set `concurrency` to 10–15 for 2–3x faster scraping of large queries. Default is 5 for reliability. Maximum is 20. Higher values use more memory — each worker requires approximately 150 MB RAM.

***

### Limitations and disclaimers

- **Public data only.** This actor collects information displayed publicly on Google Maps. It does not access private data, logged-in user content, or information behind authentication.
- **Google-imposed rate limits.** Google Maps throttles automated access. The actor is built to handle this gracefully, but very large runs (10,000+ records per query) may see slower throughput during periods of heavy throttling.
- **Email extraction is best-effort.** Emails embedded in images, protected by anti-spam obfuscation, or loaded dynamically may not be captured.
- **Google Maps data accuracy.** Business information on Google Maps reflects what Google has indexed and what business owners have entered. Hours, phone numbers, and addresses may be outdated if the business has not updated their listing.
- **Not affiliated with Google.** This actor is an independent tool and is not endorsed by or affiliated with Google LLC.
- **EU/GDPR note.** Business contact information (name, address, phone, website, email) pertaining to legal entities operating as businesses is generally not considered personal data under GDPR. Individual sole traders operating under their personal name may be an exception. Review your specific data processing obligations before using email addresses for outreach.

***

### Support

For bug reports and feature requests, use the **Issues** tab on this actor's Apify Store page.

For other questions: support@meridiancorp.ai

Response time: typically within 1 business day.

***

See [CHANGELOG.md](./CHANGELOG.md) for version history.

# Actor input Schema

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

List of search phrases to run on Google Maps. Each query runs independently. Example: \["restaurants Prague", "dentists Berlin", "lawyers New York"]

## `maxResultsPerQuery` (type: `integer`):

Maximum number of businesses to scrape per search query. Higher values increase cost and run time.

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

Language for Google Maps interface. Affects result language and business name localisation.

## `includeEmails` (type: `boolean`):

If enabled, the scraper will visit each business website and attempt to extract contact email addresses. This increases cost by $0.005 per email found and slows down the run.

## `includePhotos` (type: `boolean`):

If enabled, collect URLs of business photos from Google Maps. Slightly increases run time.

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

Number of parallel scraping workers per query. Each worker opens its own browser page (~100–150 MB RAM). Higher values are faster but use more memory. Default: 5, recommended: 3–10. Hard cap: 20.

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

Apify Proxy or custom proxy settings. Recommended: Apify Residential proxies for best success rate.

## Actor input object example

```json
{
  "searchQueries": [
    "restaurants Prague"
  ],
  "maxResultsPerQuery": 100,
  "language": "EN",
  "includeEmails": false,
  "includePhotos": false,
  "concurrency": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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": [
        "restaurants Prague"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("meridiancorp.ai/google-maps-business-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": ["restaurants Prague"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("meridiancorp.ai/google-maps-business-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": [
    "restaurants Prague"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call meridiancorp.ai/google-maps-business-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Maps Business Scraper",
        "description": "Extract business details from Google Maps by search query: name, address, phone, website, rating, hours, coordinates, and optionally email addresses. Pay only for records you receive ($0.003/result).",
        "version": "0.3",
        "x-build-id": "CbPoNWTlUbshONg7j"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/meridiancorp.ai~google-maps-business-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-meridiancorp.ai-google-maps-business-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/meridiancorp.ai~google-maps-business-scraper/runs": {
            "post": {
                "operationId": "runs-sync-meridiancorp.ai-google-maps-business-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/meridiancorp.ai~google-maps-business-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-meridiancorp.ai-google-maps-business-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": [
                    "searchQueries"
                ],
                "properties": {
                    "searchQueries": {
                        "title": "Search Queries",
                        "minItems": 1,
                        "maxItems": 100,
                        "type": "array",
                        "description": "List of search phrases to run on Google Maps. Each query runs independently. Example: [\"restaurants Prague\", \"dentists Berlin\", \"lawyers New York\"]",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResultsPerQuery": {
                        "title": "Max Results Per Query",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of businesses to scrape per search query. Higher values increase cost and run time.",
                        "default": 100
                    },
                    "language": {
                        "title": "Language",
                        "enum": [
                            "EN",
                            "CS",
                            "DE",
                            "ES",
                            "FR"
                        ],
                        "type": "string",
                        "description": "Language for Google Maps interface. Affects result language and business name localisation.",
                        "default": "EN"
                    },
                    "includeEmails": {
                        "title": "Extract Emails from Websites",
                        "type": "boolean",
                        "description": "If enabled, the scraper will visit each business website and attempt to extract contact email addresses. This increases cost by $0.005 per email found and slows down the run.",
                        "default": false
                    },
                    "includePhotos": {
                        "title": "Include Business Photos",
                        "type": "boolean",
                        "description": "If enabled, collect URLs of business photos from Google Maps. Slightly increases run time.",
                        "default": false
                    },
                    "concurrency": {
                        "title": "Concurrency",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Number of parallel scraping workers per query. Each worker opens its own browser page (~100–150 MB RAM). Higher values are faster but use more memory. Default: 5, recommended: 3–10. Hard cap: 20.",
                        "default": 5
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Apify Proxy or custom proxy settings. Recommended: Apify Residential proxies for best success rate."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
