Get Detection Result

GET https://app.resemble.ai/api/v2/detect/{uuid}

Retrieve the deepfake detection result using the provided UUID. Returns the final metrics for the detection job. Media-type-specific keys appear depending on the input.

$curl --request GET 'https://app.resemble.ai/api/v2/detect/DETECT_UUID' \
> -H 'Authorization: Bearer YOUR_API_TOKEN'

Query Parameters

FieldTypeDefaultDescription
expertsbooleanfalseWhen true, return every successfully completed Intelligence result in an array. When omitted or false, return one completed result when available; otherwise, return the current processing or failed result.

item.status reports the Deepfake Detection job only. Detect and Intelligence run separately, so item.status: "completed" means the verdict and detection metrics are ready; it does not mean Intelligence has finished.

When experts is omitted or false, inspect item.intelligence.status and item.intelligence.description for the returned Intelligence result. It can still be processing with a null description after Detect completes, and its UUID can change as additional Intelligence results finish. With experts=true, the array contains only successfully completed results available at the time of the request; an empty array means no result has completed successfully yet, not that Intelligence was not requested.

Response Details

  • status - Status of the Deepfake Detection job (processing, completed, or failed). This status is independent of Intelligence processing.
  • metrics - Always includes a label (fake/real), score array with predictions per chunk, consistency field (for audio/video), and aggregated_score
  • image_metrics - Present for still images, contains type, label, score, visualization image (if requested), and nested analysis children
  • video_metrics - Present for videos, includes nested detections across frames with timestamps, certainty scores, and hierarchical results
  • modality - For video detects, which components were requested: audio, video, or all (default). When a single modality was requested, the skipped component’s metrics are absent (video_metrics for audio, metrics for video) and the detect still reaches completed
  • face_only - Effective face-only setting. It is true only for video detects that included visual analysis; audio, image, and audio-only video detects return false
  • audio_source_tracing - Present when audio is labeled as fake. Contains label identifying the likely source (e.g., resemble_ai, elevenlabs) or real if audio is not synthetic, and error_message (null on success)
  • intelligence - Present when intelligence analysis was requested. By default, contains one Intelligence object with uuid, status (processing, completed, or failed), error_message, description, created_at, and detect_uuid. The API returns a completed result when one is available; if none have completed successfully, it returns the current processing or failed result. With experts=true, this field is an array containing all successfully completed results and excludes processing or failed results.
  • c2pa_manifest - Present for audio, image, and video detects after Content Credentials verification completes. validation_state can be Valid, NotPresent, or Unavailable; Unavailable means C2PA verification could not complete, but the detect result is still valid.
  • zero_retention_mode - Boolean indicating whether Zero Retention Mode was enabled for this detect
  • file_deleted_at - ISO 8601 timestamp of when the file was purged, or null if not yet deleted. Use this to determine whether the source media has been purged from storage.
  • audio_url - Alias of url. Both are null when Zero Retention Mode is enabled

Retrieve All Successful Intelligence Results

$curl --request GET 'https://app.resemble.ai/api/v2/detect/DETECT_UUID?experts=true' \
> -H 'Authorization: Bearer YOUR_API_TOKEN'

With experts=true, item.intelligence contains every successfully completed Intelligence result available at the time of the request. The array is empty when no result has completed successfully:

1{
2 "success": true,
3 "item": {
4 "uuid": "DETECTION_UUID",
5 "status": "completed",
6 "intelligence": [
7 {
8 "uuid": "INTELLIGENCE_UUID_A",
9 "status": "completed",
10 "error_message": null,
11 "description": {
12 "speaker_info": "Adult speaker",
13 "language": "English"
14 },
15 "created_at": "2024-01-15T10:30:05Z",
16 "detect_uuid": "DETECTION_UUID"
17 },
18 {
19 "uuid": "INTELLIGENCE_UUID_B",
20 "status": "completed",
21 "error_message": null,
22 "description": {
23 "speaker_info": "Adult speaker",
24 "language": "English"
25 },
26 "created_at": "2024-01-15T10:30:06Z",
27 "detect_uuid": "DETECTION_UUID"
28 }
29 ]
30 }
31}

