# BuildZoom Scraper (`solidcode/buildzoom-scraper`) Actor

\[💰 $3.5 / 1K] Extract US contractor listings from BuildZoom by city and trade, or any BuildZoom URL. Get BZ scores, ratings, reviews, project counts, price ranges, addresses, phones — plus optional license, insurance, and bond details. For lead gen and market research.

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

## Pricing

from $3.50 / 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

## BuildZoom Scraper

Pull US construction-contractor data from BuildZoom at scale — proprietary BuildZoom scores, ratings and review counts, project and permit volumes, typical price ranges, phone numbers, and full license, insurance, and bond credentials for every contractor. Search by city and contractor type, or paste any BuildZoom directory or profile link and get one clean row per contractor. Built for home-services lead-gen teams, general contractors vetting subs, and construction market researchers who need verified contractor data without digging through directory pages by hand.

### Why This Scraper?

- **Proprietary BuildZoom Score on every contractor** — the platform's own `bzScore` quality ranking (typically 0–150+) that you can't compute yourself, ready to rank and shortlist contractors instantly.
- **Full license credentials, not just a yes/no** — license numbers (often 10–20+ per contractor), license types and class, license status, and a `hasVerifiedLicense` flag confirming BuildZoom checked the license.
- **Insurance and bond detail with named carriers** — insurance provider, insured-up-to amount, bond provider, and bond dollar amount, pulled straight from each contractor's profile.
- **Permit and project volume per contractor** — total projects, verified projects, and a project-type mix (new construction, kitchen remodels, multi-room remodels); established general contractors carry thousands of permits on record.
- **10 contractor trade categories** — General Contractors, Roofers, Electricians, Plumbers, Architects, Home Builders, Kitchen & Bathroom Remodeling, Home Addition, Solar Contractors, and Foundation Contractors.
- **Ratings and review counts side by side** — average star rating and total review count on every row for fast, at-a-glance vetting.
- **Direct phone numbers with extensions** — contact phone plus dial extension (`phoneExt`) for each contractor, built for outbound lead generation.
- **5 sort modes and budget-band filtering** — order by BuildZoom Score, project count, rating, or project value, and filter to contractors whose typical job is $10k, $50k, or $100k and above.
- **Two ways in** — guided city-plus-trade search across multiple locations, or paste any BuildZoom directory or `/contractor/` profile URL and keep its filters exactly as set.

### Use Cases

**Lead Generation**
- Build outbound call lists of contractors with name, phone number, and extension
- Target high-scoring contractors in specific metros for partnership or supply outreach
- Segment leads by trade — roofers, electricians, plumbers, solar installers, and more
- Prioritize contractors by project volume to focus on the most active firms

**License & Compliance Verification**
- Pull license numbers and status to confirm a contractor is properly licensed before hiring
- Flag verified-license contractors for insurer or lender approval workflows
- Capture insurance carrier and bond amounts for vendor onboarding and risk checks
- Build an auditable record of credentials across an entire metro

**Market Research**
- Map contractor density and average BuildZoom Scores by city and trade
- Benchmark typical project price ranges across regions
- Track permit and project volumes to gauge construction activity in a market
- Compare residential versus commercial contractor coverage in target areas

**Competitive Analysis**
- Profile competing contractors' ratings, review counts, and project mix
- Identify the top-scoring firms in your trade and territory
- Monitor how rivals stack up on verified credentials and bonding
- Spot underserved cities with few high-rated contractors

### Getting Started

#### Search a Single City

The simplest run — one location and the default General Contractors trade:

```json
{
    "searchLocations": ["Dallas, TX"],
    "maxResults": 50
}
````

#### Filter by Trade and Budget

Find top-rated roofers handling larger projects across several cities:

```json
{
    "searchLocations": ["Miami, FL", "Tampa, FL", "Orlando, FL"],
    "trade": "roofers",
    "avgProjectValue": "100000",
    "sortBy": "score",
    "maxResults": 200
}
```

#### Full Detail with License & Insurance

Enrich every row with license, insurance, and bond credentials for compliance:

```json
{
    "searchLocations": ["Austin, TX"],
    "trade": "electricians",
    "constructionType": "commercial",
    "sortBy": "ratings",
    "includeProfileDetails": true,
    "maxResults": 100
}
```

#### Paste BuildZoom URLs

Target an exact directory page or a specific contractor profile:

```json
{
    "startUrls": [
        "https://www.buildzoom.com/general-contractors/dallas-tx",
        "https://www.buildzoom.com/contractor/example-builders-inc"
    ],
    "includeProfileDetails": true
}
```

### Input Reference

#### What to Scrape

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchLocations` | array | `["Dallas, TX"]` | One or more `"City, ST"` strings (e.g. `"Dallas, TX"`). Each location is searched separately using the filters below. |
| `startUrls` | array | `[]` | Paste BuildZoom URLs directly — a contractor directory page or an individual contractor profile. Filters already in the URL are kept as-is. |

