# Lawyer Email Scraper (`contacts-api/lawyer-email-scraper`) Actor

Lawyer email scraper to extract verified lawyer emails from law firm websites, legal directories, and business listings 📧⚖️ Perfect for legal marketing, outreach campaigns, and targeted attorney lead generation. Fast, accurate, and scalable.

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

### ⚖️ Lawyer Email Scraper — Find Verified Contacts And Leads In Minutes

> The fastest way to build a targeted lawyer email and phone contact database. This actor searches Google Maps for attorneys and related legal practices in any location, crawls their websites, and extracts public emails, phones, and social profiles — delivering export-ready lawyer leads with zero manual work.

---

#### 🚀 Quick Start

1. Enter your search term — e.g., "Lawyer", "criminal defense attorney", "family law firm"
2. Add one or more target locations — e.g., "New York", "Los Angeles, California"
3. Set your desired number of businesses with emails
4. Hit Run and get your verified lawyer leads in minutes

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

---

#### 💡 What Is The Lawyer Email Scraper?

The Lawyer Email Scraper is a purpose-built, automated lead generation and contact discovery tool for:

- Legal marketing teams and agencies
- SaaS and B2B outreach professionals selling into law firms
- Researchers and data analysts building a regional lawyer list
- Recruiters targeting attorneys and legal practices

It combines Google Maps discovery with deep website crawling to extract publicly available contact data — producing an accurate, deduplicated lawyer email list ready for immediate use. Use it as your lawyer email finder, lawyer lead finder, and lawyer contact finder in a single automated workflow.

Whether you need a lawyer email extractor for direct outreach, a lawyer lead scraper for pipeline-building, or a lawyer data scraper for CRM enrichment, this actor streamlines the entire process from discovery to extraction.

---

#### 📦 What Data Does It Extract?

| Field | Description |
|---|---|
| Business Name | Law firm or solo practice 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 lawyer email addresses extracted from website pages |
| Additional Phones | Extra phone numbers discovered during crawl |
| Social Media Links | Facebook, Instagram, LinkedIn, Twitter/X, and more |
| Email Count | Total unique emails found per business |
| Pages Scraped | Number of website pages crawled per domain |
| Rating | Average Google Maps star rating |
| Reviews | Total number of Google reviews |
| Latitude / Longitude | Geo-coordinates for mapping and filtering |
| Place ID | Google Maps place identifier |
| Scrape Status | Per-record status: success, partial, or error |

---

#### ⚙️ Input Configuration

##### Minimal Example

