Developer Guide


This is the API documentation for MetaDefender Distributed Cluster Public API. If you would like to evaluate or have any questions about this documentation, please contact us via our Contact Us form.


How to Interact with MetaDefender Distributed Cluster API Gateway using REST API

MetaDefender Distributed Cluster API Gateway is used to submit files for analysis, retrieve scan results, manage file processing, download processed files, and manage file batches. OPSWAT recommends using the JSON-based REST API. The available methods are documented below.

Note: MetaDefender Distributed Cluster API doesn't support chunk upload, however is recommended to stream the files to MetaDefender Distributed Cluster API Gateway as part of the upload process.


File Analysis Process

MetaDefender Distributed Cluster is a system with multiple components that work together to utilize the power of multiple MetaDefender Core instances. The system is designed to handle large volumes of files and provide high throughput for file analysis. The system can be deployed in a distributed manner, allowing for horizontal scaling and load balancing across multiple MD Core instances.

Below is a brief description of the API integration flow:

  1. Upload a file for analysis to MetaDefender Distributed Cluster API Gateway (POST /file), which returns the data_id: File Analysis.

  2. The following method can be used to retrieve the analysis report:

    • Polling: Fetch the result with previously received data_id (GET /file/{data_id} resource) until scan result belonging to data_id doesn't reach the 100 percent progress_percentage: (Fetch analysis result)

    Note: Too many data_id requests can reduce performance. It is enough to just check every few hundred milliseconds.

  3. Retrieve the analysis results anytime after the analysis is completed with hash for files (md5, sha1, sha256, sha512) by calling Fetch analysis result by hash.

    • The hash can be found in the scan results
  4. Retrieve processed file (sanitized, redacted, watermarked, etc.) after the analysis is complete.

    Note: Based on the configured retention policy, the files might be available for retrieval at a later time.


OPSWAT provides some sample codes on GitHub to make it easier to understand how the MetaDefender REST API works.

Server
http://localhost:8899
Server Variables
apiKey apikey

Generated session_id from Login call can be used as an apikey for API calls that require authentication.

Fields
KeyIn
apikeyHeader

Auth

Authentication APIs

User authentication is done via username & password.

Login

Initiate a new session. Required for using protected REST APIs.

Auth
Request Body
objectobject
userstring

Username

passwordstring

User's password

POST /login
Copy
Responses
200

OK

objectobject
oms-csrf-tokenstring

The randomly generated token used to prevent CSRF attacks

session_idstring

The apikey used to make API calls which requires authentication

403

Invalid credentials

500

Unexpected event on server

Response
Copy

Logout

Destroy session for not using protected REST APIs.

Auth
Headers
apikeystring

Generated session_id from Login call can be used as an apikey for API calls that require authentication.

POST /logout
Copy
Responses
200

OK

objectobject
responsestring
400

Bad Request.

403

Invalid user information.

500

Unexpected event on server

Response
Copy

Analysis

File analysis APIs

Submit each file to MetaDefender Distributed Cluster API Gateway individually or group them in batches. Each file submission will return a data_id which will be the unique identifier used to retrieve the analysis results.

Note: MetaDefender API doesn't support chunk upload. You shouldn't load the file in memory, is recommended to stream the files to MetaDefender Distributed Cluster API Gateway as part of the upload process.

Analyze File (Asynchronous mode)

Scanning a file using a specified workflow. Scan is done asynchronously and each scan request is tracked by data id of which result can be retrieved by API Fetch Scan Result.

Note: Chunked transfer encoding (applying header Transfer-Encoding: Chunked) is not supported on /file API.

Auth
Headers
apikeystring

Generated session_id from Login call can be used as an apikey for API calls that require authentication.

filenamestring

The name of the submitted file

user_agentstring

user_agent header used to identify (and limit) access to a particular rule. For rule selection, rule header should be used.

rulestring

Select rule for the analysis, if no header given the default rule will be selected (URL encoded UTF-8 string of rule name)

batchstring

Batch id to scan with, coming from Initiate Batch (If it is not given, it will be a single file scan.)

archivepwdstring

Password for archive ( URL encoded UTF-8 string) Multiple passwords is also supported, format: archivepwdX

  • X: Could be empty
  • When having value, X must be a number >= 1

For example:

  • archivepwd1: "fox"
  • archivepwd2: "cow"
  • archivepwd3: "bear"
content-encodingstring

Content encoding of the file. This header is used to specify the encoding of the file content. The value should be a valid content encoding type, such as "base64", "gzip". This header is optional and can be omitted if the encoding is not applicable.

metadatastring

Could be utilized for:

  • Additional parameter for pre-defined post actions and external scanners (as a part of STDIN input).

  • Customized macro variable for watermarking text (Proactive DLP engine feature).

  • Additional context / verbose information for each file submission (appended into JSON response scan result).

It is strongly recommended to apply URL encoding before sending metadata to Metadefender Core to prevent unexpected issues related to encoding errors or unsafe characters.

engines-metadatastring

Since MetaDefender Core 5.0.0, preferred context / verbose information can be sent to the engines.

Please see the below pages for the details:

global-timeoutinteger

This custom global timeout (in seconds) will override the global timeout predefined in corresponding workflow rule.

Request Body
filefile
POST /file
Copy
Responses
200

Successful file submission

objectobject
data_idstring

Unique submission identifier. Use this value to reference the submission.

403

Invalid user information or Not Allowed

411

Content-Length header is missing from the request.

422

Body input is empty.

500

Unexpected event on server

503

Server is too busy. Try again later.

Response
Copy

Fetch Analysis Result

Retrieve scan results.

Scan is done asynchronously and each scan request is tracked by a data ID.

Initiating file scans and retrieving the results need to be done using two separate API calls. This request needs to be made multiple times until the scan is complete. Scan completion can be traced using scan_results.progress_percentage value from the response.

Note: The REST API also supports pagination for archive file result. A completed response description with archive detection:

  • extracted_files: information about extracted files
    • files_extracted_count: the number of extracted files
    • files_in_archive: array of files in archive
      • detected_by: number of engines reported threat
      • scanned_with: number of engines used for scanning the file
    • first_index: it tells that from which file (index of the file, 0 is the first) the result JSON contains information about extracted files. (default=0)
    • page_size: it tells how many files the result JSON contains information about (default=50). So by default, the result JSON contains information about the first 50 extracted files.
    • worst_data_id: data id of the file that has the worst result in the archive
  • scan_results
    • last_file_scanned (stored only in memory, not in database): If available, the name of the most recent processed file

Auth
Headers
apikeystring

Generated session_id from Login call can be used as an apikey for API calls that require authentication.

user_agentstring

user_agent header used to identify (and limit) access to a particular rule. For rule selection, rule header should be used.

Path Params
data_idstring

Unique submission identifier. Use this value to reference the submission.

Query String
firstinteger

The first item order in the list child files of archive file

sizeinteger

The number of items to be fetched next, counting from the item order indicated in first header

GET /file/{data_id}
Copy
Responses
200

Entire analysis report generated by MetaDefender Core

objectobject
data_idstring

data identifier of the requested file

dlp_infoobject

Full report from Proactive DLP

certaintystring

Describes how certain the hit is, possible values:

  • Very Low
  • Low
  • Medium
  • High
  • Very High

Enum: Very Low,Low,Medium,High,Very High

errorsobject

A list of error objects (empty if no errors happened), each error object contains following keys:

  • scan: scan related error description
  • redact: redaction related error description
  • watermark: watermark related error description
  • metadata_removal: metadata removal related error description
filenamestring

