Deepfake Detection

Analyze audio, images, and video for synthetic tampering. Submit media for detection and retrieve structured metrics and visualizations.

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

1interface DetectionRequest {
2 url?: string; // publicly accessible media URL
3 media_token?: string; // token from POST /secure_uploads (mutually exclusive with url)
4 callback_url?: string;
5 visualize?: boolean;
6 frame_length?: number;
7 start_region?: number;
8 end_region?: number;
9 max_video_secs?: number;
10 intelligence?: boolean;
11 audio_source_tracing?: boolean;
12 use_reverse_search?: boolean; // image only
13 use_ood_detector?: boolean;
14 zero_retention_mode?: boolean;
15}

Response Shapes

1interface BaseDetectionResult {
2 success: true;
3 item: {
4 uuid: string;
5 created_at: string;
6 updated_at: string;
7 duration: string;
8 media_type: string;
9 status: string; // "processing" | "completed" | "failed"
10 url?: string;
11 audio_url?: string; // alias of url
12 filename?: string;
13 zero_retention_mode: boolean;
14 file_deleted_at: string | null;
15 visualize?: boolean;
16 audio_source_tracing_enabled?: boolean;
17 use_ood_detector?: boolean;
18 extra_params?: object;
19 error_message?: string;
20 intelligence?: {
21 uuid?: string;
22 description: string | IntelligenceDetails | null;
23 created_at: string;
24 detect_uuid?: string;
25 } | null;
26 audio_source_tracing?: {
27 label: string;
28 error_message: string | null;
29 } | null;
30 };
31}
32
33interface AudioDetectionResult extends BaseDetectionResult {
34 item: BaseDetectionResult["item"] & {
35 metrics: {
36 label: string;
37 score: string[];
38 consistency: string;
39 aggregated_score: string;
40 image?: string;
41 };
42 };
43}
44
45interface ImageDetectionResult extends BaseDetectionResult {
46 item: BaseDetectionResult["item"] & {
47 image_metrics: {
48 type: string;
49 label: string;
50 image: string;
51 score: number;
52 children: any[];
53 ifl?: {
54 score: number;
55 heatmap: string; // URL to heatmap visualization
56 };
57 reverse_image_search_sources?: Array<{ // present when use_reverse_search is enabled
58 url: string;
59 title: string;
60 reason: string;
61 verdict: string; // e.g. "known_fake"
62 similarity: number;
63 }>;
64 };
65 };
66}
67
68interface VideoDetectionResult extends BaseDetectionResult {
69 item: BaseDetectionResult["item"] & {
70 metrics: AudioDetectionResult["item"]["metrics"];
71 video_metrics: {
72 label: string;
73 score: number;
74 certainty: number;
75 treeview?: string;
76 children: Array<{
77 type: string;
78 conclusion: string;
79 score: number;
80 certainty: number;
81 "certainty (%)": string;
82 children: Array<{
83 type: string;
84 conclusion: string;
85 score: number;
86 certainty: number;
87 "certainty (%)": string;
88 timestamp: number;
89 children: Array<{
90 type: string;
91 conclusion: string;
92 score: number;
93 certainty: number;
94 "certainty (%)": string;
95 }>;
96 }>;
97 }>;
98 };
99 };
100}
FieldTypeDescription
pipelinestring | nullDeprecated field that may appear on older image/video detects returned by the API. Ignored for new detections.

Use the endpoints below to submit jobs and retrieve detection results for each modality.