```json
{
  "googleMapsSearchTerm": "Lawyer",
  "googleMapsLocation": ["New York"],
  "maxBusinesses": 50
}
````

##### Full Example With All Options

```json
{
  "googleMapsSearchTerm": "Lawyer",
  "googleMapsLocation": [
    "New York, New York",
    "Los Angeles, California",
    "Chicago, Illinois"
  ],
  "maxBusinesses": 200,
  "scrapeMaxBusinessesPerLocation": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

##### Input Parameters

| Parameter | Type | Required | Description |
|---|---|---|---|
| googleMapsSearchTerm | String | ✅ Yes | Business type to search — e.g., "Lawyer", "family law", "personal injury attorney" |
| googleMapsLocation | Array | ✅ Yes | One or more locations — e.g., \["New York", "Austin, Texas"] |
| maxBusinesses | Number | ✅ Yes | Max businesses with emails to return (1–1,000) |
| scrapeMaxBusinessesPerLocation | Boolean | ❌ No | If true, applies the cap per location; if false, it's a combined total across all locations |
| proxyConfiguration | Object | ❌ No | Proxy settings. Strongly recommended for large runs |

***

#### 📤 Sample Output

```json
[
  {
    "name": "Madison & Cole LLP",
    "website": "https://www.madisoncolelaw.com",
    "phone": "+1 212-555-0175",
    "full_address": "445 Park Ave, New York, NY 10022, United States",
    "city": "New York",
    "state": "NY",
    "zip": "10022",
    "country_code": "US",
    "scraped_emails": [
      "info@madisoncolelaw.com",
      "intake@madisoncolelaw.com"
    ],
    "scraped_phones": ["+1 212-555-0175", "+1 212-555-0142"],
    "scraped_social_media": [
      "linkedin:https://www.linkedin.com/company/madison-cole-llp",
      "facebook:https://www.facebook.com/madisoncolelaw"
    ],
    "emails_found": 2,
    "pages_scraped": 18,
    "avg_rating": 4.7,
    "total_reviews": 96,
    "lat": 40.7615,
    "long": -73.9729,
    "place_id": "ChIJ9-EXAMPLEID",
    "scrape_status": "success"
  }
]
```

***

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

```
Step 1 → Search Google Maps using your term + location
Step 2 → Collect law firm listings (name, address, phone, website)
Step 3 → Visit each website and crawl key pages (Home, Contact, About, Attorneys, Footer)
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
```

The workflow is built to function as a discovery engine for lawyer leads and as a robust lawyer email extractor — so you can go from search to outreach in one run.

***

#### ✨ Key Features

##### 🎯 Precise Location Targeting

Enter any city, state, or region. The actor pinpoints firms in your exact target areas — delivering hyper-local lawyer leads for your campaigns.

##### 🔍 Deep Website Crawl

Goes beyond the listing. Crawls homepages, contact pages, attorney profiles, and footer sections to surface every available public lawyer email and phone number.

##### 📚 Dual Discovery & Extraction

Use it as a lawyer lead scraper to discover new firms and as a lawyer email finder to extract verified inboxes for intake, admin, and marketing contacts.

##### 🧭 Smart Filtering & Capping

Control how many records you collect with maxBusinesses and per-location caps — ideal for balanced geo-coverage when building a broad lawyer list.

##### 🧹 De-Duplication & Normalization

Emails are deduplicated per domain and output in consistent fields — perfect for ingestion into CRMs and outreach tools without extra cleanup.

##### 🛡️ Proxy-Ready For Scale

Built-in proxy support enables stable, large-scale runs without rate-limiting or IP blocks — essential for agency-grade lawyer leads acquisition.

##### 🔄 Schedulable, Repeatable Runs

Schedule daily, weekly, or monthly runs to continuously refresh your contact database — your lawyer contact scraper working on autopilot.

##### ⚡ Fast Stop At Target

The crawl halts as soon as your maxBusinesses threshold is met — efficient compute with predictable results.

***

#### 🎯 Use Cases

##### 💼 B2B Outreach & Sales

Create targeted campaigns for practice areas like personal injury, criminal defense, or corporate law. Use the lawyer lead scraper to fuel prospecting and convert more lawyer leads.

##### 🧑‍💼 Agency Lead Generation

Marketing agencies and consultants can spin up repeatable scrapes, export a clean lawyer list, and launch sequences fast using the built-in lawyer email finder.

##### 🗂️ CRM Enrichment & Data Hygiene

Fill gaps in your accounts by adding emails, phones, and social links. As a lawyer data scraper, it enriches existing firm records at scale.

##### 🤝 Partnerships & Referral Programs

Identify complementary firms for cross-referrals (e.g., immigration vs. criminal defense). The lawyer contact finder helps uncover public contact points to start conversations.

##### 🧪 Market Research & Analysis

Analyze coverage by city or practice area, track review volumes and ratings, and benchmark competitors — with contact details extracted by the lawyer email extractor for follow-ups.

##### 🏢 Recruitment & Staffing

Recruiters can find practice emails and phones to reach hiring partners and admins at scale with the lawyer contact scraper.

***

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

Scale from a small local list to a multi-city database — output depends on:

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

Typical Output Ranges

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

Run multiple times across different regions to continuously grow your lawyer list without hitting hard platform limits.

***

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

Works seamlessly with Instantly, Smartlead, Apollo, HubSpot, Salesforce, and more.

***

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

- Step 3 — Set Your Search Term
  Enter "Lawyer" or niche variants like "family law", "personal injury attorney", "immigration lawyer".

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

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

- Step 6 — Choose Scaling Strategy
  Combined cap: The total across all locations combined
  Per-location cap: Applies your limit independently to each city

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

- Step 8 — Run 🚀
  Click Start and let the lawyer 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.

***

#### ❓ 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 — such as firm inboxes and general intake addresses via the lawyer email extractor.

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

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

Q: Can I schedule recurring runs?
A: Absolutely. Use Apify’s scheduler to run weekly or monthly. Treat it as a continuous lawyer contact scraper that refreshes your database.

Q: Can this replace manual research?
A: It automates the discovery and extraction pipeline: think lawyer lead finder + lawyer email finder + lawyer data scraper in one run.

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

Q: Which practice areas work best?
A: Any term searchable on Google Maps — e.g., "criminal defense lawyer", "divorce attorney", "employment law firm", "estate planning attorney".

Q: Can agencies white-label or resell this?
A: Yes. Many agencies use this lawyer lead scraper to deliver fresh leads to clients on a recurring basis.

***

#### 🧑‍💻 Support & Custom Solutions

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

- Custom input/output configurations
- Niche-specific adaptations (e.g., immigration, injury, corporate)
- Bulk or enterprise run support
- Integration assistance for CRMs and outreach tools

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

Built for legal marketers, sales teams, and agencies who need accurate lawyer leads at scale — fast with the Lawyer Email Scraper.

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

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

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

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Lawyer Email Scraper",
        "description": "Lawyer email scraper to extract verified lawyer emails from law firm websites, legal directories, and business listings 📧⚖️ Perfect for legal marketing, outreach campaigns, and targeted attorney lead generation. Fast, accurate, and scalable.",
        "version": "1.0",
        "x-build-id": "sjpqaopAAflojGWAC"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/contacts-api~lawyer-email-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-contacts-api-lawyer-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~lawyer-email-scraper/runs": {
            "post": {
                "operationId": "runs-sync-contacts-api-lawyer-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~lawyer-email-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-contacts-api-lawyer-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": "Lawyer"
                    },
                    "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
