WhoIsThisPerson avatar

WhoIsThisPerson

Pricing

from $0.50 / actor start

Go to Apify Store
WhoIsThisPerson

WhoIsThisPerson

Multi-engine search (Google, Bing, Yandex, FaceCheck.ID) with AI face verification and social discovery. It ranks and verifies matches using confidence scoring for faster, reliable OSINT investigations, due diligence, and identity verification.

Pricing

from $0.50 / actor start

Rating

5.0

(1)

Developer

REXREUS D.O

REXREUS D.O

Maintained by Community

Actor stats

0

Bookmarked

9

Total users

4

Monthly active users

13 days ago

Last modified

Share

๐Ÿ” Whoisthisperson - Find, Verify, and Rank People From an Image

Multi-engine reverse image search with AI face verification and social footprint discovery

A production-ready Apify Actor for buyers who need faster, more reliable image intelligence. It combines multiple reverse image search engines, face verification, and result ranking into one cloud-run workflow.

License: ISC Node.js TypeScript


๐Ÿš€ Why Use This Actor?

The Problem

Standard reverse image search can produce a lot of noise. It is hard to know which results actually match the target person, and manual checking takes time.

Our Solution

  • ๐Ÿ”— Multi-engine coverage: Search Google, Yandex, Bing, and FaceCheck.ID in one run
  • ๐Ÿง  Face verification: Compare likely matches with local embeddings and confidence scoring
  • ๐ŸŒ Social discovery: Surface related public profiles when available
  • โšก Faster review: Rank, deduplicate, and score results so you can focus on the strongest matches
  • ๐Ÿ”’ Privacy-aware processing: Verification happens inside the Actor runtime, not in your browser

What Buyers Get

  • A single workflow instead of juggling separate search tools.
  • Better signal quality with confidence and review flags.
  • Structured output that is easy to read, export, or automate.
  • Results that are useful for investigations, due diligence, and repeated checks.

Trust & Credibility

  • Transparent scoring so buyers can see why a result ranked higher.
  • Clear review flags so weak matches are easy to separate from stronger ones.
  • Engine-level metadata so users can compare performance and coverage.
  • Structured output so the result format stays consistent across runs.
  • Cloud-run execution so buyers get a managed Actor experience inside Apify.

โœจ Key Features

Queries up to 4 reverse image search engines in parallel:

  • Google Lens - Largest index, excellent general coverage
  • Yandex Images - Strong for faces and Russian-language content
  • Bing Visual Search - Good for technical/document images
  • FaceCheck.ID - Specialized face search API (optional, API key required)

2. Intelligent Face Verification

โ”Œโ”€ Input Image
โ”‚ โ””โ”€โ†’ [Face Detection] โ†’ Extract primary face (128-d embedding)
โ”‚
โ”œโ”€โ†’ Multi-Engine Search (Parallel)
โ”‚ โ”œโ”€ Google Results
โ”‚ โ”œโ”€ Yandex Results
โ”‚ โ”œโ”€ Bing Results
โ”‚ โ””โ”€ FaceCheck Results
โ”‚
โ””โ”€โ†’ Face Verification Pipeline
โ”œโ”€ Extract face embeddings from results
โ”œโ”€ Calculate cosine similarity scores
โ”œโ”€ Apply multi-tier confidence system
โ”œโ”€ Correlate with metadata (name, location, age)
โ””โ”€โ†’ Ranked & Deduplicated Results

Multi-Tier Confidence System:

  • ๐ŸŸข Very High (0.95+): Same photo or identical person (auto-accept)
  • ๐ŸŸข High (0.90-0.95): Highly likely match + metadata validation
  • ๐ŸŸก Medium (0.85-0.90): Probable match, manual review recommended
  • ๐Ÿ”ด Low (<0.85): Requires careful verification

3. Social Media Intelligence

  • Extracts names from search results
  • Generates username variations (johndoe, john.doe, john_doe, etc.)
  • Checks Instagram, LinkedIn, and Twitter/X for matching profiles
  • Compares profile pictures with input face for additional verification

