API v3 · Recommended for new integrations

Face verification with a cleaner contract

Capture a fresh, guided selfie with VerifyCameraV3, then compare it with one trusted reference image through a small and predictable API.

Quick start

One multipart request

POST
curl https://www.verifyfaceid.com/api/v3/verify \
  -H "Authorization: Bearer $VERIFYFACEID_API_KEY" \
  -F "reference=@reference.jpg" \
  -F "selfie=@selfie.jpg"
{
  "success": true,
  "data": {
    "match": true,
    "similarity": 99.52,
    "threshold": 80
  },
  "error": null,
  "meta": {
    "api_version": "3.0",
    "request_id": "…",
    "processing_ms": 412
  }
}

Designed to be easier to ship

One response envelope

Successes and errors always use the same top-level fields, with machine-readable error codes and a request ID.

A shorter backend path

v3 performs strict upload validation and one AWS face comparison. It does not add the legacy random delay or OpenAI image check.

A fast, separate camera

VerifyCameraV3 uses pinned, self-hosted assets and a short randomized on-screen challenge, with automatic capture and in-session retries.

No hidden migration

The v2 endpoints and window.VerifyCamera remain available and unchanged. Move when you are ready.

Know the liveness boundary

The camera’s random challenge helps reject a static image shown to an ordinary camera, but it runs in the customer’s browser. Client-side JavaScript can be modified, so the REST endpoint does not treat camera metadata as cryptographic proof. The v3 API itself performs face matching only.

Maintaining an existing v2 integration?

It remains supported. Review the concise legacy guide and migrate deliberately.

View legacy v2