# Special Trade Contractors Email Scraper (`contacts-api/special-trade-contractors-email-scraper`) Actor

Special trade contractors email scraper to extract verified contractor emails from construction directories, business listings, and company websites 📧🏗️ Perfect for B2B outreach, partnerships, and construction industry lead generation.

- **URL**: https://apify.com/contacts-api/special-trade-contractors-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

### 🏗️ Special Trade Contractors Email Scraper — Find Verified Leads in Minutes

> The fastest way to build a targeted special trade contractors email list. This actor searches Google Maps for Special Trade Contractors across any city, crawls their websites, and extracts verified emails, phone numbers, and social media profiles — producing export-ready special trade contractors leads in minutes.

---

#### 🚀 Quick Start

1. Enter your search term — e.g., "Special Trade Contractors" or "roofing contractors"
2. Add one or more target locations — e.g., "New York", "Dallas, Texas"
3. Set your desired number of businesses with emails (optional)
4. Hit Run and get your results in minutes

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

---

#### 💡 What Is the Special Trade Contractors Email Scraper?

The Special Trade Contractors Email Scraper is a purpose-built lead generation and contact discovery tool for construction-focused teams:

- Building materials vendors and distributors
- General contractors and procurement teams
- Equipment rental, insurance, and compliance providers
- B2B sales, marketing, and agency teams

It combines Google Maps listing discovery with deep website crawling to extract publicly available contact data — delivering a clean, deduplicated special trade contractors list you can use immediately.

Whether you need it as a special trade contractors email finder, a special trade contractors lead scraper, or a special trade contractors lead finder — this actor covers all three in one automated run. It works as a reliable special trade contractors email extractor and special trade contractors contact scraper to surface public inboxes, phones, and social links in seconds.

---

#### 📦 What Data Does It Extract?

| Field | Description |
|---|---|
| Business Name | Company name from Google Maps |
| Website | Official website URL |
| Phone | Primary phone from the listing or website |
| Full Address | Complete address as listed |
| City / State / ZIP | Parsed location components |
| Country Code | ISO country code where available |
| Emails | All public special trade contractors email addresses found on the website |
| Additional Phones | Extra phone numbers discovered during crawl |
| Social Media Links | Links to 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 |

This special trade contractors data scraper focuses on public pages such as Contact, About, and Footer sections to maximize discovery of contact details.

---

#### ⚙️ Input Configuration

##### Minimal Example