4. Advanced Result Aggregation

  • URL Deduplication: Removes duplicate results using URL normalization
  • Face-Based Deduplication: Groups similar faces (similarity > 0.95)
  • Cross-Engine Validation: Boosts confidence if result found by multiple engines
  • Domain Diversity: Limits results per domain to avoid over-representation
  • Composite Scoring: Combines face similarity, metadata quality, and engine reliability

5. Memory & Performance Optimization

  • Lazy-loads AI models (loaded only when needed)
  • Quantized face-api models (50% size reduction)
  • Forced garbage collection between batches
  • Adaptive execution modes (full, fast, minimal)
  • Automatic memory monitoring and fallback strategies

๐Ÿ“‹ Input Parameters

ParameterTypeDescriptionDefaultRange
imageUrlstringURL of image to search--
imageBase64stringBase64-encoded image data--
enginesarraySearch engines: google, yandex, bing, facecheckAll-
minSimilaritynumberFace similarity threshold for filtering0.850.0-1.0
depthintegerMax results per engine201-100
maxResultsintegerMax total results after aggregation501-200
timeoutintegerTimeout per engine (seconds)3010-120
sortBystringSort results by: similarity, confidence, enginesimilarity-
enableSocialFootprintbooleanSearch for social media profilestrue-
socialPlatformsarrayPlatforms to check: instagram, linkedin, twitterAll-
minSocialSimilaritynumberFace match threshold for social profiles0.800.0-1.0
facecheckApiKeystringFaceCheck.ID API key (optional)--
googleApiKeystringGoogle API key for search/vision--
googleCxstringGoogle Custom Search Engine ID--
bingApiKeystringBing Image Search API key--
twitterBearerTokenstringTwitter/X API token for faster verification--
instagramAccessTokenstringInstagram access token--
linkedinAccessTokenstringLinkedIn access token--
proxyConfigurationobjectProxy settings (residential recommended)--

๐Ÿ“ค Output Format

{
"searchId": "search_xyz123",
"inputImageUrl": "https://example.com/photo.jpg",
"inputFaceDetected": true,
"engines": ["google", "yandex", "bing"],
"results": [
{
"rank": 1,
"imageUrl": "https://...",
"sourceUrl": "https://example.com/photo",
"title": "Person Profile",
"snippet": "Professional headshot...",
"engine": "google",
"sources": ["google", "yandex"],
"faceSimilarity": 0.96,
"confidence": "very_high",
"compositeScore": 0.94,
"requiresReview": false,
"verification": {
"similarity": 0.96,
"confidence": "very_high",
"faceDetectionConfidence": 0.99,
"verificationMethod": "facenet-cosine"
}
}
],
"socialFootprint": {
"instagram": [
{
"username": "johndoe",
"url": "https://instagram.com/johndoe",
"faceSimilarity": 0.91,
"confidence": "high",
"followersCount": 1250,
"verified": false
}
],
"linkedin": [],
"twitter": [],
"summary": {
"profilesFound": { "instagram": 1, "linkedin": 0, "twitter": 0 },
"averageConfidence": 0.91,
"executionTimeMs": 45230
}
},
"aggregationMetadata": {
"totalPerEngine": { "google": 20, "yandex": 18, "bing": 15 },
"duplicatesRemovedUrl": 8,
"duplicatesRemovedFace": 3,
"finalCount": 42,
"enginePerformance": {
"google": {
"status": "healthy",
"resultsCount": 20,
"responseTimeMs": 8500,
"successRate": 1.0
}
}
},
"executionTimeMs": 127450,
"executionMode": "full"
}

๐Ÿš€ Quick Start & Step-by-step Tutorial

The following steps get you from opening the Actor to reviewing ranked, verified results. Includes both API-key and scraping workflows.

1) Launch the Actor on Apify

  1. Open the Actor page in Apify Store and click Try for free.
  2. In the input form use either imageUrl or imageBase64 (one required).

Example minimal input (paste into the UI input box):

{
"imageUrl": "https://example.com/your-photo.jpg",
"engines": ["google", "yandex", "bing"],
"minSimilarity": 0.85
}

Fill the API fields directly in the form. Each key has its own input, so you do not need to paste a JSON object.

