Reverse Face Search — Find Where a Face Appears Online
Pricing
Pay per usage
Reverse Face Search — Find Where a Face Appears Online
Upload photo URLs and get back the public pages and social profiles those faces appear on, each with a 50-100 similarity score. Powered by the Trace API — no scraping, no CAPTCHA solving.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Murat Can Kuru
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
11 days ago
Last modified
Categories
Share
Give this Actor one or more photo URLs. It returns the public pages and social profiles those faces appear on, each with a similarity score from 50 to 100.
It matches the face, not the file — so it finds the same person in a different photo, a different pose or a different year, which a reverse image search cannot do.
Built and maintained by the team behind Trace.
What it is useful for
- Catfish and fake-profile checks. Is this dating or marketplace profile using somebody else's photos?
- Trust & safety. Flag a new signup whose photo already belongs to another account.
- Your own exposure. Find where your face has been published, so you can ask for removals.
What it is not
Not an identification service. It returns public URLs and similarity scores — never names, addresses or personal records. Twins, siblings, look-alikes, heavy filters and AI-generated portraits all score high. A match means this face has been published here before, which is enough to catch a stolen profile picture and not enough to accuse anybody of anything.
Using it to identify, locate, monitor, stalk or harass anyone is forbidden by the terms. Biometric processing is regulated in many places; that is your responsibility, not the Actor's.
Before you start: get a Trace API key
This Actor runs searches on your own Trace account, so you need a key:
- Sign up at traceaifacescan.app.
- Open Panel → API and create a key. It looks like
trk_live_…. - Paste it into the Actor's Trace API key field. Apify stores it encrypted.
Searches are paid for in Trace credits — one credit per full search, bought in packs, no subscription, and credits do not expire. Apify itself only bills you for the compute this Actor uses, which is minimal: it spends its time waiting on the API, not working.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
apiKey | string (secret) | — | Your Trace API key. Required. |
imageUrls | array of URLs | — | Photos to search. One clear face each, at least 200×200 px, JPEG/PNG/WebP, under 8 MB. Required. |
revealLocked | boolean | false | Without credits a scan returns a locked free preview. Leave this off and the Actor reports that instead of spending anything; turn it on to unlock automatically. |
minScore | integer | 70 | Drop matches scoring below this. |
minTier | enum | possible | Drop matches below this confidence tier. |
maxMatchesPerImage | integer | 50 | Keep only the top N matches per photo. |
deleteScanAfterwards | boolean | true | Delete the uploaded photo from Trace as soon as the results are read, instead of waiting for its expiry. |
Example:
{"apiKey": "trk_live_…","imageUrls": ["https://example.com/profile.jpg"],"minScore": 80,"minTier": "strong","revealLocked": false,"deleteScanAfterwards": true}
Output
One dataset item per match:
{"inputImageUrl": "https://example.com/profile.jpg","scanId": "01K5T3ZQ8V6X2Y9N4M7P0R1S2T","rank": 1,"score": 94,"tier": "near_certain","platform": "instagram","handle": "@real_owner","url": "https://instagram.com/real_owner"}
A RUN_SUMMARY key in the run's key-value store lists how many images were searched and why any of them failed.
Reading the score
| Score | Tier | Read it as |
|---|---|---|
| 50–69 | weak | Similar face. Could be anyone. |
| 70–79 | possible | Worth opening the link. |
| 80–89 | strong | Very likely the same person. |
| 90–100 | near_certain | Same person, or the same source photo. |
For automated flagging use strong and above. Below that you will bury your reviewers in false positives.
How it works
No scraping, no CAPTCHA solving, no proxy rotation — so there is nothing here that quietly breaks when a third-party site changes its markup. The Actor downloads each image, calls the documented Trace API, polls for the result and writes the matches to the dataset. Each upload carries the image's SHA-256 as an idempotency key, so a retry after a timeout never charges a second credit.
Privacy
- With
deleteScanAfterwardson (the default), the photo is deleted from Trace as soon as the results are read. - No face is kept as a permanent biometric template for later lookup.
- Your API key is stored encrypted by Apify and is sent only to
traceaifacescan.app. - Do not upload photos of other people without a lawful reason for the check.
Full policy: traceaifacescan.app/privacy
Errors you might see
| Message | What to do |
|---|---|
The Trace API key was rejected | Check it in Panel → API. A revoked key and a mistyped one give the same answer on purpose. |
no credits, so the scan came back as a locked preview | Top up, or set revealLocked to true. |
no_face_detected | No usable face in that photo. Nothing was charged. |
not a supported image type | Use JPEG, PNG or WebP. |
image is N MB; the limit is 8 MB | Re-encode it smaller. |