> 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/list-detections/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.resemble.ai/_mcp/server. # List all detects GET https://app.resemble.ai/api/v2/detect Retrieve a paginated list of all detect objects for the authenticated user's team Reference: https://docs.resemble.ai/api-reference/deepfake-detection/list-detections ## Authentication - `Authorization` header (bearer token, required) — API key from https://app.resemble.ai/hub/api ## Request ### Query parameters - `page` (integer, required) — Page number (must be >= 1) - `page_size` (integer, optional, default: 10) — Number of items per page (10-1000) ## Response ### 200 List of detects - `success` (boolean, optional) - `page` (integer, optional) - `num_pages` (integer, optional) - `page_size` (integer, optional) - `total_count` (integer, optional) - `items` (list of DetectGetResponsesContentApplicationJsonSchemaItemsItems, optional) ## Types ### DetectGetResponsesContentApplicationJsonSchemaItemsItems - `uuid` (string, optional) - `media_type` (enum, optional) - Allowed values: `audio`, `video`, `image` - `status` (enum, optional) — Processing state for the requested Detect work. For an otherwise successful Detect with watermark analysis, this remains processing until the linked analysis completes or fails. A core detection failure still reports failed. - Allowed values: `processing`, `completed`, `failed` - `modality` (enum, optional) — Which detection modality was requested. `all` when not specified (the default). Only meaningful for video detects. - 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. - `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` (DetectGetResponsesContentApplicationJsonSchemaItemsItemsAudioSourceTracing, optional, nullable) — Source tracing results (only returned if audio is labeled fake) - `intelligence` (DetectGetResponsesContentApplicationJsonSchemaItemsItemsIntelligence, optional, nullable) - `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 was 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 - `visualize` (boolean, optional) - `audio_source_tracing_enabled` (boolean, optional) - `use_ood_detector` (boolean, optional) - `extra_params` (DetectGetResponsesContentApplicationJsonSchemaItemsItemsExtraParams, optional) - `error_message` (string, optional, nullable) - `created_at` (datetime, optional) - `updated_at` (datetime, optional) - `pipeline` (string, optional, nullable, deprecated) — Legacy field. May be present on older image/video detects. Ignored on create for new detections. ### 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. ### 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 ### DetectGetResponsesContentApplicationJsonSchemaItemsItemsAudioSourceTracing 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) ### DetectGetResponsesContentApplicationJsonSchemaItemsItemsIntelligence ### DetectGetResponsesContentApplicationJsonSchemaItemsItemsExtraParams ### 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. ### 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 ### 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. ### 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 ### 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) ### DetectVideoMetricsChildrenItemsChildrenItemsChildrenItems - `type` (string, required) - `conclusion` (string, required) - `score` (double, required) - `certainty` (double, required) - `certainty (%)` (string, required) ## Examples **Response** ```json { "success": true, "page": 1, "num_pages": 1, "page_size": 1, "total_count": 1, "items": [ { "uuid": "string", "media_type": "audio", "status": "processing", "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" }, "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": {}, "url": "string", "audio_url": "string", "filename": "string", "duration": 1.1, "zero_retention_mode": true, "file_deleted_at": "2024-01-15T09:30:00Z", "visualize": true, "audio_source_tracing_enabled": true, "use_ood_detector": true, "extra_params": {}, "error_message": "string", "created_at": "2024-01-15T09:30:00Z", "updated_at": "2024-01-15T09:30:00Z", "pipeline": "string" } ] } ``` **SDK Code** ```python import requests url = "https://app.resemble.ai/api/v2/detect" querystring = {"page":"1"} headers = {"Authorization": "Bearer "} response = requests.get(url, headers=headers, params=querystring) print(response.json()) ``` ```javascript const url = 'https://app.resemble.ai/api/v2/detect?page=1'; 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?page=1" 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?page=1") 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?page=1") .header("Authorization", "Bearer ") .asString(); ``` ```php request('GET', 'https://app.resemble.ai/api/v2/detect?page=1', [ 'headers' => [ 'Authorization' => 'Bearer ', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://app.resemble.ai/api/v2/detect?page=1"); 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?page=1")! 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() ```