Use these fields when available:

  • googleApiKey and googleCx
  • bingApiKey
  • facecheckApiKey
  • twitterBearerToken
  • instagramAccessToken
  • linkedinAccessToken

Why put keys here?

  • With google or bing API keys the Actor will prefer reliable API lookups (faster, less blocked).
  • Without keys the Actor falls back to browser-based scraping (works but is more likely to be blocked and slower).

In the proxyConfiguration input you can enable Apify Proxy or supply custom proxy URLs. Example:

{
"proxyConfiguration": {
"useApifyProxy": true,
"proxyUrls": []
}
}

Notes:

  • For scraping (no API keys) a residential proxy drastically improves success rates.
  • If useApifyProxy is true, set the APIFY_PROXY_URL environment variable or let Apify provide the proxy at runtime.

4) Run and Inspect Results

  1. Run the Actor. When finished, open the Dataset created by the run.
  2. Inspect aggregationMetadata.enginePerformance to see per-engine resultsCount and successRate.

Typical Input Example (full)

{
"imageUrl": "https://upload.wikimedia.org/.../example.jpg",
"engines": ["google","yandex","bing","facecheck"],
"googleApiKey": "...",
"googleCx": "...",
"bingApiKey": "...",
"facecheckApiKey": "...",
"proxyConfiguration": { "useApifyProxy": true },
"depth": 20,
"maxResults": 50
}

What You Get

  • Ranked results with confidence signals
  • Face verification metadata (similarity, confidence)
  • Per-engine performance stats so you can tell which engines worked

๐Ÿ’ผ Why Buyers Choose This Actor

This Actor is built for people who need reliable image intelligence without wasting time on manual checking. It combines search, verification, and ranking in one workflow so you can get to the useful result faster.

Why It Stands Out

  • Less manual work because multiple engines are searched in one run.
  • Better signal quality because face verification helps filter weak matches.
  • More confidence in results because scoring and deduplication are included.
  • Easy to operationalize because the output is structured and consistent.

What Makes It Valuable

  • Multi-engine coverage helps you compare results instead of relying on one source.
  • Verification layers help reduce false positives.
  • Social footprint analysis helps connect image results to public profiles.
  • Clear result metadata helps users decide what to trust and what to review.

Reliability Signals

  • Results are ranked, deduplicated, and annotated with confidence data.
  • The output includes engine performance details for visibility into run quality.
  • The workflow is built for repeatable checks, not one-off manual browsing.
  • The Actor is designed to present useful results quickly, without requiring users to build the pipeline themselves.

Ideal For

  • Investigators and analysts who need repeatable image search runs.
  • Due diligence teams checking identity consistency.
  • OSINT workflows that require ranking and verification.
  • Agencies and consultants offering paid research services.
  • Teams that want an Apify-native data extraction step instead of a custom scraper.

Workflow Benefit

You submit an image, the Actor searches across engines, verifies likely matches, and returns ranked results with confidence signals. That makes it easier to review, share, or plug into a larger workflow without rebuilding the pipeline yourself.


๐Ÿ“Š Use Cases

๐Ÿ”Ž Investigative Journalism

Find all mentions of a person across the web. Verify photo authenticity and discover related accounts.

๐Ÿ‘ฎ Law Enforcement

Identify suspects from photographs. Cross-reference with social media for additional intelligence.

๐Ÿ›ก๏ธ Due Diligence & Background Checks

Verify candidate information during hiring. Detect identity fraud and fake profiles.

๐Ÿ” Cybersecurity & Account Recovery

Locate compromised or abandoned accounts. Find and secure related accounts.

๐Ÿ“ฑ Social Media Management

Find brand impersonators. Monitor unauthorized use of company photos.

๐ŸŽ“ Academic Research

Study how images spread across the internet. Analyze face recognition accuracy.


๐Ÿ—๏ธ Architecture Highlights

Scalable Multi-Engine Design

