# General Contractor S Email Scraper (`contacts-api/general-contractor-s-email-scraper`) Actor

General contractors email scraper to extract verified contractor emails from construction companies, building firms, and business directories 📧🏗️ Perfect for B2B outreach, supplier partnerships, project collaboration, and construction industry lead generation.

- **URL**: https://apify.com/contacts-api/general-contractor-s-email-scraper.md
- **Developed by:** [Lead Heaven](https://apify.com/contacts-api) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 1,000 results

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

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

### 🏗️ General Contractor S Email Scraper — Find Verified Contacts And Leads

> The fastest way to build a targeted general contractor s list. This actor searches Google Maps for general contractors in any city, crawls their websites, and extracts verified general contractor s email addresses, phone numbers, and social media profiles — delivering qualified general contractor s leads in a clean, export-ready dataset.

---

#### 🚀 Quick Start

1. Enter your search term — e.g., "General Contractor S"
2. Add one or more target locations — e.g., "New York", "Dallas, Texas"
3. Set your desired number of businesses with emails
4. Hit Run and get your results in minutes

No coding required. Export to CSV, JSON, or Excel instantly.

---

#### 💡 What Is The General Contractor S Email Scraper?

The General Contractor S Email Scraper is a purpose-built lead generation and contact discovery tool for:

- Construction marketing teams and agencies
- B2B sales reps targeting contractors and remodelers
- Vendor services (materials, equipment rental, software)
- Researchers and data analysts

It combines Google Maps discovery with deep website crawling to extract publicly available contact data for general contractors — producing a vetted, deduplicated general contractor s list ready for immediate outreach.

Whether you need it as a general contractor s lead finder, a general contractor s lead scraper, a general contractor s email finder, or a general contractor s email extractor — this actor covers all four in a single automated run. It doubles as a general contractor s contact scraper and general contractor s data scraper for end-to-end prospecting.

---

#### 📦 What Data Does It Extract?

| Field | Description |
|---|---|
| Business Name | Company name from Google Maps |
| Website | Official website URL discovered via listing or website field |
| Phone | Primary business phone |
| Full Address | Complete street address |
| City / State / ZIP | Parsed location components where available |
| Country Code | ISO country code when available |
| Emails | All public general contractor s email addresses extracted from the website |
| Additional Phones | Extra phone numbers discovered during the crawl |
| Social Media Links | Facebook, Instagram, LinkedIn, Twitter, and more |
| Email Count | Total unique emails found per business |
| Pages Scraped | Number of website pages crawled per domain |
| Rating | Average Google Maps star rating |
| Reviews | Total number of Google reviews |
| Latitude / Longitude | Geo-coordinates for mapping and filtering |
| Place ID | Google Maps place identifier |
| Scrape Status | Per-record status: success, partial, or error |

---

#### ⚙️ Input Configuration

##### Minimal Example

```json
{
  "googleMapsSearchTerm": "General Contractor S",
  "googleMapsLocation": ["New York"],
  "maxBusinesses": 50
}
````

##### Full Example With All Options

```json
{
  "googleMapsSearchTerm": "General Contractor S",
  "googleMapsLocation": [
    "New York",
    "Dallas, Texas",
    "San Diego, California"
  ],
  "maxBusinesses": 200,
  "scrapeMaxBusinessesPerLocation": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

##### Input Parameters

| Parameter | Type | Required | Description |
|---|---|---|---|
| googleMapsSearchTerm | String | ✅ Yes | Business type to search — e.g., "General Contractor S", "home remodelers", "kitchen renovation" |
| googleMapsLocation | Array | ✅ Yes | One or more locations — e.g., \["New York", "Dallas, Texas"] |
| maxBusinesses | Number | ❌ No | Target number of businesses with emails to return (1–1,000). The run stops once this target is reached |
| scrapeMaxBusinessesPerLocation | Boolean | ❌ No | If true, applies the cap per location. If false, it's a combined total across all locations |
| proxyConfiguration | Object | ❌ No | Proxy settings. Recommended for large runs and reliable scaling |

***

#### 📤 Sample Output

```json
[
  {
    "name": "SolidBuild General Contractors",
    "website": "https://www.solidbuildgc.com",
    "phone": "+1 212-555-0198",
    "full_address": "450 7th Ave, New York, NY 10123, United States",
    "city": "New York",
    "state": "NY",
    "zip": "10123",
    "country_code": "US",
    "scraped_emails": [
      "info@solidbuildgc.com",
      "bids@solidbuildgc.com"
    ],
    "scraped_phones": ["+1 212-555-0198", "+1 646-555-0142"],
    "scraped_social_media": [
      "linkedin:https://www.linkedin.com/company/solidbuildgc",
      "facebook:https://www.facebook.com/solidbuildgc"
    ],
    "emails_found": 2,
    "pages_scraped": 17,
    "avg_rating": 4.7,
    "total_reviews": 93,
    "lat": 40.7513,
    "long": -73.9902,
    "place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4",
    "scrape_status": "success"
  }
]
```

***

#### 🔧 How It Works — Under The Hood

```
Step 1 → Search Google Maps using your term + location
Step 2 → Collect contractor listings (name, address, phone, website)
Step 3 → Visit each contractor website and crawl key pages (Home, Contact, About, Services)
Step 4 → Extract public emails, phone numbers, and social media links
Step 5 → Deduplicate and normalize all contact data
Step 6 → Return structured results ready for export or API consumption
```

Use it as both a discovery tool and a contact extractor: the general contractor s email scraper functions as a general contractor s contact scraper, general contractor s lead scraper, and general contractor s email extractor in one streamlined workflow.

***

#### ✨ Key Features

##### 🎯 Precise Location Targeting

Enter any city, state, or region. The actor pinpoints contractors in your exact target areas — delivering hyper-local general contractor s leads.

##### 🔍 Deep Website Crawl

Goes beyond the listing. Crawls homepages, contact pages, about pages, and footers to surface every available public general contractor s email and phone number.

##### 🧲 Multi-Use Lead And Contact Modes

Use the tool as a general contractor s lead scraper for campaign building or as a general contractor s contact scraper for CRM enrichment — switch strategies without changing your setup.

##### 🧹 Smart De-Duplication

Automatically removes duplicate emails per domain and normalizes contact fields so your exported general contractor s list stays clean and accurate.

##### 📊 Structured, CRM-Ready Output

All results are normalized with consistent field names. Drop them straight into HubSpot, Salesforce, Apollo, Instantly, or any outreach tool without reformatting.

##### 🛡️ Proxy-Ready For Reliability

Built-in proxy support enables stable, large-scale runs without rate-limiting or IP blocks — ideal for agency-level campaigns targeting general contractor s leads.

##### ⏱️ Stop At Your Target

The actor halts as soon as your maxBusinesses limit is reached — no wasted compute, no overage.

##### 🔄 Schedulable & Repeatable

Set it to run daily, weekly, or monthly to continuously grow and refresh your general contractor s list.

***

#### 🎯 Use Cases

##### 💼 B2B Outreach & Sales

Build pitch lists for remodeling, commercial build-out, and residential contractors. Use this as your general contractor s lead finder to fuel cold email and calling. It also doubles as a general contractor s email finder for faster contact discovery.

##### 🧰 Vendor & Supplier Partnerships

Identify contractors who purchase materials, equipment rentals, or software tools. The actor serves as a practical general contractor s contact finder for partnership development.

##### 📣 Local & Regional Marketing

Create geo-targeted campaigns with verified emails and phones pulled directly from contractor websites — ideal for generating qualified general contractor s leads.

##### 🗃️ CRM Enrichment

Fill missing fields in your database (emails, phones, social links) by running the actor as a general contractor s contact scraper — reduce manual research and maintain data quality.

##### 🕵️ Competitive & Market Research

Track contractor presence, ratings, and online footprint across regions. Treat it as a general contractor s data scraper to map density, sentiment, and coverage.

##### 🏢 Agency Client Delivery

Run repeatable weekly scrapes and deliver fresh general contractor s leads to clients on a predictable schedule. Use the general contractor s email finder mode for campaign-ready exports.

***

#### 📈 How Many Results Can You Get?

Scale from a small prospect list to a regional database — results depend on:

- Number of locations added
- Search term breadth (niche vs. broad)
- Website density and email visibility in each market
- maxBusinesses setting and per-location vs. combined mode
- Proxy configuration and run timeout

##### Typical Output Ranges

| Campaign Size | Businesses With Emails |
|---|---|
| Small (1–3 cities) | 20 – 100 |
| Medium (5–15 cities) | 200 – 600 |
| Large (20+ cities / states) | 800 – 1,000+ per run |

Run multiple times across different regions to continuously grow your general contractor s list without hitting platform limits.

***

#### 🔌 Integrations & Export Options

Once your run completes, you can:

| Option | Details |
|---|---|
| JSON | Full structured data download |
| CSV / Excel | Import directly into spreadsheets |
| Apify API | Stream results into your own apps or workflows |
| Zapier / Make | Trigger automations when new leads are found |
| Webhooks | Push results to your CRM or pipeline on run completion |

Pair the output with Instantly, Smartlead, Apollo, HubSpot, Salesforce — or any pipeline that accepts CSV/JSON imports. Use exports for both prospecting and analytics when operating the actor as a general contractor s data scraper.

***

#### 🛠️ Step-By-Step Usage Guide

Step 1 — Log In To Apify\
Create a free account or sign in at apify.com.

Step 2 — Open The Actor\
Search for "General Contractor S Email Scraper" in the Apify Store and click Try for free.

Step 3 — Set Your Search Term\
Enter "General Contractor S" or a niche variant like "kitchen remodeler", "commercial contractor", or "roofing contractor".

Step 4 — Add Target Locations\
Enter one or more city/state combos — e.g., "New York", "Dallas, Texas".

Step 5 — Set Your Limit\
Choose how many businesses with emails you want — 20 for a quick test, up to 1,000 for a full campaign.

Step 6 — Choose Scaling Strategy

- Combined cap: The total across all locations combined
- Per-location cap: Applies your limit independently to each city

Step 7 — Enable Proxies\
Turn on Apify Proxy for stable, uninterrupted crawling at scale.

Step 8 — Run 🚀\
Click Start and let the General Contractor S Email Scraper do the work.

Step 9 — Export\
Download as JSON, CSV, or Excel — or pull via API straight into your stack.

***

#### ⚖️ Legal & Compliance

This actor collects only publicly available business contact information — emails and phone numbers published openly on contractor websites.

Best practices to stay compliant:

- Only use publicly visible contact data
- Do not bypass login walls or paywalls
- Respect each website's robots.txt and Terms of Service
- Include an unsubscribe option in all outreach
- Follow applicable laws in your jurisdiction

Relevant regulations to be aware of:

| Regulation | Region |
|---|---|
| GDPR | European Union |
| CAN-SPAM Act | United States |
| CASL | Canada |
| PECR | United Kingdom |

This tool is intended for ethical business prospecting only. You are responsible for how you use the data collected using the general contractor s email scraper.

***

#### ❓ Frequently Asked Questions

Q: Does this scrape private or personal emails?\
A: No. The actor only extracts general contractor s email addresses that are publicly visible on business websites — company inboxes, admin contacts, and bid/project addresses.

Q: Can I search multiple cities in one run?\
A: Yes. Add as many locations as needed. Use per-location capping for even geographic distribution of general contractor s leads.

Q: Does it deduplicate results?\
A: Yes. Emails are deduplicated per domain to keep your general contractor s list accurate.

Q: Can I schedule recurring runs?\
A: Absolutely. Use Apify's built-in scheduler to run weekly or monthly and keep your pipeline fresh.

Q: Is this a general contractor s contact finder or an email extractor?\
A: It’s both. You can operate it as a general contractor s contact finder for phone/social discovery and as a general contractor s email extractor for verified emails — all in one run.

Q: Is proxy usage required?\
A: Not for small runs, but strongly recommended for 200+ business runs to avoid rate limits.

Q: What export formats are available?\
A: JSON, CSV, and Excel. You can also consume results via the Apify API or webhook.

Q: How is this different from manual Google searching?\
A: Manual search is slow and inconsistent. This automates discovery, crawling, extraction, and normalization — a complete general contractor s lead finder and lead scraper in minutes.

Q: Can agencies white-label or resell this?\
A: Yes. Run it on behalf of clients and deliver fresh general contractor s leads on a recurring basis.

***

#### 🧑‍💻 Support & Custom Solutions

Have a question, feature request, or need a custom build?

Email: scrapermindapi@gmail.com

We’re happy to help with:

- Custom input/output configurations
- Niche-specific adaptations
- Bulk or enterprise run support
- Integration assistance

For any help or custom solution, contact via this mail: scrapermindapi@gmail.com

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

// Run the Actor and wait for it to finish
const run = await client.actor("contacts-api/general-contractor-s-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": "General Contractor S",
    "googleMapsLocation": ["New York"],
    "maxBusinesses": 5,
    "proxyConfiguration": { "useApifyProxy": True },
}

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

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "General Contractor S Email Scraper",
        "description": "General contractors email scraper to extract verified contractor emails from construction companies, building firms, and business directories 📧🏗️ Perfect for B2B outreach, supplier partnerships, project collaboration, and construction industry lead generation.",
        "version": "1.0",
        "x-build-id": "l3PiwTBS2xBkfRSAa"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/contacts-api~general-contractor-s-email-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-contacts-api-general-contractor-s-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/contacts-api~general-contractor-s-email-scraper/runs": {
            "post": {
                "operationId": "runs-sync-contacts-api-general-contractor-s-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/contacts-api~general-contractor-s-email-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-contacts-api-general-contractor-s-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": "General Contractor S"
                    },
                    "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