When experts is omitted or false, the singular Intelligence UUID may change across polls as additional results finish. Detect callbacks also contain a single Intelligence result and allow Intelligence processing to continue up to the callback timeout before choosing what to include. The callback includes a completed result when one is available, or the current processing or failed result when none have completed successfully. A callback is not resent if another Intelligence result completes later.

1{
2 "success": true,
3 "item": {
4 "uuid": "DETECTION_UUID",
5 "media_type": "audio",
6 "status": "completed",
7 "modality": "all",
8 "face_only": false,
9 "metrics": {
10 "label": "fake",
11 "score": ["0.9", "0.8", "0.7"],
12 "consistency": "0.85",
13 "aggregated_score": "0.566"
14 },
15 "image_metrics": {
16 "ifl": {
17 "score": 1,
18 "heatmap": "https://..."
19 },
20 "type": "FinalResult",
21 "label": "Fake",
22 "image": "https://...",
23 "score": 1,
24 "children": []
25 },
26 "video_metrics": {
27 "label": "Fake",
28 "score": "0.9",
29 "certainty": "0.9",
30 "treeview": "...",
31 "children": [
32 {
33 "type": "VideoResult",
34 "conclusion": "Fake",
35 "score": "0.99",
36 "certainty": "0.9",
37 "children": [
38 {
39 "type": "ImageResult",
40 "conclusion": "Fake",
41 "score": "0.9",
42 "certainty": "0.95",
43 "timestamp": "0.23",
44 "children": [
45 {
46 "type": "Segment",
47 "conclusion": "Fake",
48 "score": "0.9",
49 "certainty": "0.995"
50 }
51 ]
52 }
53 ]
54 }
55 ]
56 },
57 "audio_source_tracing": {
58 "label": "resemble_ai",
59 "error_message": null
60 },
61 "intelligence": {
62 "uuid": "INTELLIGENCE_UUID",
63 "description": "Adult male speaker with confident tone discussing...",
64 "created_at": "2024-01-15T10:30:05Z",
65 "detect_uuid": "DETECTION_UUID"
66 },
67 "c2pa_manifest": {
68 "validation_state": "NotPresent"
69 },
70 "url": "https://storage.example.com/audio/suspicious.wav",
71 "audio_url": "https://storage.example.com/audio/suspicious.wav",
72 "filename": "suspicious.wav",
73 "duration": 8.2,
74 "zero_retention_mode": false,
75 "file_deleted_at": null,
76 "created_at": "2024-01-15T10:30:00Z",
77 "updated_at": "2024-01-15T10:30:05Z"
78 }
79}
  • metrics always reflects the aggregate prediction and confidence per chunk.
  • image_metrics appears for still images and contains visualization assets if requested.
  • video_metrics nests detections across frames with timestamps and certainty percentages.
  • audio_source_tracing is only returned when audio is labeled as fake. Use the standalone Audio Source Tracing endpoints to access all source tracing reports.

Zero Retention Mode Response

When zero_retention_mode was enabled on the original request, media URLs are redacted and the filename is tokenized:

1{
2 "success": true,
3 "item": {
4 "uuid": "DETECTION_UUID",
5 "media_type": "audio",
6 "status": "completed",
7 "face_only": false,
8 "metrics": {
9 "label": "fake",
10 "score": ["0.9", "0.8", "0.7"],
11 "consistency": "0.85",
12 "aggregated_score": "0.566"
13 },
14 "url": null,
15 "audio_url": null,
16 "filename": "redacted_abc123def4567890abcd1234.wav",
17 "duration": 8.2,
18 "c2pa_manifest": {
19 "validation_state": "NotPresent"
20 },
21 "zero_retention_mode": true,
22 "file_deleted_at": "2024-01-15T10:31:00Z",
23 "created_at": "2024-01-15T10:30:00Z",
24 "updated_at": "2024-01-15T10:30:05Z"
25 }
26}

Error Response (404)

1{
2 "success": false,
3 "message": "Detect not found"
4}