Skip to main content
Classify a video

Authorizations

X-Api-Key
string
header
required

Your API key.

Headers

Accept
enum<string>

Response content type. Supported: application/json, text/plain.

Available options:
application/json,
text/plain

Body

multipart/form-data
video
file
required

The video to be classified. Supported formats: Any video format (MP4, AVI, MOV, etc.). MIME types: Any mimetype starting with 'video/' (e.g., video/mp4, video/avi, video/quicktime). Maximum file size: 50MB.

ref_id
string

An optional reference ID to associate with the classification request.

frames
enum<integer>

Choose to classify a maximum of 5, 10 or 30 frames.

Available options:
5,
10,
30
key_frames
boolean

If set to true extracts key frames and uses those for classification instead of fixed-time distance images. The extracted key frames may be less than the requested frames. Ignored when ensure_face_per_frame or frames_timestamps is provided.

key_frames_method
enum<string>

Key frames identification algorithm. Possible values are iframes (default), flow and color.

  • iframes : extracts the iframes of the video;
  • color : returns the average frame, based on color, of every shot sequence. Shot sequences are group of frames that start with an iframe;
  • flow : returns the most still frame with respect of the previous frame of every shot sequence.
Available options:
iframes,
flow,
color
with_tampering
boolean

Set it to true if you also want to analyze the image for signs of tampering or manipulation, without the aid of a Generative AI.

with_morphing
boolean

Set it to true if you also want to analyze people's faces in the image using morphing.

with_audio
boolean

[BETA] Set it to true if you also want to analyze the audio track of the video. You must be enabled in your pricing plan to use this option.

with_smart_analysis
boolean

Set it to true to enable the Smart Full Analysis on each analyzed frame: a proprietary scoring algorithm selects the most informative areas of the frame, which are classified as separate crops by the most advanced model of the Revelio family and then combined into an overall verdict. Being an advanced, smart version of both, it replaces the standard full analysis and the heatmap analysis of the frames. You must be enabled in your pricing plan to use it, otherwise the parameter is ignored. See Smart Full Analysis for details.

webhook_url
string

If specified, the classification result will also be automatically sent to the entered URL. Otherwise, the result can be obtained by polling the relative endpoint. Please note that in order to use a webhook callback URL you need to request a specific enablement, otherwise the parameter is ignored. Moreover, the system may cache the analysis results of repeated submissions, i.e. submissions of the same file with the same options: in this case the webhook won't be called and the results would be accessible only by polling the relative endpoint.

with_xai
boolean

Set it to true to enable the XAI – eXplainable AI scope: besides the verdict, the Revelio models return information on the areas of each analyzed frame they focused on during the classification (attention map and attention graph). XAI is applied to each analyzed frame. You must be enabled in your pricing plan to use it, otherwise the parameter is ignored. See XAI – eXplainable AI for details. Data Transfer Notice: Enabling this feature transfers your image data to our EU cloud infrastructure for model inference.

with_llm_xai
boolean

Set it to true, together with with_xai, to also get the AI-powered explanations: a natural-language description of the regions that received the most attention, returned in the description of the explanations of the per-model results once the deferred results are ready. Explanations are produced for each analyzed frame. It is ignored when with_xai is not enabled. If XAI is included in your pricing plan but the AI-powered explanations are not, a request with with_llm_xai=true is rejected with a 403 error. The credits of the explanations that cannot be generated are refunded. The AI-powered explanations are generated with models that are not developed by identifAI.

llm_xai_language
enum<string>

Language of the AI-powered explanations (case-insensitive). If omitted, the default language of your pricing plan is used. It is applied only together with with_llm_xai; an unsupported value is rejected with a 400 error.

Available options:
english,
italian,
spanish,
german
deferred_webhook_url
string

If specified, the URL is notified once when the deferred results of the submission are complete (e.g. the textual explanations of the XAI maps and of the heatmap), after the main results sent to webhook_url. The notification carries the event submission.deferred.completed: see Deferred results for the payload. The same enablement, domain restrictions and authentication of webhook_url apply. Delivery is at least once: deduplicate by identifier, and note that an expired notification can be followed by a second one with the real outcome, which supersedes it. If omitted or empty, no deferred notification is sent.

no_cache
boolean

Set it to true to force the system to reprocess the image even if it has been previously submitted with the same options. This may result in additional charges.

prevent_c2pa_forces
boolean

If true, C2PA signature does not force the origin to artificial. If false or undefined, C2PA signature will force the origin to artificial (current behaviour).

with_nsfw
boolean

Set it to true if you also want to enable NSFW (Not Safe For Work) content detection.

ensure_face_per_frame
boolean

[Plan feature] Set it to true to select the faces frame extraction strategy: starting from time-spaced sampling, the system searches the video for frames containing at least one face, up to the number of frames to analyze (frames). Use it in combination with with_morphing option to detect potential face swaps or morphing occurring in the video. It is an alternative to the other strategies: when enabled, key_frames and key_frames_method are ignored, while it is itself ignored when frames_timestamps is provided. The search is time-limited, so on videos where faces are rare or absent fewer frames may be analyzed: frames that are not analyzed are refunded once the analysis is complete. This option may increase processing time and, depending on your pricing plan, the cost of each frame. You must be enabled in your pricing plan to use this option, otherwise the parameter is ignored.

frames_timestamps
string

[Plan feature] Specific moments of the video to analyze. Comma-separated list of timecodes in HH:MM:SS.mmm format, measured from the beginning of the file (e.g. 00:00:05.000,00:01:12.500). When provided, exactly one frame is extracted at each listed moment and the other frame extraction strategies are disabled: frames, key_frames, key_frames_method and ensure_face_per_frame are ignored. Duplicated moments are counted once. You can list up to 30 moments if your pricing plan lets you choose the number of frames, otherwise up to the default number of frames (10). One frame is charged for each distinct moment. Moments beyond the end of the video are skipped: if none of them falls within the video, the classification ends with an error. You must be enabled in your pricing plan to use this option, otherwise the parameter is ignored.

Example:

"00:00:05.000,00:01:12.500"

audio_timestamps
string

[Plan feature] Specific moments of the video's audio track to analyze. Comma-separated list of timecodes in HH:MM:SS.mmm format, measured from the beginning of the file (e.g. 00:00:05.000,00:01:12.500). It is used only together with with_audio. When provided, instead of splitting the audio into chunks over its whole duration, the system analyzes one short audio chunk centred on each listed moment; moments close enough to fall within the same chunk are analyzed together in a single chunk. Duplicated moments are counted once. You can list up to 30 moments if your pricing plan lets you choose the number of audio chunks, otherwise up to 5. One audio chunk is charged for each distinct moment: chunks that are not produced (grouped moments, moments beyond the end of the audio) are refunded once the analysis is complete. If none of the moments falls within the audio, the classification ends with an error. You must be enabled in your pricing plan to use this option, otherwise the parameter is ignored.

Example:

"00:00:05.000,00:01:12.500"

Response

The classification identifier. The format depends on the Accept header.

identifier
string
Example:

"8d64370a87b820cc1cf620338f5c898bab37439c9a405f32d9eaffc50c4f27b0"