# Free Google Maps Scraper — Places + Contact Details + Photos (`s-r/free-google-maps-scraper`) Actor

- **URL**: https://apify.com/s-r/free-google-maps-scraper.md
- **Developed by:** [SR](https://apify.com/s-r) (community)
- **Categories:** Business, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

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

## Free Google Maps Scraper — Places, Contact Details, Hours, Lat/Lng

A Google Maps scraper that returns every business detail Google's `/maps/search` page renders — name, rating, review count, category, full address, phone number, website, opening hours, latitude / longitude — as clean structured JSON. No browser automation, no Google Places API key, no $17-per-1k Places-API bill at the end of the month. One AJAX call per query returns up to 20 places at $0.0025 each.

### What you get

- Business name, primary category (e.g. `Italian restaurant`), and rounded star rating (1-5)
- Total review count as an integer (`reviews_count: 1248`)
- Full street address — street + house number + city + zip in the local format Google renders for the `gl` country
- Phone number in international format when Google has it on file
- Website URL — the outbound link Google Maps points to (typically the merchant's own domain, not a redirector)
- Opening hours string ("Open · Closes 10 PM" or "Permanently closed") — the live status as Google renders it
- Latitude and longitude as decimal floats, accurate to ~1 meter
- Canonical Google Maps URL (`https://www.google.com/maps/place/...`) you can pass to the Reviews and Images scrapers below
- Search query echoed on every row so you can join multi-keyword runs into one dataset

### Why scrape Google Maps for places data

Google Places API costs are punishing for any volume use case. The new Places API (New) bills `$17/1000` for **Place Details (Basic)**, `$32/1000` for **Place Details (Advanced)** with phone + website + opening hours, and `$32/1000` for **Text Search (Basic)** before you even fetch a single detail. A lead-gen agency pulling 50,000 dentists across the US pays Google **$1,600 minimum** for that one job — and Places API is rate-limited to a few hundred QPS unless you negotiate a custom quota. Worse, Google deprecated the legacy Places API in March 2025 and is forcing migration to the New API which has stricter field masks and higher per-call billing.

This actor solves that by hitting Google's internal `/search?tbm=map` AJAX endpoint with `curl_cffi` (Chrome TLS impersonation) plus a fresh anonymous Google session cookie from a managed minter pool. One call returns up to 20 places with the full structured payload — name, rating, address, phone, website, hours, lat/lng — for **$0.0025 per place**, or **$2.50 per 1000**. That's 13× cheaper than Google Places (Basic) and 6× cheaper than competing Google Maps scrapers on the Apify Store such as `compass/crawler-google-places` (which charges per-result on a sliding scale that lands around $4-7 per 1000 places). No browser, no Selenium, no headful Playwright — just one HTTP call per query.

Concrete buyer math: a B2B lead-gen agency building a list of 25,000 plumbers across 100 US cities pays $0.0025 × 25,000 = **$62.50 for the whole job**, finishing in ~30 minutes. The same job through Google Places API (Advanced fields) costs $32 × 25 = **$800**, takes a week to clear quota approval, and still doesn't include the lat/lng on the cheap tier.

### Input

| Field | Default | Description |
|---|---|---|
| `queries` | required | Array of Google Maps search queries (`"restaurants Amsterdam"`, `"plumbers in NYC"`, `"dentists London"`) |
| `max_results_per_query` | `20` | Cap places per query (1-20). Each AJAX call returns up to 20 |
| `hl` | `en` | Language code (`en`, `nl`, `de`, `es`, `fr`, `it`, `ja`) |
| `gl` | `us` | Two-letter country code controlling locale + currency |
| `use_cookies` | `true` | Use a fresh anonymous Google session — bypasses the EU consent banner and reduces CAPTCHA at scale |
| `use_proxy` | `false` | Optional. Adds extra IP rotation for very high volume |

### Output

```json
{
  "name": "De Kas",
  "rating": 4.5,
  "reviews_count": 1842,
  "category": "Modern European restaurant",
  "address": "Kamerlingh Onneslaan 3, 1097 DE Amsterdam, Netherlands",
  "phone": "+31 20 462 4562",
  "website": "https://restaurantdekas.com/",
  "hours": "Open · Closes 10 PM",
  "url": "https://www.google.com/maps/place/De+Kas/data=!4m7!3m6!1s0x47c609e91734d71b...",
  "search_query": "restaurants Amsterdam",
  "latitude": 52.3471242,
  "longitude": 4.9264883
}
````

The `url` field is the canonical place URL — pass it directly to the Reviews scraper or Images scraper (linked at the bottom of this README) to fetch the same place's reviews or photos without re-running the search.

### Use cases

**B2B lead-gen agency building niche prospect lists.** You sell SEO services to dentists. You queue 100 queries (`"dentist <city>"` for the top 100 US metros) and run the actor — 100 × 20 = 2,000 dentists with name, phone, website, and rating, for $5 total. Filter for `rating < 4.0` (low-rated practices that need reputation work) and you have a 400-row outbound list segmented by exact pain point.

**Local SEO consultant auditing a market.** Your client is a Brooklyn pizzeria. You pull `"pizza Brooklyn"` (20 results), `"pizzeria Brooklyn"` (20 more), `"italian restaurant Brooklyn"` (20 more) — 60 competitor records for $0.15. Sort by `reviews_count` descending and you instantly see who the real local competitors are, their ratings, and their websites for backlink prospecting.

**Real-estate analyst mapping commercial supply.** You need every coffee shop in a 5-city catchment to model retail density. 5 × 20 = 100 places for $0.25, with `latitude`/`longitude` fields ready to load into PostGIS or Mapbox. Compare to Google Places API at $32/1000 with rate limits; you're done in two minutes for a quarter.

**Travel-app developer seeding a points-of-interest database.** Your itinerary app needs 50 POI categories per city × 50 cities = 2,500 queries × 20 results = 50,000 places. Total: $125. Through Places API (Text Search + Place Details Advanced): $1,600 + 2-week quota request. Same data, ship two weeks earlier.

### How it compares

| Actor | Price per 1000 places | Phone | Website | Hours | Lat/Lng |
|---|---|---|---|---|---|
| **This actor (s-r/free-google-maps-scraper)** | **$2.50** | yes | yes | yes | yes |
| `compass/crawler-google-places` (#2 on `google maps scraper` SERP) | ~$4-7 sliding scale | yes | yes | yes | yes |
| `gosom/google-maps-scraper` (#3 SERP, open-source CLI) | self-hosted (your infra) | yes | yes | partial | yes |
| Outscraper Google Maps (#1 SERP) | ~$3-5 | yes | yes | yes | yes |
| Google Places API (Advanced) | $32 + quota approval | yes | yes | yes | yes |

The headline competitor on Apify is `compass/crawler-google-places`, which is the top-ranking Maps scraper on Apify Store with thousands of monthly users — but its sliding-scale pricing lands around $4-7 per 1000 results for typical workloads, and its run-times are slower because it uses headless Chrome under the hood. This actor is pure HTTP (`curl_cffi` + cookies) which is why it can sustain 13 places/sec at $2.50/1000.

### Pricing

This actor uses Apify's pay-per-event monetization at $0.0025 per place returned — that's $2.50 per 1000 places, or roughly 60-90% cheaper than the closest Apify alternatives. All pricing is pay-per-event — you only pay for results you receive. No actor-start fee, no per-compute-unit charges, no charge for empty queries or rate-limit retries.

### Limits and gotchas

- Google's `/search?tbm=map` endpoint returns at most 20 results per AJAX call — for >20 places per area, run multiple narrower queries (e.g. `"sushi Amsterdam Centrum"`, `"sushi Amsterdam Zuid"`) instead of one broad query
- Phone, website, and hours are populated only when Google has them on file; expect ~80% website, ~85% phone, ~70% hours coverage in mature markets, lower in emerging ones
- The `hours` field is the live status string Google renders ("Open · Closes 10 PM") — if you need the full 7-day schedule, you'll need to follow up with the place URL on a more detail-heavy actor
- Apify residential proxy is **not** required — the cookie pool plus `curl_cffi`'s Chrome TLS fingerprint is enough for sustained throughput; leaving `use_proxy=false` saves you ~$8/GB
- `gl` controls the result locale — `gl=us` searching `"hairdresser Amsterdam"` will still return Amsterdam results but with US English UI strings; for native locale results set `gl=nl` and `hl=nl`
- Cold-start time is ~2-4 seconds for the first request; subsequent queries in the same run reuse the session pool and complete in ~0.8s each
- Email addresses are **not** included — Google Maps doesn't expose emails on place panels. To get emails, pass the `website` URL to a website-scraper actor and parse `mailto:` links

### FAQ

**How do I scrape Google Maps without the Places API?**
This actor calls Google's internal `/search?tbm=map` AJAX endpoint directly with `curl_cffi` (Chrome TLS impersonation) and a fresh anonymous Google session cookie. No Google Cloud account, no API key, no quota approval. You only pay Apify's per-result rate.

**Is Google Maps scraping legal?**
Scraping publicly visible business listings from Google Maps is generally treated as fair use under hiQ Labs v. LinkedIn (US 9th Circuit) and similar EU case law — the data is public-by-design (Google publishes it for searchers to find). What's not legal is downloading copyrighted Maps tiles or reverse-engineering Google's auth flow. This actor only reads public place panels.

**What's the cost to scrape 10,000 Google Maps places?**
10,000 × $0.0025 = **$25**. For comparison: Google Places API (Advanced) costs $320 for the same 10,000 places, before you factor in quota approval and rate limits.

**Can I get business emails from Google Maps?**
No — Google Maps doesn't expose email addresses on place panels. Most lead-gen workflows use this actor to get the `website` URL, then run a website-scraper actor to crawl the contact page and parse `mailto:` links.

**Will Google rate-limit my scraping?**
At default settings (fresh session cookies, default IP) the actor sustains ~12-15 places/second without throttling. For sustained >50/sec throughput, enable `use_proxy=true` and supply a residential proxy URL via the `PROXY_URL` env var.

### Related Actors

- [Free Google Maps Reviews Scraper](https://apify.com/s-r/free-google-maps-reviews-scraper) — every review for any place URL (stars, text, author, owner reply, photos)
- [Free Google Maps Images Scraper](https://apify.com/s-r/free-google-maps-images-scraper) — bulk photo URLs for any place URL
- [Free Google Hotels Scraper](https://apify.com/s-r/free-google-hotels-scraper) — Google Hotels search with per-room pricing and 18-31 OTA price comparison

# Actor input Schema

## `queries` (type: `array`):

Google Maps search queries (e.g. 'restaurants Amsterdam', 'plumbers in NYC').

## `max_results_per_query` (type: `integer`):

Cap places per query (1-20). Each AJAX call returns up to 20.

## `hl` (type: `string`):

Language code (en, nl, de, es…).

## `gl` (type: `string`):

Two-letter country code (us, gb, nl, de…).

## `use_cookies` (type: `boolean`):

Recommended. Bypasses consent banner and reduces CAPTCHA at scale.

## `use_proxy` (type: `boolean`):

Optional. Adds extra IP rotation for very high volume.

## Actor input object example

```json
{
  "queries": [
    "restaurants Amsterdam",
    "coffee shops Berlin"
  ],
  "max_results_per_query": 20,
  "hl": "en",
  "gl": "us",
  "use_cookies": true,
  "use_proxy": 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 = {
    "queries": [
        "coffee shops amsterdam"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("s-r/free-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 = { "queries": ["coffee shops amsterdam"] }

# Run the Actor and wait for it to finish
run = client.actor("s-r/free-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 '{
  "queries": [
    "coffee shops amsterdam"
  ]
}' |
apify call s-r/free-google-maps-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Free Google Maps Scraper — Places + Contact Details + Photos",
        "version": "0.1",
        "x-build-id": "TakI6wQSe4HEvSGhp"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/s-r~free-google-maps-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-s-r-free-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/s-r~free-google-maps-scraper/runs": {
            "post": {
                "operationId": "runs-sync-s-r-free-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/s-r~free-google-maps-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-s-r-free-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": [
                    "queries"
                ],
                "properties": {
                    "queries": {
                        "title": "Search queries",
                        "type": "array",
                        "description": "Google Maps search queries (e.g. 'restaurants Amsterdam', 'plumbers in NYC').",
                        "items": {
                            "type": "string"
                        }
                    },
                    "max_results_per_query": {
                        "title": "Max results per query",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Cap places per query (1-20). Each AJAX call returns up to 20.",
                        "default": 20
                    },
                    "hl": {
                        "title": "Language",
                        "type": "string",
                        "description": "Language code (en, nl, de, es…).",
                        "default": "en"
                    },
                    "gl": {
                        "title": "Country (ISO)",
                        "type": "string",
                        "description": "Two-letter country code (us, gb, nl, de…).",
                        "default": "us"
                    },
                    "use_cookies": {
                        "title": "Use fresh Google cookies",
                        "type": "boolean",
                        "description": "Recommended. Bypasses consent banner and reduces CAPTCHA at scale.",
                        "default": true
                    },
                    "use_proxy": {
                        "title": "Route through PROXY_URL",
                        "type": "boolean",
                        "description": "Optional. Adds extra IP rotation for very high volume.",
                        "default": false
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
