> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.resemble.ai/api-reference/deepfake-detection/get-detection/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.resemble.ai/_mcp/server. # Get deepfake detection result GET https://app.resemble.ai/api/v2/detect/{uuid} Get a deepfake detection result by UUID. For an otherwise successful Detect with watermark analysis, item status remains processing until the linked analysis completes or fails. A core detection failure still reports failed. Intelligence runs separately and can still be processing after Detect reaches completed. Reference: https://docs.resemble.ai/api-reference/deepfake-detection/get-detection ## Authentication - `Authorization` header (bearer token, required) — API key from https://app.resemble.ai/hub/api ## Request ### Path parameters - `uuid` (string, required) — The UUID of the detect object ### Query parameters - `experts` (boolean, optional, default: false) — When true, return all successfully completed Intelligence results as an array, or an empty array when none have completed successfully. When omitted or false, return one completed result when available; otherwise, return the current processing or failed result. ## Response ### 200 Detection result - `success` (boolean, optional) - `item` (DetectUuidGetResponsesContentApplicationJsonSchemaItem, optional) ## Errors ### 404 Not Found Error Detect not found - `success` (boolean, optional) - `error` (string, optional) - `errors` (map from string to list of string, optional) - `message` (string, optional) ## Types ### DetectUuidGetResponsesContentApplicationJsonSchemaItem - `uuid` (string, optional) - `media_type` (enum, optional) - Allowed values: `audio`, `video`, `image` - `status` (enum, optional) — Status of the requested Deepfake Detection work. For an otherwise successful Detect with watermark analysis, processing continues until that nested analysis completes or fails. A core detection failure still reports failed. A failed watermark analysis is terminal and does not fail an otherwise successful deepfake detection. Intelligence may still be processing after Detect reaches completed. - Allowed values: `processing`, `completed`, `failed` - `metrics` (DetectAudioMetrics, optional) — Audio detection metrics (for audio and video media types) - `image_metrics` (DetectImageMetrics, optional) — Image detection metrics (for image media type) - `video_metrics` (DetectVideoMetrics, optional) — Video detection metrics (for video media type) - `c2pa_manifest` (DetectC2paManifest, optional) — Content Credentials (C2PA) verification result for audio, image, and video media. Returned when verification has completed. A fallback verification failure returns `validation_state: Unavailable` and does not fail the detection. - `audio_source_tracing` (DetectUuidGetResponsesContentApplicationJsonSchemaItemAudioSourceTracing, optional, nullable) — Source tracing results (only returned if audio is labeled fake) - `intelligence` (DetectUuidGetResponsesContentApplicationJsonSchemaItemIntelligence, optional, nullable) — With experts omitted or false, one completed Intelligence result when available; otherwise, the current processing or failed result. With experts=true, all successfully completed results as an array, or an empty array when none have completed successfully. - `modality` (enum, optional) — Which detection modality was requested for this detect. `all` when not specified (the default). For a single-modality video detect, the skipped component's metrics are absent (`metrics` for audio-only-skipped, `video_metrics` for video-only-skipped). - Allowed values: `audio`, `video`, `all` - `face_only` (boolean, optional) — Effective face-only setting for this detect. `true` only for video inputs that include visual analysis; `false` for audio, image, and audio-only video detects. - `watermark` (DetectWatermarkAnalysis, optional) — Conditional watermark analysis requested with `detect_watermark=true`. The object is omitted when watermark analysis was not requested. Resemble watermark metrics and the optional SynthID verdict are independent of the deepfake verdict. - `url` (string, optional, nullable) — URL to the media file. Null when Zero Retention Mode is enabled. - `audio_url` (string, optional, nullable) — Alias of url. Null when Zero Retention Mode is enabled. - `filename` (string, optional) — Original filename, or tokenized (redacted\_\.\) when Zero Retention Mode is enabled - `duration` (double, optional) - `zero_retention_mode` (boolean, optional) — Whether Zero Retention Mode is enabled for this detect - `file_deleted_at` (datetime, optional, nullable) — ISO 8601 timestamp of when the file was purged, or null if not yet deleted - `created_at` (datetime, optional) - `updated_at` (datetime, optional) ### DetectAudioMetrics Audio detection metrics (for audio and video media types) - `label` (string, required) — Detection label (fake or real) - `score` (list of string, required) — Array of prediction scores per chunk - `consistency` (string, required) — Consistency metric across chunks - `aggregated_score` (string, required) — Overall aggregated detection score - `image` (string, optional) — URL to visualization heatmap image (if visualize=true) ### DetectImageMetrics Image detection metrics (for image media type) - `type` (string, required) — Type of image analysis performed - `label` (string, required) — Detection label (fake or real) - `image` (string, required) — URL to visualization image - `score` (double, required) — Detection confidence score - `children` (list of DetectImageMetricsChildrenItems, required) — Nested analysis results (structure varies by pipeline) ### DetectVideoMetrics Video detection metrics (for video media type) - `label` (string, required) — Overall video detection label - `score` (double, required) — Overall detection score - `certainty` (double, required) — Overall certainty score - `children` (list of DetectVideoMetricsChildrenItems, required) — Hierarchical detection results across frames - `treeview` (string, optional) — Optional tree visualization data ### DetectC2paManifest Content Credentials (C2PA) verification result for audio, image, and video media. Returned when verification has completed. A fallback verification failure returns `validation_state: Unavailable` and does not fail the detection. - `validation_state` (enum, optional) — Verification state. `NotPresent` means no embedded Content Credentials were found; `Unavailable` means verification could not complete. - Allowed values: `Valid`, `NotPresent`, `Unavailable` - `active_manifest` (string, optional, nullable) — Active C2PA manifest identifier when credentials are present - `manifests` (map from string to any, optional, nullable) — Raw manifest details returned by C2PA tooling - `validation_results` (map from string to any, optional, nullable) — Detailed validation results returned by C2PA tooling - `message` (string, optional, nullable) — Generic message when verification is unavailable ### DetectUuidGetResponsesContentApplicationJsonSchemaItemAudioSourceTracing Source tracing results (only returned if audio is labeled fake) - `label` (string, optional) — Identified source (e.g., resemble_ai, elevenlabs) or "real" if audio is not synthetic - `error_message` (string, optional, nullable) ### DetectUuidGetResponsesContentApplicationJsonSchemaItemIntelligence With experts omitted or false, one completed Intelligence result when available; otherwise, the current processing or failed result. With experts=true, all successfully completed results as an array, or an empty array when none have completed successfully. ### DetectWatermarkAnalysis Conditional watermark analysis requested with `detect_watermark=true`. The object is omitted when watermark analysis was not requested. Resemble watermark metrics and the optional SynthID verdict are independent of the deepfake verdict. - `status` (enum, required) — Lifecycle state of the linked watermark analysis. - Allowed values: `pending`, `processing`, `completed`, `failed` - `metrics` (DetectWatermarkAnalysisMetrics, optional) — Present when watermark analysis completes. Audio uses Perth v1/v2 metrics; image and video use the Resemble image/video detector metrics. `synthid`, when present, is the boolean verdict returned by SynthID. Its omission means the provider result was unavailable, not that no watermark was found. - `error_message` (string, optional) — Safe error message when the watermark analysis failed. A child failure does not fail an otherwise successful deepfake detection. ### DetectImageMetricsChildrenItems ### DetectVideoMetricsChildrenItems - `type` (string, required) - `conclusion` (string, required) - `score` (double, required) - `certainty` (double, required) - `certainty (%)` (string, required) - `children` (list of DetectVideoMetricsChildrenItemsChildrenItems, required) — Frame-level detection results ### DetectIntelligenceResult One Detect Intelligence expert result - `uuid` (string, optional) - `status` (enum, optional) — Status of this Intelligence result, independent of the associated Detect job status. - Allowed values: `processing`, `completed`, `failed` - `error_message` (string, optional, nullable) - `description` (DetectIntelligenceResultDescription, optional, nullable) - `created_at` (datetime, optional) - `detect_uuid` (string, optional) ### DetectWatermarkAnalysisMetrics Present when watermark analysis completes. Audio uses Perth v1/v2 metrics; image and video use the Resemble image/video detector metrics. `synthid`, when present, is the boolean verdict returned by SynthID. Its omission means the provider result was unavailable, not that no watermark was found. ### DetectVideoMetricsChildrenItemsChildrenItems - `type` (string, required) - `conclusion` (string, required) - `score` (double, required) - `certainty` (double, required) - `certainty (%)` (string, required) - `timestamp` (double, required) — Timestamp in seconds - `children` (list of DetectVideoMetricsChildrenItemsChildrenItemsChildrenItems, required) — Segment-level detection results ### DetectIntelligenceResultDescription ### WatermarkAudioDetectionMetrics - `overall_status` (enum, required) - Allowed values: `present`, `absent`, `inconclusive` - `detected_model_versions` (list of enum, required) — Only model versions that positively detected a watermark. - Allowed values: `perth_v1`, `perth_v2` - `coverage_complete` (boolean, required) — True only when both audio detectors completed successfully. - `has_watermark` (map from string to boolean, required) — Per-channel aggregate across successful audio detectors. - `model_results` (list of WatermarkAudioModelResult, required) - `confidence` (double, optional, nullable) - `synthid` (boolean, optional) — Optional auxiliary SynthID verdict for audio. Omitted when SynthID is unavailable. ### WatermarkVisionDetectionMetrics - `overall_status` (enum, required) - Allowed values: `present`, `degraded`, `absent`, `inconclusive` - `detected_model_versions` (list of enum, required) — Contains perth_v2 only when watermark signal is detected. - Allowed values: `perth_v2` - `has_watermark` (boolean, required) - `detection_score` (double, required, nullable) - `model_results` (list of WatermarkVisionModelResult, required) - `verdict` (enum, optional, nullable) — Backward-compatible image/video verdict. - Allowed values: `verified`, `degraded`, `not_watermarked` - `synthid` (boolean, optional) — Optional auxiliary SynthID verdict for image or video. Omitted when SynthID is unavailable. ### DetectVideoMetricsChildrenItemsChildrenItemsChildrenItems - `type` (string, required) - `conclusion` (string, required) - `score` (double, required) - `certainty` (double, required) - `certainty (%)` (string, required) ### DetectIntelligenceResultDescription1 - `speaker_info` (string, optional) - `language` (string, optional) - `dialect` (string, optional) - `emotion` (string, optional) - `speaking_style` (string, optional) - `context` (string, optional) - `message` (string, optional) - `abnormalities` (string, optional) - `transcription` (string, optional) - `translation` (string, optional, nullable) - `misinformation` (string, optional) - `fraud` (DetectIntelligenceResultDescriptionOneOf1Fraud, optional) - `liveness` (DetectIntelligenceResultDescriptionOneOf1Liveness, optional) - `digitally_altered` (DetectIntelligenceResultDescriptionOneOf1DigitallyAltered, optional) ### WatermarkAudioModelResult - `model_version` (enum, required) - Allowed values: `perth_v1`, `perth_v2` - `status` (enum, required) - Allowed values: `succeeded`, `failed` - `detected` (boolean, required, nullable) — Null when this detector was unavailable. - `has_watermark` (map from string to boolean, optional) — Successful per-channel detection results. - `confidence` (double, optional, nullable) - `error` (string, optional) — Safe error message when status is failed. ### WatermarkVisionModelResult - `model_version` (enum, required) - Allowed values: `perth_v2` - `status` (enum, required) - Allowed values: `succeeded` - `detected` (boolean, required) - `confidence` (double, optional, nullable) ### DetectIntelligenceResultDescriptionOneOf1Fraud - `type` (enum, optional) - Allowed values: `none`, `vishing`, `impersonation`, `romance_scam`, `tech_support_scam`, `financial_fraud`, `extortion`, `political_manipulation`, `synthetic_media_fraud`, `insurance_fraud`, `employment_fraud`, `other` - `confidence` (double, optional) - `reasoning` (string, optional) ### DetectIntelligenceResultDescriptionOneOf1Liveness - `assessment` (enum, optional) - Allowed values: `real_person`, `not_real_person`, `inconclusive` - `confidence` (double, optional) - `indicators` (string, optional) ### DetectIntelligenceResultDescriptionOneOf1DigitallyAltered - `detected` (boolean, optional) - `confidence` (double, optional) - `alterations` (string, optional) ## Examples **Response** ```json { "success": true, "item": { "uuid": "string", "media_type": "audio", "status": "processing", "metrics": { "label": "fake", "score": [ "0.9", "0.8", "0.7" ], "consistency": "0.85", "aggregated_score": "0.566", "image": "https://storage.example.com/heatmap.png" }, "image_metrics": { "type": "facial", "label": "fake", "image": "https://storage.example.com/image.png", "score": 0.9, "children": [ {} ] }, "video_metrics": { "label": "Fake", "score": 0.9, "certainty": 0.9, "children": [ { "type": "VideoResult", "conclusion": "Fake", "score": 0.99, "certainty": 0.9, "certainty (%)": "90%", "children": [ { "type": "ImageResult", "conclusion": "Fake", "score": 0.9, "certainty": 0.95, "certainty (%)": "95%", "timestamp": 0.23, "children": [ { "type": "Segment", "conclusion": "Fake", "score": 0.9, "certainty": 0.995, "certainty (%)": "99.5%" } ] } ] } ], "treeview": "string" }, "c2pa_manifest": { "validation_state": "Valid", "active_manifest": "string", "manifests": {}, "validation_results": {}, "message": "string" }, "audio_source_tracing": { "label": "string", "error_message": "string" }, "intelligence": { "uuid": "string", "status": "processing", "error_message": "string", "description": "string", "created_at": "2024-01-15T09:30:00Z", "detect_uuid": "string" }, "modality": "audio", "face_only": true, "watermark": { "status": "pending", "metrics": { "overall_status": "present", "detected_model_versions": [ "perth_v1" ], "coverage_complete": true, "has_watermark": {}, "confidence": 1.1, "model_results": [ { "model_version": "perth_v1", "status": "succeeded", "detected": true, "has_watermark": {}, "confidence": 1.1, "error": "string" } ], "synthid": true }, "error_message": "string" }, "url": "string", "audio_url": "string", "filename": "string", "duration": 1.1, "zero_retention_mode": true, "file_deleted_at": "2024-01-15T09:30:00Z", "created_at": "2024-01-15T09:30:00Z", "updated_at": "2024-01-15T09:30:00Z" } } ``` **SDK Code** ```python import requests url = "https://app.resemble.ai/api/v2/detect/uuid" headers = {"Authorization": "Bearer "} response = requests.get(url, headers=headers) print(response.json()) ``` ```javascript const url = 'https://app.resemble.ai/api/v2/detect/uuid'; const options = {method: 'GET', headers: {Authorization: 'Bearer '}}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://app.resemble.ai/api/v2/detect/uuid" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Authorization", "Bearer ") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://app.resemble.ai/api/v2/detect/uuid") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["Authorization"] = 'Bearer ' response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://app.resemble.ai/api/v2/detect/uuid") .header("Authorization", "Bearer ") .asString(); ``` ```php request('GET', 'https://app.resemble.ai/api/v2/detect/uuid', [ 'headers' => [ 'Authorization' => 'Bearer ', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://app.resemble.ai/api/v2/detect/uuid"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer "); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = ["Authorization": "Bearer "] let request = NSMutableURLRequest(url: NSURL(string: "https://app.resemble.ai/api/v2/detect/uuid")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```