Email OSINT & Account Finder avatar

Email OSINT & Account Finder

Pricing

from $4.50 / 1,000 results

Go to Apify Store
Email OSINT & Account Finder

Email OSINT & Account Finder

Find public accounts linked to an email across supported websites. Check account-existence signals, identify found accounts, separate not-found from uncertain results, and get clean structured data for OSINT, investigations, enrichment, and API workflows.

Pricing

from $4.50 / 1,000 results

Rating

0.0

(0)

Developer

LanceAPI

LanceAPI

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

📧 Email OSINT Account Finder

Find public account-existence signals linked to an email address across supported websites, with one clean result per email.

Enter one or more email addresses and check them across all currently supported platforms, or target only the websites you care about. The Actor returns which platforms found account signals and clearly separates found, not found, and uncertain checks, so blocked or rate-limited platforms are not incorrectly treated as confirmed negatives.

Each valid email produces one dataset result item. Multiple found accounts for the same email are grouped inside accounts, and the email is still billed as one result.

Why users choose this Actor:

  • One email → one clean result: easy to scan, export, and send to another system.
  • Found is not confused with uncertain: blocked, timed-out, errored, and inconclusive checks are counted separately.
  • Broad scan or targeted lookup: check all supported platforms or only selected sites such as GitHub, Instagram, Office365, or Spotify.
  • Simple result-based pricing: one valid email result creates one result charge, even if several account signals are found.

Important: a found account is an account-existence signal, not legal proof, identity verification, or email deliverability verification. Public websites can change their flows, block requests, or return inconclusive responses.

✨ Key Features

One email, one result

Each input email produces exactly one dataset item. Found platforms are nested under accounts, so your dataset does not turn into a long list of platform rows.

Found, not found, and uncertain are separated

The Actor reports foundCount, notFoundCount, and uncertainCount up front. Rate limits, timeouts, errors, and inconclusive checks stay separate instead of being counted as confirmed not found.

Broad scan or targeted account lookup

Leave selectedPlatforms empty to check all currently supported platforms, or select specific platforms for a focused email account lookup.

Structured JSON for workflows

Results are normalized for Apify datasets and APIs, making them easier to use in spreadsheets, CRMs, fraud review tools, internal dashboards, and AI workflows.

Batch-friendly email OSINT

Run one email or a larger list in the same input. Emails are normalized, deduplicated, and processed into clean per-email result items.

⚡ Quick Start

  1. Add one or more email addresses.
  2. Leave Platforms to check empty to check all supported platforms, or select only the sites you need.
  3. Click Start and open the Dataset to review the results.

Minimal input:

{
"emails": ["test@example.com"]
}

test@example.com is a reserved example email address. For real runs, use only email addresses you own, have permission to investigate, or are otherwise allowed to process.

Short Output Example

This is an example structure showing the shape of a successful result:

{
"email": "person@example.com",
"platformsChecked": 121,
"foundCount": 1,
"notFoundCount": 42,
"uncertainCount": 78,
"rateLimitedCount": 68,
"errorCount": 9,
"timeoutCount": 0,
"accounts": [
{
"platform": "office365",
"domain": "office365.com",
"emailRecovery": null,
"phoneNumber": null,
"others": null
}
],
"elapsedMs": 8271,
"checkedAt": "2026-08-28T11:56:29.916997+00:00"
}

Input

The public input is intentionally small. Runtime decisions such as timeout, concurrency, retry behavior, and proxy strategy are handled by the Actor.

FieldTypeRequiredDefaultDescription
emailsarray of stringsYes["test@example.com"]One or more email addresses to check. Inputs are trimmed, lowercased, deduplicated, and validated. Maximum valid emails per run: 500.
selectedPlatformsarray of stringsNo[]Optional platform filter. Leave empty to check all currently supported platforms. Use values such as github, instagram, office365, or spotify for a targeted search.
noPasswordRecoverybooleanNofalseAdvanced option. Set to true to skip platforms that rely on password-recovery flows for account detection. Turning it on may reduce coverage.

Platform selection logic

  • If selectedPlatforms is empty or missing, the Actor checks all currently supported platforms.
  • If selectedPlatforms contains platform names, the Actor checks only those platforms.
  • If noPasswordRecovery is true, password-recovery-style checks are removed from the selected platform set.

Input Examples

Check one email across all supported platforms

{
"emails": ["test@example.com"]
}

Check multiple emails

{
"emails": [
"first@example.com",
"second@example.com"
]
}

Check only selected platforms

{
"emails": ["test@example.com"],
"selectedPlatforms": ["github", "instagram", "spotify"]
}