Input Image
โ†“
[Image Preprocessing] (Sharp)
โ†“
[Face Detection] (face-api)
โ†“
โ”œโ†’ [Google Engine] (Playwright + Stealth)
โ”œโ†’ [Yandex Engine] (Playwright + Stealth)
โ”œโ†’ [Bing Engine] (Playwright + Stealth)
โ””โ†’ [FaceCheck Engine] (API-based)
โ†“
[Result Aggregation] (URL + Face Deduplication)
โ†“
[Face Verification] (Batch Processing)
โ†“
[Social Footprint Analysis] (Parallel Platform Checks)
โ†“
Ranked Final Results

Technology Stack

  • Language: TypeScript (strict mode)
  • Framework: Crawlee (web scraping orchestration)
  • Browser: Playwright with stealth plugin
  • Face Detection: @vladmandic/face-api
  • Image Processing: Sharp
  • Testing: Jest with 60%+ coverage
  • Runtime: Node.js 20+ with Apify Actor container

โš™๏ธ Configuration Best Practices

For Speed (Fast Mode)

{
"depth": 10,
"maxResults": 20,
"enableSocialFootprint": false,
"engines": ["google", "yandex"]
}

For Accuracy (Full Mode)

{
"depth": 30,
"maxResults": 100,
"minSimilarity": 0.90,
"enableSocialFootprint": true,
"socialPlatforms": ["instagram", "linkedin", "twitter"]
}

For Memory Efficiency

{
"depth": 15,
"maxResults": 30,
"enableSocialFootprint": true,
"sortBy": "similarity"
}

๐Ÿ”’ Privacy & Security

โœ… Privacy-First Design

  • Face embeddings computed locally (not stored)
  • No permanent biometric databases
  • Only public data from search results collected
  • No tracking or telemetry

โœ… Security Features

  • Input image validation and corruption detection
  • Output sanitization
  • Rate limiting to avoid detection
  • Proxy rotation for anonymity

โš ๏ธ Ethical Considerations

  • Complies with GDPR, CCPA requirements
  • Respects robots.txt policies
  • For legitimate investigations only
  • See docs/PRIVACY_ETHICS.md for details

๐Ÿ“š Documentation

  • docs/PERFORMANCE_TUNING.md - Memory optimization, proxy setup, accuracy tips
  • docs/PRIVACY_ETHICS.md - Legal considerations and responsible use
  • docs/TROUBLESHOOTING.md - Common issues and solutions
  • docs/API_REFERENCE.md - Detailed specification for each module

๐Ÿ“ˆ Performance Benchmarks

Typical execution on 16GB Apify Actor with residential proxies:

MetricValueNotes
Search Time45-90sParallel multi-engine queries
Face Verification15-30sBatch processing 50-100 results
Social Analysis10-20s3 platforms, username generation
Total Execution90-180sFull mode with all features
Memory Usage4-6GBFace models + browser contexts
Results Quality90%+Verified with manual testing

  • No faces detected? โ†’ docs/TROUBLESHOOTING.md#no-face-found-in-input-image
  • Engines blocked? โ†’ docs/PERFORMANCE_TUNING.md#proxy-configuration
  • Memory issues? โ†’ docs/PERFORMANCE_TUNING.md#memory-management
  • Low accuracy? โ†’ docs/PERFORMANCE_TUNING.md#face-verification-accuracy

๐Ÿ“„ License

ISC License - See LICENSE file for details


โญ Support & Community

  • Questions? Check FAQ below
  • Issues? See docs/TROUBLESHOOTING.md
  • Feature Requests? Open an issue on GitHub

โ“ FAQ

Q: Is this legal to use?
A: This actor searches only publicly available information. Ensure your use case complies with local laws (GDPR, CCPA, etc.). See docs/PRIVACY_ETHICS.md.

Q: How accurate is face verification?
A: 90%+ accuracy for frontal faces with good lighting. Side profiles and poor quality images reduce accuracy.

Q: What's the cost?
A: Pricing depends on your Apify plan and runtime usage. The Actor is designed to deliver high-value results per run so it can fit both ad-hoc investigations and recurring paid workflows.

Q: Can I use my own proxies?
A: Yes, set proxyConfiguration.proxyUrls in the input.

Q: How do I get a FaceCheck.ID API key?
A: Sign up at facecheck.id and subscribe to their plan.


Made with โค๏ธ for the OSINT community