FaceFinderLens

Developer API

Face Search API

The FaceFinderLens API takes a photograph and returns the publicly indexed pages where a visually matching face appears. You POST an image to one endpoint, authenticate with a bearer key, and get JSON back in about fifteen to thirty seconds. It costs one credit per search — $3.95 for three, with no subscription and no monthly minimum — and a credit that does not produce a result is refunded automatically.

A face rendered as a wireframe mesh beside an API response showing page URLs and similarity scores for each match
One photo in, the pages carrying that face out — with a similarity score on every match.

What you get

  • The same search engine the website runs on — no separate index, no reduced tier for API callers.
  • Match URLs with a similarity score and a thumbnail for each hit.
  • A flat price per call: one credit, whatever the photo and however many matches come back.
  • Credits that never expire, bought in packs or any amount from 3 to 50.
  • No query logging: we keep the endpoint, the status and the time, never the image or the result.
What the API includes: the same engine as the website, match details with similarity scores, credits that never expire, a flat price per call, and logging limited to endpoint, status and time
One engine, one credit per call, and nothing about the search kept afterwards.

How does it work?

  1. 01Create an account and a key

    Sign up at /developers/register/ with an email and a password — no card is needed to get a key. In the dashboard, open the API keys tab and create one. The secret is shown exactly once, because the database stores only its SHA-256 hash; if it is lost, revoke it and make another.

    Registering with an email and password with no card required, then creating a key in the dashboard whose secret is shown once while the database keeps only its SHA-256 hash, and revoking a lost key to recreate a new one
    No card to sign up. The secret appears once; a lost key is revoked and replaced.
  2. 02Buy credits

    On the Billing tab, pick a pack — 3 credits for $3.95, 7 for $6.95, or any amount between 3 and 50 — and pay through Stripe. Credits land on your balance as soon as Stripe confirms, and they do not expire. One credit is one search, whether the photo returns forty matches or none.

    Buying credits: the 3 and 7 credit packs and a custom amount, paid through Stripe, landing in a credit wallet that never expires
    Packs or a custom amount, paid through Stripe. One credit is one search.
  3. 03POST a photo

    Send the image as multipart/form-data with the field name `image`, and your key as a bearer token. JPEG, PNG and WebP are accepted up to 10 MB, and the file is checked by its contents rather than its name. There is deliberately no image_url parameter — having our servers fetch arbitrary URLs for a caller is a request-forgery hole, so the bytes come from you.

    Posting a photo: multipart form-data with a bearer token, JPEG, PNG or WebP up to 10 MB, checked by content, with no image_url parameter accepted
    Multipart upload with a bearer token — and no image_url parameter, on purpose.
  4. 04Read the matches

    The response carries an array of matches, each with the page URL, a similarity score and a thumbnail. Typical searches finish in fifteen to thirty seconds; the connection is held open until the search completes, so no polling or webhook is involved. Treat the score as similarity rather than identity — it compares faces, it does not certify who someone is.

    The JSON response: page URLs, similarity scores and thumbnails for each match, returned in 15 to 30 seconds with no polling, and a note that the score measures similarity rather than identity
    Matches come back in one response — no polling, no webhook to implement.

Code to copy

The same call in three places. A Postman collection is available too, with both endpoints and saved example responses.

curl

curl -X POST https://facefinderlens.com/api/v1/lookup \
  -H "Authorization: Bearer sk_live_your_key" \
  -F "image=@/path/to/face.jpg"

Node.js

const body = new FormData();
body.append("image", new Blob([await fs.readFile("face.jpg")]), "face.jpg");

const response = await fetch("https://facefinderlens.com/api/v1/lookup", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.FFL_API_KEY}` },
  body,
});

const { success, data, credits_remaining } = await response.json();
if (!success) throw new Error("lookup failed");
console.log(data.items.length, "matches,", credits_remaining, "credits left");

Python

import os, requests

with open("face.jpg", "rb") as photo:
    response = requests.post(
        "https://facefinderlens.com/api/v1/lookup",
        headers={"Authorization": f"Bearer {os.environ['FFL_API_KEY']}"},
        files={"image": photo},
        timeout=180,
    )

payload = response.json()
if payload["success"]:
    for item in payload["data"]["items"]:
        print(item["score"], item["url"])

A failed lookup never costs a credit. If the provider errors, times out or the upload is rejected, the deduction is reversed before the error reaches you — so a 4xx or 5xx leaves your balance where it was.

Limits and guarantees

Price1 credit per search — $3.95 for 3, $6.95 for 7, custom 3–50
Rate limit60 requests per minute per account
Typical latency15–30 seconds per search
Max upload10 MB — JPEG, PNG or WebP
Credit expiryNone. Credits stay until you spend them
RetentionNo images, queries or results stored

What people build with it

Dating and marketplace trust

Run new profile photos through the API at signup and flag the ones whose face already appears under a different name. This is the single highest-signal check against stolen photos.

Catfish and romance-scam tooling

Investigation and safety products use the API to answer 'where else does this face appear?' without building an index of their own.

Brand and likeness monitoring

Check periodically whether a client's or a model's face is being used on pages they never licensed.

Journalism and OSINT research

Trace a photograph back to its earlier appearances when verifying a source or a claim.

Questions

How much does the face search API cost?
One credit per search. Credits are $3.95 for three, $6.95 for seven, or any amount from 3 to 50 priced the same way as on the pricing page. There is no subscription, no monthly minimum and no per-seat fee, and credits do not expire.
Is there a free tier?
No. Every API search spends a credit, because every search costs us a provider call. The website's free preview is a synthetic teaser rather than a real search, so exposing it through the API would only return fake data.
What happens if a lookup fails?
The credit is refunded automatically. The deduction happens just before the search runs, and every failure path after that point — provider error, timeout, rejected upload — reverses it before returning the error.
Can I send an image URL instead of a file?
No, and that is deliberate. Fetching a caller-supplied URL server-side is a request-forgery hole pointed at our internal network, so the API takes the bytes from you as multipart/form-data.
How fast is it?
Most searches finish in fifteen to thirty seconds, which is how long the underlying index takes. The request stays open until the search completes — there is no polling or callback to implement — so allow at least 180 seconds of client timeout.
Do you store the photos I send?
No. The image is streamed to the search provider and dropped; the result goes back in the response and nowhere else. Per call we record the endpoint, the status code, the key and the time, which is what billing and rate limiting need, and nothing about the image or the matches.
Can I use it for identity verification or background checks?
No. The score measures visual similarity between faces, not identity, and the results must not drive decisions about employment, credit, housing, tenancy or insurance. It is built for trust-and-safety checks, not for regulated screening.
What do I do if a key leaks?
Revoke it in the dashboard — it stops working immediately — then create a replacement. You can hold up to ten active keys, so rotating one in production need not cause downtime.

Start with three credits

Create an account, make a key, and spend $3.95 to find out whether the data is worth it. Nothing renews and nothing expires.

Get an API key