# Restaurant Email Scraper (`scraperoka/restaurant-email-scraper`) Actor

🍽️ Restaurant Email Scraper extracts verified restaurant email contacts from web pages and directories. ✅ Speedy, accurate, GDPR-friendly workflow for outreach. 🚀 Perfect for lead gen, sales, partnerships & marketing campaigns.

- **URL**: https://apify.com/scraperoka/restaurant-email-scraper.md
- **Developed by:** [Scraperoka](https://apify.com/scraperoka) (community)
- **Categories:** Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 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.

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/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

### Restaurant Email Scraper 🎯
Manually visiting hundreds of restaurant websites to collect emails wastes hours you don’t have. **Restaurant Email Scraper** extracts restaurant contact information—emails, phone numbers, and social links—from publicly available sources at scale. This **restaurant email scraper** helps marketers, recruiters, and growth teams build a **restaurant marketing email list** in minutes by finding targeted contacts for each location. You can collect up to thousands of restaurant prospects in a single run, then export instantly for outreach.

---

### What You Get: Sample Output
Here’s a sample record from a single run:

```json
{
  "name": "Saffron Street Kitchen",
  "website": "https://www.saffronstreetkitchen.com",
  "phone": "+1 (305) 555-0142",
  "full_address": "221B Ocean Ave Miami FL 33101 US",
  "city": "Miami",
  "state": "FL",
  "zip": "33101",
  "country_code": "US",
  "scraped_emails": ["info@saffronstreetkitchen.com", "sales@saffronstreetkitchen.com"],
  "scraped_phones": ["+1 (305) 555-0142"],
  "scraped_social_media": ["https://www.instagram.com/saffronstreetkitchen/"],
  "emails_found": 2,
  "pages_scraped": 6,
  "avg_rating": 4.5,
  "total_reviews": 318,
  "lat": 25.7617,
  "long": -80.1918,
  "place_id": "ChIJd8BlQ2BZwokRAFUEcm_qrcA",
  "scrape_status": "success",
  "email_found": "info@saffronstreetkitchen.com"
}
````

#### Output Fields

| Field | Type | What It Tells You |
|---|---|---|
| `name` | string | The restaurant’s business name you can use for personalization |
| `website` | string | The website the actor used as the primary source for contact scraping |
| `phone` | string | A phone value captured at the business level |
| `full_address` | string | A formatted address string useful for CRM fields and verification |
| `city` | string | City for segmentation (local restaurant email database building) |
| `state` | string | State/region for filtering and routing outreach |
| `zip` | string | ZIP/postal code for geography-based campaigns |
| `country_code` | string | Country code to standardize your dataset |
| `scraped_emails` | array | All emails found on the restaurant’s website |
| `scraped_phones` | array | Phone numbers found while scraping website pages |
| `scraped_social_media` | array | Social profile links found during website scraping |
| `emails_found` | number | Quick count of how many emails were detected for that business |
| `pages_scraped` | number | How many pages were processed while searching for contact info |
| `avg_rating` | number | Helps prioritize leads based on reputation signals |
| `total_reviews` | number | Review volume you can use as a confidence heuristic |
| `place_id` | string | A unique place identifier to support deduplication |
| `scrape_status` | string | Indicates the result state (e.g., success, failed, no\_website) |
| `email_found` | string | When an email exists, this row is emitted for a specific extracted email |

Export your dataset as JSON, CSV, or Excel — straight from the Apify dashboard.

***

### Why Restaurant Email Scraper?

There are a lot of ways to pull data from public web listings—here’s what sets Restaurant Email Scraper apart.

#### Focused restaurant contact extraction

Restaurant Email Scraper searches for restaurants using your `googleMapsSearchTerm` and `googleMapsLocation`, then enriches each business by scraping their website for contact details. It’s designed as a practical **email scraper for restaurants** when you want outreach-ready leads, not just raw listings.

#### Email-forward output that’s easy to use

The actor pushes results to the Apify dataset in a flattened way: when emails are found, it emits one dataset row per extracted email via `email_found`. This makes it straightforward to build a **restaurant prospecting email scraper** workflow and import directly into outreach tools.

#### Enrichment includes phones and social links too

For each business, the output includes `scraped_phones` and `scraped_social_media` alongside `scraped_emails`. That means your **restaurant contact email extractor** doesn’t stop at email collection—it helps you capture extra ways to engage.

#### Resilient scraping for real-world websites

The actor includes resilience controls for scraping websites (including configuration for retries, timeouts, and concurrency at a high level). That helps reduce failures when sites behave differently in the wild—especially for building large **restaurant marketing email lists**.

***

### Configuring Your Run

Drop this into your `input.json` to get started:

```json
{
  "googleMapsSearchTerm": "Restaurant",
  "googleMapsLocation": ["New York"],
  "maxBusinesses": 5,
  "scrapeMaxBusinessesPerLocation": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

| Parameter | Required | What It Does |
|---|---|---|
| `googleMapsSearchTerm` | ✅ | The business type or niche for the restaurant email scraper (for example, “coffee shops”). |
| `googleMapsLocation` | ✅ | One or more target locations (for example, `["Miami, Florida"]` style inputs). |
| `maxBusinesses` | ⬜ | The target number of businesses to find (1–1000). The scraper stops once the target is reached. |
| `scrapeMaxBusinessesPerLocation` | ⬜ | If enabled, it collects up to `maxBusinesses` results per location. If disabled, it combines all locations up to a single total limit. |
| `proxyConfiguration` | ⬜ | Proxy settings for scraping. Recommended for large-scale scraping. |
| ↳ `proxy support` | ⬜ | Use Apify Proxy for better reliability. |

***

### Core Capabilities

#### Restaurant discovery by search term + location

Restaurant Email Scraper starts from your `googleMapsSearchTerm` and `googleMapsLocation` inputs, collecting candidate businesses that match your restaurant niche and target geography. This is the backbone of a **restaurant email mining tool** workflow.

#### Website enrichment for emails, phones, and social links

After discovery, it scrapes the business `website` and extracts `scraped_emails`, `scraped_phones`, and `scraped_social_media`. This gives you a richer dataset than a basic **find restaurant emails** approach.

#### Deduplication and status tracking

Results are deduplicated using `place_id`, and each record includes `scrape_status` so you can filter successes vs failures. When a business has no website, the actor marks `scrape_status` as `no_website`.

#### Tunable scale controls for batch lead building

You can cap the number of businesses with `maxBusinesses` and choose whether limits apply per location using `scrapeMaxBusinessesPerLocation`. This makes it suitable for everything from small **local restaurant email database** builds to larger outreach lists.

#### Proxy support for more reliable runs

Proxy settings are available via `proxyConfiguration`, with `proxy support` enabled by default in the provided UI configuration. This helps keep scraping stable when scaling your **restaurant industry email scraping** efforts.

***

### Who Gets the Most Out of This

Here's how different teams put Restaurant Email Scraper to work:

**Sales Development Representatives** — Use it to turn a restaurant niche and city list into an outreach-ready dataset. You get `emails_found` and a row per `email_found`, so your follow-up and sequencing is simpler.

**Restaurant Marketing Teams** — Build a **restaurant marketing email list** without manual lead hunting. Pair `full_address`, `city`, and `state` with the extracted emails to segment campaigns by market.

**Lead Generation Agencies** — Deliver **restaurant leads email scraper** results per client request by controlling `maxBusinesses` and location inputs. Exports from the Apify dataset tab make it easy to hand off to CRMs.

**Freelance Researchers & Data Analysts** — Analyze scraped contact coverage using `pages_scraped`, `avg_rating`, and `total_reviews`. The `scrape_status` field supports quality filtering for your final dataset.

**Automation & Integration Specialists (technical users)** — Integrate the actor output into pipelines that enrich, validate, and distribute leads. The consistent dataset fields like `website`, `place_id`, and `email_found` make downstream processing predictable.

***

### Step-by-Step: How to Use It

No coding needed. Here's how to run Restaurant Email Scraper from start to finish:

1. **Open the actor on Apify** — go to [console.apify.com](https://console.apify.com) and open the actor page for Restaurant Email Scraper.
2. **Enter your inputs** — set `googleMapsSearchTerm` and `googleMapsLocation` first, then adjust `maxBusinesses` and `scrapeMaxBusinessesPerLocation` if you need tighter control.
3. **Configure proxy settings** — enable or adjust `proxyConfiguration` if you’re planning larger runs and want improved scraping reliability.
4. **Hit Run and watch the live log** — review progress as the actor discovers businesses and scrapes their websites for contact info.
5. **View results in the dataset tab** — each row includes restaurant details plus extracted fields like `scraped_emails`, `scraped_phones`, `scraped_social_media`, and `scrape_status`.
6. **Export as JSON, CSV, or Excel** — download in your preferred format directly from Apify.

The whole process takes under 5 minutes to set up.

***

### Integrations & Export Options

Once your data is collected, Restaurant Email Scraper plugs directly into your existing workflow.

Export formats include JSON, CSV, and Excel directly from the Apify dataset tab. This supports **restaurant marketing email list** creation and quick imports into your tools.

You can also connect Restaurant Email Scraper via Apify’s API and automate deliveries using webhooks. For no-code workflows, you can use Zapier or Make to push leads to Slack, a CRM, or an email platform, and you can schedule runs to refresh your **local restaurant email database** over time.

For deeper setup details, refer to the official Apify documentation at https://apify.com/docs/api.

***

### Pricing & Free Trial

Restaurant Email Scraper runs on the Apify platform, which offers a **free tier** — no credit card required to get started.

Typically, the free tier provides enough credits for several test runs, so you can validate output quality before scaling. For larger jobs, you’ll pay based on Apify platform usage (compute units) rather than per-row pricing, and you can scale using Apify’s plan options depending on your volume.

Start for free at [apify.com](https://apify.com) and scale when you’re ready.

***

### Reliability & Performance

| What We Handle | How |
|---|---|
| Scraping stability at scale | Built-in proxy support via `proxyConfiguration` for more reliable scraping |
| Variable website behavior | Resilience is built into the scraping workflow so failures are captured as `scrape_status` instead of silently dropping data |
| Clean lead quality signals | Output includes `emails_found`, `pages_scraped`, and `scrape_status` to help you filter results |
| Deduplication | Uses `place_id` to reduce duplicates in the discovered business set |
| Dataset usability | One row per extracted email when emails are found, using `email_found` |

**Limitations:** The actor collects contact details from publicly available sources, so it can’t access login-gated or private content. If a business has no accessible `website`, it will be marked with `scrape_status: no_website`, and no website enrichment can happen. For enterprise-scale runs, contact us to discuss custom configurations.

***

### Frequently Asked Questions

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

Yes—Apify provides a free tier so you can run a few tests before scaling. This helps you confirm the quality of a restaurant email scraper output for your specific restaurant niche and location.

#### Do I need to log in to use this?

No. The actor works with publicly available web data and uses your inputs (like `googleMapsSearchTerm` and `googleMapsLocation`) to build the lead list and extract contact details.

#### How accurate is the data?

Accuracy depends on what the restaurant publishes on its website and publicly available sources. The output includes `scraped_emails`, `scraped_phones`, `scraped_social_media`, and counters like `emails_found` so you can quickly assess completeness.

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

You control this with `maxBusinesses` (range 1–1000). The actor stops when it reaches the target, and you can set whether the limit is applied per location using `scrapeMaxBusinessesPerLocation`.

#### How often is the data updated / how fresh is it?

The dataset reflects what the actor finds at run time. If you need fresher contact emails for a restaurant marketing email list, schedule repeated runs so your **restaurant industry email scraping** stays current.

#### Is this legal? Does it comply with GDPR / CCPA?

The actor collects **publicly available data** and does not access login-gated or private content. You are responsible for complying with GDPR, CCPA, and applicable laws and platform terms in how you store and use the extracted contacts.

#### Can I export results to Google Sheets or Excel?

Yes. You can export results from the Apify dataset tab in JSON, CSV, or Excel format, then import into Google Sheets or your other tools. This makes it easy to build and maintain a **restaurant email collection software** dataset.

#### Can I run this on a schedule automatically?

Yes. You can schedule actor runs so your restaurant leads email scraper output refreshes automatically over time, which is useful for ongoing outreach and list growth.

#### Can I access this via API?

Yes. You can retrieve results programmatically via the Apify API. This is useful for automations that enrich and distribute leads across systems.

#### What happens if the actor hits an error?

Errors are reflected in `scrape_status` (for example, `success`, `failed`, or `no_website`). You can also use fields like `pages_scraped` and `emails_found` to identify partial results and re-run with adjusted inputs.

***

### Need Help or Have a Request?

Got a question about Restaurant Email Scraper or want a new feature added? Reach out at <dataforleads@gmail.com>. We respond to user feedback and actively maintain this actor based on real-world outreach workflows. If you want upgrades like additional filtering options, we’d love to hear your use case.

***

### Disclaimer & Responsible Use

*Restaurant Email Scraper is the fastest, most reliable way to build a restaurant email outreach list — start your free run today.*

This actor collects **publicly available data**. It does not access private accounts, login-gated content, or password-protected pages. You are responsible for ensuring your use complies with GDPR, CCPA, platform Terms of Service, and any applicable laws. For data removal requests, contact <dataforleads@gmail.com>. Use responsibly, ethically, and only for lawful purposes.

# Actor input Schema

## `googleMapsSearchTerm` (type: `string`):

Enter the business type or niche for email scraper (e.g., 'coffee shops', 'dentists').

## `googleMapsLocation` (type: `array`):

Target geographic location for the email scraper (e.g., 'Miami, Florida').

## `maxBusinesses` (type: `integer`):

Target number of businesses to find (1-1000). The scraper will stop when this target is reached.

## `scrapeMaxBusinessesPerLocation` (type: `boolean`):

If enabled, the scraper will collect up to `maxBusinesses` results per location. If disabled, it combines all locations up to a single total limit.

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

Proxy settings for scraping. Recommended for large-scale scraping.

## Actor input object example

```json
{
  "googleMapsSearchTerm": "Restaurant",
  "googleMapsLocation": [
    "New York"
  ],
  "maxBusinesses": 5,
  "scrapeMaxBusinessesPerLocation": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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 = {
    "googleMapsSearchTerm": "Restaurant",
    "googleMapsLocation": [
        "New York"
    ],
    "maxBusinesses": 5,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraperoka/restaurant-email-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 = {
    "googleMapsSearchTerm": "Restaurant",
    "googleMapsLocation": ["New York"],
    "maxBusinesses": 5,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("scraperoka/restaurant-email-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 '{
  "googleMapsSearchTerm": "Restaurant",
  "googleMapsLocation": [
    "New York"
  ],
  "maxBusinesses": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call scraperoka/restaurant-email-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Restaurant Email Scraper",
        "description": "🍽️ Restaurant Email Scraper extracts verified restaurant email contacts from web pages and directories. ✅ Speedy, accurate, GDPR-friendly workflow for outreach. 🚀 Perfect for lead gen, sales, partnerships & marketing campaigns.",
        "version": "1.0",
        "x-build-id": "5pXu9Wu3CtaaZT6u8"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scraperoka~restaurant-email-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scraperoka-restaurant-email-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/scraperoka~restaurant-email-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scraperoka-restaurant-email-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/scraperoka~restaurant-email-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scraperoka-restaurant-email-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": [
                    "googleMapsLocation",
                    "googleMapsSearchTerm"
                ],
                "properties": {
                    "googleMapsSearchTerm": {
                        "title": "Search Term",
                        "type": "string",
                        "description": "Enter the business type or niche for email scraper (e.g., 'coffee shops', 'dentists').",
                        "default": "Restaurant"
                    },
                    "googleMapsLocation": {
                        "title": "Location",
                        "type": "array",
                        "description": "Target geographic location for the email scraper (e.g., 'Miami, Florida').",
                        "default": [
                            "New York"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxBusinesses": {
                        "title": "Maximum Businesses With Emails",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Target number of businesses to find (1-1000). The scraper will stop when this target is reached.",
                        "default": 5
                    },
                    "scrapeMaxBusinessesPerLocation": {
                        "title": "Scrape Max Businesses Per Location",
                        "type": "boolean",
                        "description": "If enabled, the scraper will collect up to `maxBusinesses` results per location. If disabled, it combines all locations up to a single total limit.",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings for scraping. Recommended for large-scale scraping."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
