# K12 Schools Email Scraper (`contacts-api/k12-schools-email-scraper`) Actor

K12 schools email scraper to collect verified emails from primary and secondary schools, districts, and education directories 📧🏫 Ideal for outreach, partnerships, and education sector lead generation.

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

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

### 🎒 K12 Schools Email Scraper — Build Verified School & District Contacts In Minutes

> The fastest way to build a targeted k12 schools list. This actor searches Google Maps for K12 schools across any city or region, crawls their websites, and extracts public k12 schools email addresses, phone numbers, and social media profiles — all in one clean, export-ready dataset.

---

#### 🚀 Quick Start

1. Enter your search term — e.g., "K12 Schools", "public schools", "charter schools"
2. Add one or more target locations — e.g., "New York", "Austin, Texas"
3. Set your desired number of schools with emails
4. Hit Run and get your k12 schools leads in minutes

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

---

#### 💡 What Is the K12 Schools Email Scraper?

The K12 Schools Email Scraper is a purpose-built outreach and contact discovery tool for:

- EdTech sales and marketing teams
- School supply and curriculum vendors
- Nonprofits, researchers, and data analysts
- Staffing and professional development providers

It combines Google Maps discovery with deep website crawling to extract publicly available contact data — producing a clean, deduplicated k12 schools list ready for immediate use.

Use it as your all-in-one k12 schools lead finder, k12 schools contact scraper, and k12 schools email finder. Whether you need a school-by-school roll-up or district-level discovery, this k12 schools email scraper automates the entire pipeline.

---

#### 📦 What Data Does It Extract?

| Field | Description |
|---|---|
| Business Name | School or district name from Google Maps |
| Website | Official site URL where available |
| Phone | Primary phone from the listing or website |
| Full Address | Complete mailing address as listed |
| City / State / ZIP | Parsed location components |
| Country Code | ISO country code where available |
| Emails | All public k12 schools email addresses extracted from website pages |
| Additional Phones | Extra numbers discovered during crawl |
| Social Media Links | Facebook, Instagram, LinkedIn, X (Twitter), and more |
| Email Count | Total unique emails found per school |
| Pages Scraped | Number of website pages crawled per domain |
| Rating | Average Google Maps rating (if present) |
| Reviews | Total number of Google reviews (if present) |
| 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": "K12 Schools",
  "googleMapsLocation": ["New York"]
}
````

##### Full Example with All Options