```json
{
  "googleMapsSearchTerm": "Special Trade Contractors",
  "googleMapsLocation": ["New York"]
}
````

##### Full Example with All Options

```json
{
  "googleMapsSearchTerm": "Special Trade Contractors",
  "googleMapsLocation": [
    "New York",
    "Dallas, Texas",
    "Phoenix, Arizona"
  ],
  "maxBusinesses": 200,
  "scrapeMaxBusinessesPerLocation": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

##### Input Parameters

| Parameter | Type | Required | Description |
|---|---|---|---|
| `googleMapsSearchTerm` | String | ✅ Yes | Business type or niche — e.g., "roofing contractors", "HVAC contractors", "Special Trade Contractors" |
| `googleMapsLocation` | Array | ✅ Yes | One or more locations — e.g., \["New York", "Dallas, Texas"] |
| `maxBusinesses` | Integer | ❌ No | Target number of businesses with emails to return (1–1,000). Actor stops when this target is reached |
| `scrapeMaxBusinessesPerLocation` | Boolean | ❌ No | If true, applies `maxBusinesses` per location; if false, the cap is shared across all locations |
| `proxyConfiguration` | Object | ❌ No | Proxy settings. Strongly recommended for larger or multi-location runs |

***

#### 📤 Sample Output

```json
[
  {
    "name": "Precision Roofing & Sheet Metal",
    "website": "https://www.precisionroofnmetal.com",
    "phone": "+1 212-555-0148",
    "full_address": "1550 7th Ave, New York, NY 10019, United States",
    "city": "New York",
    "state": "NY",
    "zip": "10019",
    "country_code": "US",
    "scraped_emails": [
      "estimates@precisionroofnmetal.com",
      "info@precisionroofnmetal.com"
    ],
    "scraped_phones": ["+1 212-555-0148", "+1 212-555-0184"],
    "scraped_social_media": [
      "linkedin:https://www.linkedin.com/company/precision-roofing-ny",
      "facebook:https://www.facebook.com/precisionroofnmetal"
    ],
    "emails_found": 2,
    "pages_scraped": 12,
    "avg_rating": 4.7,
    "total_reviews": 89,
    "lat": 40.7643,
    "long": -73.9818,
    "place_id": "ChIJ-EXAMPLE-PLACEID",
    "scrape_status": "success"
  }
]
```

***

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

```
Step 1 → Search Google Maps using your term + location
Step 2 → Collect business listings (name, address, phone, website)
Step 3 → Visit each 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
```

Built to operate as both a discovery engine and an extraction engine, the Special Trade Contractors Email Scraper functions as a special trade contractors contact finder and special trade contractors email extractor in a single automated workflow.

***

#### ✨ Key Features

##### 🎯 Precise Location Targeting

Enter any city, state, or region. The actor pinpoints trade contractors like roofing, plumbing, electrical, HVAC, masonry, drywall, and more — delivering hyper-local special trade contractors leads.

##### 🔍 Deep Website Crawl

Goes beyond Google listings. Crawls homepages, contact pages, about pages, and footers to surface every available public special trade contractors email and phone number. Works as a dependable special trade contractors contact scraper for comprehensive contact discovery.

##### 🧠 Trade-Aware Discovery

Optimize your `googleMapsSearchTerm` for trade variants — e.g., "plumbing contractors", "electrical subcontractor", "concrete contractors". The special trade contractors lead scraper adapts to niche queries and multi-word keywords.

##### 🌎 Multi-Location Scaling

Run across dozens of cities at once. Choose a combined cap or a per-location cap — perfect for building a large, multi-market special trade contractors list while keeping distribution even across regions.

##### 🧹 Smart De-Duplication

Automatically removes duplicate emails per domain so your list stays clean and accurate — no messy post-export cleanup.

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

Normalized fields and consistent naming make it easy to drop the results into your CRM or outreach tools. Use this special trade contractors data scraper to streamline pipeline enrichment.

##### 🛡️ Proxy-Ready for Reliability

Built-in proxy support enables stable, large-scale runs without rate limits or IP blocks — ideal for agency campaigns and enterprise sourcing.

##### ⏱️ Stop at Your Target

The actor halts as soon as your `maxBusinesses` limit is reached — saving compute and avoiding overages.

##### 🔄 Schedulable & Repeatable

Schedule daily, weekly, or monthly runs to continuously grow and refresh your special trade contractors leads with the Special Trade Contractors Email Scraper.

***

#### 🎯 Use Cases

##### 💼 B2B Outreach & Sales

Build pitch lists for roofing, plumbing, electrical, HVAC, and other subcontractors. Use this special trade contractors lead finder to fuel cold outreach and appointment setting.

##### 🧱 Subcontractor Prequalification & Bid Lists

Create and maintain a special trade contractors list for upcoming projects. The special trade contractors contact finder helps procurement teams identify and vet new subs quickly.

##### 🚚 Supplier & Distributor Sales

Identify trade contractors for product demos and partner programs. The special trade contractors email finder makes it easy to connect with estimators and office managers.

##### 🛡️ Insurance, Compliance & Safety

Find contractors to offer bonds, insurance products, safety training, or compliance services. This special trade contractors data scraper accelerates prospect discovery.

##### 📣 Local & Regional Marketing

Launch geo-targeted campaigns with verified special trade contractors email contacts and phone numbers pulled directly from websites.

##### 🗃️ CRM Enrichment & Data Hygiene

Use the special trade contractors contact scraper to fill missing emails, phone numbers, and social profiles for existing accounts.

##### 📊 Market Research & Competitive Mapping

Map contractor density, ratings, and reviews across cities or states. Combine results from multiple locations to benchmark markets.

***

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

Scale from a small prospect list to a multi-state database — actual results depend on:

- Number of locations added
- Search term breadth (e.g., "roofing contractor" vs. "metal roofing specialist")
- Website density and how visible emails are per trade
- `maxBusinesses` setting and per-location vs. combined mode
- Proxy configuration and run timeout

Typical output ranges per run:

- Small (1–3 cities): 30–120 businesses with emails
- Medium (5–15 cities): 200–600
- Large (20+ cities/states): 800–1,000+ per run

Run across additional regions to continuously grow your special trade contractors list without hitting hard limits. For multi-market campaigns, the special trade contractors lead scraper can be scheduled to rotate locations week over week.

***

#### 🔌 Integrations & Export Options

Once your run completes, you can:

- 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 records are found
- Webhooks: Push results to your CRM or pipeline on run completion

Plug directly into Instantly, Smartlead, Apollo, HubSpot, Salesforce, or any platform that accepts CSV/JSON imports. Use this special trade contractors data scraper to keep sales ops and marketing systems synced with fresh records.

***

#### 🛠️ 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 "Special Trade Contractors Email Scraper" in the Apify Store and click Try for free.

- Step 3 — Set Your Search Term
  Enter "Special Trade Contractors" or a specific trade like "roofing contractors", "plumbing subcontractor", "HVAC installer", "electrical contractors".

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

- Step 5 — Set Your Limit (Optional)
  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 Special Trade Contractors 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 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:

- 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 with this special trade contractors data scraper and special trade contractors contact scraper.

***

#### ❓ Frequently Asked Questions

Q: Does this scrape private or personal emails?\
A: No. The actor only extracts emails that are publicly visible on business websites — general inboxes like info@, sales@, estimates@. It works as a special trade contractors email extractor, not an inbox cracker.

Q: Can I search multiple cities in one run?\
A: Yes. Add as many locations as you need. Use per-location capping to keep distribution even across cities.

Q: Does it deduplicate results?\
A: Yes. Emails are deduplicated per domain to keep your special trade contractors list clean and accurate.

Q: Is a proxy required?\
A: Not for small runs, but strongly recommended for 200+ business runs to reduce rate limits and improve stability.

Q: What if a contractor has no website?\
A: If no website is available, the actor still returns Google listing details (name, address, phone, rating). However, email extraction requires a public-facing site or email link.

Q: Can I use trade-specific keywords?\
A: Absolutely — try "asphalt contractors", "metal fabricators", "sprinkler installers", "tile contractors". The special trade contractors lead finder adapts to niche phrases.

Q: What export formats are available?\
A: JSON, CSV, and Excel — plus the Apify API for direct integration. Perfect for syncing special trade contractors leads to your CRM.

Q: How is this different from manual Google searching?\
A: Manual search is slow and inconsistent. This special trade contractors contact finder automates discovery and extraction end-to-end to produce results in minutes.

Q: Can agencies white-label or resell this?\
A: Yes. Run it for clients as a special trade contractors lead scraper and deliver fresh lists on a recurring schedule.

***

#### 🧩 Keyword Guide & Best Practices

- Use broader terms like "Special Trade Contractors" for discovery, then niche down with "roofing contractor", "plumbing contractor", or "electrical subcontractor".
- Mix geo-targeting formats ("New York" vs. "Brooklyn, NY") to diversify results.
- For outreach, segment by trade and region; your special trade contractors email campaigns perform better with tight targeting.
- Refresh your special trade contractors leads monthly to catch new companies and changes to public contact info.
- Test both singular and plural variants (e.g., "HVAC contractor" vs. "HVAC contractors") to maximize coverage.

***

#### 🧑‍💻 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 (e.g., only roofers or only electricians)
- Bulk or enterprise run support
- Integration assistance (CRM, email tools, Zapier/Make)
- Private instances and dedicated proxies

Built for sales teams, procurement, and marketers who need accurate special trade contractors leads at scale — fast.

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": "Special Trade Contractors",
  "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": "Special Trade Contractors",
    "googleMapsLocation": [
        "New York"
    ],
    "maxBusinesses": 5,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("contacts-api/special-trade-contractors-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": "Special Trade Contractors",
    "googleMapsLocation": ["New York"],
    "maxBusinesses": 5,
    "proxyConfiguration": { "useApifyProxy": True },
}

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

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Special Trade Contractors Email Scraper",
        "description": "Special trade contractors email scraper to extract verified contractor emails from construction directories, business listings, and company websites 📧🏗️ Perfect for B2B outreach, partnerships, and construction industry lead generation.",
        "version": "1.0",
        "x-build-id": "Ap5ZY8MHfhgIRgMDC"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/contacts-api~special-trade-contractors-email-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-contacts-api-special-trade-contractors-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~special-trade-contractors-email-scraper/runs": {
            "post": {
                "operationId": "runs-sync-contacts-api-special-trade-contractors-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~special-trade-contractors-email-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-contacts-api-special-trade-contractors-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": "Special Trade Contractors"
                    },
                    "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