#### Search Filters

These apply only to `searchLocations` and are ignored for `startUrls`.

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `trade` | string | `general-contractors` | Contractor type to search. Options: General Contractors, Roofers, Electricians, Plumbers, Architects, Home Builders, Kitchen & Bathroom Remodeling, Home Addition, Solar Contractors, Foundation Contractors. |
| `constructionType` | string | `all` | Limit to contractors doing residential or commercial work. Choose `all` for both. |
| `avgProjectValue` | string | `any` | Minimum typical project budget: `any`, `$10,000+`, `$50,000+`, `$100,000+`, or `$100,000 and above`. |
| `sortBy` | string | `default` | Result order: BuildZoom default, BuildZoom Score, number of projects, rating, or project value. |

#### Output & Limits

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `includeProfileDetails` | boolean | `false` | When `true`, visits each contractor's profile to add license numbers and status, insurance, bond, full address, and ZIP. Leave off for a faster, lighter run. |
| `maxResults` | integer | `100` | Maximum contractors to return across all locations and URLs. Set `0` for unlimited. |

### Output

Each contractor is returned as one row. The example below shows a row collected with `includeProfileDetails` enabled. Without it, the license credentials, insurance/bond carrier names, full address, and ZIP are omitted — but `insuranceAmount` and `bondAmount` can still appear in the lighter listing mode whenever BuildZoom's card carries them.

```json
{
    "contractorName": "Lone Star Builders Inc",
    "slug": "lone-star-builders-inc",
    "url": "https://www.buildzoom.com/contractor/lone-star-builders-inc",
    "bzScore": 112,
    "rating": 4.8,
    "reviewCount": 64,
    "totalProjects": 1843,
    "totalProjectsVerified": 1591,
    "priceRange": "$45,000",
    "newConstructions": 320,
    "kitchenRemodels": 188,
    "multiRoomRemodels": 96,
    "city": "Dallas",
    "state": "TX",
    "phoneNumber": "9722071300",
    "phoneExt": "204",
    "description": "Full-service general contractor serving the Dallas–Fort Worth metroplex.",
    "fullAddress": "1200 Commerce St",
    "zipCode": "75202",
    "licenseNumbers": ["TX-GC-104872", "TX-EL-22910"],
    "licenseStatus": "Active",
    "licenseTypes": ["General Contractor", "Electrical"],
    "hasVerifiedLicense": true,
    "insuranceProvider": "Travelers",
    "insuranceAmount": "$2,000,000",
    "bondProvider": "Western Surety",
    "bondAmount": "$25,000",
    "searchLocation": "Dallas, TX",
    "scrapedAt": "2026-06-03T18:24:00.000Z"
}
```

#### Core Fields

| Field | Type | Description |
|-------|------|-------------|
| `contractorName` | string | Contractor or company name. |
| `slug` | string | BuildZoom URL slug for the contractor. |
| `url` | string | Full BuildZoom profile URL. |
| `bzScore` | number | Proprietary BuildZoom Score (contractor quality ranking). |
| `rating` | number | Average review rating. |
| `reviewCount` | number | Total number of reviews. |
| `city` | string | City. |
| `state` | string | Two-letter state code. |
| `phoneNumber` | string | Contact phone number. |
| `description` | string | Profile description or blurb. |
| `searchLocation` | string | The input location or URL that produced this row. |
| `scrapedAt` | string | ISO 8601 timestamp the row was collected. |

#### Project & Permit Signals

| Field | Type | Description |
|-------|------|-------------|
| `totalProjects` | number | Total projects and permits on record. |
| `totalProjectsVerified` | number | Verified projects on record. |
| `priceRange` | string | Typical project value (e.g. `"$45,000"`). |
| `newConstructions` | number | New-construction project count. |
| `kitchenRemodels` | number | Kitchen-remodel project count. |
| `multiRoomRemodels` | number | Multi-room-remodel project count. |
| `insuranceAmount` | string | Insurance coverage amount. Appears in the lighter listing mode when present on the card; the carrier name (`insuranceProvider`) needs `includeProfileDetails`. |
| `bondAmount` | string | Bond amount. Appears in the lighter listing mode when present on the card; the provider name (`bondProvider`) needs `includeProfileDetails`. |

