Resemble AI subpackage_deepfakeDetection API
The subpackage_deepfakeDetection API from Resemble AI — 4 operation(s) for subpackage_deepfakedetection.
The subpackage_deepfakeDetection API from Resemble AI — 4 operation(s) for subpackage_deepfakedetection.
openapi: 3.1.0
info:
title: API Reference subpackage_account subpackage_deepfakeDetection API
version: 1.0.0
servers:
- url: https://f.cluster.resemble.ai
- url: https://app.resemble.ai/api/v2
tags:
- name: subpackage_deepfakeDetection
paths:
/detect:
get:
operationId: list-detections
summary: List all detects
description: Retrieve a paginated list of all detect objects for the authenticated user's team
tags:
- subpackage_deepfakeDetection
parameters:
- name: page
in: query
description: Page number (must be >= 1)
required: true
schema:
type: integer
- name: page_size
in: query
description: Number of items per page (10-1000)
required: false
schema:
type: integer
default: 10
- name: Authorization
in: header
description: API token from https://app.resemble.ai/account/api
required: true
schema:
type: string
responses:
'200':
description: List of detects
content:
application/json:
schema:
$ref: '#/components/schemas/Deepfake Detection_listDetections_Response_200'
post:
operationId: create-detection
summary: Create deepfake detection
description: 'Analyze audio, image, and video for deepfake detection.
Supply media via one of three intake methods:
- **Direct file upload** — `multipart/form-data` with the file attached as `file`. Files must be 150 MB or smaller and use one of the supported audio/video/image extensions. For larger files, use the secure upload flow.
- **Public URL** — `application/json` with a `url` field. The API fetches the URL itself.
- **Secure upload token** — `application/json` with a `media_token` field obtained from `POST /secure_uploads`.
Exactly one of `file`, `url`, or `media_token` must be provided per request.
'
tags:
- subpackage_deepfakeDetection
parameters:
- name: Authorization
in: header
description: API token from https://app.resemble.ai/account/api
required: true
schema:
type: string
responses:
'200':
description: Detection job created
content:
application/json:
schema:
$ref: '#/components/schemas/Deepfake Detection_createDetection_Response_200'
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
description: The media file to analyze (audio, video, or image). Must be 150 MB or smaller.
callback_url:
type: string
format: uri
description: POST destination when analysis completes
visualize:
type: boolean
description: Generate visualization artifacts
frame_length:
type: integer
default: 2
description: Window size in seconds (audio/video)
start_region:
type: number
format: double
description: Start of segment to analyze (seconds)
end_region:
type: number
format: double
description: End of segment to analyze (seconds)
max_video_secs:
type: number
format: double
description: Cap processed duration
model_types:
$ref: '#/components/schemas/DetectPostRequestBodyContentMultipartFormDataSchemaModelTypes'
description: Use talking_head for face-swaps
intelligence:
type: boolean
default: false
description: Run multimodal intelligence analysis on the media
audio_source_tracing:
type: boolean
default: false
description: Enable audio source tracing to identify synthetic audio origin
use_reverse_search:
type: boolean
default: false
description: Enable reverse image search to improve detection accuracy for image files. Only applies to image detections.
use_ood_detector:
type: boolean
default: false
description: Enable out-of-distribution detection
zero_retention_mode:
type: boolean
default: false
description: Enable Zero Retention Mode to automatically delete submitted media after detection completes.
required:
- file
/detect/{uuid}:
get:
operationId: get-detection
summary: Get deepfake detection result
description: Get deepfake detection result by UUID
tags:
- subpackage_deepfakeDetection
parameters:
- name: uuid
in: path
description: The UUID of the detect object
required: true
schema:
type: string
- name: Authorization
in: header
description: API token from https://app.resemble.ai/account/api
required: true
schema:
type: string
responses:
'200':
description: Detection result
content:
application/json:
schema:
$ref: '#/components/schemas/Deepfake Detection_getDetection_Response_200'
'404':
description: Detect not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/detect/batch:
post:
operationId: create-detect-batch
summary: Create a batch deepfake detection job
description: "Submit up to 50 files in a single request and process them as a single logical\ngroup. Returns HTTP 202 with a batch UUID; each file is analyzed in the\nbackground and individual results are available via `GET /detect/{uuid}` for\neach entry in `detect_uuids`.\n\nTwo intake methods:\n\n- **Multiple media files** — repeated `files[]` form fields.\n- **Single zip archive** — a single `file` form field whose value is a `.zip`\n containing the media files. Non-media entries are skipped.\n\nProvide one of `files[]` or `file=<...>.zip` per request. Synchronous mode\n(`Prefer: wait`) is not supported and returns 400 if sent.\n\nConstraints:\n\n- Maximum 50 files per batch.\n- Maximum 500 MB total upload size across all files.\n- Allowed file types match `POST /detect`'s direct-upload allowlist.\n- All-or-nothing billing: if the team's wallet cannot cover the projected cost\n for every file, the request is rejected with 402 and no detects are created.\n"
tags:
- subpackage_deepfakeDetection
parameters:
- name: Authorization
in: header
description: API token from https://app.resemble.ai/account/api
required: true
schema:
type: string
responses:
'202':
description: Batch accepted
content:
application/json:
schema:
$ref: '#/components/schemas/Deepfake Detection_createDetectBatch_Response_202'
'400':
description: 'Invalid batch request (missing files, both file and files[] supplied, file count or size exceeded, unsupported file type, or `Prefer: wait` header sent)'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'402':
description: Insufficient balance for the projected batch cost. Response `details` includes per-file estimates.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Intelligence detect limit reached (Default plan).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
files[]:
type: array
items:
type: string
format: binary
description: One or more media files. Repeat the `files[]` field for each file. Mutually exclusive with `file`.
file:
type: string
format: binary
description: A single `.zip` archive containing media files. Mutually exclusive with `files[]`.
callback_url:
type: string
format: uri
description: POST destination invoked when the batch reaches a terminal state.
intelligence:
type: boolean
default: false
description: Run multimodal intelligence on every file in the batch.
search_identity:
type: boolean
default: false
description: Run identity search against the team's saved identities (audio/video only).
visualize:
type: boolean
default: true
description: Generate visualization artifacts.
audio_source_tracing_enabled:
type: boolean
default: false
description: Enable audio source tracing on each audio file.
frame_length:
type: integer
description: Window size in seconds (audio/video).
start_region:
type: number
format: double
description: Start of segment to analyze (seconds).
end_region:
type: number
format: double
description: End of segment to analyze (seconds).
max_video_secs:
type: number
format: double
description: Cap processed video duration.
use_llm:
type: boolean
description: Use LLM-assisted video analysis.
zero_retention_mode:
type: boolean
default: false
description: Enable Zero Retention Mode for every file in the batch.
/detect/batch/{uuid}:
get:
operationId: get-detect-batch
summary: Get batch status
description: 'Retrieve the latest aggregate status for a batch. The response shape mirrors
the create response — `status`, `completed_count`, and `failed_count` update
as child detects progress. Use the `detect_uuids` array to fetch per-file
results via `GET /detect/{uuid}`.
'
tags:
- subpackage_deepfakeDetection
parameters:
- name: uuid
in: path
description: Batch UUID returned by `POST /detect/batch`.
required: true
schema:
type: string
- name: Authorization
in: header
description: API token from https://app.resemble.ai/account/api
required: true
schema:
type: string
responses:
'200':
description: Batch status
content:
application/json:
schema:
$ref: '#/components/schemas/Deepfake Detection_getDetectBatch_Response_200'
'404':
description: Batch not found (or not accessible by the authenticated team).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
schemas:
DetectPostResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1DigitallyAltered:
type: object
properties:
detected:
type: boolean
confidence:
type: number
format: double
alterations:
type: string
title: DetectPostResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1DigitallyAltered
DetectGetResponsesContentApplicationJsonSchemaItemsItemsExtraParams:
type: object
properties: {}
title: DetectGetResponsesContentApplicationJsonSchemaItemsItemsExtraParams
DetectUuidGetResponsesContentApplicationJsonSchemaItemIntelligenceDescription1:
type: object
properties:
speaker_info:
type: string
language:
type: string
dialect:
type: string
emotion:
type: string
speaking_style:
type: string
context:
type: string
message:
type: string
abnormalities:
type: string
transcription:
type: string
translation:
type:
- string
- 'null'
misinformation:
type: string
fraud:
$ref: '#/components/schemas/DetectUuidGetResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1Fraud'
liveness:
$ref: '#/components/schemas/DetectUuidGetResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1Liveness'
digitally_altered:
$ref: '#/components/schemas/DetectUuidGetResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1DigitallyAltered'
title: DetectUuidGetResponsesContentApplicationJsonSchemaItemIntelligenceDescription1
DetectUuidGetResponsesContentApplicationJsonSchemaItemMediaType:
type: string
enum:
- audio
- video
- image
title: DetectUuidGetResponsesContentApplicationJsonSchemaItemMediaType
DetectVideoMetricsChildrenItems:
type: object
properties:
type:
type: string
conclusion:
type: string
score:
type: number
format: double
certainty:
type: number
format: double
certainty (%):
type: string
children:
type: array
items:
$ref: '#/components/schemas/DetectVideoMetricsChildrenItemsChildrenItems'
description: Frame-level detection results
required:
- type
- conclusion
- score
- certainty
- certainty (%)
- children
title: DetectVideoMetricsChildrenItems
DetectPostResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1FraudType:
type: string
enum:
- none
- vishing
- impersonation
- romance_scam
- tech_support_scam
- financial_fraud
- extortion
- political_manipulation
- synthetic_media_fraud
- insurance_fraud
- employment_fraud
- other
title: DetectPostResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1FraudType
DetectPostResponsesContentApplicationJsonSchemaItem:
type: object
properties:
uuid:
type: string
status:
type: string
zero_retention_mode:
type: boolean
description: Whether Zero Retention Mode is enabled for this detect
file_deleted_at:
type:
- string
- 'null'
format: date-time
description: ISO 8601 timestamp of when the file was purged, or null if not yet deleted
url:
type:
- string
- 'null'
description: URL to the media file. Null when Zero Retention Mode is enabled.
audio_url:
type:
- string
- 'null'
description: Alias of url. Null when Zero Retention Mode is enabled.
filename:
type: string
description: Original filename, or tokenized (redacted_<token>.<ext>) when Zero Retention Modeon Modeon Mode is enabled
intelligence:
oneOf:
- $ref: '#/components/schemas/DetectPostResponsesContentApplicationJsonSchemaItemIntelligence'
- type: 'null'
description: Intelligence results when requested
title: DetectPostResponsesContentApplicationJsonSchemaItem
DetectUuidGetResponsesContentApplicationJsonSchemaItem:
type: object
properties:
uuid:
type: string
media_type:
$ref: '#/components/schemas/DetectUuidGetResponsesContentApplicationJsonSchemaItemMediaType'
status:
$ref: '#/components/schemas/DetectUuidGetResponsesContentApplicationJsonSchemaItemStatus'
metrics:
$ref: '#/components/schemas/DetectAudioMetrics'
image_metrics:
$ref: '#/components/schemas/DetectImageMetrics'
video_metrics:
$ref: '#/components/schemas/DetectVideoMetrics'
audio_source_tracing:
oneOf:
- $ref: '#/components/schemas/DetectUuidGetResponsesContentApplicationJsonSchemaItemAudioSourceTracing'
- type: 'null'
description: Source tracing results (only returned if audio is labeled fake)
intelligence:
oneOf:
- $ref: '#/components/schemas/DetectUuidGetResponsesContentApplicationJsonSchemaItemIntelligence'
- type: 'null'
description: Intelligence results when requested
url:
type:
- string
- 'null'
description: URL to the media file. Null when Zero Retention Modeon Modeon Modeon Modeon Modeon Modeon Mode is enabled.
audio_url:
type:
- string
- 'null'
description: Alias of url. Null when Zero Retention Mode is enabled.
filename:
type: string
description: Original filename, or tokenized (redacted_<token>.<ext>) when Zero Retention Mode is enabled
duration:
type: number
format: double
zero_retention_mode:
type: boolean
description: Whether Zero Retention Mode is enabled for this detect
file_deleted_at:
type:
- string
- 'null'
format: date-time
description: ISO 8601 timestamp of when the file was purged, or null if not yet deleted
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
title: DetectUuidGetResponsesContentApplicationJsonSchemaItem
DetectGetResponsesContentApplicationJsonSchemaItemsItemsAudioSourceTracing:
type: object
properties:
label:
type: string
description: Identified source (e.g., resemble_ai, elevenlabs) or "real" if audio is not synthetic
error_message:
type:
- string
- 'null'
description: Source tracing results (only returned if audio is labeled fake)
title: DetectGetResponsesContentApplicationJsonSchemaItemsItemsAudioSourceTracing
DetectBatch:
type: object
properties:
uuid:
type: string
description: Batch UUID.
status:
$ref: '#/components/schemas/DetectBatchStatus'
description: "Aggregate status across all child detects.\n - `processing` — at least one child detect is still running.\n - `completed` — every child detect completed successfully.\n - `partially_failed` — at least one succeeded and at least one failed.\n - `failed` — every child detect failed.\n"
total_files:
type: integer
description: Number of files in the batch (1–50).
completed_count:
type: integer
description: Number of child detects that have completed successfully.
failed_count:
type: integer
description: Number of child detects that have failed.
created_at:
type: string
format: date-time
detect_uuids:
type: array
items:
type: string
description: UUIDs of the child detects. Use `GET /detect/{uuid}` to retrieve per-file results.
description: Aggregate state for a batch detection job. Returned by `POST /detect/batch` and `GET /detect/batch/{uuid}`.
title: DetectBatch
DetectUuidGetResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1LivenessAssessment:
type: string
enum:
- real_person
- not_real_person
- inconclusive
title: DetectUuidGetResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1LivenessAssessment
DetectPostResponsesContentApplicationJsonSchemaItemIntelligenceDescription1:
type: object
properties:
speaker_info:
type: string
language:
type: string
dialect:
type: string
emotion:
type: string
speaking_style:
type: string
context:
type: string
message:
type: string
abnormalities:
type: string
transcription:
type: string
translation:
type:
- string
- 'null'
misinformation:
type: string
fraud:
$ref: '#/components/schemas/DetectPostResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1Fraud'
liveness:
$ref: '#/components/schemas/DetectPostResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1Liveness'
digitally_altered:
$ref: '#/components/schemas/DetectPostResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1DigitallyAltered'
title: DetectPostResponsesContentApplicationJsonSchemaItemIntelligenceDescription1
DetectVideoMetrics:
type: object
properties:
label:
type: string
description: Overall video detection label
score:
type: number
format: double
description: Overall detection score
certainty:
type: number
format: double
description: Overall certainty score
treeview:
type: string
description: Optional tree visualization data
children:
type: array
items:
$ref: '#/components/schemas/DetectVideoMetricsChildrenItems'
description: Hierarchical detection results across frames
required:
- label
- score
- certainty
- children
description: Video detection metrics (for video media type)
title: DetectVideoMetrics
DetectPostResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1Fraud:
type: object
properties:
type:
$ref: '#/components/schemas/DetectPostResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1FraudType'
confidence:
type: number
format: double
reasoning:
type: string
title: DetectPostResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1Fraud
DetectBatchStatus:
type: string
enum:
- processing
- completed
- partially_failed
- failed
description: "Aggregate status across all child detects.\n - `processing` — at least one child detect is still running.\n - `completed` — every child detect completed successfully.\n - `partially_failed` — at least one succeeded and at least one failed.\n - `failed` — every child detect failed.\n"
title: DetectBatchStatus
Deepfake Detection_listDetections_Response_200:
type: object
properties:
success:
type: boolean
page:
type: integer
num_pages:
type: integer
page_size:
type: integer
total_count:
type: integer
items:
type: array
items:
$ref: '#/components/schemas/DetectGetResponsesContentApplicationJsonSchemaItemsItems'
title: Deepfake Detection_listDetections_Response_200
DetectGetResponsesContentApplicationJsonSchemaItemsItemsMediaType:
type: string
enum:
- audio
- video
- image
title: DetectGetResponsesContentApplicationJsonSchemaItemsItemsMediaType
DetectUuidGetResponsesContentApplicationJsonSchemaItemIntelligence:
type: object
properties:
uuid:
type: string
description:
$ref: '#/components/schemas/DetectUuidGetResponsesContentApplicationJsonSchemaItemIntelligenceDescription'
created_at:
type: string
format: date-time
description: Intelligence results when requested
title: DetectUuidGetResponsesContentApplicationJsonSchemaItemIntelligence
DetectVideoMetricsChildrenItemsChildrenItemsChildrenItems:
type: object
properties:
type:
type: string
conclusion:
type: string
score:
type: number
format: double
certainty:
type: number
format: double
certainty (%):
type: string
required:
- type
- conclusion
- score
- certainty
- certainty (%)
title: DetectVideoMetricsChildrenItemsChildrenItemsChildrenItems
DetectUuidGetResponsesContentApplicationJsonSchemaItemIntelligenceDescription:
oneOf:
- type: string
- $ref: '#/components/schemas/DetectUuidGetResponsesContentApplicationJsonSchemaItemIntelligenceDescription1'
title: DetectUuidGetResponsesContentApplicationJsonSchemaItemIntelligenceDescription
DetectUuidGetResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1FraudType:
type: string
enum:
- none
- vishing
- impersonation
- romance_scam
- tech_support_scam
- financial_fraud
- extortion
- political_manipulation
- synthetic_media_fraud
- insurance_fraud
- employment_fraud
- other
title: DetectUuidGetResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1FraudType
DetectPostRequestBodyContentMultipartFormDataSchemaModelTypes:
type: string
enum:
- image
- talking_head
description: Use talking_head for face-swaps
title: DetectPostRequestBodyContentMultipartFormDataSchemaModelTypes
DetectImageMetricsChildrenItems:
type: object
properties: {}
title: DetectImageMetricsChildrenItems
Deepfake Detection_createDetectBatch_Response_202:
type: object
properties:
success:
type: boolean
item:
$ref: '#/components/schemas/DetectBatch'
title: Deepfake Detection_createDetectBatch_Response_202
DetectPostResponsesContentApplicationJsonSchemaItemIntelligence:
type: object
properties:
description:
$ref: '#/components/schemas/DetectPostResponsesContentApplicationJsonSchemaItemIntelligenceDescription'
created_at:
type: string
format: date-time
description: Intelligence results when requested
title: DetectPostResponsesContentApplicationJsonSchemaItemIntelligence
DetectAudioMetrics:
type: object
properties:
label:
type: string
description: Detection label (fake or real)
score:
type: array
items:
type: string
description: Array of prediction scores per chunk
consistency:
type: string
description: Consistency metric across chunks
aggregated_score:
type: string
description: Overall aggregated detection score
image:
type: string
description: URL to visualization heatmap image (if visualize=true)
required:
- label
- score
- consistency
- aggregated_score
description: Audio detection metrics (for audio and video media types)
title: DetectAudioMetrics
DetectPostResponsesContentApplicationJsonSchemaItemIntelligenceDescription:
oneOf:
- type: string
- $ref: '#/components/schemas/DetectPostResponsesContentApplicationJsonSchemaItemIntelligenceDescription1'
title: DetectPostResponsesContentApplicationJsonSchemaItemIntelligenceDescription
DetectImageMetrics:
type: object
properties:
type:
type: string
description: Type of image analysis performed
label:
type: string
description: Detection label (fake or real)
image:
type: string
description: URL to visualization image
score:
type: number
format: double
description: Detection confidence score
children:
type: array
items:
$ref: '#/components/schemas/DetectImageMetricsChildrenItems'
description: Nested analysis results (structure varies by pipeline)
required:
- type
- label
- image
- score
- children
description: Image detection metrics (for image media type)
title: DetectImageMetrics
DetectPostResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1LivenessAssessment:
type: string
enum:
- real_person
- not_real_person
- inconclusive
title: DetectPostResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1LivenessAssessment
DetectUuidGetResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1DigitallyAltered:
type: object
properties:
detected:
type: boolean
confidence:
type: number
format: double
alterations:
type: string
title: DetectUuidGetResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1DigitallyAltered
DetectUuidGetResponsesContentApplicationJsonSchemaItemAudioSourceTracing:
type: object
properties:
label:
type: string
description: Identified source (e.g., resemble_ai, elevenlabs) or "real" if audio is not synthetic
error_message:
type:
- string
- 'null'
description: Source tracing results (only returned if audio is labeled fake)
title: DetectUuidGetResponsesContentApplicationJsonSchemaItemAudioSourceTracing
Error:
type: object
properties:
success:
type: boolean
error:
type: string
errors:
type: object
additionalProperties:
type: array
items:
type: string
message:
type: string
title: Error
DetectGetResponsesContentApplicationJsonSchemaItemsItemsStatus:
type: string
enum:
- processing
- completed
- failed
title: DetectGetResponsesContentApplicationJsonSchemaItemsItemsStatus
DetectUuidGetResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1Fraud:
type: object
properties:
type:
$ref: '#/components/schemas/DetectUuidGetResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1FraudType'
confidence:
type: number
format: double
reasoning:
type: string
title: DetectUuidGetResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1Fraud
Deepfake Detection_getDetectBatch_Response_200:
type: object
properties:
success:
type: boolean
item:
$ref: '#/components/schemas/DetectBatch'
title: Deepfake Detection_getDetectBatch_Response_200
Deepfake Detection_createDetection_Response_200:
type: object
properties:
success:
type: boolean
item:
$ref: '#/components/schemas/DetectPostResponsesContentApplicationJsonSchemaItem'
title: Deepfake Detection_createDetection_Response_200
DetectGetResponsesContentApplicationJsonSchemaItemsItemsIntelligence:
type: object
properties: {}
title: DetectGetResponsesContentApplicationJsonSchemaItemsItemsIntelligence
DetectPostResponsesContentApplicationJsonSchemaItemIntelligenceDescriptionOneOf1Liveness:
type: object
properties:
assessment:
$ref: '#/components/schemas/DetectPostResponsesConten
# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/resemble-ai/refs/heads/main/openapi/resemble-ai-subpackage-deepfakedetection-api-openapi.yml