1. Authorize and validate intake
Tell the uploader what analysis will occur and confirm that the organization is authorized to send the image. Apply your privacy notice and retention policy before collection, not after the response.
Check the documented extension, size, minimum dimensions, and single-face expectation. Client-side checks improve recovery but do not replace server validation.
2. Analyze through one contract
Use detect_image or detectImage when an official SDK fits the runtime. Otherwise send a multipart file to /detect/image with x-api-key. Do not hand-build a multipart boundary when the HTTP library can create it safely.
Keep one retry owner. The SDK may already retry selected rate-limit and server failures. Treat timeout and network interruption as ambiguous before attempting another potentially billable transaction.
3. Decide and record
On success, evaluate risk_level under a documented policy. Low remains non-definitive, medium calls for additional evidence, and high calls for human review rather than automatic rejection from this signal alone.
On rejected, show a specific recovery action without implying authenticity. On error or unknown, withhold a risk decision. Store unique_trx_id, status, billable state, risk band when present, policy version, and review outcome while minimizing filenames and raw payloads.
Evidence boundary
Limitations
- This recipe does not define a legal basis for processing, a universal risk threshold, or approval to use face analysis for identity documents.
Source record
