# BreachHound (`blukaze/breachhound`) Actor

reachHound discovers where an email address is registered across 120+ online services. Built for identity verification, fraud prevention, compliance, and corporate security with fast, structured, automation-ready results.

- **URL**: https://apify.com/blukaze/breachhound.md
- **Developed by:** [Blukaze Automations](https://apify.com/blukaze) (community)
- **Categories:** Developer tools, Social media, Other
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$0.01 / actor start

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

## BreachHound — Digital Identity Auditor

**BreachHound** is an enterprise-grade digital footprint auditing tool that identifies which online platforms and services are associated with a given email address. Built for identity verification teams, fraud prevention analysts, and corporate security operations, it provides rapid, automated discovery across 120+ online services.

### What does BreachHound do?

BreachHound takes an email address as input and systematically queries registration, login, and account-recovery endpoints across a wide range of online platforms. For each service, it determines whether an account associated with that email address exists, returning a structured dataset of results.

#### Key use cases

| Use Case | Description |
|---|---|
| **Identity Verification** | Confirm that a user's declared digital presence matches their actual online footprint during onboarding or KYC workflows. |
| **Fraud Prevention** | Detect synthetic identities by auditing whether an email has a plausible pattern of real online registrations. |
| **Corporate Security** | Audit employee email addresses to identify shadow IT exposure — accounts on unauthorized services that may leak corporate credentials. |
| **M&A Due Diligence** | Assess the digital exposure of key personnel during mergers and acquisitions security reviews. |
| **Compliance Auditing** | Generate evidence of digital presence for regulatory compliance and risk assessments. |

#### Services covered

BreachHound checks 120+ platforms across these categories:

- **Social Media** — Instagram, Twitter/X, Snapchat, Pinterest, Tumblr, and more
- **Professional** — GitHub, Atlassian, Docker, LinkedIn (via related services)
- **Productivity** — Evernote, Lastpass, Office365, WordPress
- **E-Commerce** — Amazon, eBay, Deliveroo, Nike
- **Music & Media** — Spotify, SoundCloud, Last.fm, Flickr, Imgur
- **CRM & Business** — HubSpot, Pipedrive, Zoho, Salesforce (via related services)
- **Finance** — Venmo, PayPal (via related services)
- **And many more...**

### Input configuration

The Actor accepts the following input parameters:

```json
{
    "email": "analyst@company.com",
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": ["RESIDENTIAL"]
    },
    "onlyUsed": true,
    "maxRetries": 3,
    "retryDelay": 1
}
````

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `email` | String | ✅ | — | The email address to audit for associated online accounts. |
| `proxyConfiguration` | Object | ❌ | `null` | Apify proxy configuration. Recommended for production to avoid rate limiting. |
| `onlyUsed` | Boolean | ❌ | `true` | When enabled, only services where an account was found are included in the output. |
| `maxRetries` | Integer | ❌ | `3` | Maximum number of retry attempts for checks that get rate-limited or fail due to network errors. |
| `retryDelay` | Integer | ❌ | `1` | The delay in seconds before retrying a rate-limited check (uses exponential backoff). |

> **💡 Tip:** Using Apify residential proxies (`RESIDENTIAL` group) significantly reduces rate limiting from target services and is strongly recommended for production workloads.

### Output dataset

Results are pushed to the default Apify Dataset as structured JSON objects. Each record represents one service check:

```json
{
    "email": "analyst@company.com",
    "website": "instagram.com",
    "name": "instagram",
    "status": "found"
}
```

```json
{
    "email": "analyst@company.com",
    "website": "github.com",
    "name": "github",
    "status": "not_found"
}
```

```json
{
    "email": "analyst@company.com",
    "website": "spotify.com",
    "name": "spotify",
    "status": "rate_limited"
}
```

#### Status values

| Status | Meaning |
|---|---|
| `found` | An account associated with this email was positively identified on the service. |
| `not_found` | No account associated with this email was detected on the service. |
| `rate_limited` | The service rate-limited the request. Re-run with proxies or retry later. |

#### Enriched fields

When available, the following additional fields may appear in the output:

| Field | Description |
|---|---|
| `emailRecovery` | Partially redacted recovery email address associated with the account. |
| `phoneNumber` | Partially redacted phone number associated with the account. |
| `others` | Additional metadata such as full name, creation date, or profile details. |

### Example full output

When `onlyUsed` is set to `true`, a typical output dataset looks like:

```json
[
    {
        "email": "analyst@company.com",
        "website": "instagram.com",
        "name": "instagram",
        "status": "found"
    },
    {
        "email": "analyst@company.com",
        "website": "spotify.com",
        "name": "spotify",
        "status": "found",
        "emailRecovery": "a*****t@gmail.com"
    },
    {
        "email": "analyst@company.com",
        "website": "github.com",
        "name": "github",
        "status": "found"
    },
    {
        "email": "analyst@company.com",
        "website": "adobe.com",
        "name": "adobe",
        "status": "found",
        "emailRecovery": "a*****t@company.com",
        "phoneNumber": "+1*****89"
    }
]
```

### Performance and reliability

- **Speed**: BreachHound runs all checks concurrently using an async execution model, completing a full audit of 120+ services in approximately 15–45 seconds depending on network conditions.
- **Error handling**: Individual module failures are isolated — a single service timeout will never crash the entire audit run. Failed checks are reported as `rate_limited` status.
- **Proxy support**: Full integration with Apify's proxy infrastructure ensures reliable, high-throughput execution suitable for batch processing.
- **Retry mechanism**: Built-in retries with exponential backoff help navigate transient rate limits and network errors automatically.

### Integrations

BreachHound works seamlessly with the Apify ecosystem:

- **Apify API** — Trigger audits programmatically via the Apify REST API or any of the official client libraries (Python, JavaScript, etc.).
- **Webhooks** — Configure webhooks to receive notifications when an audit completes.
- **Scheduled runs** — Set up recurring audits for ongoing monitoring of key email addresses.
- **Apify Storage** — Results are stored in Apify Datasets and can be exported to CSV, JSON, Excel, or integrated with external systems.

### Legal and ethical use

BreachHound is designed exclusively for **lawful and ethical purposes** including:

- Corporate security assessments with proper authorization
- Identity verification during legitimate onboarding processes
- Fraud prevention and detection within regulated frameworks
- Authorized penetration testing and security auditing

Users are responsible for ensuring their use of this tool complies with all applicable laws, regulations, and organizational policies. This tool should only be used on email addresses that you are authorized to investigate.

### Technical details

- **Runtime**: Python 3.11 on Apify Actor platform
- **Concurrency model**: Trio async nurseries for parallel service checks
- **HTTP client**: HTTPX with configurable proxy and timeout support

### Creator

Created and maintained by **[Blukaze.com](https://blukaze.com)**.

### Support

If you encounter issues or have feature requests, please open an issue on the Actor's GitHub repository or contact the maintainer through the Apify Store.

# Actor input Schema

## `email` (type: `string`):

Enter the email address you want to audit for associated online accounts.

## `onlyUsed` (type: `boolean`):

When enabled, only services where an account was found will be included in the output. Disable this to return all services, including "not\_found" and "rate\_limited".

## `useResidentialProxy` (type: `boolean`):

Uses Apify Residential Proxies to significantly reduce rate limiting and improve detection coverage. If disabled, requests will be sent directly.

## `maxRetries` (type: `integer`):

Maximum number of retry attempts for failed requests.

## `retryDelay` (type: `integer`):

Delay between retry attempts.

## Actor input object example

```json
{
  "email": "john.doe@example.com",
  "onlyUsed": true,
  "useResidentialProxy": true,
  "maxRetries": 3,
  "retryDelay": 1
}
```

# 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 = {
    "email": "john.doe@example.com"
};

// Run the Actor and wait for it to finish
const run = await client.actor("blukaze/breachhound").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 = { "email": "john.doe@example.com" }

# Run the Actor and wait for it to finish
run = client.actor("blukaze/breachhound").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 '{
  "email": "john.doe@example.com"
}' |
apify call blukaze/breachhound --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "BreachHound",
        "description": "reachHound discovers where an email address is registered across 120+ online services. Built for identity verification, fraud prevention, compliance, and corporate security with fast, structured, automation-ready results.",
        "version": "0.0",
        "x-build-id": "FUihOrNeSpzP6LGOU"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/blukaze~breachhound/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-blukaze-breachhound",
                "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/blukaze~breachhound/runs": {
            "post": {
                "operationId": "runs-sync-blukaze-breachhound",
                "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/blukaze~breachhound/run-sync": {
            "post": {
                "operationId": "run-sync-blukaze-breachhound",
                "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": [
                    "email"
                ],
                "properties": {
                    "email": {
                        "title": "Email Address",
                        "type": "string",
                        "description": "Enter the email address you want to audit for associated online accounts."
                    },
                    "onlyUsed": {
                        "title": "Return Only Found Accounts",
                        "type": "boolean",
                        "description": "When enabled, only services where an account was found will be included in the output. Disable this to return all services, including \"not_found\" and \"rate_limited\".",
                        "default": true
                    },
                    "useResidentialProxy": {
                        "title": "Use Apify Residential Proxies (Recommended)",
                        "type": "boolean",
                        "description": "Uses Apify Residential Proxies to significantly reduce rate limiting and improve detection coverage. If disabled, requests will be sent directly.",
                        "default": true
                    },
                    "maxRetries": {
                        "title": "Maximum Retries",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Maximum number of retry attempts for failed requests.",
                        "default": 3
                    },
                    "retryDelay": {
                        "title": "Retry Delay (seconds)",
                        "minimum": 0,
                        "maximum": 30,
                        "type": "integer",
                        "description": "Delay between retry attempts.",
                        "default": 1
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
