Use a common control pipeline
Begin with a clear purpose and authority to upload the selected media. Apply local format and size checks where the chosen client supports them. Keep the API key server-side and send the file only to the documented production or staging origin.
After the call, branch on status, then media-specific risk fields. Record the transaction identifier, billable state, selected policy outcome, and review disposition. Keep retention, access, and deletion aligned with your own obligations and account terms.
Choose one application contract
Python and TypeScript SDK integrations should depend on normalized result objects and documented exceptions. Direct REST integrations should depend on the OpenAPI envelope. MCP automations should depend on versioned structuredContent.
Do not mix raw wire fields, SDK-normalized fields, and MCP fields in one unversioned application model. An explicit adapter makes contract updates and testing easier to control.
Test the edges before launch
Exercise scored low, medium, and high outcomes with approved fixtures when available. Also test rejected input, no-face behavior, silent video, rate limiting, server failure, timeout, cancellation where supported, and a future unknown result.
Confirm that no failure path becomes approval, that manual retry is visible, and that support logs exclude credentials and unnecessary media data.
Evidence boundary
Limitations
- These recipes define integration controls, not a universal fraud, identity, moderation, or access decision policy.
Source record