#### License & Carrier Detail (with `includeProfileDetails`)

| Field | Type | Description |
|-------|------|-------------|
| `fullAddress` | string | Street address from the contractor's profile. |
| `zipCode` | string | ZIP code. |
| `phoneExt` | string | Phone dial extension, if any. |
| `licenseNumbers` | array | License numbers on file (often several per contractor). |
| `licenseStatus` | string | License status (e.g. Active, Expired). |
| `licenseTypes` | array | License type or class descriptions. |
| `hasVerifiedLicense` | boolean | Whether BuildZoom verified the license. |
| `insuranceProvider` | string | Insurance carrier name. |
| `bondProvider` | string | Bond provider name. |

### Tips for Best Results

- **BuildZoom returns up to 250 contractors per location + trade combination.** To collect more, add several `searchLocations` (e.g. each city in a metro) or narrow with `constructionType`, `avgProjectValue`, or a more specific `trade`.
- **Leave `includeProfileDetails` off for discovery, turn it on for compliance.** The lighter mode returns score, ratings, project volume, phone, and any insurance/bond amounts on the card fast; enable detail only when you need license numbers, carrier names, and full addresses — it visits each profile and runs roughly 3× longer.
- **Combine multiple `searchLocations` to cover a whole region** in a single run instead of one city at a time — each location is searched independently and merged into one dataset.
- **Use `sortBy: "score"` to surface the strongest contractors first**, then cap `maxResults` low to skim the top firms in a market before committing to a full pull.
- **Start small to validate filters** — run with `maxResults` of 10–50, confirm the trade and budget bands return what you expect, then scale up.
- **Paste a directory URL to reuse a search you built on BuildZoom's site** — any filters already in the link are honored exactly, which is handy for searches the guided filters can't express.

### Pricing

**From $3.50 per 1,000 results** — competitively priced for a credential-rich contractor dataset, with no surprises. 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 | $0.42 | $0.395 | $0.37 | $0.35 |
| 1,000 | $4.20 | $3.95 | $3.70 | $3.50 |
| 10,000 | $42.00 | $39.50 | $37.00 | $35.00 |
| 100,000 | $420.00 | $395.00 | $370.00 | $350.00 |

A "result" is one contractor row. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee. Apify platform fees are additional.

### 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 information from BuildZoom for legitimate business purposes such as lead generation, market research, and credential verification. You are responsible for using the data in compliance with BuildZoom's terms of service, applicable laws, and data-protection regulations including GDPR and CCPA. Do not use collected personal data for spam, harassment, or any unlawful purpose. Always review and respect the target website's terms before running large-scale data collection.

# Actor input Schema

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

Paste one or more BuildZoom URLs directly — either a contractor directory page (e.g. a 'general contractors in Dallas' page) or an individual contractor profile. Any filters already in the URL are kept as-is, so the Search Filters below are ignored for these URLs.

## `searchLocations` (type: `array`):

Search contractors by typing a city and state, e.g. 'Dallas, TX' or 'Miami, FL'. Each location is searched separately. The Search Filters below apply to these locations.

## `trade` (type: `string`):

Which kind of contractor to look for. Only applies to Search Locations — ignored when you paste URLs above.

## `constructionType` (type: `string`):

Limit results to contractors that do residential or commercial work. Choose 'All' for both.

## `avgProjectValue` (type: `string`):

Limit results to contractors whose typical project budget is at least this amount. Choose 'Any' for no budget filter.

## `sortBy` (type: `string`):

How to order the contractors in each search.

## `includeProfileDetails` (type: `boolean`):

Visit each contractor's profile to add license numbers and status, insurance, and bond information. This makes runs slower — leave off for a faster, lighter run that returns the contractor card data only.

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

Maximum number of contractors to return across all locations and URLs. Set to 0 for unlimited (an internal safety cap of 50,000 still applies). Tip: start with 10-50 to test, then increase. Note: BuildZoom returns at most 250 contractors per location + contractor-type search. To collect more, add more Search Locations or narrow by contractor type, project type, or budget.

## Actor input object example