Skip password-recovery checks

{
"emails": ["test@example.com"],
"noPasswordRecovery": true
}

API Usage

Actor ID:

lance_api/email-osint-account-finder

Use your own Apify token through the APIFY_TOKEN environment variable. Do not put tokens directly into source code.

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const input = {
emails: ['test@example.com'],
selectedPlatforms: ['github', 'office365'],
};
const run = await client.actor('lance_api/email-osint-account-finder').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("lance_api/email-osint-account-finder").call(
run_input={
"emails": ["test@example.com"],
"selectedPlatforms": ["github", "office365"],
}
)
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

Output

Each valid input email produces exactly one dataset item.

Found accounts are returned inside accounts. The Actor does not create separate dataset rows for each found platform.

The default dataset views are:

  • Overview: the main result view with the most useful fields first
  • All fields: the complete dataset item

Complete Output Field Reference

Core result fields

FieldTypeNullableDescription
emailstringNoThe normalized email address that was checked.
platformsCheckedintegerNoNumber of platforms checked for this email.
foundCountintegerNoNumber of platforms that returned an account-existence signal. This equals accounts.length.
notFoundCountintegerNoNumber of platforms that clearly returned no account signal.
uncertainCountintegerNoNumber of checks that were not confirmed found or confirmed not found.
rateLimitedCountintegerNoNumber of platforms that reported a blocked or rate-limited response.
errorCountintegerNoNumber of platform checks that raised or returned an error.
timeoutCountintegerNoNumber of platform checks that exceeded the internal timeout.
inconclusiveCountintegerNoNumber of platform results that did not match a known result shape.
accountsarrayNoFound account signals for this email. Empty when no account signals were found.
elapsedMsintegerNoScan duration for this email, in milliseconds.
checkedAtstringNoISO 8601 timestamp when the email result was created.

accounts array fields

FieldTypeNullableDescription
platformstringNoPlatform name, such as github, office365, or spotify.
domainstringYesPlatform domain when available from the underlying module.
emailRecoverystring or nullYesMasked recovery email hint when returned by the platform.
phoneNumberstring or nullYesMasked phone recovery hint when returned by the platform.
othersobject, array, string, or nullYesAdditional non-standard information returned by a platform module, if any.

Status Values

The final dataset item does not include separate platform rows, but the Actor internally classifies every platform check into one of these statuses and rolls them into the count fields.

StatusMeaningReflected in outputPer-result billing
FOUNDA platform returned an account-existence signal.Added to accounts; counted in foundCount.No separate extra charge.
NOT_FOUNDA platform clearly did not return an account signal.Counted in notFoundCount.No separate extra charge.
RATE_LIMITEDThe platform blocked or rate-limited the check.Counted in rateLimitedCount and uncertainCount.No separate extra charge.
TIMEOUTThe platform check exceeded the internal timeout.Counted in timeoutCount and uncertainCount.No separate extra charge.
ERRORA platform module or request failed.Counted in errorCount and uncertainCount.No separate extra charge.
INCONCLUSIVEThe response did not match a known result shape.Counted in inconclusiveCount and uncertainCount.No separate extra charge.

A single platform error does not stop the whole batch. Other platforms and other emails continue to run.

Complete Output Example

This is an example structure. It uses reserved example data and should not be read as a claim that the example email owns these accounts.

{
"email": "person@example.com",
"platformsChecked": 121,
"foundCount": 2,
"notFoundCount": 43,
"uncertainCount": 76,
"rateLimitedCount": 66,
"errorCount": 9,
"timeoutCount": 0,
"inconclusiveCount": 1,
"accounts": [
{
"platform": "office365",
"domain": "office365.com",
"emailRecovery": null,
"phoneNumber": null,
"others": null
},
{
"platform": "twitter",
"domain": "twitter.com",
"emailRecovery": null,
"phoneNumber": null,
"others": null
}
],
"elapsedMs": 12661,
"checkedAt": "2026-08-28T12:34:46.403634+00:00"
}

No accounts found example

{
"email": "person@example.com",
"platformsChecked": 121,
"foundCount": 0,
"notFoundCount": 45,
"uncertainCount": 76,
"rateLimitedCount": 67,
"errorCount": 9,
"timeoutCount": 0,
"inconclusiveCount": 0,
"accounts": [],
"elapsedMs": 8123,
"checkedAt": "2026-08-28T12:35:10.100000+00:00"
}

💳 Pricing

This Actor uses pay-per-result pricing.

The configured billing event is result, charged once for each valid email address that produces one dataset result item.

