Deepfake Detection
Analyze audio, images, and video for synthetic tampering. Submit media for detection and retrieve structured metrics and visualizations.
For a single-file request, you can also opt in to Resemble watermark detection and SynthID by setting detect_watermark: true. Watermark evidence is returned separately and never changes the deepfake verdict.
Choose an Integration
Media can be referenced by a public HTTPS url or by a media_token issued from the Secure Upload API. Use a secure upload when you prefer not to host the source file publicly — the API reads it once via the signed token, which expires 1 hour after issuance.
Request Schema
Face-only Video Analysis
Set face_only: true to focus visual video detection on faces by masking non-face regions before analysis. Face-only mode is effective only for video inputs that run visual analysis (modality: "all" or modality: "video"). Audio, image, and audio-only video requests are accepted, but their effective value is false.
Face-only mode does not disable audio analysis or select which video components run. Use modality for that. It also does not change billing or the structure of detection verdicts and reports. Detection responses expose the effective setting in face_only for auditing.
Optional Watermark Analysis
Set detect_watermark: true on a single audio, image, or video detection to run the same decode detectors as the standalone Watermark API:
- Audio checks Resemble Perth v1, Resemble Perth v2, and SynthID.
- Image and video check the Resemble image/video watermark detector and SynthID.
The option defaults to false. When omitted or false, no Watermark job is created, no extra charge is added, and the watermark response field is omitted. When enabled, the existing Watermark detection charge is added to the request; SynthID does not add a separate charge.
Watermark analysis uses the standalone source limit of 200 MB for audio, image, and video. It is not supported for batch or zip submissions.
Response Shapes
For an otherwise successful Detect with watermark analysis, item.status remains processing until the nested Watermark job is terminal. A core detection failure still reports failed. A failed Watermark job is reported in item.watermark without failing an otherwise successful deepfake detection. Intelligence remains independently asynchronous unless its own wait behavior is requested.
Video Attack Type
When a video is scored fake, video_metrics also reports how the fake was most likely made, for example face swap, lip sync, or text-to-video. No request parameter is needed; the field is returned automatically on fake video results.
Each attack is a probability distribution over every attack type: an array of { code, name, prob } sorted from most to least likely, with prob values that sum to 1. attack[0] is the most likely attack. There is no confidence cut-off: the first entry is always the best guess, and its prob shows how sure the model is. A video that combines two techniques shows the probability split between them, and its chunks show where each one appears.
The example is trimmed; a real response lists every attack type.
attack appears only on results scored fake (score of 0.5 or higher). A video scored real has no attack field, and chunks scored real are left out of the video’s average. Attack type is reported for video only; image responses do not include it. It does not change the deepfake score or verdict.
S0, V3, F6, and X0 are broad categories that each cover several of the specific types. Group codes are never returned as attack[0].
New attack types may be added in future releases. If you receive a code you don’t recognize, show its name instead of treating it as an error.
Legacy Response Fields
Use the endpoints below to submit jobs and retrieve detection results for each modality.
Related Endpoints
- Create Detection - Submit a detection job
- Streaming Audio Detection - Analyze live audio over a WebSocket
- Batch Detection - Submit up to 50 files as one job
- Get Detection - Retrieve a single detection result
- List Detects - Retrieve all detection results with pagination
- Delete Detection - Delete a detection result