```json
{
  "startUrls": [],
  "searchLocations": [
    "Dallas, TX"
  ],
  "trade": "general-contractors",
  "constructionType": "all",
  "avgProjectValue": "any",
  "sortBy": "default",
  "includeProfileDetails": false,
  "maxResults": 100
}
```

# Actor output Schema

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

Table of scraped contractors with the most useful columns at a glance.

# 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 = {
    "startUrls": [],
    "searchLocations": [
        "Dallas, TX"
    ],
    "trade": "general-contractors",
    "constructionType": "all",
    "avgProjectValue": "any",
    "sortBy": "default",
    "includeProfileDetails": false,
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/buildzoom-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 = {
    "startUrls": [],
    "searchLocations": ["Dallas, TX"],
    "trade": "general-contractors",
    "constructionType": "all",
    "avgProjectValue": "any",
    "sortBy": "default",
    "includeProfileDetails": False,
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/buildzoom-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 '{
  "startUrls": [],
  "searchLocations": [
    "Dallas, TX"
  ],
  "trade": "general-contractors",
  "constructionType": "all",
  "avgProjectValue": "any",
  "sortBy": "default",
  "includeProfileDetails": false,
  "maxResults": 100
}' |
apify call solidcode/buildzoom-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "BuildZoom Scraper",
        "description": "[💰 $3.5 / 1K] Extract US contractor listings from BuildZoom by city and trade, or any BuildZoom URL. Get BZ scores, ratings, reviews, project counts, price ranges, addresses, phones — plus optional license, insurance, and bond details. For lead gen and market research.",
        "version": "1.0",
        "x-build-id": "k5egbpjLApO1aqrax"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~buildzoom-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-buildzoom-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~buildzoom-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-buildzoom-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~buildzoom-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-buildzoom-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": {
                    "startUrls": {
                        "title": "BuildZoom URLs",
                        "type": "array",
                        "description": "Paste one or more BuildZoom URLs directly — either a contractor directory page (e.g. a 'general contractors in Dallas' page) or an individual contractor profile. Any filters already in the URL are kept as-is, so the Search Filters below are ignored for these URLs.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchLocations": {
                        "title": "Search Locations",
                        "type": "array",
                        "description": "Search contractors by typing a city and state, e.g. 'Dallas, TX' or 'Miami, FL'. Each location is searched separately. The Search Filters below apply to these locations.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "trade": {
                        "title": "Contractor Type",
                        "enum": [
                            "general-contractors",
                            "roofers",
                            "electricians",
                            "plumbers",
                            "architects",
                            "home-builders",
                            "kitchen-and-bathroom-remodeling",
                            "home-addition",
                            "solar-contractors",
                            "foundation-contractors"
                        ],
                        "type": "string",
                        "description": "Which kind of contractor to look for. Only applies to Search Locations — ignored when you paste URLs above.",
                        "default": "general-contractors"
                    },
                    "constructionType": {
                        "title": "Project Type",
                        "enum": [
                            "all",
                            "residential",
                            "commercial"
                        ],
                        "type": "string",
                        "description": "Limit results to contractors that do residential or commercial work. Choose 'All' for both.",
                        "default": "all"
                    },
                    "avgProjectValue": {
                        "title": "Typical Project Budget",
                        "enum": [
                            "any",
                            "10000",
                            "50000",
                            "100000",
                            "100001"
                        ],
                        "type": "string",
                        "description": "Limit results to contractors whose typical project budget is at least this amount. Choose 'Any' for no budget filter.",
                        "default": "any"
                    },
                    "sortBy": {
                        "title": "Sort Results By",
                        "enum": [
                            "default",
                            "score",
                            "projects",
                            "ratings",
                            "value"
                        ],
                        "type": "string",
                        "description": "How to order the contractors in each search.",
                        "default": "default"
                    },
                    "includeProfileDetails": {
                        "title": "Include License & Insurance Details",
                        "type": "boolean",
                        "description": "Visit each contractor's profile to add license numbers and status, insurance, and bond information. This makes runs slower — leave off for a faster, lighter run that returns the contractor card data only.",
                        "default": false
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of contractors to return across all locations and URLs. Set to 0 for unlimited (an internal safety cap of 50,000 still applies). Tip: start with 10-50 to test, then increase. Note: BuildZoom returns at most 250 contractors per location + contractor-type search. To collect more, add more Search Locations or narrow by contractor type, project type, or budget.",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