Base price: $0.006 per email result, or $6.00 per 1,000 email results.

Simple billing examples:

  • 1 email checked → 1 result charge
  • 1 email checked with 5 found accounts → still 1 result charge
  • 100 valid emails checked → up to 100 result charges
  • Platform-level rate limits, timeouts, errors, and multiple found accounts do not create extra result charges.

Eligible Apify plan pricing may reduce the effective per-result price shown in the Actor's Pricing tab. Check the Pricing tab before running for the exact price available to your account.

To control cost, run a smaller list of emails first or use selectedPlatforms for targeted checks.

🎯 Use Cases

Email OSINT research

Run repeatable email OSINT checks from the Apify Console or API and export one clean result item per email for analysis.

Account discovery

Find public account-existence signals linked to an email address across supported platforms, then review the results as leads rather than identity proof.

Fraud & risk review

Add email account signals to manual risk reviews, onboarding checks, abuse investigations, or fraud triage workflows.

Trust & safety investigations

Separate found, not found, and uncertain checks so blocked or inconclusive platforms do not get treated as confirmed negatives.

CRM & data enrichment

Add lightweight public account context to permitted CRM records and enrichment pipelines using structured JSON.

API & AI workflows

Call the Actor from scripts, internal tools, dashboards, or AI agents that need an email account finder API.

How It Works

  1. The Actor validates, normalizes, and deduplicates the input emails.
  2. It builds the current supported platform list from the underlying account-check modules.
  3. It checks either all supported platforms or only the platforms selected in selectedPlatforms.
  4. Each platform result is classified as found, not found, rate-limited, timed out, error, or inconclusive.
  5. The Actor returns one final dataset item per email, with found accounts nested under accounts.

The Actor uses the open-source Holehe engine under the hood and normalizes the results for Apify datasets and APIs.

Public Data and Responsible Use

Use this Actor only for email addresses you own, have permission to investigate, or are otherwise allowed to process.

This Actor is designed for public account-existence signals. It does not access private accounts, bypass authentication, retrieve passwords, read inboxes, or verify that an email address is deliverable.

You are responsible for complying with website terms, Apify terms, privacy laws, anti-spam rules, and any rules that apply to your use case. Do not use this Actor for harassment, spam, illegal profiling, or attempts to obtain non-public information.

FAQ

Can I find accounts linked to an email address?

The Actor can check supported platforms and return public account-existence signals linked to an email address. Results do not prove account ownership, identity, or control of the email.

Can I find social media accounts by email?

The Actor can check currently supported platforms that return account-existence signals. Not every social platform supports email-based detection, and some checks may be rate-limited, blocked, or inconclusive.

What does a found account mean?

FOUND means a supported platform returned an account-existence signal for the email address. It does not prove identity, ownership, intent, or deliverability.

Does one email produce multiple dataset rows?

No. Each valid email produces exactly one dataset item. Multiple found platforms are listed inside the accounts array.

What happens when no accounts are found?

The Actor still returns one dataset item for that email with foundCount set to 0 and accounts set to an empty array.

Why is uncertainCount sometimes high?

Some websites block checks, rate-limit traffic, change their pages, time out, or return responses that cannot be interpreted reliably. Those checks are counted as uncertain instead of being treated as confirmed not-found results.

Can I check only a few platforms?

Yes. Use selectedPlatforms and provide platform values such as github, instagram, office365, or spotify. Leave it empty to check all currently supported platforms.

Does this verify whether an email address can receive mail?

No. This Actor does not perform email deliverability verification, SMTP checks, inbox checks, or email validation beyond input format validation.

How are results billed?

The result event is charged once per valid email result item. Multiple found accounts for the same email do not create extra result charges.

Does one failed platform stop the whole run?

No. A platform-level error is counted in the result summary, and the Actor continues checking other platforms and other emails.

Limitations

  • Public websites can change their flows at any time.
  • Some platforms may block, rate-limit, time out, error, or return inconclusive responses.
  • Recovery hints such as emailRecovery and phoneNumber are only returned when a platform provides masked values.
  • domain and others may be null depending on the platform result.
  • The Actor does not verify email deliverability.
  • The Actor does not search breach databases.
  • The Actor does not retrieve private profile data, passwords, inbox content, tokens, cookies, or session data.
  • Results should be treated as leads or signals that may require human review.

Support

For support, contact lanceapi2026@hotmail.com or open an issue on the Actor's Issues page.

When reporting a problem, include the Run ID, non-sensitive example input, relevant status counts, and any error message shown in the run log. Do not send Apify tokens, cookies, passwords, private keys, or other secrets.