```json
{
  "googleMapsSearchTerm": "K12 Schools",
  "googleMapsLocation": [
    "New York",
    "Austin, Texas",
    "San Diego, California"
  ],
  "maxBusinesses": 200,
  "scrapeMaxBusinessesPerLocation": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

##### Input Parameters

| Parameter | Type | Required | Description |
|---|---|---|---|
| `googleMapsSearchTerm` | String | ✅ Yes | Search term — e.g., "K12 Schools", "charter schools", "middle schools", "high schools" |
| `googleMapsLocation` | Array | ✅ Yes | One or more locations — e.g., \["New York", "Austin, Texas"] |
| `maxBusinesses` | Integer | ❌ No | Target number of schools with emails to return (1–1,000). Run stops when target is reached. Default: 5 |
| `scrapeMaxBusinessesPerLocation` | Boolean | ❌ No | If true, applies the cap per location. If false, cap is combined across all locations |
| `proxyConfiguration` | Object | ❌ No | Proxy settings. Strongly recommended for large runs and reliability |

***

#### 📤 Sample Output

```json
[
  {
    "name": "Brookside Elementary School",
    "website": "https://www.brooksideelementaryny.org",
    "phone": "+1 212-555-0177",
    "full_address": "45 Brookside Ave, New York, NY 10027, United States",
    "city": "New York",
    "state": "NY",
    "zip": "10027",
    "country_code": "US",
    "scraped_emails": [
      "info@brooksideelementaryny.org",
      "principal@brooksideelementaryny.org"
    ],
    "scraped_phones": ["+1 212-555-0177", "+1 212-555-0102"],
    "scraped_social_media": [
      "facebook:https://facebook.com/brooksideelementaryny",
      "twitter:https://twitter.com/brooksideelemny"
    ],
    "emails_found": 2,
    "pages_scraped": 18,
    "avg_rating": 4.5,
    "total_reviews": 38,
    "lat": 40.8117,
    "long": -73.9561,
    "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 school and district listings (name, address, phone, website)
Step 3 → Visit each website and crawl key pages (Home, Contact, About, Staff)
Step 4 → Extract public emails, phone numbers, and social links (e.g., directories)
Step 5 → Deduplicate and normalize all contact data
Step 6 → Return structured results ready for export or API consumption
```

Use it as a reliable k12 schools lead scraper and k12 schools email extractor to automate discovery and capture — at scale and with repeatability.

***

#### ✨ Key Features

##### 🎯 Precise Location Targeting

Enter any city, state, or region. The actor pinpoints schools and districts in your exact target areas — delivering hyper-local k12 schools leads you can act on.

##### 🔍 Deep Website Crawl

Goes beyond the listing page. Crawls homepages, contact/staff directories, and footer sections to surface public k12 schools email addresses and key phone numbers.

##### 🧭 Flexible Search Terms

Target "public schools", "charter schools", "elementary schools", "middle schools", "high schools", or district offices to tailor your k12 schools list.

##### 🌎 Multi-Location Scaling

Run across dozens of cities at once. Choose a combined cap or a per-location cap — ideal for creating region-wide k12 schools leads for campaigns.

##### 🧹 Smart De-Duplication

Automatically removes duplicate emails per domain so your exports stay clean and usable — no manual cleanup after download.

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

Normalized fields and consistent formatting make it easy to drop results into HubSpot, Salesforce, Apollo, Instantly, or your data warehouse.

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

Built-in proxy support enables stable, large-scale runs without rate-limiting — perfect for agency or enterprise throughput.

##### 🔄 Schedulable & Repeatable

Schedule daily, weekly, or monthly runs to keep your k12 schools list fresh and continuously growing.

##### 🧰 Dual-Use: Finder + Scraper

Works as both a k12 schools lead finder for discovery and a k12 schools contact finder for extraction — in a single automated run.

***

#### 🎯 Use Cases

##### 💼 EdTech & Vendor Outreach

Feed your top-of-funnel with k12 schools leads. Use the actor as a k12 schools lead finder to identify campuses and districts, then export clean contacts for campaigns.

##### 📦 Curriculum, Supplies, and Services

Generate targeted segments (elementary vs. high schools, public vs. charter) with the k12 schools lead scraper and tailor messaging by region.

##### 🧑‍🏫 Professional Development & Staffing

Find public emails for HR and staff directories using the k12 schools email extractor, then run compliant outreach for PD programs and open roles.

##### 🤝 Partnerships & Community Programs

Locate district and campus contact pages with the k12 schools contact scraper and build regional partnerships efficiently.

##### 📚 Research, Surveys, and Grants

Use the k12 schools data scraper to compile coverage lists for surveys, pilot programs, or grant communications in a structured, export-ready format.

##### 🗃️ CRM Enrichment

Enrich existing records with missing emails, phones, and social profiles using the k12 schools email finder to increase match rates and deliverability.

***

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

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

- Number of locations added
- Breadth of search terms (e.g., "public schools" vs. specific niches)
- Website density and email visibility in each market
- `maxBusinesses` setting and per-location vs. combined mode
- Proxy configuration and run timeout

Typical Output Ranges

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

Run multiple times across different regions to continuously grow your k12 schools list without hitting 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 contacts are found
- Webhooks — Push results to your CRM or pipeline on run completion

Plug directly into Instantly, Smartlead, Apollo, HubSpot, Salesforce, or any outreach platform that accepts CSV/JSON imports. This k12 schools data scraper integrates cleanly with both sales and research stacks.

***

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

- Step 3 — Set Your Search Term
  Enter "K12 Schools" or a niche variant like "charter schools", "middle schools", or "school district office".

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

- Step 5 — Set Your Limit
  Choose how many schools 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 K12 Schools 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 school and district 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 opt-out/unsubscribe option in all outreach
- Follow applicable laws in your jurisdiction

Relevant regulations to be aware of:

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

This k12 schools data scraper is intended for ethical business and research purposes only. You are responsible for how you use the data collected.

***

#### ❓ Frequently Asked Questions

- Does this scrape private or personal emails?
  No. The actor only extracts emails that are publicly visible on school or district websites — general inboxes, department emails, and published staff contacts.

- Can I search multiple cities in one run?
  Yes. Add as many locations as needed. Use per-location capping for even geographic distribution of k12 schools leads.

- Does it deduplicate results?
  Yes. Emails are deduplicated per domain so your exports stay clean and accurate.

- Can I schedule recurring runs?
  Absolutely. Use Apify's scheduler to run weekly or monthly and keep your k12 schools list fresh.

- What niches does the search term support?
  Any Google Maps searchable term — try "elementary schools", "high schools", "charter schools", or "school district".

- Are proxies required?
  Not for small runs, but strongly recommended for 200+ schools to avoid rate limits and improve consistency.

- How is this different from manual searching?
  Manual search is slow and inconsistent. This tool automates discovery and extraction as a k12 schools contact finder and k12 schools email extractor — in minutes, not hours.

- Can agencies white-label or resell this?
  Yes. Run it on behalf of clients and deliver fresh k12 schools leads on a recurring basis.

***

#### 🧑‍💻 Support & Custom Solutions

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

Email: scrapermindapi@gmail.com

We’re happy to help with:

- Custom input/output configurations
- Niche-specific adaptations (district vs. campus focus)
- Bulk or enterprise run support
- Integration assistance (CRM, webhook, Zapier/Make)

Built for EdTech marketers, vendors, and researchers who need accurate school and district contacts 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": "K12 Schools",
  "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": "K12 Schools",
    "googleMapsLocation": [
        "New York"
    ],
    "maxBusinesses": 5,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

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

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

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "K12 Schools Email Scraper",
        "description": "K12 schools email scraper to collect verified emails from primary and secondary schools, districts, and education directories 📧🏫 Ideal for outreach, partnerships, and education sector lead generation.",
        "version": "1.0",
        "x-build-id": "7oSavm5KytexHfchF"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/contacts-api~k12-schools-email-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-contacts-api-k12-schools-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~k12-schools-email-scraper/runs": {
            "post": {
                "operationId": "runs-sync-contacts-api-k12-schools-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~k12-schools-email-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-contacts-api-k12-schools-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": "K12 Schools"
                    },
                    "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
