Request and sampling contract
Send a POST request to /detect/video with x-api-key and a file in multipart form data. The optional max_frames query parameter controls the maximum sampled frames from 1 through 100 and defaults to 12. sample_rate is an optional sampling override and must be at least 1.
The public contract lists nine supported video families and a 1.5 GB maximum. Client SDKs add local validation and runtime-specific stream handling, so consult the selected SDK guide for its accepted input objects and lifecycle rules.
Keep video and audio separate
The unified_video_authenticity_score envelope contains video_risk_score, video_risk_level, and video_message, plus corresponding audio fields. It does not return a combined server risk score. If your application derives an overall value, document that client-side policy and preserve the original modality values.
A video with no audio track can still return status success. In the documented shape, audio risk fields are null and audio_message explains that no audio track was detected.
Handle rejections and errors
Sampled frames with multiple faces are skipped. If no sampled frame with exactly one face remains, the response is rejected with status code 6, no video or audio scores, and documented billability even though HTTP is 200.
Format, size, and security validation failures use the rejected state on HTTP 400. Server failures use status error and null risk fields. Read status first and never treat absent modality scores as low risk.
Evidence boundary
Limitations
- The public video contract does not return a single combined risk level, and this page does not prescribe a universal policy for combining modalities.
Source record
