# Business Email & Domain Reputation (`josrade/company-domain-risk-archive-20260430`) Actor

Validate business emails and score domain reputation with allow/review/block verdicts. Wraps the Business Email & Domain Reputation API as an Apify Actor that accepts a list of emails and/or domains and writes scored results to the default dataset.

- **URL**: https://apify.com/josrade/company-domain-risk-archive-20260430.md
- **Developed by:** [jts](https://apify.com/josrade) (community)
- **Categories:** Developer tools, Business
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

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

<!-- Generated by npm run sync:marketplace. Do not edit manually. -->

## Business Email & Domain Reputation

### What this Actor does

Validate business emails and score domain reputation with allow/review/block verdicts. Wraps the Business Email & Domain Reputation API as an Apify Actor that accepts a list of emails and/or domains and writes scored results to the default dataset.

### What data can you get?

Each run writes structured Scored email or domain item rows to the Apify dataset. Common fields include:

| Field | What it means |
|---|---|
| `kind` | Whether the scored input is an email or a bare domain. |
| `input` | Original email or domain submitted to the API. |
| `result` | Full upstream API response with classification, recommendation, risk_score, signals, and explanations. |

### How to use Business Email & Domain Reputation

1. Open this Actor in Apify Console.
2. Paste the input JSON below or fill the form fields in the Input tab.
3. Click Start and wait for the run to finish.
4. Open the Dataset tab to preview rows, then export JSON, CSV, Excel, XML, or HTML.
5. For production, schedule the Actor or call it from the Apify API, SDKs, webhooks, or MCP server.

### When to use this

- Fraud teams scoring inbound business email signups for disposable, MX, SPF, DMARC, and TLS posture
- Security review pipelines flagging risky vendor domains during procurement onboarding
- Account-takeover defenses gating high-risk allow/review/block verdicts before login
- B2B onboarding flows blocking free-mail and disposable domains without false positives

### When NOT to use this

- You need consumer-individual reputation — this is business-domain focused
- You need real-time mailbox-existence checks — service stops at deliverability posture
- You need full WHOIS contact data — RDAP returns registrar/age, not all contact fields

### Input example

```json
{
  "domains": [
    "linear.app"
  ]
}
````

### Input fields

Provide a list of emails and/or domains to score. At least one of emails or domains is required.

- `emails` (array, user input): Business or consumer email addresses to validate and score. Each email is checked for syntax, disposable/free provider signals, role account patterns, DNS/MX/SPF/DMARC, website/TLS/RDAP domain signals, and an allow/review/block recommendation.
- `domains` (array, user input): Bare domains to score without an email local part. Use this for vendor domains, signup domains, company websites, and CRM enrichment when you only know the organization domain.
- `apiBaseUrl` (string, optional override): Override of the upstream API base URL. Defaults to runtime.baseUrl from service.json.

### Output dataset

Each dataset item is one scored email or domain with the upstream API response.

- `kind`: Whether the scored input is an email or a bare domain.
- `input`: Original email or domain submitted to the API.
- `result`: Full upstream API response with classification, recommendation, risk\_score, signals, and explanations.

### Sample output

<details><summary>3 example dataset items</summary>

```json
[
  {
    "input": "linear.app",
    "verdict": "allow",
    "score": 12,
    "checks": {
      "disposable": false,
      "freeMail": false,
      "mx": true,
      "spf": "v=spf1 include:_spf.google.com ~all",
      "dmarc": "v=DMARC1; p=quarantine; rua=mailto:dmarc@linear.app",
      "tls": "ok",
      "rdapDomainAgeDays": 1942,
      "registrar": "MarkMonitor Inc."
    }
  },
  {
    "input": "stripe.com",
    "verdict": "allow",
    "score": 4,
    "checks": {
      "disposable": false,
      "freeMail": false,
      "mx": true,
      "spf": "v=spf1 include:amazonses.com include:_spf.google.com ~all",
      "dmarc": "v=DMARC1; p=reject; rua=mailto:dmarc-reports@stripe.com",
      "tls": "ok",
      "rdapDomainAgeDays": 5602,
      "registrar": "MarkMonitor Inc."
    }
  },
  {
    "input": "mailinator.com",
    "verdict": "block",
    "score": 92,
    "checks": {
      "disposable": true,
      "freeMail": false,
      "mx": true,
      "spf": "v=spf1 -all",
      "dmarc": null,
      "tls": "ok",
      "rdapDomainAgeDays": 7820,
      "registrar": "Network Solutions, LLC"
    }
  }
]
```

</details>

### How can you use the Business Email & Domain Reputation data?

- Block disposable emails before free-trial or account creation
- Detect free consumer emails in B2B lead forms
- Flag shared role accounts before routing leads to sales
- Check MX, SPF, DMARC, RDAP domain age, website, and TLS signals before outbound campaigns
- Flag newly registered, high-entropy, punycode, parked, and suspicious-TLD domains
- Clean CRM records with lightweight email/domain reputation context
- Screen vendor and marketplace account domains
- Give AI agents a simple email and domain trust tool
- Normalize upstream email, security & data enrichment data into one Apify dataset contract.

### API, integrations, and MCP

- Run this Actor from Apify Console, schedules, webhooks, REST API, or the Apify SDKs.
- Connect the Actor to AI agents through the Apify MCP server.
- Export dataset items to JSON, CSV, Excel, XML, HTML, Google Sheets, S3, or downstream BI tools.
- Use the generated `INPUT.example.json` as the baseline payload for API calls and scheduled runs.

### FAQ

#### How much does it cost to use this Actor?

Per-check pricing: blocking one disposable-domain signup before fraud loss easily covers thousands of legitimate verifications.

#### Can I use this Actor with the Apify API?

Yes. Use the same input JSON shown above with Apify's REST API, JavaScript SDK, Python SDK, schedules, or webhooks.

#### Can I use this Actor through an MCP server?

Yes. Add this Actor to the Apify MCP server so AI agents can run it and consume the resulting dataset.

#### Is it legal to use this data?

Use this Actor only for the allowed use cases: Business email validation, signup risk scoring, lead enrichment, CRM cleanup, outbound email quality checks, vendor screening, marketplace review, and internal security/operations workflows. Do not use it for prohibited workflows: Use as the sole basis for denying legally protected services, illegal surveillance, credential harvesting, bypassing access controls, or collecting private personal data.

### Pricing

Per-check pricing: blocking one disposable-domain signup before fraud loss easily covers thousands of legitimate verifications.

### Developer notes

Set `COMPANY_DOMAIN_RISK_API_KEY` as an Apify secret environment variable. The Actor forwards it as `X-API-Key` to the upstream API.
Use `apiBaseUrl` only for local or staging QA. Production runs default to the deployed API base URL from service.json.
For advanced testing, a `requests` array can call explicit API paths; normal users should use the service-specific fields above.

### Run locally

```bash
apify run
```

### Deploy

```bash
apify push
```

### Changelog

- 0.1.0 (2026-04-30) — Initial release: business email/domain reputation scoring with disposable detection, MX/SPF/DMARC, TLS, RDAP age, and allow/review/block verdicts.

# Actor input Schema

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

Business or consumer email addresses to validate and score. Each email is checked for syntax, disposable/free provider signals, role account patterns, DNS/MX/SPF/DMARC, website/TLS/RDAP domain signals, and an allow/review/block recommendation.

## `domains` (type: `array`):

Bare domains to score without an email local part. Use this for vendor domains, signup domains, company websites, and CRM enrichment when you only know the organization domain.

## `apiBaseUrl` (type: `string`):

Override of the upstream API base URL. Defaults to runtime.baseUrl from service.json.

## Actor input object example

```json
{
  "emails": [
    "founder@linear.app",
    "person@gmail.com"
  ],
  "domains": [
    "linear.app",
    "mailinator.com"
  ]
}
```

# 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": [
        "founder@linear.app",
        "person@gmail.com"
    ],
    "domains": [
        "linear.app",
        "mailinator.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("josrade/company-domain-risk-archive-20260430").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": [
        "founder@linear.app",
        "person@gmail.com",
    ],
    "domains": [
        "linear.app",
        "mailinator.com",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("josrade/company-domain-risk-archive-20260430").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": [
    "founder@linear.app",
    "person@gmail.com"
  ],
  "domains": [
    "linear.app",
    "mailinator.com"
  ]
}' |
apify call josrade/company-domain-risk-archive-20260430 --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=josrade/company-domain-risk-archive-20260430",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Business Email & Domain Reputation",
        "description": "Validate business emails and score domain reputation with allow/review/block verdicts. Wraps the Business Email & Domain Reputation API as an Apify Actor that accepts a list of emails and/or domains and writes scored results to the default dataset.",
        "version": "0.1",
        "x-build-id": "pGdNbNbRgYN33nivE"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/josrade~company-domain-risk-archive-20260430/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-josrade-company-domain-risk-archive-20260430",
                "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/josrade~company-domain-risk-archive-20260430/runs": {
            "post": {
                "operationId": "runs-sync-josrade-company-domain-risk-archive-20260430",
                "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/josrade~company-domain-risk-archive-20260430/run-sync": {
            "post": {
                "operationId": "run-sync-josrade-company-domain-risk-archive-20260430",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "emails": {
                        "title": "Emails to score",
                        "minItems": 1,
                        "maxItems": 100,
                        "type": "array",
                        "description": "Business or consumer email addresses to validate and score. Each email is checked for syntax, disposable/free provider signals, role account patterns, DNS/MX/SPF/DMARC, website/TLS/RDAP domain signals, and an allow/review/block recommendation.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "domains": {
                        "title": "Domains to score",
                        "maxItems": 100,
                        "type": "array",
                        "description": "Bare domains to score without an email local part. Use this for vendor domains, signup domains, company websites, and CRM enrichment when you only know the organization domain.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "apiBaseUrl": {
                        "title": "API base URL",
                        "type": "string",
                        "description": "Override of the upstream API base URL. Defaults to runtime.baseUrl from service.json."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
