# Yelp Scraper Pro (`crawlerbros/yelp-scraper-pro`) Actor

Fast Yelp business scraper with hours, menu, services, photo categories, owner replies, and coordinates.

- **URL**: https://apify.com/crawlerbros/yelp-scraper-pro.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Lead generation, SEO tools, Other
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 9 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## Yelp Scraper Pro

Fast, HTTP-based Yelp business scraper with richer data than browser-based tools. Extract business details, customer reviews, hours of operation, services & amenities, photo galleries by category, menu items, claim status, owner replies, and geographic coordinates from any Yelp business page or search result.

Built for speed: no browser, no JavaScript rendering, no wasted compute. Ideal for lead generation, competitive analysis, market research, and review monitoring at scale.

### Why Yelp Scraper Pro?

- Significantly faster than browser-based Yelp scrapers — pure HTTP extraction
- Richer output: hours, services, photos by category, owner replies, coordinates, claim status, menu (restaurants)
- Clean output — fields are omitted when data is unavailable, no null placeholders
- Robust session and proxy rotation for Cloudflare-protected pages
- No login, no cookies required — only public data is collected

### Features

- Search Yelp by keyword and location across the US and international markets
- Scrape specific businesses via direct URL input
- Business profile data — name, phone, address, categories, price range, cuisine, website, description
- Customer reviews — text, star rating, per-review date, attached photos, Useful/Funny/Cool reactions
- Hours of operation — one entry per weekday, normalized to 12-hour format
- Services & amenities — takeout, delivery, accepts credit cards, and more
- Geographic coordinates — latitude and longitude for mapping
- Photo galleries grouped by category (food, inside, outside, menu)
- Owner replies — when the business has publicly responded to reviews
- Menu items — name, price, description (restaurants only, when available)
- Claim status — whether a business has been claimed by its owner on Yelp

### Input Parameters

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `searchTerms` | Array of strings | `[]` | Search queries (e.g., "pizza", "plumber", "hair salon") |
| `locations` | Array of strings | `[]` | Locations to search (e.g., "New York, NY", "Los Angeles, CA") |
| `directUrls` | Array of URLs | `[]` | Direct Yelp business page URLs to scrape |
| `searchLimit` | Integer | `10` | Maximum results per search query (1-100) |
| `reviewLimit` | Integer | `5` | Maximum reviews per business (0-50) |
| `fetchPhotos` | Boolean | `true` | Extract gallery photos grouped by category |
| `fetchHours` | Boolean | `true` | Extract hours of operation |
| `fetchMenu` | Boolean | `false` | Attempt to extract menu items (restaurants only) |
| `proxy` | Object | Apify residential | **REQUIRED.** Residential proxy configuration |

You must provide at least one of `searchTerms` or `directUrls`.

### Output Fields

Each business record includes the fields that are available on Yelp. Fields with no data are omitted from the record — there are no empty strings, empty arrays, or null values in the output.

| Field | Type | Description |
|-------|------|-------------|
| `directUrl` | String | Full Yelp URL of the business page |
| `bizId` | String | Yelp business slug identifier |
| `name` | String | Business name |
| `description` | String | Business description from structured data |
| `categories` | Array | Business categories (e.g., "Pizza", "Italian") |
| `type` | String | Business type (e.g., "Restaurant", "LocalBusiness") |
| `phone` | String | Business phone number |
| `reviewCount` | String | Total number of reviews |
| `aggregatedRating` | String | Average star rating (e.g., "4.5") |
| `priceRange` | String | Price level ("$", "$$", "$$$") |
| `cuisine` | String | Cuisine type (restaurants) |
| `website` | String | Business website URL |
| `images` | Array | Business hero image URLs |
| `address` | Object | streetAddress, addressLocality, addressRegion, postalCode, addressCountry |
| `coordinates` | Object | latitude, longitude |
| `hours` | Object | Mon-Sun → opening range (e.g., `"Mon": "11:00 AM - 10:00 PM"`) |
| `services` | Array | Amenities and services (Takeout, Delivery, Parking, etc.) |
| `photoCategories` | Object | Photo URLs grouped by category (food, inside, outside, menu) |
| `menu` | Array | Menu items `{name, price, description}` (restaurants) |
| `claimStatus` | String | `"claimed"` or `"unclaimed"` |
| `ownerReplies` | Array | Business responses to reviews `{reviewDate, reply, replyDate}` |
| `reviews` | Array | Customer reviews — see below |
| `scrapedAt` | String | ISO 8601 UTC timestamp |

#### Review Object

