# Email Validator — Bulk Email Verification & Checker (`scrapepilot/email-validator----bulk-email-verification-checker`) Actor

Validate any email list in bulk — syntax check, MX record lookup, and SMTP reachability test. Get quality score (high/medium/low), result classification, and free provider detection per address. Checkpoint resume on abort. $7.99/month. 2-hour free trial.

- **URL**: https://apify.com/scrapepilot/email-validator----bulk-email-verification-checker.md
- **Developed by:** [Scrape Pilot](https://apify.com/scrapepilot) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$7.99/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#rental-actors

## 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

## ✉️ Email Validator — Bulk Email Verification & Email Checker

> **The most reliable Email Validator on Apify.** Verify any email address list in bulk — syntax check, MX record lookup, and SMTP server reachability test — and receive back a quality score (high / medium / low), result classification, and free provider detection for every address. Abort-safe with checkpoint resume. No login. No API key. Instant structured output.

---

### 📌 Table of Contents

- [What Is This Actor?](#what-is-this-actor)
- [Why Use This Email Validator?](#why-use-this-email-validator)
- [Validation Process](#validation-process)
- [Use Cases](#use-cases)
- [Input Parameters](#input-parameters)
- [Output Fields](#output-fields)
- [Example Input & Output](#example-input--output)
- [Pricing & Free Trial](#pricing--free-trial)
- [Performance & Limits](#performance--limits)
- [FAQ](#faq)
- [Changelog](#changelog)
- [Legal & Terms of Use](#legal--terms-of-use)

---

### 🔍 What Is This Actor?

**Email Validator** is a production-ready Apify actor that performs three-layer **email verification** on any list of email addresses — syntax validation, MX record DNS lookup, and SMTP server reachability check — and returns a quality score and detailed result classification for every address.

Provide a list of email addresses and receive back a clean, structured record for each one: the validated email, an overall quality rating (high / medium / low), a result label (valid / invalid / catch_all), a specific sub-result explaining exactly why each email passed or failed, and a flag indicating whether it belongs to a free email provider like Gmail, Yahoo, or Outlook.

This **bulk email checker** processes up to 50 addresses concurrently, saves progress after every 10 addresses, and resumes automatically from the last checkpoint if a run is interrupted — making it the fastest and most reliable **email verification** tool available on Apify for large lists.

---

### 🚀 Why Use This Email Validator?

| Feature | This Actor | Manual Checking | Other Tools | NeverBounce / ZeroBounce |
|---|---|---|---|---|
| **Bulk email verification** | ✅ Any size | ❌ | ⚠️ Limited free | ✅ Expensive |
| **3-layer validation** | ✅ Syntax + MX + SMTP | ❌ | ⚠️ | ✅ |
| **Email quality score** | ✅ High/Medium/Low | ❌ | ⚠️ | ✅ |
| **Free provider detection** | ✅ | ❌ | ⚠️ | ✅ |
| **50 concurrent checks** | ✅ | ❌ | ❌ | ✅ |
| **Abort-safe checkpoint resume** | ✅ | N/A | ❌ | ❌ |
| **No API key or subscription** | ✅ | N/A | ⚠️ | ❌ Required |
| **Structured JSON output** | ✅ | ❌ | ⚠️ | ✅ |
| **Export to CSV / Excel** | ✅ Via Apify | ❌ | ❌ | ✅ |

> **Bottom line:** This **email validator** delivers three-layer **email verification** with quality scoring, free provider detection, and abort-safe checkpoint recovery — at a fraction of the cost of dedicated email verification services like NeverBounce or ZeroBounce.

---

### 🔬 Validation Process

Every email address goes through three validation layers in sequence:

#### Layer 1 — Syntax Check
The address is checked against the standard email format pattern. Invalid characters, missing `@` signs, malformed domains, or addresses shorter than the minimum valid length are flagged immediately with `subresult: "bad_syntax"` and assigned `email_quality: "low"`.

#### Layer 2 — MX Record Lookup
A DNS lookup is performed for the email's domain to check whether valid Mail Exchange (MX) records exist. A domain with no MX records cannot receive email — these are flagged with `subresult: "no_mx_record"` and `email_quality: "low"`. Domains with valid MX records proceed to Layer 3.

#### Layer 3 — SMTP Server Reachability
A connection test is made to the primary MX server on port 25 to verify that the mail server is live and responding. If the server responds with a valid greeting, the address receives `email_quality: "high"` and `email_result: "valid"`. If the server has valid MX records but is unreachable (common with large providers that block datacenter IPs), the address receives `email_quality: "medium"` and `email_result: "catch_all"`.

---

### 🎯 Use Cases

#### 📧 Email List Cleaning & CRM Hygiene
- Validate entire email databases before launching outreach campaigns to reduce bounce rates
- Clean imported lead lists by removing invalid and low-quality addresses before CRM import
- Run periodic **bulk email verification** on your contact database to catch stale or invalid addresses

#### 🚀 Outreach & Cold Email Campaigns
- Use this **email validator** before sending cold email sequences to maximize deliverability
- Separate high-quality verified addresses from catch-all and invalid ones before campaign setup
- Identify and remove free provider emails from B2B outreach lists for better targeting

#### 🛠️ Developer & SaaS Integrations
- Integrate **email verification** into your user registration or lead capture flow via Apify API
- Build automated list validation pipelines that run on new contact imports
- Use quality scores to route contacts into different nurture streams based on email confidence

#### 📊 Data Quality & Analytics
- Audit the quality of purchased or scraped email lists before using them in campaigns
- Measure what percentage of your email list is valid, catch-all, or invalid for data quality reporting
- Identify domains with no MX records to flag defunct companies or invalid business emails

#### 🏢 Sales & Revenue Operations
- Validate prospect email lists before handing them to sales reps for outreach
- Enrich sales intelligence data with email quality scores to prioritize high-confidence contacts
- Reduce wasted outreach effort by filtering invalid and low-quality emails before sequencing

#### 🎓 Research & Academic Use
- Validate contact email datasets for research projects before conducting surveys or outreach
- Study email domain health and MX record availability across industry segments
- Analyze free vs business email adoption patterns across contact datasets

---

### ⚙️ Input Parameters

```json
{
  "emails": [
    "john.smith@example.com",
    "test@gmail.com",
    "invalid-email",
    "contact@company.io"
  ],
  "timeout": 10,
  "proxyConfiguration": {
    "useApifyProxy":    true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
````

| Parameter | Type | Default | Description |
|---|---|---|---|
| `emails` | array | `[]` | List of email addresses to validate — any volume accepted |
| `timeout` | integer | `10` | Timeout in seconds for DNS and SMTP connection checks per email |
| `proxyConfiguration` | object | Optional | Apify proxy config — note that many residential proxies block port 25 (SMTP) |

> **Important note on proxy and SMTP:** Most residential and datacenter proxies block outbound port 25 (SMTP). When SMTP is blocked, the actor returns `email_result: "catch_all"` with `subresult: "smtp_unreachable_or_blocked"` — which means the email has valid MX records but SMTP reachability could not be confirmed. This is still useful for filtering obviously invalid addresses.

***

### 📋 Output Fields

Every record from this **email validator** includes:

| Field | Type | Description | Example |
|---|---|---|---|
| `email` | string | The original email address as provided | `"john.smith@company.com"` |
| `email_quality` | string | Overall quality rating | `"high"`, `"medium"`, `"low"` |
| `email_result` | string | Validation result classification | `"valid"`, `"invalid"`, `"catch_all"` |
| `subresult` | string | Specific reason for the result | `"accepted_email"`, `"bad_syntax"`, `"no_mx_record"`, `"smtp_unreachable_or_blocked"` |
| `free` | boolean | Whether the domain is a free email provider | `true` for Gmail, Yahoo, Outlook, etc. |

#### Quality Score Reference

| `email_quality` | `email_result` | `subresult` | Meaning |
|---|---|---|---|
| `high` | `valid` | `accepted_email` | Passed all 3 layers — safe to use |
| `medium` | `catch_all` | `smtp_unreachable_or_blocked` | Valid MX records but SMTP could not be confirmed — use with caution |
| `low` | `invalid` | `bad_syntax` | Malformed email address — do not use |
| `low` | `invalid` | `no_mx_record` | Domain has no mail server — do not use |

#### Free Provider Detection

The `free` field is `true` for addresses belonging to:
`gmail.com`, `yahoo.com`, `hotmail.com`, `outlook.com`, `aol.com`, `icloud.com`, `mail.com`, `yandex.com`

***

### 📦 Example Input & Output

**Input:**

```json
{
  "emails": [
    "john.smith@company.com",
    "test@gmail.com",
    "not-an-email",
    "contact@defunct-domain-xyz123.com"
  ],
  "timeout": 10
}
```

**Output:**

```json
[
  {
    "email":         "john.smith@company.com",
    "email_quality": "high",
    "email_result":  "valid",
    "subresult":     "accepted_email",
    "free":          false
  },
  {
    "email":         "test@gmail.com",
    "email_quality": "medium",
    "email_result":  "catch_all",
    "subresult":     "smtp_unreachable_or_blocked",
    "free":          true
  },
  {
    "email":         "not-an-email",
    "email_quality": "low",
    "email_result":  "invalid",
    "subresult":     "bad_syntax",
    "free":          false
  },
  {
    "email":         "contact@defunct-domain-xyz123.com",
    "email_quality": "low",
    "email_result":  "invalid",
    "subresult":     "no_mx_record",
    "free":          false
  }
]
```

***

### 💰 Pricing & Free Trial

| Plan | Price | Includes |
|---|---|---|
| **Free Trial** | $0 | 2 hours full access — no credit card required |
| **Monthly** | $7.99 / month | Unlimited runs, any list size, all validation layers |

#### Everything included in every plan:

- ✅ Three-layer **email verification** — syntax, MX DNS, SMTP reachability
- ✅ Quality score (high / medium / low) per address
- ✅ Detailed sub-result classification per address
- ✅ Free provider detection (Gmail, Yahoo, Outlook, and more)
- ✅ 50 concurrent checks — fast bulk processing
- ✅ Abort-safe checkpoint resume — no data loss on interruption
- ✅ Any list size per run
- ✅ JSON + CSV + Excel export from Apify dataset

> **Start your 2-hour free trial now** — no credit card needed. Click **Try for free** at the top of this page.

***

### ⚡ Performance & Limits

| Emails | Estimated Time |
|---|---|
| 100 | ~1–3 minutes |
| 1,000 | ~5–15 minutes |
| 10,000 | ~30–90 minutes |
| 100,000 | ~5–15 hours |

- Up to **50 email addresses checked concurrently** for maximum speed
- Results pushed to the Apify dataset in batches of 10 as they complete
- Checkpoint saved every 10 addresses — restart resumes from the last saved position
- Processing speed depends on DNS and SMTP response times from target mail servers
- Addresses at free providers (Gmail, Yahoo) typically return `catch_all` due to port 25 blocking — this is normal behavior, not an actor limitation

***

### ❓ FAQ

**Q: What is the difference between `valid`, `catch_all`, and `invalid`?**
A: `valid` means the address passed all three checks — syntax, MX DNS, and SMTP server response. `catch_all` means the domain has valid MX records but the SMTP connection could not be confirmed — these emails may or may not exist. `invalid` means the address definitively cannot receive email — either bad syntax or no MX records.

**Q: Why do Gmail and Yahoo addresses return `catch_all` instead of `valid`?**
A: Major free email providers actively block SMTP verification connections from cloud and datacenter IPs to prevent spam list validation. When port 25 is blocked, the actor correctly marks these as `catch_all` with `subresult: "smtp_unreachable_or_blocked"` — this is expected behavior for all major providers.

**Q: Can I trust `email_quality: "high"` results?**
A: Yes — `high` quality means the address passed syntax check, MX record lookup, and received a valid SMTP greeting from the mail server. This is the strongest available signal for deliverability without sending an actual test email. No **email verification** tool can guarantee 100% deliverability.

**Q: What happens if I provide a very large list and the run is aborted?**
A: The actor saves a checkpoint every 10 addresses. If the run is aborted or times out, simply restart it with the same input — the actor skips already-processed addresses and continues from the last checkpoint automatically.

**Q: Does the `free` field affect email quality?**
A: No. `free` is an informational flag only — it tells you whether the address domain is a consumer email provider. The quality score is determined solely by the three validation layers.

**Q: Can I use this for real-time email validation in my app?**
A: This actor is optimized for batch processing. For real-time single-address validation in a live application, consider calling the actor via the Apify API with a single-item input and polling for results.

**Q: Can I export results filtered by quality score?**
A: All results are pushed to the Apify dataset. You can filter by `email_quality` or `email_result` after export using Excel, Google Sheets, or any data tool.

***

### 📜 Changelog

#### v1.0.0 (Current)

- ✅ Three-layer email verification: syntax, MX DNS lookup, SMTP reachability
- ✅ Quality score per address: high / medium / low
- ✅ Result classification: valid / invalid / catch\_all
- ✅ Sub-result detail: accepted\_email / bad\_syntax / no\_mx\_record / smtp\_unreachable\_or\_blocked
- ✅ Free email provider detection (8 major providers)
- ✅ 50 concurrent checks for high-speed bulk processing
- ✅ Abort-safe checkpoint resume — saves progress every 10 addresses
- ✅ Any list size supported
- ✅ Real-time dataset push in batches of 10

***

### 🏷️ Tags

`email validator` `email verification` `bulk email checker` `email validation` `email verifier` `mx record checker` `smtp verification` `email list cleaner` `email quality checker` `bulk email validation` `email hygiene` `email deliverability`

***

### ⚖️ Legal & Terms of Use

This actor performs standard DNS and SMTP connection checks on email addresses — the same checks used by any mail server when deciding whether to accept or reject an incoming message.

**Please note:**

- Use this **email validator** only for **lawful purposes** — list hygiene, deliverability improvement, CRM enrichment, and spam prevention are common legitimate uses
- Do not use this tool to build or validate email lists for spam, unsolicited bulk messaging, or any purpose that violates CAN-SPAM, GDPR, CASL, or other applicable anti-spam laws
- Performing SMTP checks on mail servers is a standard industry practice — however, excessive high-volume checking of specific domains may be considered abusive by those mail server operators
- The actor developer is not responsible for how validated email data is used

***

### 🤝 Support & Feedback

- **Bug report?** Contact us via the Apify actor page
- **Feature request?** Post in the Apify Community forum
- **Loving it?** Please leave a ⭐ review — it helps other users find this actor!

***

<p align="center">
  <strong>Built with ❤️ on Apify</strong><br/>
  <em>The most reliable Email Validator — 3-layer verification, bulk processing, checkpoint resume</em><br/><br/>
  <strong>💰 $7.99/month · 🆓 2-hour free trial · No credit card required</strong>
</p>

# Actor input Schema

## `emails` (type: `array`):

List of email addresses to validate.

## `timeout` (type: `integer`):

Maximum time to wait for DNS/SMTP response per email.

## `proxyConfiguration` (type: `object`):

Proxy settings. (Note: Many proxies block port 25 for SMTP).

## Actor input object example

```json
{
  "emails": [
    "email@example.com",
    "postmaster@yahoo.com",
    "hi@mystore.com",
    "invalid-email-format.com"
  ],
  "timeout": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "emails": [
        "email@example.com",
        "postmaster@yahoo.com",
        "hi@mystore.com",
        "invalid-email-format.com"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapepilot/email-validator----bulk-email-verification-checker").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 = {
    "emails": [
        "email@example.com",
        "postmaster@yahoo.com",
        "hi@mystore.com",
        "invalid-email-format.com",
    ],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapepilot/email-validator----bulk-email-verification-checker").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 '{
  "emails": [
    "email@example.com",
    "postmaster@yahoo.com",
    "hi@mystore.com",
    "invalid-email-format.com"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call scrapepilot/email-validator----bulk-email-verification-checker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapepilot/email-validator----bulk-email-verification-checker",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Email Validator — Bulk Email Verification & Checker",
        "description": "Validate any email list in bulk — syntax check, MX record lookup, and SMTP reachability test. Get quality score (high/medium/low), result classification, and free provider detection per address. Checkpoint resume on abort. $7.99/month. 2-hour free trial.",
        "version": "0.0",
        "x-build-id": "bksXbkGHThMc9WhN1"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapepilot~email-validator----bulk-email-verification-checker/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapepilot-email-validator----bulk-email-verification-checker",
                "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/scrapepilot~email-validator----bulk-email-verification-checker/runs": {
            "post": {
                "operationId": "runs-sync-scrapepilot-email-validator----bulk-email-verification-checker",
                "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/scrapepilot~email-validator----bulk-email-verification-checker/run-sync": {
            "post": {
                "operationId": "run-sync-scrapepilot-email-validator----bulk-email-verification-checker",
                "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": [
                    "emails"
                ],
                "properties": {
                    "emails": {
                        "title": "Email List",
                        "type": "array",
                        "description": "List of email addresses to validate.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "timeout": {
                        "title": "Timeout (seconds)",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum time to wait for DNS/SMTP response per email.",
                        "default": 10
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings. (Note: Many proxies block port 25 for SMTP)."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
