# The Blue Book Construction Directory Scraper (`solidcode/thebluebook-scraper`) Actor

\[💰 $30 / 1K] Scrape construction company, contractor & subcontractor profiles from The Blue Book Network. Search by trade and location; get contacts, trades, service areas, certifications, firmographics & project history.

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

## Pricing

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

## The Blue Book Construction Directory Scraper

Pull verified company profiles from The Blue Book Network — the largest US construction-industry directory — at scale, with phone, website, social profiles, trades, county-level service areas, diversity certifications, firmographics, and recent project history for every contractor and subcontractor. Built for construction sales teams, general contractors sourcing subs, and market researchers who need clean, structured contractor data without digging through the directory one profile at a time.

### Why This Scraper?

- **All 50 US states plus Washington, D.C.** — pick one state from a dropdown to pull its entire contractor directory, or leave it on "All states" to sweep the country.
- **Construction trades with Blue Book trade codes** — every company carries its full trade list (General Contractors, Electrical, Plumbing, Excavating, and more) alongside the numeric Blue Book class codes for exact downstream matching.
- **County-level service areas** — the precise regions and counties each firm covers, not just a headquarters city. One profile in testing listed 53 counties served.
- **Recent project experience per company** — featured projects with name, type, location, and a direct project link, so you can see what a contractor has actually built.
- **Eleven trade-category filters** — narrow a state to General Contractors, Electrical Contractors, Plumbing, Excavating, Curtain Walls, Storefronts, Architectural Metal, and more in a single dropdown.
- **Diversity & business certifications** — MBE, WBE, DBE, SBE, VOSB, SDVOSB, HUB, 8(a), WOSB, and DVBE flags surfaced per company for supplier-diversity sourcing.
- **Firmographics on every profile** — year established, company size, reported annual volume, and how long the firm has been listed on Blue Book.
- **Verified contact channels** — main office phone, company website, and social profiles (LinkedIn, Facebook, X, Instagram, YouTube) captured straight from the profile.
- **Paste-a-list mode** — drop up to 200 company profile URLs to refresh a known target list directly, bypassing the directory crawl.

### Use Cases

**Sales & Lead Generation**
- Build targeted contractor call lists by state and trade with verified phone and website
- Source subcontractors for a bid package filtered to the exact trade you need
- Refresh an existing CRM with current firmographics and contact details
- Identify newly listed firms in a growth market

**Market Research**
- Map the contractor landscape of a state by trade category
- Size a regional market by counting active firms per trade
- Track company size and reported annual volume across regions
- Benchmark a market's mix of general contractors versus specialty trades

**Competitive Intelligence**
- Monitor competitors' service areas down to the county level
- Track which projects rival contractors are featuring
- Compare firmographics (established year, size, volume) across competitors
- Watch certification coverage across a trade segment

**Supplier Diversity & Procurement**
- Find MBE, WBE, DBE, VOSB, and 8(a) certified firms for diversity spend goals
- Vet subcontractors by trade, location, and project history before inviting bids
- Build a pre-qualified vendor list scoped to a single state and trade

### Getting Started

#### Refresh a known list of companies