Output processed file name (pre-configured on engine settings under Core's worflow rule)

hitsobject

Detailed results that contains as key the type of matched rule:

  • ccn (credit card number),
  • ssn (social security number),
  • regex_ (regular expression with an index in order to differentiate the RegEx rules if there are more.)
ccnobject
display_namestring

Credit Card Number, Social Security Number, or in case of RegEx, the name of the rule that has been given by the user

hitsarray[object]

A list of detections that matched this rule/pattern.

afterstring

The context after the matched data.

beforestring

The context before the matched data.

certaintystring

The text version of "certainty_score", possible values:

  • Very Low
  • Low
  • Medium
  • High
  • Very High

Enum: Very Low,Low,Medium,High,Very High

certainty_scoreinteger

Is defined by the relevance of the given hit in its context. It is calculated based on multiple factors such as the number of digits, possible values: [0-100]

hitstring

The matched data.

locationstring

The location of the hit that is found in a file.

severityinteger

(NOTE: this field is deprecated): can be 0 (detected) or 1 (suspicious).

Enum: 0,1

tryRedactboolean

If file was redacted or not.

metadata_removalobject

Result of metadata removal.

resultstring

Result of the metadata removal process, possible values:

  • removed
  • not removed
  • failed to remove

Enum: removed,not removed,failed to remove

redactobject

Result of redaction process.

resultstring

Result of the redaction process, possible values:

  • redacted
  • not redacted
  • failed to redact

Enum: redacted,not redacted,failed to redact

severityinteger

(NOTE: this field is deprecated): represents the severity of the data loss, possible values:

  • 0 - Certainly is data loss
  • 1 - Might be data loss

Enum: 0,1

verdictinteger

The overall result for the scanned file. Possible values:

  • 0 - Clean
  • 1 - Found matched data
  • 2 - Suspicious
  • 3 - Failed
  • 4 - Not scanned

Enum: 0,1,2,3,4

watermarkobject

Result of watermarking process.

resultstring

Result of the watermarking process, possible values:

  • added
  • not added
  • failed to add

Enum: added,not added,failed to add

download_infoobject

The downloading status.

error_detailstring

Revealed detailed reason why the download failed.

progressnumber

Only applicable when "status" is Downloading, indicates download finished percentage, in a range of [1, 99].

  • Once hitting 100, the status will be changed to Download Success.
  • or other problematic status (Download Cancelled, Download Failed) if the download stopped unexpectedly.
statusstring

Indicates download status, which could be either

  • Downloading
    • Check progress key value for actual download percentage
      "download_info": {
          "progress": 7,
          "status": "Downloading",
          "url": "http://192.168.200.97:8080/5gb.zip"
      }
  • Download Success
      "download_info": {
          "status": "Download Success",
          "url": "https://secure.eicar.org/eicar.com"
      }
  • Download Failed
    • Check error_detail key value for an error explanation
      "download_info": {
          "error_detail": "Connection error",
          "status": "Download Failed",
          "url": "http://192.168.200.97:8080/2gb.zip"
      }
  • Download Timeout
    • Expecting to occur when the download progress takes longer than what time window allowed in MetaDefender Core's pre-configured setting under workflow rule (under "SCAN" tab)
      "download_info": {
          "status": "Download Timeout",
          "url": "http://192.168.200.97:8080/2gb.zip"
      }
  • Download Cancelled
    • Expecting to occur when user explicitly cancelled that file scan request, or batch request that the scan belongs to
      "download_info": {
          "status": "Download Cancelled",
          "url": "http://192.168.200.97:8080/5gb.zip"
      }
urlstring

Original download link which was specified in HTTP(S) request's downloadfrom header

extraction_infoobject

Details for archive extraction.

decrypted_statusstring

Indicate that decryption phase is successful or not.

Enum: Success,Failed

err_categorystring

Error category

err_codeinteger

Error code

err_detailsstring

Error message

is_encrypted_fileboolean

Indicate if file is password-protected or not.

file_infoobject

basic information of the scanned file

display_namestring

The filename reported via filename header.

file_sizeinteger

Total file size in bytes.

file_typestring

The filetype using mimetype.

file_type_descriptionstring

The filetype in human readable format.

md5string

File's MD5 hash.

sha1string

File's SHA1 hash.

sha256string

File's SHA256 Hash.

sha512string

File's SHA512 Hash.

signer_infosarray[object]

Digital signature information of the scanned file.

digest_algorithmstring

Digest algorithm.

digest_encryption_algorithmstring

Encryption algorithm.

issuerstring

Entity that develops and registers the certificate.

serial_numberstring

Serial number of the certificate.

vendor_namestring

Entity that is issued a certificate and utilize it for creating a digital signature.

versionstring

Version of X.509 that is used in the certificate. This version field is zero-based.

  • 0: v1
  • 1: v2
  • 2: v3
type_categoryarray[string]

File type category.

  • A - Archive files
  • AP - Application
  • D - Document (Microsoft Office)
  • D_ENC - Encrypted Documents
  • E - Executables
  • G - Graphical format (JPG, PNG, GIF, etc.)
  • I - Disk image
  • M - Audio or video format
  • OPENSSL_ENC - OpenSSL Encrypted Files
  • P - PDF format
  • T - Text
  • Z - Mail messages
  • O - Other (anything that is not recognized as one of the above)

Enum: A,D,E,G,I,M,P,T,Z,O

receive_data_timestampstring

The timestamp when upload progress started (first byte received) (in milliseconds)

upload_timeinteger

Total time elapsed for upload process (in milliseconds).

upload_timestampstring

The timestamp when upload progress finished (all bytes received) (in milliseconds)

filetype_infoobject

response information from FileType engine

file_infoobject
descriptionstring

File type description

detected_bystring

Analyzer that detected the file type

encryptedboolean

File is password-protected or not

extensionsstring

File type extension

groupIDstring

File type category

groupIDsarray[string]

File type category.

  • A - Archive files
  • AP - Application
  • D - Document (Microsoft Office)
  • D_ENC - Encrypted Documents
  • E - Executables
  • G - Graphical format (JPG, PNG, GIF, etc.)
  • I - Disk image
  • M - Audio or video format
  • OPENSSL_ENC - OpenSSL Encrypted Files
  • P - PDF format
  • T - Text
  • Z - Mail messages
  • O - Other (anything that is not recognized as one of the above)

Enum: A,D,E,G,I,M,P,T,Z,O

group_descriptionstring

File type category description

likely_type_idsarray[object]

A list of likely file type IDs

scoreinteger

Likelihood score of the file type

typeIDstring

File type ID

typestring

MIME type

typeIDstring

File type ID

type_idsarray[string]

A list of file type IDs

final_verdictobject

Final verdict of the file type analysis.

verdictstring

Final verdict of the file type analysis.

Enum: allowed,blocked

verdict_explanationstring

Explanation of the final verdict.

is_file_type_mismatchboolean

Indicates if the file type does not match the expected type.

result_template_hashstring

SHA256 Hash of user-interface template. For web console only.

spoofing_infoobject

Spoofing information.

detection_resultstring

Result of the spoofing detection.

result_explanationstring

Explanation of the spoofing detection result.

result_overviewstring

Overview of the spoofing detection result.

opswatfilescan_infoobject

response information from OPSWAT Filescan engine

process_infoobject

Processing information

blocked_reasonstring

Provides the reason why the file is blocked (if so).

blocked_reasonsarray[string]

Provides the reason why the file is blocked in an array (if so).

file_type_skipped_scanboolean

Indicates if the input file's detected type was configured to skip scanning.

hash_timeinteger

Total time elapsed for computing hashes (in milliseconds).

outdated_dataarray[string]

array of flags - if occur - describing outdated data in the result, these can be

  • engineconfigurations: the configuration of any AV engine in Inventory > Modules has been modified since the item was processed
  • enginedefinitions: at least one of the AV engines the item was scanned with has a newer definition database
  • configuration: the process' rule - or any item used by the rule - was modified since the item was processed
  • sanitization: if item was sanitized this flag notifies that the sanitization information regarding this result is outdated, meaning the sanitized item is no longer available

Enum: engineconfigurations,enginedefinitions,configuration,sanitization

processing_timeinteger

Total time elapsed during processing file (in milliseconds).

processing_time_detailsobject

Processing time on each major workflow processing step.

av_scan_timeinteger

AV engines' processing time.

cdr_timeinteger

Deep CDR engine's sanitization time.

dlp_timeinteger

Proactive DLP engine's processing time.

extraction_timeinteger

Archive extraction engine's processing time.

filetype_timeinteger

FileType engine's processing time.

opswatfilescan_timeinteger

OPSWAT Filescan engine's processing time.

others_timeinteger

Total time elapsed for following processing tasks in the product (in milliseconds):

  • Decryption time (if receiving an encrypted file)
  • External scanner (if configured)
  • Post action (if configured)
  • Other internal processing time among components in the product
parse_dgsg_timeinteger

Digital signature analyzing time.

vul_timeinteger

Vulnerability engine's lookup time.

yara_timeinteger

YARA engine's processing time.

profilestring

The used rule name.

progress_percentageinteger

Percentage of processing completed (from 1-100).

queue_timeinteger

Total time elapsed for file processing task was waiting in MetaDefender Core’s queue until being picked up (queue_time = start_time - upload_timestamp) (in milliseconds).

resultstring

The final result of processing the file (Allowed / Blocked / Processing).

user_agentstring

Identifier for the REST Client that calls the API.

usernamestring

User identifier who submitted scan request earlier.

verdictsarray[string]

Aggregated list of potential issues.

post_processingobject

Contains information about result of sanitization process and any action done after finalizing the process using Post Actions.

actions_failedstring

Empty string if no action failed or list of failed actions, separated by "|".

actions_ranstring

List of successful actions, separated by "|". Empty string if otherwise.

converted_destinationstring

Contains the name of the sanitized file.

converted_tostring

Contains target type name of sanitization.

copy_move_destinationstring

Contains target type name of sanitization.

sanitization_detailsobject

Deep CDR module returns forensic info to describe what happened during the process in the case file was successfully sanitized.

cdr_wait_timeinteger

The time in milliseconds that the CDR process took to complete.

descriptionstring

Action was successful or not.

detailsarray[object]

List of all sanitized objects

actionstring

The type of action that was performed

Enum: sanitized,removed

countinteger

The number of objects that were sanitized/removed.

detailsobject

List of all sanitized objects of a sanitized embedded file

actionstring

The type of action that was performed

Enum: sanitized,removed

countinteger

The number of objects that were sanitized/removed.

object_detailsarray[string]

Additional information about the sanitized object

object_namestring

The object type that was sanitized/removed.

descriptionstring

Action was successful or not.

file_namestring

If an embedded file was sanitized.

object_detailsarray[string]

Additional information about the sanitized object

object_namestring

The object type that was sanitized/removed.

failure_categorystring

Deep CDR errors are classified into different categories.

For more details, please find Troubleshooting sanitization failures

resultstring

The result of the CDR process.

  • Sanitized: the file was successfully sanitized.
  • Sanitized failed: the file could not be sanitized due to an error during the process.
  • Sanitized skipped: the file was skipped from sanitization. Common reasons include the file being digitally signed or other policy-based exclusions.

Enum: Sanitized,Sanitized failed,Sanitized skipped

result_template_hashstring

The hash value of the result template, which is used for displaying results on the Core UI and for internal communication between MD Core and the Deep CDR engine. This value is intended for system use only and is not required for external integration.

sanitized_file_infoobject

Information of sanitized file. Only applicable to individual file sanitization, or original archive document sanitization level.

file_sizeinteger

Size of sanitized file in bytes.

sha256string

SHA256 hash of sanitized file.

verdictstring

The verdict of the CDR process.

  • blocked: the file is recommended for blocking by Deep CDR.
  • allowed: the file is recommended for allowing by Deep CDR as it found no reason to recommend blocking it.

Enum: blocked,allowed

verdict_explanationsarray[string]

The explanations for the verdict of the CDR process.

scan_resultsobject

Result of the scanning process.

data_idstring

Data ID of the requested file

progress_percentageinteger

Track analysis progress until reaches 100.

scan_all_result_astring

Processing result and its index

  • No Threat Detected: 0
  • Infected: 1
  • Suspicious: 2
  • Failed: 3
  • Whitelisted: 7
  • Blacklisted: 8
  • Exceeded Archive Depth: 9
  • Not Scanned: 10
  • Encrypted Archive: 12
  • Exceeded Archive Size: 13
  • Exceeded Archive File Number: 14
  • Password Protected Document: 15
  • Exceeded Archive Timeout: 16
  • Mismatch: 17
  • Potentially Vulnerable File: 18
  • Cancelled: 19
  • Sensitive Data Found: 20
  • Yara Rule Matched: 21
  • Potentially Unwanted: 22
  • Unsupported File Type: 23
  • Extraction Failed: 24
  • Scan Failed: 25
  • Suspicious Verdict by Sandbox: 26
  • Likely Malicious Verdict by Sandbox: 27
  • Malicious Verdict by Sandbox: 28
  • Blocked Verdict by Sandbox: 29
  • Blocked Verdict by Deep CDR: 30
  • Global Timeout Exceeded: 31
  • Vulnerable Verdict by SBOM: 32
  • Non-vulnerable Verdict by SBOM: 33
  • Blocked Verdict by SBOM: 34
  • Blocked by Post Action: 36
  • Known Bad: 38
  • Known Good: 39
  • Unknown: 40
  • Allowed Verdict by COO: 41
  • Blocked Verdict by COO: 42
  • Unknown Verdict by COO: 43
  • In Progress: 255
  • Skip Processing Fast Symlink: 1014

Enum: No Threat Detected,Infected,Suspicious,Failed,Whitelisted,Blacklisted,Exceeded Archive Depth,Not Scanned,Encrypted Archive,Exceeded Archive Size,Exceeded Archive File Number,Password Protected Document,Exceeded Archive Timeout,Mismatch,Potentially Vulnerable File,Cancelled,Sensitive Data Found,Yara Rule Matched,Potentially Unwanted,Unsupported File Type,Extraction Failed,Scan Failed,Suspicious Verdict by Sandbox,Likely Malicious Verdict by Sandbox,Malicious Verdict by Sandbox,Blocked Verdict by Sandbox,Blocked Verdict by Deep CDR,Global Timeout Exceeded,Vulnerable Verdict by SBOM,Non-vulnerable Verdict by SBOM,Blocked Verdict by SBOM,Blocked by Post Action,Known Bad,Known Good,Unknown,Allowed Verdict by COO,Blocked Verdict by COO,Unknown Verdict by COO,In Progress,Skip Processing Fast Symlink

scan_all_result_iinteger

Scan result as index in the Processing Results table above

Enum: 0,1,2,3,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,36,38,39,40,41,42,43,255,1014

start_timestring

Timestamp when the scanning process starts.

total_avsinteger

Total number of scanning engines used as part of this analysis.

total_timeinteger

Total time elapsed during scan (in milliseconds).

scan_detailsobject

Scan results for each antivirus engine. The key is the name of the antivirus engine and the value is the result of the antivirus engine

ClamAVobject

Scan report per each engine.

def_timestring

The database definition time for this engine

eng_idstring

The unique identification string for the engine

locationstring

Where this engine is deployed (local/remote).

scan_result_iinteger

Scan result as index in the Processing Results table

scan_timeinteger

The time elapsed during scan with this engine (in milliseconds).

threat_foundstring

The threat name, IF scan result is Infected or Suspicious. Otherwise empty string or error message from the engine.

wait_timeinteger

Time elapsed between sending file to Core and receiving the result from the engine (in milliseconds).

vulnerability_infoobject

Contains all vulnerability information of the analysis result

resultobject

The result information provided by the OESIS Framework

codeinteger

The result code for vulnerability check, 0 means a successful check

hashstring

The file's SHA1 hash value

methodinteger

The method used by OESIS Framework, it should be 50700 every time.

Enum: 50700

timestampstring

Timestamp of the request issued

timinginteger

The vulnerability check's duration in milliseconds

detected_productobject

Detected products object is present if input hash has been found to correspond to verified product

has_kbboolean

Indicates whether any KBs or MSBs exist for this hash

has_vulnerabilityboolean

Indicates whether any vulnerabilities have been associated with the particular product

is_currentboolean

True if this product's patch level is current, defaults to true

productobject

Product data object

idinteger

The OPSWAT product id

namestring

The product name

remediation_linkstring

A link where product updates or patches can be obtained

severitystring

String description of Severity level:

  • LOW
  • MODERATE
  • IMPORTANT
  • CRITICAL
  • NOT_AVAILABLE
  • UNKNOWN

Enum: LOW,MODERATE,IMPORTANT,CRITICAL,NOT_AVAILABLE,UNKNOWN

sig_namestring

Product signature descriptor

signatureinteger

OPSWAT signature id

vendorobject

Vendor data object

idinteger

The OPSWAT vendor id

namestring

The vendor name

versionstring

The installed product version

version_dataobject

Object containing detailed patch information

count_behindinteger

The number of patches behind of the installed product

feed_idinteger

The remote feed ID used to determine patch level

versionstring

The current version of the product in the remote feed

vulnerabilitesarray[object]

A list of specific vulnerabilities

descriptionstring

A text description of the specific vulnerability

detailsobject

A set of optional vulnerability details

cpestring

A CPE product reference

cvestring

A CVE identification string

cvssobject

A set of cvss severity information

access-complexitystring

A CVSS access-complexity descriptor

access-vectorstring

A CVSS access-vector descriptor

authenticationstring

A CVSS authentication descriptor

availability-impactstring

A CVSS availability impact descriptor

confidentiality-impactstring

A CVSS confidentiality impact descriptor

generated-on-epochstring

An epoch timestamp indicating CVSS generation time

integrity-impactstring

A CVSS integrity impact descriptor

scorestring

A CVSS 10-point severity score

sourcestring

A CVSS source descriptor

cwestring

A CWE group identification string

last_modified_epochstring

An epoch timestamp indicating source last update time

published-epochstring

An epoch timestamp indicating source publishing time

referencesarray[string]

An array of external reference links

severitystring

String description of Severity level:

  • LOW
  • MODERATE
  • IMPORTANT
  • CRITICAL
  • NOT_AVAILABLE
  • UNKNOWN

Enum: LOW,MODERATE,IMPORTANT,CRITICAL,NOT_AVAILABLE,UNKNOWN

severity_indexinteger

A 5 point scale numerical description of Severity level with 5 being greatest and 0 being unknown

static_idinteger

An OPSWAT identifier for the vulnerability

verdictinteger

The vulnerability check's duration in milliseconds

  • 0 - No Vulnerability Found
  • 1 - Vulnerability Found
  • 3 - Failed
  • 16 - Processing Timed Out
yaraobject

Information on data that matched YARA rules

hitsobject

detailed results that contains the name of the matched rules and a description for each.

verdictinteger

The overall result for the analyzed file. Value will be one of the following: | index | status | |---------------|------------------------------| | 0 | Clean | | 1 | Found matched data | | 2 | Suspicious | | 3 | Failed | | 4 | Not scanned |

Enum: 0,1,2,3,4

405

The user has no rights for this operation.

500

Unexpected event on server

Response
Copy

Fetch Analysis Result By Hash

Retrieve analysis result by hash

Auth
Headers
apikeystring

Generated session_id from Login call can be used as an apikey for API calls that require authentication.

rulestring

Select rule for the analysis, if no header given the default rule will be selected (URL encoded UTF-8 string of rule name)

selfonlyboolean

Useful to archive hash lookup.

Allow specifying to only perform hash lookup against the original archive file self only, and skip searching all child files result within the original archive.

Default value is false.

timerangeinteger

Scoping down the recent number of hours that hash lookup task should start from till now, instead of searching the entire scan history in MetaDefender Core database.

Default value is 0. That means no time scope.

include-inprogressboolean

False (default): API will return "Not Found" if the verdict is in progress.

True: If the queried hash has a completed processing result before, API will return the completed processing result. If this hash doesn't have any completed processing result, API will return this In-progress result.

Path Params
md5|sha1|sha256|sha512string

Hash value to search. This can be md5, sha1, sha256, sha512

Query String
firstinteger

The first item order in the list child files of archive file

sizeinteger

The number of items to be fetched next, counting from the item order indicated in first header

GET /hash/{md5|sha1|sha256|sha512}
Copy
Responses
200

Get information of file

objectobject
data_idstring

data identifier of the requested file

dlp_infoobject

Full report from Proactive DLP

certaintystring

Describes how certain the hit is, possible values:

  • Very Low
  • Low
  • Medium
  • High
  • Very High

Enum: Very Low,Low,Medium,High,Very High

errorsobject

A list of error objects (empty if no errors happened), each error object contains following keys:

  • scan: scan related error description
  • redact: redaction related error description
  • watermark: watermark related error description
  • metadata_removal: metadata removal related error description
filenamestring

Output processed file name (pre-configured on engine settings under Core's worflow rule)

hitsobject

Detailed results that contains as key the type of matched rule:

  • ccn (credit card number),
  • ssn (social security number),
  • regex_ (regular expression with an index in order to differentiate the RegEx rules if there are more.)
ccnobject
display_namestring

Credit Card Number, Social Security Number, or in case of RegEx, the name of the rule that has been given by the user

hitsarray[object]

A list of detections that matched this rule/pattern.

afterstring

The context after the matched data.

beforestring

The context before the matched data.

certaintystring

The text version of "certainty_score", possible values:

  • Very Low
  • Low
  • Medium
  • High
  • Very High

Enum: Very Low,Low,Medium,High,Very High

certainty_scoreinteger

Is defined by the relevance of the given hit in its context. It is calculated based on multiple factors such as the number of digits, possible values: [0-100]

hitstring

The matched data.

locationstring

The location of the hit that is found in a file.

severityinteger

(NOTE: this field is deprecated): can be 0 (detected) or 1 (suspicious).

Enum: 0,1

tryRedactboolean

If file was redacted or not.

metadata_removalobject

Result of metadata removal.

resultstring

Result of the metadata removal process, possible values:

  • removed
  • not removed
  • failed to remove

Enum: removed,not removed,failed to remove

redactobject

Result of redaction process.

resultstring

Result of the redaction process, possible values:

  • redacted
  • not redacted
  • failed to redact

Enum: redacted,not redacted,failed to redact

severityinteger

(NOTE: this field is deprecated): represents the severity of the data loss, possible values:

  • 0 - Certainly is data loss
  • 1 - Might be data loss

Enum: 0,1

verdictinteger

The overall result for the scanned file. Possible values:

  • 0 - Clean
  • 1 - Found matched data
  • 2 - Suspicious
  • 3 - Failed
  • 4 - Not scanned

Enum: 0,1,2,3,4

watermarkobject

Result of watermarking process.

resultstring

Result of the watermarking process, possible values:

  • added
  • not added
  • failed to add

Enum: added,not added,failed to add

download_infoobject

The downloading status.

error_detailstring

Revealed detailed reason why the download failed.

progressnumber

Only applicable when "status" is Downloading, indicates download finished percentage, in a range of [1, 99].

  • Once hitting 100, the status will be changed to Download Success.
  • or other problematic status (Download Cancelled, Download Failed) if the download stopped unexpectedly.
statusstring

Indicates download status, which could be either

  • Downloading
    • Check progress key value for actual download percentage
      "download_info": {
          "progress": 7,
          "status": "Downloading",
          "url": "http://192.168.200.97:8080/5gb.zip"
      }
  • Download Success
      "download_info": {
          "status": "Download Success",
          "url": "https://secure.eicar.org/eicar.com"
      }
  • Download Failed
    • Check error_detail key value for an error explanation
      "download_info": {
          "error_detail": "Connection error",
          "status": "Download Failed",
          "url": "http://192.168.200.97:8080/2gb.zip"
      }
  • Download Timeout
    • Expecting to occur when the download progress takes longer than what time window allowed in MetaDefender Core's pre-configured setting under workflow rule (under "SCAN" tab)
      "download_info": {
          "status": "Download Timeout",
          "url": "http://192.168.200.97:8080/2gb.zip"
      }
  • Download Cancelled
    • Expecting to occur when user explicitly cancelled that file scan request, or batch request that the scan belongs to
      "download_info": {
          "status": "Download Cancelled",
          "url": "http://192.168.200.97:8080/5gb.zip"
      }
urlstring

Original download link which was specified in HTTP(S) request's downloadfrom header

extraction_infoobject

Details for archive extraction.

decrypted_statusstring

Indicate that decryption phase is successful or not.

Enum: Success,Failed

err_categorystring

Error category

err_codeinteger

Error code

err_detailsstring

Error message

is_encrypted_fileboolean

Indicate if file is password-protected or not.

file_infoobject

basic information of the scanned file

display_namestring

The filename reported via filename header.

file_sizeinteger

Total file size in bytes.

file_typestring

The filetype using mimetype.

file_type_descriptionstring

The filetype in human readable format.

md5string

File's MD5 hash.

sha1string

File's SHA1 hash.

sha256string

File's SHA256 Hash.

sha512string

File's SHA512 Hash.

signer_infosarray[object]

Digital signature information of the scanned file.

digest_algorithmstring

Digest algorithm.

digest_encryption_algorithmstring

Encryption algorithm.

issuerstring

Entity that develops and registers the certificate.

serial_numberstring

Serial number of the certificate.

vendor_namestring

Entity that is issued a certificate and utilize it for creating a digital signature.

versionstring

Version of X.509 that is used in the certificate. This version field is zero-based.

  • 0: v1
  • 1: v2
  • 2: v3
type_categoryarray[string]

File type category.

  • A - Archive files
  • AP - Application
  • D - Document (Microsoft Office)
  • D_ENC - Encrypted Documents
  • E - Executables
  • G - Graphical format (JPG, PNG, GIF, etc.)
  • I - Disk image
  • M - Audio or video format
  • OPENSSL_ENC - OpenSSL Encrypted Files
  • P - PDF format
  • T - Text
  • Z - Mail messages
  • O - Other (anything that is not recognized as one of the above)

Enum: A,D,E,G,I,M,P,T,Z,O

receive_data_timestampstring

The timestamp when upload progress started (first byte received) (in milliseconds)

upload_timeinteger

Total time elapsed for upload process (in milliseconds).

upload_timestampstring

The timestamp when upload progress finished (all bytes received) (in milliseconds)

filetype_infoobject

response information from FileType engine

file_infoobject
descriptionstring

File type description

detected_bystring

Analyzer that detected the file type

encryptedboolean

File is password-protected or not

extensionsstring

File type extension

groupIDstring

File type category

groupIDsarray[string]

File type category.

  • A - Archive files
  • AP - Application
  • D - Document (Microsoft Office)
  • D_ENC - Encrypted Documents
  • E - Executables
  • G - Graphical format (JPG, PNG, GIF, etc.)
  • I - Disk image
  • M - Audio or video format
  • OPENSSL_ENC - OpenSSL Encrypted Files
  • P - PDF format
  • T - Text
  • Z - Mail messages
  • O - Other (anything that is not recognized as one of the above)

Enum: A,D,E,G,I,M,P,T,Z,O

group_descriptionstring

File type category description

likely_type_idsarray[object]

A list of likely file type IDs

scoreinteger

Likelihood score of the file type

typeIDstring

File type ID

typestring

MIME type

typeIDstring

File type ID

type_idsarray[string]

A list of file type IDs

final_verdictobject

Final verdict of the file type analysis.

verdictstring

Final verdict of the file type analysis.

Enum: allowed,blocked

verdict_explanationstring

Explanation of the final verdict.

is_file_type_mismatchboolean

Indicates if the file type does not match the expected type.

result_template_hashstring

SHA256 Hash of user-interface template. For web console only.

spoofing_infoobject

Spoofing information.

detection_resultstring

Result of the spoofing detection.

result_explanationstring

Explanation of the spoofing detection result.

result_overviewstring

Overview of the spoofing detection result.

opswatfilescan_infoobject

response information from OPSWAT Filescan engine

process_infoobject

Processing information

blocked_reasonstring

Provides the reason why the file is blocked (if so).

blocked_reasonsarray[string]

Provides the reason why the file is blocked in an array (if so).

file_type_skipped_scanboolean

Indicates if the input file's detected type was configured to skip scanning.

hash_timeinteger

Total time elapsed for computing hashes (in milliseconds).

outdated_dataarray[string]

array of flags - if occur - describing outdated data in the result, these can be

  • engineconfigurations: the configuration of any AV engine in Inventory > Modules has been modified since the item was processed
  • enginedefinitions: at least one of the AV engines the item was scanned with has a newer definition database
  • configuration: the process' rule - or any item used by the rule - was modified since the item was processed
  • sanitization: if item was sanitized this flag notifies that the sanitization information regarding this result is outdated, meaning the sanitized item is no longer available

Enum: engineconfigurations,enginedefinitions,configuration,sanitization

processing_timeinteger

Total time elapsed during processing file (in milliseconds).

processing_time_detailsobject

Processing time on each major workflow processing step.

av_scan_timeinteger

AV engines' processing time.

cdr_timeinteger

Deep CDR engine's sanitization time.

dlp_timeinteger

Proactive DLP engine's processing time.

extraction_timeinteger

Archive extraction engine's processing time.

filetype_timeinteger

FileType engine's processing time.

opswatfilescan_timeinteger

OPSWAT Filescan engine's processing time.

others_timeinteger

Total time elapsed for following processing tasks in the product (in milliseconds):

  • Decryption time (if receiving an encrypted file)
  • External scanner (if configured)
  • Post action (if configured)
  • Other internal processing time among components in the product
parse_dgsg_timeinteger

Digital signature analyzing time.

vul_timeinteger

Vulnerability engine's lookup time.

yara_timeinteger

YARA engine's processing time.

profilestring

The used rule name.

progress_percentageinteger

Percentage of processing completed (from 1-100).

queue_timeinteger

Total time elapsed for file processing task was waiting in MetaDefender Core’s queue until being picked up (queue_time = start_time - upload_timestamp) (in milliseconds).

resultstring

The final result of processing the file (Allowed / Blocked / Processing).

user_agentstring

Identifier for the REST Client that calls the API.

usernamestring

User identifier who submitted scan request earlier.

verdictsarray[string]

Aggregated list of potential issues.

post_processingobject

Contains information about result of sanitization process and any action done after finalizing the process using Post Actions.

actions_failedstring

Empty string if no action failed or list of failed actions, separated by "|".

actions_ranstring

List of successful actions, separated by "|". Empty string if otherwise.

converted_destinationstring

Contains the name of the sanitized file.

converted_tostring

Contains target type name of sanitization.

copy_move_destinationstring

Contains target type name of sanitization.

sanitization_detailsobject

Deep CDR module returns forensic info to describe what happened during the process in the case file was successfully sanitized.

cdr_wait_timeinteger

The time in milliseconds that the CDR process took to complete.

descriptionstring

Action was successful or not.

detailsarray[object]

List of all sanitized objects

actionstring

The type of action that was performed

Enum: sanitized,removed

countinteger

The number of objects that were sanitized/removed.

detailsobject

List of all sanitized objects of a sanitized embedded file

actionstring

The type of action that was performed

Enum: sanitized,removed

countinteger

The number of objects that were sanitized/removed.

object_detailsarray[string]

Additional information about the sanitized object

object_namestring

The object type that was sanitized/removed.

descriptionstring

Action was successful or not.

file_namestring

If an embedded file was sanitized.

object_detailsarray[string]

Additional information about the sanitized object

object_namestring

The object type that was sanitized/removed.

failure_categorystring

Deep CDR errors are classified into different categories.

For more details, please find Troubleshooting sanitization failures

resultstring

The result of the CDR process.

  • Sanitized: the file was successfully sanitized.
  • Sanitized failed: the file could not be sanitized due to an error during the process.
  • Sanitized skipped: the file was skipped from sanitization. Common reasons include the file being digitally signed or other policy-based exclusions.

Enum: Sanitized,Sanitized failed,Sanitized skipped

result_template_hashstring

The hash value of the result template, which is used for displaying results on the Core UI and for internal communication between MD Core and the Deep CDR engine. This value is intended for system use only and is not required for external integration.

sanitized_file_infoobject

Information of sanitized file. Only applicable to individual file sanitization, or original archive document sanitization level.

file_sizeinteger

Size of sanitized file in bytes.

sha256string

SHA256 hash of sanitized file.

verdictstring

The verdict of the CDR process.

  • blocked: the file is recommended for blocking by Deep CDR.
  • allowed: the file is recommended for allowing by Deep CDR as it found no reason to recommend blocking it.

Enum: blocked,allowed

verdict_explanationsarray[string]

The explanations for the verdict of the CDR process.

scan_resultsobject

Result of the scanning process.

data_idstring

Data ID of the requested file

progress_percentageinteger

Track analysis progress until reaches 100.

scan_all_result_astring

Processing result and its index

  • No Threat Detected: 0
  • Infected: 1
  • Suspicious: 2
  • Failed: 3
  • Whitelisted: 7
  • Blacklisted: 8
  • Exceeded Archive Depth: 9
  • Not Scanned: 10
  • Encrypted Archive: 12
  • Exceeded Archive Size: 13
  • Exceeded Archive File Number: 14
  • Password Protected Document: 15
  • Exceeded Archive Timeout: 16
  • Mismatch: 17
  • Potentially Vulnerable File: 18
  • Cancelled: 19
  • Sensitive Data Found: 20
  • Yara Rule Matched: 21
  • Potentially Unwanted: 22
  • Unsupported File Type: 23
  • Extraction Failed: 24
  • Scan Failed: 25
  • Suspicious Verdict by Sandbox: 26
  • Likely Malicious Verdict by Sandbox: 27
  • Malicious Verdict by Sandbox: 28
  • Blocked Verdict by Sandbox: 29
  • Blocked Verdict by Deep CDR: 30
  • Global Timeout Exceeded: 31
  • Vulnerable Verdict by SBOM: 32
  • Non-vulnerable Verdict by SBOM: 33
  • Blocked Verdict by SBOM: 34
  • Blocked by Post Action: 36
  • Known Bad: 38
  • Known Good: 39
  • Unknown: 40
  • Allowed Verdict by COO: 41
  • Blocked Verdict by COO: 42
  • Unknown Verdict by COO: 43
  • In Progress: 255
  • Skip Processing Fast Symlink: 1014

Enum: No Threat Detected,Infected,Suspicious,Failed,Whitelisted,Blacklisted,Exceeded Archive Depth,Not Scanned,Encrypted Archive,Exceeded Archive Size,Exceeded Archive File Number,Password Protected Document,Exceeded Archive Timeout,Mismatch,Potentially Vulnerable File,Cancelled,Sensitive Data Found,Yara Rule Matched,Potentially Unwanted,Unsupported File Type,Extraction Failed,Scan Failed,Suspicious Verdict by Sandbox,Likely Malicious Verdict by Sandbox,Malicious Verdict by Sandbox,Blocked Verdict by Sandbox,Blocked Verdict by Deep CDR,Global Timeout Exceeded,Vulnerable Verdict by SBOM,Non-vulnerable Verdict by SBOM,Blocked Verdict by SBOM,Blocked by Post Action,Known Bad,Known Good,Unknown,Allowed Verdict by COO,Blocked Verdict by COO,Unknown Verdict by COO,In Progress,Skip Processing Fast Symlink

scan_all_result_iinteger

Scan result as index in the Processing Results table above

Enum: 0,1,2,3,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,36,38,39,40,41,42,43,255,1014

start_timestring

Timestamp when the scanning process starts.

total_avsinteger

Total number of scanning engines used as part of this analysis.

total_timeinteger

Total time elapsed during scan (in milliseconds).

scan_detailsobject

Scan results for each antivirus engine. The key is the name of the antivirus engine and the value is the result of the antivirus engine

ClamAVobject

Scan report per each engine.

def_timestring

The database definition time for this engine

eng_idstring

The unique identification string for the engine

locationstring

Where this engine is deployed (local/remote).

scan_result_iinteger

Scan result as index in the Processing Results table

scan_timeinteger

The time elapsed during scan with this engine (in milliseconds).

threat_foundstring

The threat name, IF scan result is Infected or Suspicious. Otherwise empty string or error message from the engine.

wait_timeinteger

Time elapsed between sending file to Core and receiving the result from the engine (in milliseconds).

vulnerability_infoobject

Contains all vulnerability information of the analysis result

resultobject

The result information provided by the OESIS Framework

codeinteger

The result code for vulnerability check, 0 means a successful check

hashstring

The file's SHA1 hash value

methodinteger

The method used by OESIS Framework, it should be 50700 every time.

Enum: 50700

timestampstring

Timestamp of the request issued

timinginteger

The vulnerability check's duration in milliseconds

detected_productobject

Detected products object is present if input hash has been found to correspond to verified product

has_kbboolean

Indicates whether any KBs or MSBs exist for this hash

has_vulnerabilityboolean

Indicates whether any vulnerabilities have been associated with the particular product

is_currentboolean

True if this product's patch level is current, defaults to true

productobject

Product data object

idinteger

The OPSWAT product id

namestring

The product name

remediation_linkstring

A link where product updates or patches can be obtained

severitystring

String description of Severity level:

  • LOW
  • MODERATE
  • IMPORTANT
  • CRITICAL
  • NOT_AVAILABLE
  • UNKNOWN

Enum: LOW,MODERATE,IMPORTANT,CRITICAL,NOT_AVAILABLE,UNKNOWN

sig_namestring

Product signature descriptor

signatureinteger

OPSWAT signature id

vendorobject

Vendor data object

idinteger

The OPSWAT vendor id

namestring

The vendor name

versionstring

The installed product version

version_dataobject

Object containing detailed patch information

count_behindinteger

The number of patches behind of the installed product

feed_idinteger

The remote feed ID used to determine patch level

versionstring

The current version of the product in the remote feed

vulnerabilitesarray[object]

A list of specific vulnerabilities

descriptionstring

A text description of the specific vulnerability

detailsobject

A set of optional vulnerability details

cpestring

A CPE product reference

cvestring

A CVE identification string

cvssobject

A set of cvss severity information

access-complexitystring

A CVSS access-complexity descriptor

access-vectorstring

A CVSS access-vector descriptor

authenticationstring

A CVSS authentication descriptor

availability-impactstring

A CVSS availability impact descriptor

confidentiality-impactstring

A CVSS confidentiality impact descriptor

generated-on-epochstring

An epoch timestamp indicating CVSS generation time

integrity-impactstring

A CVSS integrity impact descriptor

scorestring

A CVSS 10-point severity score

sourcestring

A CVSS source descriptor

cwestring

A CWE group identification string

last_modified_epochstring

An epoch timestamp indicating source last update time

published-epochstring

An epoch timestamp indicating source publishing time

referencesarray[string]

An array of external reference links

severitystring

String description of Severity level:

  • LOW
  • MODERATE
  • IMPORTANT
  • CRITICAL
  • NOT_AVAILABLE
  • UNKNOWN

Enum: LOW,MODERATE,IMPORTANT,CRITICAL,NOT_AVAILABLE,UNKNOWN

severity_indexinteger

A 5 point scale numerical description of Severity level with 5 being greatest and 0 being unknown

static_idinteger

An OPSWAT identifier for the vulnerability

verdictinteger

The vulnerability check's duration in milliseconds

  • 0 - No Vulnerability Found
  • 1 - Vulnerability Found
  • 3 - Failed
  • 16 - Processing Timed Out
yaraobject

Information on data that matched YARA rules

hitsobject

detailed results that contains the name of the matched rules and a description for each.

verdictinteger

The overall result for the analyzed file. Value will be one of the following: | index | status | |---------------|------------------------------| | 0 | Clean | | 1 | Found matched data | | 2 | Suspicious | | 3 | Failed | | 4 | Not scanned |

Enum: 0,1,2,3,4

404

Invalid hash format

Response
Copy

Fetching Available Analysis Rules

Retrieve all available rules with their custom configurations. Fetching available processing rules.

Auth
Headers
apikeystring

Generated session_id from Login call can be used as an apikey for API calls that require authentication. Only those rules are returned, that:

  • Match the apikey's role sent using the apikey header, or
  • Are not restricted to a specific role.
user_agentstring

The user agent string value sent in the header (specified by the client).

Only those rules are returned, that:

  • Match the client's user agent sent using the user_agent header, or
  • Are not restricted to a specific user agent.

For details see KB article What are Security Policies and how do I use them?.

GET /file/rules
Copy
Responses
200

Returns the list of available rules.

arrayarray[object]
max_file_sizeinteger

The maximum allowed file size (in bytes) for this rule.

namestring

A unique identifier for identify in the used rule for a scan..

500

Unexpected event on server

Response
Copy

Download Sanitized Files

Retrieve sanitized file based on the data_id

Auth
Headers
apikeystring

Generated session_id from Login call can be used as an apikey for API calls that require authentication.

Path Params
data_idstring

The data_id comes from the result of Analyze a file. In case of sanitizing the content of an archive, the data_id of contained file can be found in Fetch analysis result.

GET /file/converted/{data_id}
Copy
Responses
200

Returns the sanitized content.

filefile
404

Requests resource was not found.

405

The user has no rights for this operation.

500

Unexpected event on server

Response
Copy

Download either sanitized files or DLP processed files

Retrieve sanitized file based on the data_id. In case there's no sanitized file, and DLP processed file is available, user will retrieve DLP processed file.

Auth
Headers
apikeystring

Generated session_id from Login call can be used as an apikey for API calls that require authentication.

Path Params
data_idstring

The data_id comes from the result of Analyze a file. In case of sanitizing the content of an archive, the data_id of contained file can be found in Fetch analysis result.

GET /file/download/{data_id}
Copy
Responses
200

Returns the sanitized or DLP processed content.

filefile
404

File could not be found

405

The user has no rights for this operation.

500

Unexpected event on server

Response
Copy

Cancel File Analysis

When cancelling a file analysis, the connected analysis (e.g. files in an archive) that are still in progress will be cancelled also.

The cancelled analysis will be automatically closed.

Auth
Headers
apikeystring

Generated session_id from Login call can be used as an apikey for API calls that require authentication.

Path Params
data_idstring

Unique submission identifier. Use this value to reference the submission.

POST /file/{data_id}/cancel
Copy
Responses
200

Analysis was sucessfully cancelled.

objectobject
400

Bad Request (e.g. invalid header, apikey is missing or invalid).

403

Invalid user information or Not Allowed

404

Data ID not found (invalid id) or Requests resource was not found

405

The user has no rights for this operation.

500

Unexpected event on server

Response
Copy

Batch

Group the analysis requests in batches. Supported with endpoints: MetaDefender Distributed Cluster API Gateway.

Initiate Batch

Create a new batch and retrieve the batch_id

Auth
Headers
apikeystring

Generated session_id from Login call can be used as an apikey for API calls that require authentication.

rulestring

Select rule for the analysis, if no header given the default rule will be selected (URL encoded UTF-8 string of rule name)

user_agentstring

user_agent header used to identify (and limit) access to a particular rule. For rule selection, rule header should be used.

user-datastring

Name of the batch (max 1024 bytes, URL encoded UTF-8 string).

POST /file/batch
Copy
Responses
200

Batch created successfully.

objectobject
batch_idstring

The batch identifier used to submit files in the batch and to close the batch.

400

Bad Request (e.g. invalid header, apikey is missing or invalid).

403

Invalid user information or Not Allowed

500

Unexpected event on server

Response
Copy

Close Batch

The batch will be closed and files can no longer be added to the current batch.

Auth
Headers
apikeystring

Generated session_id from Login call can be used as an apikey for API calls that require authentication.

Path Params
batchIdstring

The batch identifier used to submit files in the batch and to close the batch.

POST /file/batch/{batchId}/close
Copy
Responses
200

Batch successfully closed.

objectobject

The response for a Batch status request.

batch_filesobject

Information about the files included in this batch.

batch_countinteger

The total number of files/entries in the batch.

files_in_batcharray[object]

The list of files in this batch.

data_idstring

Unique identifer for the file.

detected_byinteger

Total number of engines that detected this file.

display_namestring

The filename reported via filename header.

file_sizeinteger

Total file size in bytes.

file_typestring

The filetype using mimetype.

file_type_descriptionstring

The filetype in human readable format.

process_infoobject

The analysis summary

blocked_reasonstring

Provides the reason why the file is blocked (if so).

progress_percentageinteger

Percentage of processing completed (from 1-100).

resultstring

The final result of processing the file (Allowed / Blocked / Processing).

verdictsarray[string]

Aggregated list of potential issues.

progress_percentageinteger

Track analysis progress until reaches 100.

scan_all_result_astring

Processing result and its index

  • No Threat Detected: 0
  • Infected: 1
  • Suspicious: 2
  • Failed: 3
  • Whitelisted: 7
  • Blacklisted: 8
  • Exceeded Archive Depth: 9
  • Not Scanned: 10
  • Encrypted Archive: 12
  • Exceeded Archive Size: 13
  • Exceeded Archive File Number: 14
  • Password Protected Document: 15
  • Exceeded Archive Timeout: 16
  • Mismatch: 17
  • Potentially Vulnerable File: 18
  • Cancelled: 19
  • Sensitive Data Found: 20
  • Yara Rule Matched: 21
  • Potentially Unwanted: 22
  • Unsupported File Type: 23
  • Extraction Failed: 24
  • Scan Failed: 25
  • Suspicious Verdict by Sandbox: 26
  • Likely Malicious Verdict by Sandbox: 27
  • Malicious Verdict by Sandbox: 28
  • Blocked Verdict by Sandbox: 29
  • Blocked Verdict by Deep CDR: 30
  • Global Timeout Exceeded: 31
  • Vulnerable Verdict by SBOM: 32
  • Non-vulnerable Verdict by SBOM: 33
  • Blocked Verdict by SBOM: 34
  • Blocked by Post Action: 36
  • Known Bad: 38
  • Known Good: 39
  • Unknown: 40
  • Allowed Verdict by COO: 41
  • Blocked Verdict by COO: 42
  • Unknown Verdict by COO: 43
  • In Progress: 255
  • Skip Processing Fast Symlink: 1014

Enum: No Threat Detected,Infected,Suspicious,Failed,Whitelisted,Blacklisted,Exceeded Archive Depth,Not Scanned,Encrypted Archive,Exceeded Archive Size,Exceeded Archive File Number,Password Protected Document,Exceeded Archive Timeout,Mismatch,Potentially Vulnerable File,Cancelled,Sensitive Data Found,Yara Rule Matched,Potentially Unwanted,Unsupported File Type,Extraction Failed,Scan Failed,Suspicious Verdict by Sandbox,Likely Malicious Verdict by Sandbox,Malicious Verdict by Sandbox,Blocked Verdict by Sandbox,Blocked Verdict by Deep CDR,Global Timeout Exceeded,Vulnerable Verdict by SBOM,Non-vulnerable Verdict by SBOM,Blocked Verdict by SBOM,Blocked by Post Action,Known Bad,Known Good,Unknown,Allowed Verdict by COO,Blocked Verdict by COO,Unknown Verdict by COO,In Progress,Skip Processing Fast Symlink

scan_all_result_iinteger

Scan result as index in the Processing Results table above

Enum: 0,1,2,3,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,36,38,39,40,41,42,43,255,1014

scanned_withinteger

The total number of engines used to analyze this file.

first_indexinteger

The starting index in the batch. Used for pagination.

page_sizeinteger

The number of entries per page.

batch_idstring

The batch unique identifer

is_closedboolean

The batch status (open/close).

process_infoobject

Overall batch process result

blocked_reasonstring

Provides the reason why the file is blocked (if so).

file_type_skipped_scanboolean

Indicates if the input file's detected type was configured to skip scanning.

profilestring

The used rule name.

resultstring

The final result of processing the file (Allowed / Blocked / Processing).

user_agentstring

Identifier for the REST Client that calls the API.

usernamestring

User identifier who submitted scan request earlier.

scan_resultsobject

Metascan analysis result.

batch_idstring

The batch unique identifer

scan_all_result_astring

Processing result and its index

  • No Threat Detected: 0
  • Infected: 1
  • Suspicious: 2
  • Failed: 3
  • Whitelisted: 7
  • Blacklisted: 8
  • Exceeded Archive Depth: 9
  • Not Scanned: 10
  • Encrypted Archive: 12
  • Exceeded Archive Size: 13
  • Exceeded Archive File Number: 14
  • Password Protected Document: 15
  • Exceeded Archive Timeout: 16
  • Mismatch: 17
  • Potentially Vulnerable File: 18
  • Cancelled: 19
  • Sensitive Data Found: 20
  • Yara Rule Matched: 21
  • Potentially Unwanted: 22
  • Unsupported File Type: 23
  • Extraction Failed: 24
  • Scan Failed: 25
  • Suspicious Verdict by Sandbox: 26
  • Likely Malicious Verdict by Sandbox: 27
  • Malicious Verdict by Sandbox: 28
  • Blocked Verdict by Sandbox: 29
  • Blocked Verdict by Deep CDR: 30
  • Global Timeout Exceeded: 31
  • Vulnerable Verdict by SBOM: 32
  • Non-vulnerable Verdict by SBOM: 33
  • Blocked Verdict by SBOM: 34
  • Blocked by Post Action: 36
  • Known Bad: 38
  • Known Good: 39
  • Unknown: 40
  • Allowed Verdict by COO: 41
  • Blocked Verdict by COO: 42
  • Unknown Verdict by COO: 43
  • In Progress: 255
  • Skip Processing Fast Symlink: 1014

Enum: No Threat Detected,Infected,Suspicious,Failed,Whitelisted,Blacklisted,Exceeded Archive Depth,Not Scanned,Encrypted Archive,Exceeded Archive Size,Exceeded Archive File Number,Password Protected Document,Exceeded Archive Timeout,Mismatch,Potentially Vulnerable File,Cancelled,Sensitive Data Found,Yara Rule Matched,Potentially Unwanted,Unsupported File Type,Extraction Failed,Scan Failed,Suspicious Verdict by Sandbox,Likely Malicious Verdict by Sandbox,Malicious Verdict by Sandbox,Blocked Verdict by Sandbox,Blocked Verdict by Deep CDR,Global Timeout Exceeded,Vulnerable Verdict by SBOM,Non-vulnerable Verdict by SBOM,Blocked Verdict by SBOM,Blocked by Post Action,Known Bad,Known Good,Unknown,Allowed Verdict by COO,Blocked Verdict by COO,Unknown Verdict by COO,In Progress,Skip Processing Fast Symlink

scan_all_result_iinteger

Scan result as index in the Processing Results table above

Enum: 0,1,2,3,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,36,38,39,40,41,42,43,255,1014

start_timestring

Timestamp when the scanning process starts.

total_avsinteger

Total number of scanning engines used as part of this analysis. Not like files, batch is not processed by engine, so this value is always 0.

total_timeinteger

Total time elapsed during scan (in milliseconds).

user_datastring

Metadata submitted at batch creation.

400

Bad Request (e.g. invalid header, apikey is missing or invalid).

403

Invalid user information or Not Allowed

404

Requests resource was not found.

500

Unexpected event on server

Response
Copy

Status of Batch Analysis

Retrieve status report for the entire batch

Auth
Headers
apikeystring

Generated session_id from Login call can be used as an apikey for API calls that require authentication.

Path Params
batchIdstring

The batch identifier used to submit files in the batch and to close the batch.

Query String
firstinteger

The first item order in the list of files in this batch

sizeinteger

The number of items to be fetched next, counting from the item order indicated in first header

GET /file/batch/{batchId}
Copy
Responses
200

Batch progress paginated report (50 entries/page).

objectobject

The response for a Batch status request.

batch_filesobject

Information about the files included in this batch.

batch_countinteger

The total number of files/entries in the batch.

files_in_batcharray[object]

The list of files in this batch.

data_idstring

Unique identifer for the file.

detected_byinteger

Total number of engines that detected this file.

display_namestring

The filename reported via filename header.

file_sizeinteger

Total file size in bytes.

file_typestring

The filetype using mimetype.

file_type_descriptionstring

The filetype in human readable format.

process_infoobject

The analysis summary

blocked_reasonstring

Provides the reason why the file is blocked (if so).

progress_percentageinteger

Percentage of processing completed (from 1-100).

resultstring

The final result of processing the file (Allowed / Blocked / Processing).

verdictsarray[string]

Aggregated list of potential issues.

progress_percentageinteger

Track analysis progress until reaches 100.

scan_all_result_astring

Processing result and its index

  • No Threat Detected: 0
  • Infected: 1
  • Suspicious: 2
  • Failed: 3
  • Whitelisted: 7
  • Blacklisted: 8
  • Exceeded Archive Depth: 9
  • Not Scanned: 10
  • Encrypted Archive: 12
  • Exceeded Archive Size: 13
  • Exceeded Archive File Number: 14
  • Password Protected Document: 15
  • Exceeded Archive Timeout: 16
  • Mismatch: 17
  • Potentially Vulnerable File: 18
  • Cancelled: 19
  • Sensitive Data Found: 20
  • Yara Rule Matched: 21
  • Potentially Unwanted: 22
  • Unsupported File Type: 23
  • Extraction Failed: 24
  • Scan Failed: 25
  • Suspicious Verdict by Sandbox: 26
  • Likely Malicious Verdict by Sandbox: 27
  • Malicious Verdict by Sandbox: 28
  • Blocked Verdict by Sandbox: 29
  • Blocked Verdict by Deep CDR: 30
  • Global Timeout Exceeded: 31
  • Vulnerable Verdict by SBOM: 32
  • Non-vulnerable Verdict by SBOM: 33
  • Blocked Verdict by SBOM: 34
  • Blocked by Post Action: 36
  • Known Bad: 38
  • Known Good: 39
  • Unknown: 40
  • Allowed Verdict by COO: 41
  • Blocked Verdict by COO: 42
  • Unknown Verdict by COO: 43
  • In Progress: 255
  • Skip Processing Fast Symlink: 1014

Enum: No Threat Detected,Infected,Suspicious,Failed,Whitelisted,Blacklisted,Exceeded Archive Depth,Not Scanned,Encrypted Archive,Exceeded Archive Size,Exceeded Archive File Number,Password Protected Document,Exceeded Archive Timeout,Mismatch,Potentially Vulnerable File,Cancelled,Sensitive Data Found,Yara Rule Matched,Potentially Unwanted,Unsupported File Type,Extraction Failed,Scan Failed,Suspicious Verdict by Sandbox,Likely Malicious Verdict by Sandbox,Malicious Verdict by Sandbox,Blocked Verdict by Sandbox,Blocked Verdict by Deep CDR,Global Timeout Exceeded,Vulnerable Verdict by SBOM,Non-vulnerable Verdict by SBOM,Blocked Verdict by SBOM,Blocked by Post Action,Known Bad,Known Good,Unknown,Allowed Verdict by COO,Blocked Verdict by COO,Unknown Verdict by COO,In Progress,Skip Processing Fast Symlink

scan_all_result_iinteger

Scan result as index in the Processing Results table above

Enum: 0,1,2,3,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,36,38,39,40,41,42,43,255,1014

scanned_withinteger

The total number of engines used to analyze this file.

first_indexinteger

The starting index in the batch. Used for pagination.

page_sizeinteger

The number of entries per page.

batch_idstring

The batch unique identifer

is_closedboolean

The batch status (open/close).

process_infoobject

Overall batch process result

blocked_reasonstring

Provides the reason why the file is blocked (if so).

file_type_skipped_scanboolean

Indicates if the input file's detected type was configured to skip scanning.

profilestring

The used rule name.

resultstring

The final result of processing the file (Allowed / Blocked / Processing).

user_agentstring

Identifier for the REST Client that calls the API.

usernamestring

User identifier who submitted scan request earlier.

scan_resultsobject

Metascan analysis result.

batch_idstring

The batch unique identifer

scan_all_result_astring

Processing result and its index

  • No Threat Detected: 0
  • Infected: 1
  • Suspicious: 2
  • Failed: 3
  • Whitelisted: 7
  • Blacklisted: 8
  • Exceeded Archive Depth: 9
  • Not Scanned: 10
  • Encrypted Archive: 12
  • Exceeded Archive Size: 13
  • Exceeded Archive File Number: 14
  • Password Protected Document: 15
  • Exceeded Archive Timeout: 16
  • Mismatch: 17
  • Potentially Vulnerable File: 18
  • Cancelled: 19
  • Sensitive Data Found: 20
  • Yara Rule Matched: 21
  • Potentially Unwanted: 22
  • Unsupported File Type: 23
  • Extraction Failed: 24
  • Scan Failed: 25
  • Suspicious Verdict by Sandbox: 26
  • Likely Malicious Verdict by Sandbox: 27
  • Malicious Verdict by Sandbox: 28
  • Blocked Verdict by Sandbox: 29
  • Blocked Verdict by Deep CDR: 30
  • Global Timeout Exceeded: 31
  • Vulnerable Verdict by SBOM: 32
  • Non-vulnerable Verdict by SBOM: 33
  • Blocked Verdict by SBOM: 34
  • Blocked by Post Action: 36
  • Known Bad: 38
  • Known Good: 39
  • Unknown: 40
  • Allowed Verdict by COO: 41
  • Blocked Verdict by COO: 42
  • Unknown Verdict by COO: 43
  • In Progress: 255
  • Skip Processing Fast Symlink: 1014

Enum: No Threat Detected,Infected,Suspicious,Failed,Whitelisted,Blacklisted,Exceeded Archive Depth,Not Scanned,Encrypted Archive,Exceeded Archive Size,Exceeded Archive File Number,Password Protected Document,Exceeded Archive Timeout,Mismatch,Potentially Vulnerable File,Cancelled,Sensitive Data Found,Yara Rule Matched,Potentially Unwanted,Unsupported File Type,Extraction Failed,Scan Failed,Suspicious Verdict by Sandbox,Likely Malicious Verdict by Sandbox,Malicious Verdict by Sandbox,Blocked Verdict by Sandbox,Blocked Verdict by Deep CDR,Global Timeout Exceeded,Vulnerable Verdict by SBOM,Non-vulnerable Verdict by SBOM,Blocked Verdict by SBOM,Blocked by Post Action,Known Bad,Known Good,Unknown,Allowed Verdict by COO,Blocked Verdict by COO,Unknown Verdict by COO,In Progress,Skip Processing Fast Symlink

scan_all_result_iinteger

Scan result as index in the Processing Results table above

Enum: 0,1,2,3,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,36,38,39,40,41,42,43,255,1014

start_timestring

Timestamp when the scanning process starts.

total_avsinteger

Total number of scanning engines used as part of this analysis. Not like files, batch is not processed by engine, so this value is always 0.

total_timeinteger

Total time elapsed during scan (in milliseconds).

user_datastring

Metadata submitted at batch creation.

400

Bad Request (e.g. invalid header, apikey is missing or invalid).

403

Invalid user information or Not Allowed

404

Requests resource was not found.

500

Unexpected event on server

Response
Copy

Download Signed Batch Result

Download digitally signed status report for the entire batch

Auth
Headers
apikeystring

Generated session_id from Login call can be used as an apikey for API calls that require authentication.

metadatastring

In JSON format, this can be used to:

Include additional information in the response YML. Currently, one supported field in the metadata is include_vul_info, which can be set to true or false to indicate whether vulnerability processing information should be included. It is strongly recommended to apply URL encoding before sending metadata to Metadefender Core to prevent unexpected issues related to encoding errors or unsafe characters.

Path Params
batchIdstring

The batch identifier used to submit files in the batch and to close the batch.

GET /file/batch/{batchId}/certificate
Copy
Responses
200

Signed batch result and certificate are sent back in response body (YAML format).

No response body
400

Bad Request (e.g. invalid header, apikey is missing or invalid).

403

Invalid user information or Not Allowed

404

Requests resource was not found.

500

Unexpected event on server

Response
Copy

Cancel Batch

When cancelling a batch, the connected analysis that are still in progress will be cancelled also.

The cancelled batch will be closed.

Auth
Headers
apikeystring

Generated session_id from Login call can be used as an apikey for API calls that require authentication.

Path Params
batchIdstring

The batch identifier used to submit files in the batch and to close the batch.

POST /file/batch/{batchId}/cancel
Copy
Responses
200

Batch cancelled.

objectobject
400

Bad Request (e.g. invalid header, apikey is missing or invalid).

403

Invalid user information or Not Allowed

404

Batch not found (invalid id)

500

Unexpected event on server

Response
Copy