For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Status
OverviewProductsManageAPI ReferenceTutorialsClient Libraries
OverviewProductsManageAPI ReferenceTutorialsClient Libraries
  • Voice Generation
    • Speech-to-Speech
  • Voice Creation
  • Voice Tools
  • Real-Time Agents
    • Overview
  • Safety & Detection
      • Overview
      • Create Detection
      • Batch Detection
      • Get Detection
      • List Detects
      • Secure Upload
Status
LogoLogo
On this page
  • Request Schema
  • Response Shapes
  • Related Endpoints
Safety & DetectionDeepfake Detection

Deepfake Detection

Was this page helpful?
Previous

Submit Detection Job

Next
Built with

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}
Legacy Response Fields
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.

Related Endpoints

  • Create Detection - Submit a detection job
  • Get Detection - Retrieve a single detection result
  • List Detects - Retrieve all detection results with pagination