```json
{
  "startUrls": [
    "https://www.thebluebook.com/iProView/800124/"
  ],
  "includeDetails": true
}
````

#### Electrical contractors in New York

```json
{
  "state": "NY",
  "category": "1680",
  "includeDetails": true,
  "maxResults": 500
}
```

#### Full statewide sweep, core fields only

```json
{
  "state": "TX",
  "category": "",
  "includeDetails": false,
  "maxResults": 5000
}
```

### Input Reference

#### What to Collect

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `state` | string | `"All states"` | Which US state to collect companies from. Leave on "All states" to crawl the whole country. Ignored when you paste profile URLs. |
| `category` | string | `"Any trade"` | Only return companies in this construction trade. Choose "Any trade" to include every trade. A company is kept if it lists the chosen trade. |
| `startUrls` | array | `[]` | Paste full Blue Book company profile URLs to scrape them directly instead of crawling a state. Up to 200 URLs per run. |

**Trade categories available:** Any trade, General Contractors, Electrical Contractors, Plumbing, Excavating, Building Alterations, Curtain Walls, Doors (Alum/Bronze/SS), Glass Manufacturers & Distributors, Metal Windows, Storefronts, Architectural Metal.

#### Output Detail & Limits

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `includeDetails` | boolean | `true` | Fetch each company's full profile: service areas, certifications, firmographics, key contacts, and project history. Turn off for faster runs with only core fields. |
| `maxResults` | integer | `15` | How many companies to collect across all states and URLs. Set to `0` to collect as many as possible up to the run ceiling. Duplicate companies are removed automatically. |

### Output

```json
{
  "companyId": "800124",
  "name": "SAFTI FIRST Fire Rated Glazing Solutions",
  "url": "https://www.thebluebook.com/iProView/800124/",
  "website": "https://www.safti.com",
  "phone": "(888) 653-3333",
  "email": null,
  "address": "100 N Hill Dr, Brisbane, CA, 94005",
  "city": "Brisbane",
  "state": "CA",
  "cityState": "Brisbane, CA",
  "postalCode": "94005",
  "country": "US",
  "logo": "https://www.thebluebook.com/img/logo/800124.png",
  "socials": [
    "https://www.linkedin.com/company/safti-first",
    "https://www.facebook.com/SAFTIFIRST"
  ],
  "trades": ["Fire Rated Glazing", "Curtain Walls", "Storefronts", "Doors", "Architectural Metal"],
  "tradeCodes": ["1360", "1470", "4170", "190", "5560"],
  "serviceAreas": ["Alameda County, CA", "Contra Costa County, CA", "San Mateo County, CA"],
  "certifications": ["WBE"],
  "established": "1981",
  "companySize": "100-249 employees",
  "annualVolume": "$50M - $100M",
  "listedSince": "2003",
  "contacts": [
    { "name": "Jane Doe", "role": "Project Manager", "phone": "(888) 653-3333" }
  ],
  "projects": [
    {
      "name": "Downtown Transit Center",
      "type": "Commercial",
      "location": "San Francisco, CA",
      "status": null,
      "date": null,
      "generalContractor": null,
      "url": "https://www.thebluebook.com/construction-projects/downtown-transit-center"
    }
  ],
  "scrapedAt": "2026-06-27T12:00:00Z"
}
```

#### Core Fields

| Field | Type | Description |
|-------|------|-------------|
| `companyId` | string | Blue Book profile ID |
| `name` | string | Company name |
| `url` | string | Company profile URL on The Blue Book |
| `website` | string | Company website |
| `phone` | string | Main office phone |
| `email` | string | Company email when published on the profile (often null) |
| `logo` | string | Company logo image URL |
| `scrapedAt` | string | ISO 8601 timestamp of collection |

#### Address & Firmographics

| Field | Type | Description |
|-------|------|-------------|
| `address` | string | Full street address |
| `city` | string | City |
| `state` | string | State |
| `cityState` | string | City and state as displayed |
| `postalCode` | string | ZIP code |
| `country` | string | Country code |
| `established` | string | Year the company was established |
| `companySize` | string | Employee count or size band |
| `annualVolume` | string | Reported annual volume |
| `listedSince` | string | Year first listed on The Blue Book |

#### Trades, Service Areas & Certifications

| Field | Type | Description |
|-------|------|-------------|
| `trades` | array | Construction trade names the company lists |
| `tradeCodes` | array | Matching numeric Blue Book trade class codes |
| `serviceAreas` | array | Regions and counties the company serves |
| `certifications` | array | Diversity and business certifications (MBE, WBE, DBE, VOSB, 8(a), and more) |
| `socials` | array | Social profile URLs (LinkedIn, Facebook, X, Instagram, YouTube) |

#### Contacts & Projects

| Field | Type | Description |
|-------|------|-------------|
| `contacts` | array | Key contacts, each with `name`, `role`, and `phone` |
| `projects` | array | Recent projects, each with `name`, `type`, `location`, `status`, `date`, `generalContractor`, and `url` |

### Tips for Best Results

- **Combine a state with a trade** to build a clean regional list — for example, `state: "NY"` plus Electrical Contractors gives you every electrical firm in New York and nothing else.
- **Match on `tradeCodes`, not just `trades`** — the numeric Blue Book class codes are stable identifiers, so filtering your output on a code is more reliable than matching trade names.
- **Use the paste-a-list mode for known targets** — drop your existing company profile URLs into `startUrls` to refresh firmographics and contacts on a curated account list without re-crawling a whole state.
- **Turn off "Include Full Profiles" for fast counts** — when you only need name, address, phone, website, and trades to size a market, the core-fields run is noticeably quicker.
- **Set a realistic `maxResults`** — a full statewide or national sweep returns a large volume; start with a few hundred to validate your filters before scaling up.
- **Service areas reveal true coverage** — a firm headquartered in one city may serve dozens of counties, so use `serviceAreas` rather than the headquarters city when mapping where a contractor actually works.
- **Certifications power diversity sourcing** — filter your results on `certifications` to assemble MBE, WBE, DBE, or VOSB vendor lists for procurement goals.

### Pricing

**From $30 per 1,000 results** — premium, ready-to-use construction-industry firmographics with no setup or maintenance on your side. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.

| Results | No discount | Bronze | Silver | Gold |
|---------|-------------|--------|--------|------|
| 100 | $3.50 | $3.30 | $3.15 | $3.00 |
| 1,000 | $35.00 | $33.00 | $31.50 | $30.00 |
| 10,000 | $350.00 | $330.00 | $315.00 | $300.00 |
| 100,000 | $3,500.00 | $3,300.00 | $3,150.00 | $3,000.00 |

A "result" is one company profile. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation
- **Google Sheets** — Direct spreadsheet export
- **Slack** / **Email** — Notifications on new results
- **Webhooks** — Trigger custom APIs on run completion
- **Apify API** — Full programmatic access

### Legal & Ethical Use

This actor collects publicly available business directory information. Use the data responsibly and in compliance with The Blue Book Network's terms of service and all applicable laws, including data-protection and anti-spam regulations. Do not use collected contact details for unsolicited bulk outreach where prohibited. You are responsible for ensuring your use of the data is lawful in your jurisdiction. </content> </invoke>

# Actor input Schema

## `state` (type: `string`):

Which US state to collect companies from. Leave on 'All states' to crawl the whole country (large — use the Max Results cap). Ignored when you paste profile URLs below.

## `category` (type: `string`):

Only return companies in this construction trade. Leave on 'Any trade' to include all trades. Some companies list multiple trades; a company is kept if it lists the chosen trade. For a rare trade in a large state, the run may stop early once it has checked many companies in a row without a match (to avoid very long, low-yield runs); when this happens you'll see a clear message suggesting a smaller state or pasting company URLs directly. Tip: leave the trade on 'Any trade' for the broadest results.

## `startUrls` (type: `array`):

Paste full The Blue Book company profile URLs (e.g. https://www.thebluebook.com/iProView/800124/) to scrape them directly. When provided, these are fetched instead of crawling a state. Up to 200 URLs per run.

## `includeDetails` (type: `boolean`):

Fetch each company's full profile: service areas, certifications, firmographics (established, size, annual volume), key contacts, and project history with general-contractor attribution. Turn this off for faster runs that return only core fields (name, address, phone, website, trades).

## `maxResults` (type: `integer`):

How many companies to collect across all states and URLs. Increase for bigger runs, or set to 0 to collect as many as possible up to the run ceiling. The actor stops once your cap is reached but always keeps the whole final batch, so a small cap can return slightly more than you asked for. Companies repeated across the run are removed, so the final count can also run slightly below your cap.

## Actor input object example

```json
{
  "state": "NY",
  "category": "",
  "startUrls": [],
  "includeDetails": true,
  "maxResults": 15
}
```

# Actor output Schema

## `overview` (type: `string`):

Table of scraped companies with key fields like name, location, phone, website, and trades.

## `detail` (type: `string`):

Complete company data including contacts, service areas, certifications, firmographics, and project history.

# 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 = {
    "state": "NY",
    "category": "",
    "startUrls": [],
    "includeDetails": true,
    "maxResults": 15
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/thebluebook-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 = {
    "state": "NY",
    "category": "",
    "startUrls": [],
    "includeDetails": True,
    "maxResults": 15,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/thebluebook-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 '{
  "state": "NY",
  "category": "",
  "startUrls": [],
  "includeDetails": true,
  "maxResults": 15
}' |
apify call solidcode/thebluebook-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "The Blue Book Construction Directory Scraper",
        "description": "[💰 $30 / 1K] Scrape construction company, contractor & subcontractor profiles from The Blue Book Network. Search by trade and location; get contacts, trades, service areas, certifications, firmographics & project history.",
        "version": "1.0",
        "x-build-id": "BE6QggbqcAhdGhNRf"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~thebluebook-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-thebluebook-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/solidcode~thebluebook-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-thebluebook-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/solidcode~thebluebook-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-thebluebook-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",
                "properties": {
                    "state": {
                        "title": "US State",
                        "enum": [
                            "",
                            "AL",
                            "AK",
                            "AZ",
                            "AR",
                            "CA",
                            "CO",
                            "CT",
                            "DE",
                            "FL",
                            "GA",
                            "HI",
                            "ID",
                            "IL",
                            "IN",
                            "IA",
                            "KS",
                            "KY",
                            "LA",
                            "ME",
                            "MD",
                            "MA",
                            "MI",
                            "MN",
                            "MS",
                            "MO",
                            "MT",
                            "NE",
                            "NV",
                            "NH",
                            "NJ",
                            "NM",
                            "NY",
                            "NC",
                            "ND",
                            "OH",
                            "OK",
                            "OR",
                            "PA",
                            "RI",
                            "SC",
                            "SD",
                            "TN",
                            "TX",
                            "UT",
                            "VT",
                            "VA",
                            "WA",
                            "WV",
                            "WI",
                            "WY",
                            "DC"
                        ],
                        "type": "string",
                        "description": "Which US state to collect companies from. Leave on 'All states' to crawl the whole country (large — use the Max Results cap). Ignored when you paste profile URLs below.",
                        "default": ""
                    },
                    "category": {
                        "title": "Trade Category",
                        "enum": [
                            "",
                            "2200",
                            "1680",
                            "3370",
                            "1760",
                            "407",
                            "1360",
                            "1470",
                            "5560",
                            "4770",
                            "4170",
                            "190"
                        ],
                        "type": "string",
                        "description": "Only return companies in this construction trade. Leave on 'Any trade' to include all trades. Some companies list multiple trades; a company is kept if it lists the chosen trade. For a rare trade in a large state, the run may stop early once it has checked many companies in a row without a match (to avoid very long, low-yield runs); when this happens you'll see a clear message suggesting a smaller state or pasting company URLs directly. Tip: leave the trade on 'Any trade' for the broadest results.",
                        "default": ""
                    },
                    "startUrls": {
                        "title": "Direct Company URLs",
                        "maxItems": 200,
                        "type": "array",
                        "description": "Paste full The Blue Book company profile URLs (e.g. https://www.thebluebook.com/iProView/800124/) to scrape them directly. When provided, these are fetched instead of crawling a state. Up to 200 URLs per run.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "includeDetails": {
                        "title": "Include Full Profiles",
                        "type": "boolean",
                        "description": "Fetch each company's full profile: service areas, certifications, firmographics (established, size, annual volume), key contacts, and project history with general-contractor attribution. Turn this off for faster runs that return only core fields (name, address, phone, website, trades).",
                        "default": true
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "How many companies to collect across all states and URLs. Increase for bigger runs, or set to 0 to collect as many as possible up to the run ceiling. The actor stops once your cap is reached but always keeps the whole final batch, so a small cap can return slightly more than you asked for. Companies repeated across the run are removed, so the final count can also run slightly below your cap.",
                        "default": 15
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