| Field | Type | Description |
|-------|------|-------------|
| `date` | String | Review date (per-review, correctly anchored) |
| `rating` | String | Star rating ("1"-"5") |
| `text` | String | Review text content |
| `photos` | Array | URLs of photos attached to the review |
| `isUsefulCount` | Integer | Number of "Useful" reactions |
| `isFunnyCount` | Integer | Number of "Funny" reactions |
| `isCoolCount` | Integer | Number of "Cool" reactions |

### Supported URL Formats

- Business pages: `https://www.yelp.com/biz/business-name-city`
- Business pages with disambiguation suffix: `https://www.yelp.com/biz/business-name-city-2`

### Example Input

#### Search for businesses

```json
{
    "searchTerms": ["pizza", "sushi"],
    "locations": ["New York, NY", "San Francisco, CA"],
    "searchLimit": 5,
    "reviewLimit": 3,
    "fetchPhotos": true,
    "fetchHours": true,
    "fetchMenu": false,
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": ["RESIDENTIAL"]
    }
}
````

#### Scrape specific businesses with menus

```json
{
    "directUrls": [
        { "url": "https://www.yelp.com/biz/prince-street-pizza-new-york-2" },
        { "url": "https://www.yelp.com/biz/joes-pizza-new-york" }
    ],
    "reviewLimit": 10,
    "fetchMenu": true,
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": ["RESIDENTIAL"]
    }
}
```

### Use Cases

- **Lead generation** — collect business contact information with phone, website, and address
- **Competitive analysis** — compare ratings, price points, and services across similar businesses
- **Market research** — evaluate business density, pricing, and customer sentiment by neighborhood
- **Restaurant intelligence** — track menus, cuisine types, and hours across competitors
- **Review monitoring** — track customer sentiment and owner responses over time
- **Local SEO** — audit how businesses appear in Yelp search results for target keywords

### Tips for Best Results

- **Start small** — run with `searchLimit: 3` and `reviewLimit: 3` for initial testing
- **Use direct URLs when possible** — faster than search and more reliable for known businesses
- **Residential proxies are mandatory** — Yelp blocks datacenter IPs via Cloudflare
- **Daily recurring runs** — schedule on Apify to keep your dataset current
- **Menu extraction** — only works for US restaurants that have enabled Yelp Menu

### Limitations

- Only publicly visible data is collected
- Yelp caps public review visibility at approximately 30 reviews per business; `reviewLimit` is capped at 50
- Cloudflare protection may occasionally throttle requests despite proxy rotation
- Menu extraction is best-effort and only succeeds for restaurants that have configured a Yelp Menu
- Question & Answer content is not included in this version

### FAQ

**Do I need a proxy?**
Yes. Yelp uses Cloudflare and blocks datacenter IPs. The default input uses Apify's residential proxy group and this is strongly recommended.

**How many reviews can I get per business?**
Up to 50, subject to Yelp's public review page limit (usually around 30).

**Why are some businesses missing a menu?**
Yelp's menu feature is opt-in, US-only, and not available for every restaurant. When no menu is published on Yelp, the `menu` field is omitted from the output.

**Why are some fields missing from my output?**
Yelp Scraper Pro omits fields when data is not available, so every field you see contains real data. This makes downstream processing easier and avoids null checks.

**Can I scrape businesses outside the US?**
Yes. Yelp operates in many countries; international business pages work the same way. Some fields (menu, certain services) are US-centric.

**How is this different from the basic Yelp Scraper?**
Yelp Scraper Pro is faster (no browser), extracts more fields (hours, services, photo categories, owner replies, coordinates, claim status, menu), and correctly anchors review dates per review (avoiding cross-review date bleed in simpler extractors).

**Is my data fresh?**
Every run fetches live data directly from Yelp. Schedule recurring runs on Apify to keep datasets updated.

**Does this require login or cookies?**
No. Yelp Scraper Pro extracts only publicly available data. No authentication is needed.

# Actor input Schema

## `searchTerms` (type: `array`):

List of search queries (e.g., 'pizza', 'plumber', 'hair salon'). Used together with Locations to find businesses on Yelp.

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

List of locations to search in (e.g., 'New York, NY', 'Los Angeles, CA'). Each search term is combined with each location.

## `directUrls` (type: `array`):

List of direct Yelp business page URLs to scrape. Use this to scrape specific businesses without searching.

## `searchLimit` (type: `integer`):

Maximum number of business results to collect per search query. Lower values mean faster runs.

## `reviewLimit` (type: `integer`):

Maximum number of reviews to collect per business. Set to 0 to skip review extraction. Yelp publicly exposes approximately 30 reviews per business.

## `fetchPhotos` (type: `boolean`):

Extract all gallery photos grouped by category (food, inside, outside, menu) when available.

## `fetchHours` (type: `boolean`):

Extract hours of operation for each day of the week.

## `fetchMenu` (type: `boolean`):

Attempt to extract menu items for restaurants. Adds one extra request per business. Yelp's menu feature is US-only and not available for every restaurant.

## `proxy` (type: `object`):

REQUIRED. Yelp uses Cloudflare protection. Residential proxy is mandatory; datacenter IPs are reliably blocked.

## Actor input object example

```json
{
  "searchTerms": [
    "pizza",
    "sushi",
    "coffee"
  ],
  "locations": [
    "New York, NY",
    "San Francisco, CA"
  ],
  "directUrls": [
    {
      "url": "https://www.yelp.com/biz/prince-street-pizza-new-york-2"
    }
  ],
  "searchLimit": 3,
  "reviewLimit": 3,
  "fetchPhotos": true,
  "fetchHours": true,
  "fetchMenu": false,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `businesses` (type: `string`):

Dataset containing scraped Yelp business data with reviews, ratings, hours, services, menu, photo categories, coordinates, claim status, owner replies, and contact information.

# 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 = {
    "searchTerms": [
        "pizza"
    ],
    "locations": [
        "New York, NY"
    ],
    "searchLimit": 3,
    "reviewLimit": 3,
    "fetchPhotos": true,
    "fetchHours": true,
    "fetchMenu": false,
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/yelp-scraper-pro").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 = {
    "searchTerms": ["pizza"],
    "locations": ["New York, NY"],
    "searchLimit": 3,
    "reviewLimit": 3,
    "fetchPhotos": True,
    "fetchHours": True,
    "fetchMenu": False,
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/yelp-scraper-pro").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 '{
  "searchTerms": [
    "pizza"
  ],
  "locations": [
    "New York, NY"
  ],
  "searchLimit": 3,
  "reviewLimit": 3,
  "fetchPhotos": true,
  "fetchHours": true,
  "fetchMenu": false,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call crawlerbros/yelp-scraper-pro --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Yelp Scraper Pro",
        "description": "Fast Yelp business scraper with hours, menu, services, photo categories, owner replies, and coordinates.",
        "version": "1.0",
        "x-build-id": "DTwNjbaxwW3wrdGOO"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~yelp-scraper-pro/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-yelp-scraper-pro",
                "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/crawlerbros~yelp-scraper-pro/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-yelp-scraper-pro",
                "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/crawlerbros~yelp-scraper-pro/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-yelp-scraper-pro",
                "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": [
                    "proxy"
                ],
                "properties": {
                    "searchTerms": {
                        "title": "Search Terms",
                        "type": "array",
                        "description": "List of search queries (e.g., 'pizza', 'plumber', 'hair salon'). Used together with Locations to find businesses on Yelp.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "locations": {
                        "title": "Locations",
                        "type": "array",
                        "description": "List of locations to search in (e.g., 'New York, NY', 'Los Angeles, CA'). Each search term is combined with each location.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "directUrls": {
                        "title": "Direct URLs",
                        "type": "array",
                        "description": "List of direct Yelp business page URLs to scrape. Use this to scrape specific businesses without searching.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "searchLimit": {
                        "title": "Search Results Limit",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Maximum number of business results to collect per search query. Lower values mean faster runs.",
                        "default": 10
                    },
                    "reviewLimit": {
                        "title": "Reviews per Business",
                        "minimum": 0,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Maximum number of reviews to collect per business. Set to 0 to skip review extraction. Yelp publicly exposes approximately 30 reviews per business.",
                        "default": 5
                    },
                    "fetchPhotos": {
                        "title": "Extract Photo Galleries",
                        "type": "boolean",
                        "description": "Extract all gallery photos grouped by category (food, inside, outside, menu) when available.",
                        "default": true
                    },
                    "fetchHours": {
                        "title": "Extract Hours of Operation",
                        "type": "boolean",
                        "description": "Extract hours of operation for each day of the week.",
                        "default": true
                    },
                    "fetchMenu": {
                        "title": "Extract Menu (Restaurants)",
                        "type": "boolean",
                        "description": "Attempt to extract menu items for restaurants. Adds one extra request per business. Yelp's menu feature is US-only and not available for every restaurant.",
                        "default": false
                    },
                    "proxy": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "REQUIRED. Yelp uses Cloudflare protection. Residential proxy is mandatory; datacenter IPs are reliably blocked.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
