This section of the user guide describes how you can programmatically interact with the MetaDefender for Secure Storage REST API. Below are some common tasks that can be done using the available REST APIs:

  • Authenticate to obtain a JSON Web Token(JWT)
  • Start or stop a process(scan)
  • Add / remove storage units

About this REST API

The exposed endpoint is located by default at http(s)://md-storage-server/api/ (for example, the authentication endpoint is available at http(s)://md-storage-server/api/user/authenticate). All requests are handled by the NGINX web server before being proxied to the backend API Gateway service.

All endpoints perform authentication and authorization checks. For these checks to succeed, a valid token should be presented in the Authorization header in the form of Bearer.

Please note that all issued tokens have a timestamp and signature associated in order to prevent long-term usage without re - authentication.The lifespan of the token is currently set to 60 minutes, meaning you will have to request a new token before it expires in order to avoid error responses.

Server
http://<MDSS_HOST>
Server Variables
http Bearer

As mentioned earlier, all endpoints perform authentication and authorization checks. In order for these checks to succeed, a valid token should be presented in the Authorization header in the form of Bearer .

Suggested application logic

If you plan to integrate MetaDefender for Secure Storage in your custom application or workflow, please consider the following scenarios for successfully making REST API requests:

Scenario Possible use cases
Short-lived integration You are building or enhancing an application that requires sporadic or on-demand access to MetaDefender for Secure Storage REST APIs.
The application is not expected to make more than a few REST API calls per hour.
The application does not need to preserve a session.
Long-lived integration You are building or enhancing an application that requires continuous, uninterrupted, or hard to predict access to MetaDefender for Secure Storage REST APIs.
Requests are being triggered based on external factors and your application should maintain connectivity with MetaDefender for Secure Storage REST API.
Session preserving is necessary and authentication should happen without user-interaction.
Your application will make a significant number of REST API requests and you need increased performance.

Short-lived integration

  • Obtain a signed accessToken by calling /api/user/authenticate API

  • Use this token to call your desired REST API by providing it in the Authorization header

  • Expire the token by calling /api/user/logout

  • Repeat steps 1-3 the next time your application needs to call a REST API

Long-lived integration

  • Obtain a signed token by calling /api/user/authenticate API

  • Securely save the received accessToken and the refreshToken

  • Use the accessToken to call your desired REST API by providing it in the Authorization header

  • Add an exception handler in case you receive a 401 Unauthorized response because the JWT has expired call /api/user/refreshToken to obtain a new accessToken by providing the saved refreshToken.

    a) the accessToken expires after an hour of creation; the expiry time is represented in UTC format by the accessTokenExpiryTime value.
    b) the refreshToken expires after an hour of creation; the expiry time is represented in UTC format by the refreshTokenExpiryTime value.
    c) if the refreshToken has expired as well, obtain a signed token by calling /api/user/authenticate API

  • Use the newly issued accessToken to call your desired REST API by providing it in the Authorization header

General considerations

The access token expiration date cannot be extended. By default, the access token is valid for an hour after calling /api/user/authenticate API to obtain it.The refresh token is also valid for an hour but can be extended by calling /api/user/refreshToken and it is also automatically extended with an hour with each non-GET request.

A refresh token is used to request a new access token when the current one expires without requiring re-authentication using a username and password.

The refresh token is used to forcibly expire any previously issued JWT when the refresh token expires or is removed by calling /api/user/logout.

A 3rd party application that needs persistent connectivity with MetaDefender for Secure Storage should implement a timeout mechanism to ensure that the refresh token is renewed before it expires by calling /api/user/refreshToken whenever the JWT (access token) is expired but before the refresh token expires as well.


Audit

List audit information

Fetch audit logs

Auth
Path Params
startIndexstring
countstring
Query String
logTypestring
categoryTypestring
logLevelstring
searchTextstring
GET /api/audit/{startIndex}/{count}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
entriesarray[object]
idstring
logLevelint32

0 = Debug, 1 = Info, 2 = Warn, 3 = Error

Enum: 0,1,2,3

detailsstring
logTypeint32

Enum: 0,1,2,100,101,102,103,200,201,202,203,204,205,206,207,208,300,301,302,350,351,400,410,411,412,413,414,415,416,417,418,600,601,602,603,604,605,606,700,701,702,703,750,751,752,753,800,801,802,900,901,950,975,1000,1001,1002,1100,1200,1201,1202,1300,1400,1401,1402,1403,1404,1500,1501,1502

userIdstring
categoryint32

Enum: 0,1,2,3,4,6,7,8

timeStampdate-time
userNamestring
filterCountint64
totalCountint64
Response
Copy

Export configuration file

Auth
Query String
exportLicenseboolean
exportSmtpboolean
exportEmailNotificationsboolean
GET /api/configuration/export
Copy
Responses
200

Success

filefile
Response
Copy

Import configuration file

Auth
Request Body
objectobject
ConfigurationFilefile
POST /api/configuration/import
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

enabledModules

Auth
GET /api/configuration/enabledModules
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
enabledModulesarray[integer]
Response
Copy

Deep Cdr

Manage sanitized files

Revert encrypted file

Auth
Path Params
fileIdstring
POST /api/DeepCdr/revert/{fileId}
Copy
Responses
200

Success

No response body
Response
Copy

Retrieve external loggers

Auth
GET /api/ExternalLogger
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
resultint32

Enum: 0,1,2

entriesarray[object]
idstring
isEnabledboolean
loggerTypeint32

0 = UdpSyslog

Enum: 0

connectionSettingsobject
Response
Copy

Update external logger state

Auth
Request Body
objectobject
idstring
isEnabledboolean
PUT /api/ExternalLogger/status
Copy
Responses
200

Success

No response body
Response
Copy

Update a Syslog server configuration

Auth
Request Body
objectobject
isEnabledboolean
serverAddressstring

minLength: 1

pattern: ^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$|^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$

portint32

pattern: ^()([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$

loggerTypeint32

0 = UdpSyslog

Enum: 0

facilityint32

0 = KernelMessages, 1 = UserLevelMessages, 2 = MailSystem, 3 = SystemDaemons, 4 = SecurityOrAuthorizationMessages1, 5 = InternalMessages, 6 = LinePrinterSubsystem, 7 = NetworkNewsSubsystem, 8 = UUCPSubsystem, 9 = ClockDaemon1, 10 = SecurityOrAuthorizationMessages2, 11 = FTPDaemon, 12 = NTPSubsystem, 13 = LogAudit, 14 = LogAlert, 15 = ClockDaemon2, 16 = LocalUse0, 17 = LocalUse1, 18 = LocalUse2, 19 = LocalUse3, 20 = LocalUse4, 21 = LocalUse5, 22 = LocalUse6, 23 = LocalUse7

Enum: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23

formatint32

0 = RFC5424

Enum: 0

idstring

minLength: 1

PUT /api/ExternalLogger/udpSyslog
Copy
Responses
200

Success

No response body
Response
Copy

Add a new Syslog server configuration

Auth
Request Body
objectobject
isEnabledboolean
serverAddressstring

minLength: 1

pattern: ^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$|^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$

portint32

pattern: ^()([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$

loggerTypeint32

0 = UdpSyslog

Enum: 0

facilityint32

0 = KernelMessages, 1 = UserLevelMessages, 2 = MailSystem, 3 = SystemDaemons, 4 = SecurityOrAuthorizationMessages1, 5 = InternalMessages, 6 = LinePrinterSubsystem, 7 = NetworkNewsSubsystem, 8 = UUCPSubsystem, 9 = ClockDaemon1, 10 = SecurityOrAuthorizationMessages2, 11 = FTPDaemon, 12 = NTPSubsystem, 13 = LogAudit, 14 = LogAlert, 15 = ClockDaemon2, 16 = LocalUse0, 17 = LocalUse1, 18 = LocalUse2, 19 = LocalUse3, 20 = LocalUse4, 21 = LocalUse5, 22 = LocalUse6, 23 = LocalUse7

Enum: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23

formatint32

0 = RFC5424

Enum: 0

POST /api/ExternalLogger/udpSyslog
Copy
Responses
200

Success

No response body
Response
Copy

Delete external logger

Auth
Path Params
idstring
DELETE /api/ExternalLogger/{id}
Copy
Responses
200

Success

No response body
Response
Copy

File

Retrieve processed files information

Fetch processing results for a file

File processing is done asynchronously and each analysis request is tracked by a file ID. Because processing a file is a potentially time-consuming operation, scheduling a file for processing and retrieving the results needs to be done using two separate API calls.

This request needs to be made multiple times until the analysis is complete. Analysis completion can be tracked using the processingState and the progress values from the response..

Auth
Path Params
fileIdstring
GET /api/file/{fileId}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
idstring
scanIdstring
namestring
pathstring
hashstring
fileOwnerobject
userIdstring
fullNamestring
userNamestring
emailAddressstring
sizeint64
storageTypeobject
namestring
categoryTypeint32

0 = Local, 1 = Cloud, 2 = Object

Enum: 0,1,2

protocolTypeint32

0 = Smb, 1 = GraphSdk, 2 = BoxSdk, 3 = AwsSdk, 4 = AzureBlobSdk, 5 = AlibabaCloudSdk, 6 = GoogleCloudSdk, 7 = AzureFilesSdk, 8 = Sftp

Enum: 0,1,2,3,4,5,6,7,8

vendorTypeint32

0 = AmazonS3, 1 = OneDrive, 2 = Box, 3 = DellIsilon, 4 = AzureFiles, 5 = SmbCompatible, 6 = S3Compatible, 7 = AzureBlob, 8 = AlibabaCloud, 9 = GoogleCloud, 10 = Sftp, 11 = SharePoint

Enum: 0,1,2,3,4,5,6,7,8,9,10,11

storageNamestring
storageLocationstring
scanNamestring
progressobject
uploadint32
scanint32
scanResultobject
extractedFilesobject
dataIdstring
scanResultIint32
detectedByint32
filesInArchivearray[object]
displayNamestring
dataIdstring
fileTypestring
fileTypeDescriptionstring
scanResultIint32
scanAllResultIint32
detectedByint32
scannedWithint32
progressPercentageint32
fileSizeint64
processInfoobject
postProcessingobject
actionsRanstring
actionsFailedstring
convertedTostring
copyMoveDestinationstring
convertedDestinationstring
sanitizationDetailsobject
failureCategorystring
detailsstring
progressPercentageint32
userAgentstring
profilestring
resultstring
blockedReasonstring
fileTypeSkippedScanboolean
processingTimenumber
queueTimenumber
resultIint32

0 = Allowed, 1 = Blocked, 2 = Processing

Enum: 0,1,2

filesExtractedCountint32
scanResultsobject
scanDetailsarray[object]
engineNamestring
threatFoundstring
scanResultIint32
defTimestring
scanTimenumber
engIdstring
waitTimenumber
dataIdstring
scanAllResultIint32
scanAllResultAstring
startTimestring
totalTimenumber
totalAvsint32
progressPercentageint32
fileInfoobject
fileSizeint64
uploadTimestampstring
md5string
sha1string
sha256string
fileTypeCategorystring
fileTypeDescriptionstring
fileTypeExtensionstring
displayNamestring
originalFilePathstring
processInfoobject
postProcessingobject
actionsRanstring
actionsFailedstring
convertedTostring
copyMoveDestinationstring
convertedDestinationstring
sanitizationDetailsobject
failureCategorystring
detailsstring
progressPercentageint32
userAgentstring
profilestring
resultstring
blockedReasonstring
fileTypeSkippedScanboolean
processingTimenumber
queueTimenumber
resultIint32

0 = Allowed, 1 = Blocked, 2 = Processing

Enum: 0,1,2

dataIdstring
dlpInfoobject
verdictint64
vulnerabilityInfoobject
vulnerabilityInfoResultobject
codeint64
hashstring
methodint64
timeStampstring
timingint64
detectedProductobject
hasVulnerabilityboolean
isCurrentboolean
productobject
idint64
namestring
remediationLinkstring
severitystring
sigNamestring
signatureint64
vendorobject
idint64
namestring
versionstring
versionDataobject
countBehindint64
feedIdint64
versionstring
vulnerabilitiesarray[object]
descriptionstring
detailsobject
cpestring
cvestring
cvssobject
accessComplexitystring
accessVectorstring
authenticationstring
availabilityImpactstring
confidentialityImpactstring
generatedOnEpochstring
integrityImpactstring
scorestring
sourcestring
cvss3object
attackComplexitystring
attackVectorstring
availabilityImpactstring
baseScorestring
baseSeveritystring
confidentialityImpactstring
exploitabilityScorestring
impactScorestring
integrityImpactstring
privilegesRequiredstring
scopestring
userInteractionstring
vectorStringstring
cwestring
lastModifiedEpochstring
publishedEpochstring
referencesarray[string]
severitystring
severityIndexint32
staticIdint64
sessionCookiestring
processingStateint32

0 = InProgress, 1 = Failed, 2 = Canceled, 3 = Available

Enum: 0,1,2,3

exceptionobject
exceptionDetailsstring
exceptionMessagestring
createddate-time
lastModifieddate-time
discoveryStarteddate-time
fileProcessingDetailsobject
streamingStartedTimedate-time
streamingCompletedTimedate-time
streamingTimeSpanMsint64
scanCompletedTimedate-time
processingTimeSpanMsint64
coreEnginesarray[object]
engineIdstring
engineNamestring
engineVersionstring
dbVersionstring
definitionTimestring
remediationobject
isTaggedboolean
isDeletedboolean
isMovedboolean
deepCdrobject
isSanitizedboolean
isEncryptedboolean
isOriginalVersionOfSanitizedFileboolean
hasSanitizedFileBeenMovedboolean
decryptStatusint32

0 = NotStarted, 1 = InProgress, 2 = Completed

Enum: 0,1,2

deepCdrOriginalObjectHandlingTypeint32

0 = Keep, 1 = Encrypt, 2 = Delete

Enum: 0,1,2

sanitizationDetailsobject
failureCategorystring
detailsstring
postActionFailedInformationarray[object]
objectActionTypeint32

0 = Tagging, 1 = DeepCdrSanitization, 2 = DeepCdrDelete, 3 = DeepCdrEncrypt, 4 = DeepCdrKeep, 5 = AllowedMoved, 6 = BlockedMoved, 7 = BlockedDelete, 8 = SanitizedMoved

Enum: 0,1,2,3,4,5,6,7,8

exceptionobject
exceptionDetailsstring
exceptionMessagestring
metaDefenderCoreUrlstring
discoveryStartedDaySecint64
Response
Copy

Enumerate processed files

Auth
Path Params
scanIdstring
startIndexstring
countstring
Query String
sorting_orderstring
searchstring
resultinteger

Enum: 0,1,2,3

startDatestring
endDatestring
scanWorkflowSnapshotIdstring
GET /api/file/{scanId}/{startIndex}/{count}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
entriesarray[object]
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
idstring
scanIdstring
namestring
pathstring
hashstring
fileOwnerobject
userIdstring
fullNamestring
userNamestring
emailAddressstring
sizeint64
storageTypeobject
namestring
categoryTypeint32

0 = Local, 1 = Cloud, 2 = Object

Enum: 0,1,2

protocolTypeint32

0 = Smb, 1 = GraphSdk, 2 = BoxSdk, 3 = AwsSdk, 4 = AzureBlobSdk, 5 = AlibabaCloudSdk, 6 = GoogleCloudSdk, 7 = AzureFilesSdk, 8 = Sftp

Enum: 0,1,2,3,4,5,6,7,8

vendorTypeint32

0 = AmazonS3, 1 = OneDrive, 2 = Box, 3 = DellIsilon, 4 = AzureFiles, 5 = SmbCompatible, 6 = S3Compatible, 7 = AzureBlob, 8 = AlibabaCloud, 9 = GoogleCloud, 10 = Sftp, 11 = SharePoint

Enum: 0,1,2,3,4,5,6,7,8,9,10,11

storageNamestring
storageLocationstring
scanNamestring
progressobject
uploadint32
scanint32
scanResultobject
extractedFilesobject
dataIdstring
scanResultIint32
detectedByint32
filesInArchivearray[object]
displayNamestring
dataIdstring
fileTypestring
fileTypeDescriptionstring
scanResultIint32
scanAllResultIint32
detectedByint32
scannedWithint32
progressPercentageint32
fileSizeint64
processInfoobject
postProcessingobject
actionsRanstring
actionsFailedstring
convertedTostring
copyMoveDestinationstring
convertedDestinationstring
sanitizationDetailsobject
failureCategorystring
detailsstring
progressPercentageint32
userAgentstring
profilestring
resultstring
blockedReasonstring
fileTypeSkippedScanboolean
processingTimenumber
queueTimenumber
resultIint32

0 = Allowed, 1 = Blocked, 2 = Processing

Enum: 0,1,2

filesExtractedCountint32
scanResultsobject
scanDetailsarray[object]
engineNamestring
threatFoundstring
scanResultIint32
defTimestring
scanTimenumber
engIdstring
waitTimenumber
dataIdstring
scanAllResultIint32
scanAllResultAstring
startTimestring
totalTimenumber
totalAvsint32
progressPercentageint32
fileInfoobject
fileSizeint64
uploadTimestampstring
md5string
sha1string
sha256string
fileTypeCategorystring
fileTypeDescriptionstring
fileTypeExtensionstring
displayNamestring
originalFilePathstring
processInfoobject
postProcessingobject
actionsRanstring
actionsFailedstring
convertedTostring
copyMoveDestinationstring
convertedDestinationstring
sanitizationDetailsobject
failureCategorystring
detailsstring
progressPercentageint32
userAgentstring
profilestring
resultstring
blockedReasonstring
fileTypeSkippedScanboolean
processingTimenumber
queueTimenumber
resultIint32

0 = Allowed, 1 = Blocked, 2 = Processing

Enum: 0,1,2

dataIdstring
dlpInfoobject
verdictint64
vulnerabilityInfoobject
vulnerabilityInfoResultobject
codeint64
hashstring
methodint64
timeStampstring
timingint64
detectedProductobject
hasVulnerabilityboolean
isCurrentboolean
productobject
idint64
namestring
remediationLinkstring
severitystring
sigNamestring
signatureint64
vendorobject
idint64
namestring
versionstring
versionDataobject
countBehindint64
feedIdint64
versionstring
vulnerabilitiesarray[object]
descriptionstring
detailsobject
cpestring
cvestring
cvssobject
accessComplexitystring
accessVectorstring
authenticationstring
availabilityImpactstring
confidentialityImpactstring
generatedOnEpochstring
integrityImpactstring
scorestring
sourcestring
cvss3object
attackComplexitystring
attackVectorstring
availabilityImpactstring
baseScorestring
baseSeveritystring
confidentialityImpactstring
exploitabilityScorestring
impactScorestring
integrityImpactstring
privilegesRequiredstring
scopestring
userInteractionstring
vectorStringstring
cwestring
lastModifiedEpochstring
publishedEpochstring
referencesarray[string]
severitystring
severityIndexint32
staticIdint64
sessionCookiestring
processingStateint32

0 = InProgress, 1 = Failed, 2 = Canceled, 3 = Available

Enum: 0,1,2,3

exceptionobject
exceptionDetailsstring
exceptionMessagestring
createddate-time
lastModifieddate-time
discoveryStarteddate-time
fileProcessingDetailsobject
streamingStartedTimedate-time
streamingCompletedTimedate-time
streamingTimeSpanMsint64
scanCompletedTimedate-time
processingTimeSpanMsint64
coreEnginesarray[object]
engineIdstring
engineNamestring
engineVersionstring
dbVersionstring
definitionTimestring
remediationobject
isTaggedboolean
isDeletedboolean
isMovedboolean
deepCdrobject
isSanitizedboolean
isEncryptedboolean
isOriginalVersionOfSanitizedFileboolean
hasSanitizedFileBeenMovedboolean
decryptStatusint32

0 = NotStarted, 1 = InProgress, 2 = Completed

Enum: 0,1,2

deepCdrOriginalObjectHandlingTypeint32

0 = Keep, 1 = Encrypt, 2 = Delete

Enum: 0,1,2

sanitizationDetailsobject
failureCategorystring
detailsstring
postActionFailedInformationarray[object]
objectActionTypeint32

0 = Tagging, 1 = DeepCdrSanitization, 2 = DeepCdrDelete, 3 = DeepCdrEncrypt, 4 = DeepCdrKeep, 5 = AllowedMoved, 6 = BlockedMoved, 7 = BlockedDelete, 8 = SanitizedMoved

Enum: 0,1,2,3,4,5,6,7,8

exceptionobject
exceptionDetailsstring
exceptionMessagestring
metaDefenderCoreUrlstring
discoveryStartedDaySecint64
filterCountint64
totalCountint64
Response
Copy

Ocm

Manage OPSWAT Central Management integration

ocm

Auth
GET /api/ocm
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
ocmInformationobject
idstring
serverApistring
registrationCodestring
connectionStatusint32

0 = Disconnected, 1 = Connected

Enum: 0,1

enrollStatusint32

0 = NotEnrolled, 1 = Enrolled

Enum: 0,1

lastServerConnectionint64
lastConfigurationSyncint64
apiKeystring
cmVersionstring
deploymentIdstring
Response
Copy

ocm

Auth
Request Body
objectobject
serverApistring

minLength: 1

regCodestring

minLength: 1

PUT /api/ocm
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

ocm

Auth
POST /api/ocm
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
versionstring
Response
Copy

Onboarding

Manage onboarding

Fetch onboarding configuration

Auth
GET /api/onboarding
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
hasUserConfiguredboolean
hasStorageConfiguredboolean
hasScanInstanceConfiguredboolean
isOnboardingDoneboolean
Response
Copy

Finish onboarding

Auth
POST /api/onboarding
Copy
Responses
200

Success

No response body
Response
Copy

Report

Generate reports

Get scans report

Auth
Query String
storageIdstring
namestring
scanTypesFilterarray

Enum: 0,1,2

scanStatesFilterarray

Enum: 0,1,2,3,4

startDatestring
endDatestring
sortDirectionFilterinteger

Enum: 0,1

startIndexinteger
countinteger
GET /api/report
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
entriesarray[object]
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
idstring
namestring
startTimedate-time
stopTimedate-time
scanTypestring
scanningStateint32

0 = NotStarted, 1 = Running, 2 = Cancelled, 3 = Failed, 4 = Completed

Enum: 0,1,2,3,4

scanStatusDtoobject
pendingFilesCountint64
allowedFilesCountint64
blockedFilesCountint64
totalFilesCountint64
processingFailedCountint64
processedFilesCountint64
scanStatsDtoobject
pciDssComplianceViolationsCountint64
hipaaComplianceViolationsCountint64
gdprComplianceViolationsCountint64
malwareSecurityAlertsCountint64
vulnerabilitiesSecurityAlertsCountint64
piiSecurityAlertsCountint64
pciDssComplianceViolationsPercentageIncreaseint64
hipaaComplianceViolationsPercentageIncreaseint64
gdprComplianceViolationsPercentageIncreaseint64
malwareSecurityAlertsPercentageIncreaseint64
vulnerabilitiesSecurityAlertsPercentageIncreaseint64
piiSecurityAlertsPercentageIncreaseint64
highRiskAccountsarray[object]
idstring
displayNamestring
blockedFilesCountint64
scanSequenceDtoobject
previousScanIdstring
nextScanIdstring
scanConfigurationIdstring
totalCountint64
Response
Copy

Get Scan Configurations

Auth
GET /api/ScanConfiguration
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
entriesarray[object]
idstring
scanPoolIdstring
rulesarray[string]
typeint32

Enum: 0,1

namestring
scanPoolobject
idstring
namestring
scanInstancesarray[object]
idstring
scanPoolIdstring
urlstring
ipstring
apiKeystring
timeoutobject
ticksint64
daysint32
hoursint32
millisecondsint32
microsecondsint32
nanosecondsint32
minutesint32
secondsint32
totalDaysnumber
totalHoursnumber
totalMillisecondsnumber
totalMicrosecondsnumber
totalNanosecondsnumber
totalMinutesnumber
totalSecondsnumber
Response
Copy

Add a new Scan Configuration

Auth
Request Body
objectobject
scanPoolIdstring
rulesarray[string]
namestring

maxLength: 30

minLength: 3

POST /api/ScanConfiguration
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

Update an existing Scan Configuration

Auth
Request Body
objectobject
idstring
scanPoolIdstring
rulesarray[string]
namestring

maxLength: 30

minLength: 3

PATCH /api/ScanConfiguration
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

Get Scan Configuration by ID

Auth
Path Params
idstring
GET /api/ScanConfiguration/{id}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
entryobject
idstring
scanPoolIdstring
rulesarray[string]
typeint32

Enum: 0,1

namestring
scanPoolobject
idstring
namestring
scanInstancesarray[object]
idstring
scanPoolIdstring
urlstring
ipstring
apiKeystring
timeoutobject
ticksint64
daysint32
hoursint32
millisecondsint32
microsecondsint32
nanosecondsint32
minutesint32
secondsint32
totalDaysnumber
totalHoursnumber
totalMillisecondsnumber
totalMicrosecondsnumber
totalNanosecondsnumber
totalMinutesnumber
totalSecondsnumber
Response
Copy

Delete a Scan Configuration

Auth
Path Params
idstring
DELETE /api/ScanConfiguration/{id}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

Set a Scan Configuration as default

Auth
Path Params
idstring
POST /api/ScanConfiguration/setDefault/{id}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

Get scan by ID

Auth
Path Params
scanIdstring
GET /api/scan/{scanId}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
scanobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
idstring
namestring
startTimedate-time
stopTimedate-time
scanTypestring
scanningStateint32

0 = NotStarted, 1 = Running, 2 = Cancelled, 3 = Failed, 4 = Completed

Enum: 0,1,2,3,4

scanStatusDtoobject
pendingFilesCountint64
allowedFilesCountint64
blockedFilesCountint64
totalFilesCountint64
processingFailedCountint64
processedFilesCountint64
scanStatsDtoobject
pciDssComplianceViolationsCountint64
hipaaComplianceViolationsCountint64
gdprComplianceViolationsCountint64
malwareSecurityAlertsCountint64
vulnerabilitiesSecurityAlertsCountint64
piiSecurityAlertsCountint64
pciDssComplianceViolationsPercentageIncreaseint64
hipaaComplianceViolationsPercentageIncreaseint64
gdprComplianceViolationsPercentageIncreaseint64
malwareSecurityAlertsPercentageIncreaseint64
vulnerabilitiesSecurityAlertsPercentageIncreaseint64
piiSecurityAlertsPercentageIncreaseint64
highRiskAccountsarray[object]
idstring
displayNamestring
blockedFilesCountint64
scanSequenceDtoobject
previousScanIdstring
nextScanIdstring
scanConfigurationIdstring
Response
Copy

Get scan by ID with information regarding the previous and next scan

Auth
Path Params
scanIdstring
Query String
scanTypesFilterarray

Enum: 0,1,2

scanStatesFilterarray

Enum: 0,1,2,3,4

GET /api/scan/sequence/{scanId}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
scanobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
idstring
namestring
startTimedate-time
stopTimedate-time
scanTypestring
scanningStateint32

0 = NotStarted, 1 = Running, 2 = Cancelled, 3 = Failed, 4 = Completed

Enum: 0,1,2,3,4

scanStatusDtoobject
pendingFilesCountint64
allowedFilesCountint64
blockedFilesCountint64
totalFilesCountint64
processingFailedCountint64
processedFilesCountint64
scanStatsDtoobject
pciDssComplianceViolationsCountint64
hipaaComplianceViolationsCountint64
gdprComplianceViolationsCountint64
malwareSecurityAlertsCountint64
vulnerabilitiesSecurityAlertsCountint64
piiSecurityAlertsCountint64
pciDssComplianceViolationsPercentageIncreaseint64
hipaaComplianceViolationsPercentageIncreaseint64
gdprComplianceViolationsPercentageIncreaseint64
malwareSecurityAlertsPercentageIncreaseint64
vulnerabilitiesSecurityAlertsPercentageIncreaseint64
piiSecurityAlertsPercentageIncreaseint64
highRiskAccountsarray[object]
idstring
displayNamestring
blockedFilesCountint64
scanSequenceDtoobject
previousScanIdstring
nextScanIdstring
scanConfigurationIdstring
Response
Copy

Start a scan

Auth
Request Body
objectobject
storageIdstring
namestring
scanConfigurationIdstring
POST /api/scan/start
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
scanIdstring
Response
Copy

Stop a scan

Auth
Path Params
scanIdstring
POST /api/scan/stop/{scanId}
Copy
Responses
200

Success

No response body
Response
Copy

Get next scheduled scan

Auth
Path Params
storageIdstring
GET /api/scan/scheduled/{storageId}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
nextScheduledScanobject
idstring
namestring
scanConfigurationIdstring
typestring
createdAtdate-time
lastScanTimedate-time
nextScanTimedate-time
recurrencePatternDtoobject
hourlyRecurrenceDtoobject
everyNumberOfHoursint32
dailyRecurrenceDtoobject
everyNumberOfDaysint32
weeklyRecurrenceDtoobject
dayOfWeekint32

0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 = Friday, 6 = Saturday

Enum: 0,1,2,3,4,5,6

monthlyRecurrenceDtoobject
everyNumberOfMonthsint32
dayOfMonthint32
createdBystring
scheduledScansCountint32
Response
Copy

Delete scans

Auth
Path Params
storageIdstring
Request Body
arrayarray[string]
DELETE /api/scan/{storageId}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

Get Scan Instances

Auth
Query String
scanPoolIdstring
GET /api/ScanInstance
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
entriesarray[object]
idstring
scanPoolIdstring
urlstring
ipstring
apiKeystring
timeoutobject
ticksint64
daysint32
hoursint32
millisecondsint32
microsecondsint32
nanosecondsint32
minutesint32
secondsint32
totalDaysnumber
totalHoursnumber
totalMillisecondsnumber
totalMicrosecondsnumber
totalNanosecondsnumber
totalMinutesnumber
totalSecondsnumber
Response
Copy

Update an existing Scan Instance

Auth
Request Body
objectobject
idstring
urlstring

pattern: ^((?!(^((https?):\/\/)?127(?:\.[0-9]+){0,2}\.[0-9]+(:([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])?)?$)|(^((https?):\/\/)?\[(?:0*\:)*?:?0*1\](:([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])?)?$)).)*$

apiKeystring
timeoutobject
ticksint64
PUT /api/ScanInstance
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

Add a new Scan Instance

Auth
Request Body
objectobject
scanPoolIdstring
urlstring

pattern: ^((?!(^((https?):\/\/)?127(?:\.[0-9]+){0,2}\.[0-9]+(:([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])?)?$)|(^((https?):\/\/)?\[(?:0*\:)*?:?0*1\](:([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])?)?$)).)*$

apiKeystring
timeoutobject
ticksint64
scanInstanceTypeint32

Enum: 0,1

POST /api/ScanInstance
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

Get Scan Instance by ID

Auth
Path Params
idstring
GET /api/ScanInstance/{id}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
entryobject
idstring
scanPoolIdstring
urlstring
ipstring
apiKeystring
timeoutobject
ticksint64
daysint32
hoursint32
millisecondsint32
microsecondsint32
nanosecondsint32
minutesint32
secondsint32
totalDaysnumber
totalHoursnumber
totalMillisecondsnumber
totalMicrosecondsnumber
totalNanosecondsnumber
totalMinutesnumber
totalSecondsnumber
Response
Copy

Delete a Scan Instance

Auth
Path Params
idstring
DELETE /api/ScanInstance/{id}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

Get Scan Pools

Auth
GET /api/ScanPool
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
entriesarray[object]
idstring
namestring
scanInstancesarray[object]
idstring
scanPoolIdstring
urlstring
ipstring
apiKeystring
timeoutobject
ticksint64
daysint32
hoursint32
millisecondsint32
microsecondsint32
nanosecondsint32
minutesint32
secondsint32
totalDaysnumber
totalHoursnumber
totalMillisecondsnumber
totalMicrosecondsnumber
totalNanosecondsnumber
totalMinutesnumber
totalSecondsnumber
Response
Copy

Update an existing Scan Pool

Auth
Request Body
objectobject
idstring
namestring

maxLength: 30

minLength: 3

PUT /api/ScanPool
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

Add a new Scan Pool

Auth
Request Body
objectobject
namestring

maxLength: 30

minLength: 3

scanPoolTypeint32

Enum: 0,1

POST /api/ScanPool
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

Get Scan Pool by ID

Auth
Path Params
idstring
GET /api/ScanPool/{id}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
entryobject
idstring
namestring
scanInstancesarray[object]
idstring
scanPoolIdstring
urlstring
ipstring
apiKeystring
timeoutobject
ticksint64
daysint32
hoursint32
millisecondsint32
microsecondsint32
nanosecondsint32
minutesint32
secondsint32
totalDaysnumber
totalHoursnumber
totalMillisecondsnumber
totalMicrosecondsnumber
totalNanosecondsnumber
totalMinutesnumber
totalSecondsnumber
Response
Copy

Delete a Scan Pool

Auth
Path Params
idstring
DELETE /api/ScanPool/{id}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

Scan Workflow Snapshot

List scan workflow snapshots

Get all scan workflow snapshots by scan ID

Auth
Path Params
scanIdstring
GET /api/ScanWorkflowSnapshot/getAllFromScan/{scanId}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

Fetch storage security checklist

Auth
Path Params
storageIdstring
GET /api/security-checklist/{storageId}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
itemsarray[object]
idstring
titleint32

0 = Https, 1 = AuthenticatedAccessToBuckets, 2 = LeastPrivilege, 3 = BucketVersion, 4 = ServerSideEncryption, 5 = BucketAccessLogging, 6 = DataReplication, 7 = ObjectLocking

Enum: 0,1,2,3,4,5,6,7

statusint32

0 = NotSet, 1 = Passed, 2 = Failed

Enum: 0,1,2

priorityint32

0 = Critical, 1 = Major, 2 = Minor

Enum: 0,1,2

isEnabledboolean
howToFixLinkstring
failureReasonstring
lastUpdateTimedate-time
scorenumber
isEnabledboolean
Response
Copy

Fetch security checklist details

Auth
Path Params
storageIdstring
GET /api/security-checklist/{storageId}/info
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
scorenumber
resolvedItemsCountint32
enabledItemsCountint32
isEnabledboolean
Response
Copy

Update security checklist item

Auth
Path Params
storageIdstring
Request Body
objectobject
idstring
isEnabledboolean
PUT /api/security-checklist/{storageId}/item
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
itemobject
idstring
titleint32

0 = Https, 1 = AuthenticatedAccessToBuckets, 2 = LeastPrivilege, 3 = BucketVersion, 4 = ServerSideEncryption, 5 = BucketAccessLogging, 6 = DataReplication, 7 = ObjectLocking

Enum: 0,1,2,3,4,5,6,7

statusint32

0 = NotSet, 1 = Passed, 2 = Failed

Enum: 0,1,2

priorityint32

0 = Critical, 1 = Major, 2 = Minor

Enum: 0,1,2

isEnabledboolean
howToFixLinkstring
failureReasonstring
Response
Copy

Verify the security checklist for storage

Auth
Path Params
storageIdstring
PUT /api/security-checklist/{storageId}/verify
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

Enable/Disable the security checklist

Auth
Request Body
objectobject
storageIdstring
isEnabledboolean
PATCH /api/security-checklist
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

Enable all security checklist items

Auth
Path Params
storageIdstring
PUT /api/security-checklist/{storageId}/enable-all
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

Get email notifications configuration

Auth
GET /api/settings/notifications
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
generatedReportNotificationsConfigobject
isEnabledboolean
recipientsTypeint32

0 = OwnerOnly, 1 = AllRegisteredUsers

Enum: 0,1

userRequestNotificationsConfigobject
isEnabledboolean
blockedFileNotificationsConfigobject
isEnabledboolean
recipientsTypeint32

0 = AllRegisteredUsers, 1 = FileOwner, 2 = FileOwnerAndAllRegisteredUsers

Enum: 0,1,2

Response
Copy

Update email notifications configuration

Auth
Request Body
objectobject
generatedReportNotificationsConfigobject
isEnabledboolean
recipientsTypeint32

0 = OwnerOnly, 1 = AllRegisteredUsers

Enum: 0,1

userRequestNotificationsConfigobject
isEnabledboolean
blockedFileNotificationsConfigobject
isEnabledboolean
recipientsTypeint32

0 = AllRegisteredUsers, 1 = FileOwner, 2 = FileOwnerAndAllRegisteredUsers

Enum: 0,1,2

PUT /api/settings/notifications
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

Fetch SMTP configuration

Auth
GET /api/settings/smtp
Copy
Responses
200

Success

objectobject
hoststring
portint32
baseUrlstring
senderAddressstring
senderNamestring

maxLength: 320

domainstring
usernamestring
passwordstring
secureSocketOptionint32

0 = None, 1 = Auto, 2 = SslOnConnect, 3 = StartTls, 4 = StartTlsWhenAvailable

Enum: 0,1,2,3,4

ignoreCertWarningsboolean
isSmtpEnabledboolean
Response
Copy

Update SMTP configuration

Auth
Request Body
objectobject
hoststring
portint32
baseUrlstring
senderAddressstring
senderNamestring

maxLength: 320

domainstring
usernamestring
passwordstring
secureSocketOptionint32

0 = None, 1 = Auto, 2 = SslOnConnect, 3 = StartTls, 4 = StartTlsWhenAvailable

Enum: 0,1,2,3,4

ignoreCertWarningsboolean
isSmtpEnabledboolean
PATCH /api/settings/smtp
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

Online license activation

Auth
Request Body
objectobject
keystring

minLength: 1

POST /api/settings/admin/license/activate/online
Copy
Responses
200

Success

No response body
Response
Copy

Offline license activation

Auth
Request Body
objectobject
LicenseContentfile
POST /api/settings/admin/license/activate/offline
Copy
Responses
200

Success

No response body
Response
Copy

Get license details

Auth
GET /api/settings/admin/license
Copy
Responses
200

Success

No response body
Response
Copy

Deactivate license

Auth
POST /api/settings/admin/license/deactivate
Copy
Responses
200

Success

No response body
Response
Copy

Fetch retention configuration

Auth
GET /api/settings/retention
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
retentionAuditDaysint32
reportRetentionConfigurationobject
isEnabledboolean
retentionDaysint32
Response
Copy

Update retention configuration

Auth
Request Body
objectobject
retentionAuditDaysint32

maximum: 50000

minimum: 10

reportRetentionobject
isEnabledboolean
retentionDaysint32

maximum: 50000

minimum: 10

PUT /api/settings/retention
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

Sso

Sso Authentication and Sso configuration update

Get Sso Configuration

Auth
GET /api/sso/config
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
clientIdstring
authoritystring
baseUrlstring
isEnabledboolean
ssoTypeint32

0 = OpenIdConnect

Enum: 0

ssoProviderint32

0 = Azure, 1 = Okta, 2 = Auth0

Enum: 0,1,2

Response
Copy

Update Sso Configuration

Auth
Request Body
objectobject
clientIdstring

maxLength: 255

clientSecretstring

maxLength: 255

authoritystring

maxLength: 255

baseUrlstring

maxLength: 255

isEnabledboolean
ssoTypeint32
ssoProviderint32
PATCH /api/sso
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
clientIdstring
authoritystring
baseUrlstring
isEnabledboolean
ssoTypeint32

0 = OpenIdConnect

Enum: 0

ssoProviderint32

0 = Azure, 1 = Okta, 2 = Auth0

Enum: 0,1,2

Response
Copy

Fetch all storages

Auth
GET /api/storage/all
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
entriesarray[object]
idstring
namestring
storageClientIdstring
storageTypeobject
namestring
categoryTypeint32

0 = Local, 1 = Cloud, 2 = Object

Enum: 0,1,2

protocolTypeint32

0 = Smb, 1 = GraphSdk, 2 = BoxSdk, 3 = AwsSdk, 4 = AzureBlobSdk, 5 = AlibabaCloudSdk, 6 = GoogleCloudSdk, 7 = AzureFilesSdk, 8 = Sftp

Enum: 0,1,2,3,4,5,6,7,8

vendorTypeint32

0 = AmazonS3, 1 = OneDrive, 2 = Box, 3 = DellIsilon, 4 = AzureFiles, 5 = SmbCompatible, 6 = S3Compatible, 7 = AzureBlob, 8 = AlibabaCloud, 9 = GoogleCloud, 10 = Sftp, 11 = SharePoint

Enum: 0,1,2,3,4,5,6,7,8,9,10,11

realTimeScanConfigobject
isEnabledboolean
handlingTypeint32

0 = Polling, 1 = EventBased

Enum: 0,1

scanConfigurationIdstring
postActionsScanConfigobject
fileTaggingConfigobject
isTaggingPostActionEnabledboolean
fileTagsarray[object]
fileTagKeyobject
defaultNamestring
customNamestring

maxLength: 128

customValuesarray[object]
defaultNamestring
customNamestring

maxLength: 256

isEnabledboolean
fileTagTypeint32

0 = MetaDefenderResult, 1 = MetaDefenderFileId, 2 = MetaDefenderAnalysisTimestamp

Enum: 0,1,2

deepCdrConfigobject
isDeepCdrPostActionEnabledboolean
deepCdrOriginalFileHandlingTypeint32

0 = Keep, 1 = Encrypt, 2 = Delete

Enum: 0,1,2

moveDeleteRemediationConfigobject
blockedFileRemediationConfigurationStatusint32

0 = None, 1 = Disabled, 2 = Enabled

Enum: 0,1,2

sanitizedFileRemediationConfigurationStatusint32

0 = None, 1 = Disabled, 2 = Enabled

Enum: 0,1,2

allowedFileRemediationConfigurationStatusint32

0 = None, 1 = Disabled, 2 = Enabled

Enum: 0,1,2

shouldTreatFilesWithSensitiveDataAsBlockedboolean
shouldTreatFilesWithVulnerabilitiesAsBlockedboolean
blockedFileHandlingTypeint32

0 = Delete, 1 = Move

Enum: 0,1

blockedFileStorageConfigobject
storageIdstring
userIdstring
keepFolderStructureboolean
sanitizedFileStorageConfigobject
storageIdstring
userIdstring
keepFolderStructureboolean
allowedFileStorageConfigobject
storageIdstring
userIdstring
keepFolderStructureboolean
blockingStrategyint32

0 = Strict, 1 = Configurable

Enum: 0,1

Response
Copy

Fetch storage by ID

Auth
Path Params
storageIdstring
GET /api/storage/{storageId}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
storageobject
idstring
namestring
storageClientIdstring
storageTypeobject
namestring
categoryTypeint32

0 = Local, 1 = Cloud, 2 = Object

Enum: 0,1,2

protocolTypeint32

0 = Smb, 1 = GraphSdk, 2 = BoxSdk, 3 = AwsSdk, 4 = AzureBlobSdk, 5 = AlibabaCloudSdk, 6 = GoogleCloudSdk, 7 = AzureFilesSdk, 8 = Sftp

Enum: 0,1,2,3,4,5,6,7,8

vendorTypeint32

0 = AmazonS3, 1 = OneDrive, 2 = Box, 3 = DellIsilon, 4 = AzureFiles, 5 = SmbCompatible, 6 = S3Compatible, 7 = AzureBlob, 8 = AlibabaCloud, 9 = GoogleCloud, 10 = Sftp, 11 = SharePoint

Enum: 0,1,2,3,4,5,6,7,8,9,10,11

realTimeScanConfigobject
isEnabledboolean
handlingTypeint32

0 = Polling, 1 = EventBased

Enum: 0,1

scanConfigurationIdstring
postActionsScanConfigobject
fileTaggingConfigobject
isTaggingPostActionEnabledboolean
fileTagsarray[object]
fileTagKeyobject
defaultNamestring
customNamestring

maxLength: 128

customValuesarray[object]
defaultNamestring
customNamestring

maxLength: 256

isEnabledboolean
fileTagTypeint32

0 = MetaDefenderResult, 1 = MetaDefenderFileId, 2 = MetaDefenderAnalysisTimestamp

Enum: 0,1,2

deepCdrConfigobject
isDeepCdrPostActionEnabledboolean
deepCdrOriginalFileHandlingTypeint32

0 = Keep, 1 = Encrypt, 2 = Delete

Enum: 0,1,2

moveDeleteRemediationConfigobject
blockedFileRemediationConfigurationStatusint32

0 = None, 1 = Disabled, 2 = Enabled

Enum: 0,1,2

sanitizedFileRemediationConfigurationStatusint32

0 = None, 1 = Disabled, 2 = Enabled

Enum: 0,1,2

allowedFileRemediationConfigurationStatusint32

0 = None, 1 = Disabled, 2 = Enabled

Enum: 0,1,2

shouldTreatFilesWithSensitiveDataAsBlockedboolean
shouldTreatFilesWithVulnerabilitiesAsBlockedboolean
blockedFileHandlingTypeint32

0 = Delete, 1 = Move

Enum: 0,1

blockedFileStorageConfigobject
storageIdstring
userIdstring
keepFolderStructureboolean
sanitizedFileStorageConfigobject
storageIdstring
userIdstring
keepFolderStructureboolean
allowedFileStorageConfigobject
storageIdstring
userIdstring
keepFolderStructureboolean
blockingStrategyint32

0 = Strict, 1 = Configurable

Enum: 0,1

Response
Copy

Delete a storage

Auth
Path Params
storageIdstring
DELETE /api/storage/{storageId}
Copy
Responses
200

Success

No response body
Response
Copy

Update a storage

Note! The following are templates for what is expected in the Credentials, CredentialsFile and Source fields. Please provide the correct values for your storage integration instead of null/false

Alibaba Cloud storage units:
Credentials: "{"Endpoint":null,"AccessKeyId":null,"AccessKeySecret":null,"UseRamRole":false}"
Source: "{"BucketName":null,"FolderLocation":null}"

Amazon S3 / S3 Compatible storage units:
Credentials: "{"ServiceUrl":null,"AccessKeyId":null,"SecretAccessKey":null,"RegionEndpoint":null,"AssumeRoleArn":null,"UseIamRole":false}"
Source: "{"BucketName":null,"FolderLocation":null}"

Azure Blob storage units:
Credentials: "{"TenantId":null,"ClientId":null,"ClientSecret":null,"StorageAccount":null}"
Source: "{"Container":null}"

Azure Files storage units:
Credentials: "{"AccountName":null,"AccountKey":null,"ShareName":null}"
Source: "{"FolderLocation":null}"

Box storage units:
CredentialsFile: upload the credentials file
Source: "{"FolderLocation":null}"

Dell Isilon / SMB Compatible storage units:
Credentials: "{"User":null,"Password":null,"Server":null}"
Source: "{"SharePath":null}"

Google Cloud storage units:
CredentialsFile: upload the credentials file
Credentials: "{"UseAdc":false}"
Source: "{"BucketName":null,"FolderLocation":null}"

OneDrive storage units:
Credentials: "{"TenantId":null,"ClientId":null,"ClientSecret":null}"
Source: "{"Group":null}"

Auth
Path Params
storageIdstring
Request Body
objectobject
Namestring

maxLength: 30

StorageVendorTypeint32

0 = AmazonS3, 1 = OneDrive, 2 = Box, 3 = DellIsilon, 4 = AzureFiles, 5 = SmbCompatible, 6 = S3Compatible, 7 = AzureBlob, 8 = AlibabaCloud, 9 = GoogleCloud, 10 = Sftp, 11 = SharePoint

Enum: 0,1,2,3,4,5,6,7,8,9,10,11

StorageProtocolTypeint32

0 = Smb, 1 = GraphSdk, 2 = BoxSdk, 3 = AwsSdk, 4 = AzureBlobSdk, 5 = AlibabaCloudSdk, 6 = GoogleCloudSdk, 7 = AzureFilesSdk, 8 = Sftp

Enum: 0,1,2,3,4,5,6,7,8

CredentialsFilefile
Credentialsstring
Sourcestring
PATCH /api/storage/{storageId}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

Fetch storage users

Auth
Path Params
storageIdstring
Query String
filterstring
GET /api/storage/{storageId}/users
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
entriesarray[object]
idstring
fullNamestring
Response
Copy

Add a storage

Note! The following are templates for what is expected in the Credentials, CredentialsFile and Source fields. Please provide the correct values for your storage integration instead of null/false

Alibaba Cloud storage units:
Credentials: "{"Endpoint":null,"AccessKeyId":null,"AccessKeySecret":null,"UseRamRole":false}"
Source: "{"BucketName":null,"FolderLocation":null}"

Amazon S3 / S3 Compatible storage units:
Credentials: "{"ServiceUrl":null,"AccessKeyId":null,"SecretAccessKey":null,"RegionEndpoint":null,"AssumeRoleArn":null,"UseIamRole":false}"
Source: "{"BucketName":null,"FolderLocation":null}"

Azure Blob storage units:
Credentials: "{"TenantId":null,"ClientId":null,"ClientSecret":null,"StorageAccount":null}"
Source: "{"Container":null}"

Azure Files storage units:
Credentials: "{"AccountName":null,"AccountKey":null,"ShareName":null}"
Source: "{"FolderLocation":null}"

Box storage units:
CredentialsFile: upload the credentials file
Source: "{"FolderLocation":null}"

Dell Isilon / SMB Compatible storage units:
Credentials: "{"User":null,"Password":null,"Server":null}"
Source: "{"SharePath":null}"

Google Cloud storage units:
CredentialsFile: upload the credentials file
Credentials: "{"UseAdc":false}"
Source: "{"BucketName":null,"FolderLocation":null}"

OneDrive storage units:
Credentials: "{"TenantId":null,"ClientId":null,"ClientSecret":null}"
Source: "{"Group":null}"

Auth
Request Body
objectobject
Namestring

maxLength: 30

StorageVendorTypeint32

0 = AmazonS3, 1 = OneDrive, 2 = Box, 3 = DellIsilon, 4 = AzureFiles, 5 = SmbCompatible, 6 = S3Compatible, 7 = AzureBlob, 8 = AlibabaCloud, 9 = GoogleCloud, 10 = Sftp, 11 = SharePoint

Enum: 0,1,2,3,4,5,6,7,8,9,10,11

StorageProtocolTypeint32

0 = Smb, 1 = GraphSdk, 2 = BoxSdk, 3 = AwsSdk, 4 = AzureBlobSdk, 5 = AlibabaCloudSdk, 6 = GoogleCloudSdk, 7 = AzureFilesSdk, 8 = Sftp

Enum: 0,1,2,3,4,5,6,7,8

CredentialsFilefile
Credentialsstring
Sourcestring
POST /api/storage
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

Update scan configuration

Auth
Path Params
storageIdstring
Request Body
objectobject
realTimeScanConfigobject
isEnabledboolean
handlingTypeint32

0 = Polling, 1 = EventBased

Enum: 0,1

scanConfigurationIdstring
postActionsScanConfigobject
fileTaggingConfigobject
isTaggingPostActionEnabledboolean
fileTagsarray[object]
fileTagKeyobject
defaultNamestring
customNamestring

maxLength: 128

customValuesarray[object]
defaultNamestring
customNamestring

maxLength: 256

isEnabledboolean
fileTagTypeint32

0 = MetaDefenderResult, 1 = MetaDefenderFileId, 2 = MetaDefenderAnalysisTimestamp

Enum: 0,1,2

deepCdrConfigobject
isDeepCdrPostActionEnabledboolean
deepCdrOriginalFileHandlingTypeint32

0 = Keep, 1 = Encrypt, 2 = Delete

Enum: 0,1,2

moveDeleteRemediationConfigobject
blockedFileRemediationConfigurationStatusint32

0 = None, 1 = Disabled, 2 = Enabled

Enum: 0,1,2

sanitizedFileRemediationConfigurationStatusint32

0 = None, 1 = Disabled, 2 = Enabled

Enum: 0,1,2

allowedFileRemediationConfigurationStatusint32

0 = None, 1 = Disabled, 2 = Enabled

Enum: 0,1,2

shouldTreatFilesWithSensitiveDataAsBlockedboolean
shouldTreatFilesWithVulnerabilitiesAsBlockedboolean
blockedFileHandlingTypeint32

0 = Delete, 1 = Move

Enum: 0,1

blockedFileStorageConfigobject
storageIdstring
userIdstring
keepFolderStructureboolean
sanitizedFileStorageConfigobject
storageIdstring
userIdstring
keepFolderStructureboolean
allowedFileStorageConfigobject
storageIdstring
userIdstring
keepFolderStructureboolean
blockingStrategyint32

0 = Strict, 1 = Configurable

Enum: 0,1

PATCH /api/storage/{storageId}/scan_config
Copy
Responses
200

Success

No response body
Response
Copy

Add a scan schedule

Auth
Path Params
storageIdstring
Request Body
objectobject
namestring
scanConfigurationIdstring
recurrencePatternobject
typestring
hourlyRecurrenceobject
everyNumberOfHoursint32

maximum: 24

minimum: 1

dailyRecurrenceobject
everyNumberOfDaysint32

maximum: 365

minimum: 1

weeklyRecurrenceobject
dayOfWeekint32

0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 = Friday, 6 = Saturday

Enum: 0,1,2,3,4,5,6

monthlyRecurrenceobject
everyNumberOfMonthsint32

maximum: 12

minimum: 1

dayOfMonthint32
PUT /api/storage/{storageId}/scan_schedule
Copy
Responses
200

Success

No response body
Response
Copy

Update a scan schedule

Auth
Path Params
storageIdstring
Request Body
objectobject
namestring
scanConfigurationIdstring
recurrencePatternobject
typestring
hourlyRecurrenceobject
everyNumberOfHoursint32

maximum: 24

minimum: 1

dailyRecurrenceobject
everyNumberOfDaysint32

maximum: 365

minimum: 1

weeklyRecurrenceobject
dayOfWeekint32

0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 = Friday, 6 = Saturday

Enum: 0,1,2,3,4,5,6

monthlyRecurrenceobject
everyNumberOfMonthsint32

maximum: 12

minimum: 1

dayOfMonthint32
idstring
PUT /api/storage/scan_schedule/update/{storageId}
Copy
Responses
200

Success

No response body
Response
Copy

Fetch scan schedules

Auth
Path Params
storageIdstring
sortDirectioninteger

Enum: 0,1

startIndexinteger
countinteger
Query String
namestring
userstring
typestring
GET /api/storage/scan_schedules/{storageId}/{sortDirection}/{startIndex}/{count}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
entriesarray[object]
idstring
namestring
scanConfigurationIdstring
typestring
createdAtdate-time
lastScanTimedate-time
nextScanTimedate-time
recurrencePatternDtoobject
hourlyRecurrenceDtoobject
everyNumberOfHoursint32
dailyRecurrenceDtoobject
everyNumberOfDaysint32
weeklyRecurrenceDtoobject
dayOfWeekint32

0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 = Friday, 6 = Saturday

Enum: 0,1,2,3,4,5,6

monthlyRecurrenceDtoobject
everyNumberOfMonthsint32
dayOfMonthint32
createdBystring
totalCountint64
createdByUsersarray[string]
Response
Copy

Delete scan schedules

Auth
Path Params
storageIdstring
Request Body
arrayarray[string]
DELETE /api/storage/scan_schedule/{storageId}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

Retrieve storage user name

Auth
Path Params
storageIdstring
userIdstring
GET /api/storage/{storageId}/{userId}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
userNamestring
Response
Copy

Fetch active users

Auth
Path Params
startIndexstring
countstring
GET /api/user/active/{startIndex}/{count}
Copy
Responses
200

Success

objectobject
entriesarray[object]
idstring
userNamestring
fullNamestring
emailstring
roleint32

0 = None, 1 = ReadOnlyAdministrator, 2 = Administrator, 3 = ServiceRole, 4 = SsoAdministrator, 5 = SsoReadOnlyAdministrator

Enum: 0,1,2,3,4,5

totalCountint64
Response
Copy

Register a user

Auth
Request Body
objectobject
fullNamestring

minLength: 1

pattern: ^[\p{L}\p{M} ',.-]{3,70}$

userNamestring

minLength: 1

pattern: ^[.a-zA-Z0-9]{3,16}$

passwordstring

minLength: 12

emailstring

minLength: 1

pattern: ^[a-zA-Z0-9.!#$%&'*+\/=?^_{|}~-]+@a-zA-Z0-9?(?:.a-zA-Z0-9?)*$`

POST /api/user/register
Copy
Responses
200

Success

No response body
Response
Copy

Create a user

Auth
Request Body
objectobject
fullNamestring

minLength: 1

pattern: ^[\p{L}\p{M} ',.-]{3,70}$

userNamestring

minLength: 1

pattern: ^[.a-zA-Z0-9]{3,16}$

passwordstring

minLength: 12

emailstring

minLength: 1

pattern: ^[a-zA-Z0-9.!#$%&'*+\/=?^_{|}~-]+@a-zA-Z0-9?(?:.a-zA-Z0-9?)*$`

rolestring

minLength: 1

POST /api/user/create
Copy
Responses
200

Success

No response body
Response
Copy

Authenticate with a username and password

Authenticate with a username and password to obtain a JWT token,Most of the APIs require authentication in the form of providing a JWT token. Call this API in order to receive a token but please note that it's only valid for an hour so it should be periodically refreshed.

Auth
Request Body
objectobject
userNamestring

minLength: 1

passwordstring

minLength: 1

POST /api/user/authenticate
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
accessTokenstring
accessTokenExpiryTimedate-time
refreshTokenstring
refreshTokenExpiryTimedate-time
fullNamestring
emailstring
userNamestring
roleint32

0 = None, 1 = ReadOnlyAdministrator, 2 = Administrator, 3 = ServiceRole, 4 = SsoAdministrator, 5 = SsoReadOnlyAdministrator

Enum: 0,1,2,3,4,5

Response
Copy

Refresh user token

Auth
Request Body
objectobject
accessTokenstring
refreshTokenstring
POST /api/user/refreshToken
Copy
Responses
200

Success

No response body
Response
Copy

Logout

Auth
POST /api/user/logout
Copy
Responses
200

Success

No response body
Response
Copy

Update user role

Auth
Request Body
objectobject
userIdstring

minLength: 1

rolestring

minLength: 1

PUT /api/user/role
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

Fetch users

Auth
GET /api/user/requests
Copy
Responses
200

Success

objectobject
entriesarray[object]
idstring
userNamestring
fullNamestring
emailstring
roleint32

0 = None, 1 = ReadOnlyAdministrator, 2 = Administrator, 3 = ServiceRole, 4 = SsoAdministrator, 5 = SsoReadOnlyAdministrator

Enum: 0,1,2,3,4,5

totalCountint64
Response
Copy

Delete a user

Auth
Path Params
userIdstring
DELETE /api/user/{userId}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

Update a user

Auth
Request Body
objectobject
userNamestring

minLength: 1

pattern: ^[.a-zA-Z0-9]{3,16}$

fullNamestring

pattern: ^[\p{L}\p{M} ',.-]{3,70}$

currentPasswordstring

minLength: 12

newPasswordstring

minLength: 12

emailstring

pattern: ^[a-zA-Z0-9.!#$%&'*+\/=?^_{|}~-]+@a-zA-Z0-9?(?:.a-zA-Z0-9?)*$`

PUT /api/user
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
accessTokenstring
accessTokenExpiryTimedate-time
refreshTokenstring
refreshTokenExpiryTimedate-time
Response
Copy

Request password reset

Auth
Request Body
objectobject
userInputstring

minLength: 1

isSmtpConfigConfiguredboolean
userobject
idstring
fullNamestring
userNamestring
passwordHashstring
passwordSaltstring
emailstring
roleint32

0 = None, 1 = ReadOnlyAdministrator, 2 = Administrator, 3 = ServiceRole, 4 = SsoAdministrator, 5 = SsoReadOnlyAdministrator

Enum: 0,1,2,3,4,5

accountSecurityobject
incrementalDelayobject
ticksint64
failedLoginDatedate-time
POST /api/user/password/reset
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

Reset user password

Auth
Request Body
objectobject
newPasswordstring

minLength: 12

newPasswordConfirmationstring

minLength: 12

secureTokenstring
POST /api/user/password
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

CorePoolDeprecated

Fetch MetaDefender Core Pools

Auth
GET /api/CorePool
Copy
Responses
200

Success

objectobject
entriesarray[object]
idstring
namestring
mdCoresarray[object]
idstring
urlstring
ipstring
apiKeystring
timeoutobject
ticksint64
daysint32
hoursint32
millisecondsint32
microsecondsint32
nanosecondsint32
minutesint32
secondsint32
totalDaysnumber
totalHoursnumber
totalMillisecondsnumber
totalMicrosecondsnumber
totalNanosecondsnumber
totalMinutesnumber
totalSecondsnumber
userAgentstring
workflowRulestring
displayNamestring
usedByarray[object]
namestring
storageTypeobject
namestring
categoryTypeint32

0 = Local, 1 = Cloud, 2 = Object

Enum: 0,1,2

protocolTypeint32

0 = Smb, 1 = GraphSdk, 2 = BoxSdk, 3 = AwsSdk, 4 = AzureBlobSdk, 5 = AlibabaCloudSdk, 6 = GoogleCloudSdk, 7 = AzureFilesSdk, 8 = Sftp

Enum: 0,1,2,3,4,5,6,7,8

vendorTypeint32

0 = AmazonS3, 1 = OneDrive, 2 = Box, 3 = DellIsilon, 4 = AzureFiles, 5 = SmbCompatible, 6 = S3Compatible, 7 = AzureBlob, 8 = AlibabaCloud, 9 = GoogleCloud, 10 = Sftp, 11 = SharePoint

Enum: 0,1,2,3,4,5,6,7,8,9,10,11

Response
Copy

CorePoolDeprecated

Update an existing MetaDefender Core Pool

Auth
Request Body
objectobject
idstring

minLength: 1

namestring

maxLength: 30

minLength: 3

PUT /api/CorePool
Copy
Responses
200

Success

No response body
Response
Copy

CorePoolDeprecated

Add a new MetaDefender Core Pool

Auth
Request Body
objectobject
namestring

maxLength: 30

minLength: 3

POST /api/CorePool
Copy
Responses
200

Success

No response body
Response
Copy

{corePoolId}Deprecated

Get MetaDefender Core Pool by ID

Auth
Path Params
corePoolIdstring
GET /api/CorePool/{corePoolId}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
corePoolobject
idstring
namestring
mdCoresarray[object]
idstring
urlstring
ipstring
apiKeystring
timeoutobject
ticksint64
daysint32
hoursint32
millisecondsint32
microsecondsint32
nanosecondsint32
minutesint32
secondsint32
totalDaysnumber
totalHoursnumber
totalMillisecondsnumber
totalMicrosecondsnumber
totalNanosecondsnumber
totalMinutesnumber
totalSecondsnumber
userAgentstring
workflowRulestring
displayNamestring
usedByarray[object]
namestring
storageTypeobject
namestring
categoryTypeint32

0 = Local, 1 = Cloud, 2 = Object

Enum: 0,1,2

protocolTypeint32

0 = Smb, 1 = GraphSdk, 2 = BoxSdk, 3 = AwsSdk, 4 = AzureBlobSdk, 5 = AlibabaCloudSdk, 6 = GoogleCloudSdk, 7 = AzureFilesSdk, 8 = Sftp

Enum: 0,1,2,3,4,5,6,7,8

vendorTypeint32

0 = AmazonS3, 1 = OneDrive, 2 = Box, 3 = DellIsilon, 4 = AzureFiles, 5 = SmbCompatible, 6 = S3Compatible, 7 = AzureBlob, 8 = AlibabaCloud, 9 = GoogleCloud, 10 = Sftp, 11 = SharePoint

Enum: 0,1,2,3,4,5,6,7,8,9,10,11

Response
Copy

{id}Deprecated

Delete MetaDefender Core Pool

Auth
Path Params
idstring
DELETE /api/CorePool/{id}
Copy
Responses
200

Success

No response body
Response
Copy

MetaDefenderCoreDeprecated

Fetch MetaDefender Core servers

Auth
Query String
corePoolIdstring
GET /api/MetaDefenderCore
Copy
Responses
200

Success

objectobject
entriesarray[object]
idstring
urlstring
ipstring
apiKeystring
timeoutobject
ticksint64
daysint32
hoursint32
millisecondsint32
microsecondsint32
nanosecondsint32
minutesint32
secondsint32
totalDaysnumber
totalHoursnumber
totalMillisecondsnumber
totalMicrosecondsnumber
totalNanosecondsnumber
totalMinutesnumber
totalSecondsnumber
userAgentstring
workflowRulestring
displayNamestring
Response
Copy

MetaDefenderCoreDeprecated

Update MetaDefender Core server

Auth
Request Body
objectobject
idstring
urlstring

minLength: 1

pattern: ^((?!(^((https?):\/\/)?127(?:\.[0-9]+){0,2}\.[0-9]+(:([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])?)?$)|(^((https?):\/\/)?\[(?:0*\:)*?:?0*1\](:([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])?)?$)).)*$

apiKeystring
timeoutobject
ticksint64
userAgentstring
workflowRulestring
corePoolIdstring
PUT /api/MetaDefenderCore
Copy
Responses
200

Success

No response body
Response
Copy

MetaDefenderCoreDeprecated

Add a new MetaDefender Core Server

Auth
Request Body
objectobject
idstring
urlstring

minLength: 1

pattern: ^((?!(^((https?):\/\/)?127(?:\.[0-9]+){0,2}\.[0-9]+(:([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])?)?$)|(^((https?):\/\/)?\[(?:0*\:)*?:?0*1\](:([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])?)?$)).)*$

apiKeystring
timeoutobject
ticksint64
userAgentstring
workflowRulestring
corePoolIdstring
POST /api/MetaDefenderCore
Copy
Responses
200

Success

No response body
Response
Copy

{metaDefenderId}Deprecated

Get MetaDefender Core server by ID

Auth
Path Params
metaDefenderIdstring
GET /api/MetaDefenderCore/{metaDefenderId}
Copy
Responses
200

Success

objectobject
idstring
urlstring
ipstring
apiKeystring
timeoutobject
ticksint64
daysint32
hoursint32
millisecondsint32
microsecondsint32
nanosecondsint32
minutesint32
secondsint32
totalDaysnumber
totalHoursnumber
totalMillisecondsnumber
totalMicrosecondsnumber
totalNanosecondsnumber
totalMinutesnumber
totalSecondsnumber
userAgentstring
workflowRulestring
displayNamestring
Response
Copy

{metaDefenderId}Deprecated

Delete MetaDefender Core server

Auth
Path Params
metaDefenderIdstring
DELETE /api/MetaDefenderCore/{metaDefenderId}
Copy
Responses
200

Success

No response body
Response
Copy

{activeFileId}Deprecated

(Deprecated) Get an active scan by scan ID and file ID

Auth
Path Params
scanIdstring
activeFileIdstring
GET /api/scan/active/{scanId}/{activeFileId}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
idstring
namestring
startTimedate-time
stopTimedate-time
scanTypestring
scanningStateint32

0 = NotStarted, 1 = Running, 2 = Cancelled, 3 = Failed, 4 = Completed

Enum: 0,1,2,3,4

scanStatusDtoobject
pendingFilesCountint64
allowedFilesCountint64
blockedFilesCountint64
totalFilesCountint64
processingFailedCountint64
processedFilesCountint64
scanStatsDtoobject
pciDssComplianceViolationsCountint64
hipaaComplianceViolationsCountint64
gdprComplianceViolationsCountint64
malwareSecurityAlertsCountint64
vulnerabilitiesSecurityAlertsCountint64
piiSecurityAlertsCountint64
pciDssComplianceViolationsPercentageIncreaseint64
hipaaComplianceViolationsPercentageIncreaseint64
gdprComplianceViolationsPercentageIncreaseint64
malwareSecurityAlertsPercentageIncreaseint64
vulnerabilitiesSecurityAlertsPercentageIncreaseint64
piiSecurityAlertsPercentageIncreaseint64
highRiskAccountsarray[object]
idstring
displayNamestring
blockedFilesCountint64
scanSequenceDtoobject
previousScanIdstring
nextScanIdstring
scanConfigurationIdstring
Response
Copy

{storageId}Deprecated

(Deprecated) Get Real-Time scan

Auth
Path Params
storageIdstring
GET /api/scan/realtime/{storageId}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
idstring
namestring
startTimedate-time
stopTimedate-time
scanTypestring
scanningStateint32

0 = NotStarted, 1 = Running, 2 = Cancelled, 3 = Failed, 4 = Completed

Enum: 0,1,2,3,4

scanStatusDtoobject
pendingFilesCountint64
allowedFilesCountint64
blockedFilesCountint64
totalFilesCountint64
processingFailedCountint64
processedFilesCountint64
scanStatsDtoobject
pciDssComplianceViolationsCountint64
hipaaComplianceViolationsCountint64
gdprComplianceViolationsCountint64
malwareSecurityAlertsCountint64
vulnerabilitiesSecurityAlertsCountint64
piiSecurityAlertsCountint64
pciDssComplianceViolationsPercentageIncreaseint64
hipaaComplianceViolationsPercentageIncreaseint64
gdprComplianceViolationsPercentageIncreaseint64
malwareSecurityAlertsPercentageIncreaseint64
vulnerabilitiesSecurityAlertsPercentageIncreaseint64
piiSecurityAlertsPercentageIncreaseint64
highRiskAccountsarray[object]
idstring
displayNamestring
blockedFilesCountint64
scanSequenceDtoobject
previousScanIdstring
nextScanIdstring
scanConfigurationIdstring
isRealTimeEnabledboolean
handlingTypeint32

0 = Polling, 1 = EventBased

Enum: 0,1

Response
Copy

{storageId}Deprecated

(Deprecated) Fetch last completed scan

Auth
Path Params
storageIdstring
GET /api/scan/last_completed/{storageId}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
idstring
namestring
startTimedate-time
stopTimedate-time
scanTypestring
scanningStateint32

0 = NotStarted, 1 = Running, 2 = Cancelled, 3 = Failed, 4 = Completed

Enum: 0,1,2,3,4

scanStatusDtoobject
pendingFilesCountint64
allowedFilesCountint64
blockedFilesCountint64
totalFilesCountint64
processingFailedCountint64
processedFilesCountint64
scanStatsDtoobject
pciDssComplianceViolationsCountint64
hipaaComplianceViolationsCountint64
gdprComplianceViolationsCountint64
malwareSecurityAlertsCountint64
vulnerabilitiesSecurityAlertsCountint64
piiSecurityAlertsCountint64
pciDssComplianceViolationsPercentageIncreaseint64
hipaaComplianceViolationsPercentageIncreaseint64
gdprComplianceViolationsPercentageIncreaseint64
malwareSecurityAlertsPercentageIncreaseint64
vulnerabilitiesSecurityAlertsPercentageIncreaseint64
piiSecurityAlertsPercentageIncreaseint64
highRiskAccountsarray[object]
idstring
displayNamestring
blockedFilesCountint64
scanSequenceDtoobject
previousScanIdstring
nextScanIdstring
scanConfigurationIdstring
Response
Copy

amazons3Deprecated

(Deprecated - use /storage) Add an Amazon S3 storage

Auth
Request Body
objectobject
namestring

maxLength: 30

minLength: 1

serviceUrlstring
accessKeyIdstring
secretAccessKeystring
regionEndpointstring
bucketNamestring

minLength: 1

folderLocationstring
useIamRoleboolean
assumeRoleArnstring

pattern: ^arn:aws:iam::\d+:role/[a-zA-Z0-9_+=,.@-]+$

storageVendorTypeint32

0 = AmazonS3, 1 = OneDrive, 2 = Box, 3 = DellIsilon, 4 = AzureFiles, 5 = SmbCompatible, 6 = S3Compatible, 7 = AzureBlob, 8 = AlibabaCloud, 9 = GoogleCloud, 10 = Sftp, 11 = SharePoint

Enum: 0,1,2,3,4,5,6,7,8,9,10,11

POST /api/storage/amazons3
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

{storageId}Deprecated

(Deprecated - use /storage/{storageId}) Update an Amazon S3 storage

Auth
Path Params
storageIdstring
Request Body
objectobject
namestring

maxLength: 30

minLength: 1

serviceUrlstring
accessKeyIdstring
secretAccessKeystring
regionEndpointstring
bucketNamestring

minLength: 1

folderLocationstring
useIamRoleboolean
assumeRoleArnstring

pattern: ^arn:aws:iam::\d+:role/[a-zA-Z0-9_+=,.@-]+$

storageVendorTypeint32

0 = AmazonS3, 1 = OneDrive, 2 = Box, 3 = DellIsilon, 4 = AzureFiles, 5 = SmbCompatible, 6 = S3Compatible, 7 = AzureBlob, 8 = AlibabaCloud, 9 = GoogleCloud, 10 = Sftp, 11 = SharePoint

Enum: 0,1,2,3,4,5,6,7,8,9,10,11

PATCH /api/storage/amazons3/{storageId}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

onedriveDeprecated

(Deprecated - use /storage) Add an One Drive storage

Auth
Request Body
objectobject
namestring

maxLength: 30

minLength: 1

tenantIdstring

maxLength: 36

minLength: 36

clientIdstring

maxLength: 36

minLength: 36

clientSecretstring

maxLength: 50

minLength: 1

groupstring
POST /api/storage/onedrive
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

{storageId}Deprecated

(Deprecated - use /storage/{storageId}) Update an One Drive storage

Auth
Path Params
storageIdstring
Request Body
objectobject
namestring

maxLength: 30

minLength: 1

tenantIdstring

maxLength: 36

minLength: 36

clientIdstring

maxLength: 36

minLength: 36

clientSecretstring

maxLength: 50

minLength: 1

groupstring
PATCH /api/storage/onedrive/{storageId}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

boxDeprecated

(Deprecated - use /storage) Add a Box storage

Auth
Request Body
objectobject
Credentialsfile
UserNamestring
FolderPathstring
GroupNamestring
Namestring

maxLength: 30

POST /api/storage/box
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

{storageId}Deprecated

(Deprecated - use /storage/{storageId}) Update a Box storage

Auth
Path Params
storageIdstring
Request Body
objectobject
Credentialsfile
UserNamestring
FolderPathstring
GroupNamestring
Namestring

maxLength: 30

PATCH /api/storage/box/{storageId}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

smbDeprecated

(Deprecated - use /storage) Add Dell Isilon/SMB Compatibile

Auth
Request Body
objectobject
namestring

maxLength: 30

minLength: 1

storageVendorTypeint32

0 = AmazonS3, 1 = OneDrive, 2 = Box, 3 = DellIsilon, 4 = AzureFiles, 5 = SmbCompatible, 6 = S3Compatible, 7 = AzureBlob, 8 = AlibabaCloud, 9 = GoogleCloud, 10 = Sftp, 11 = SharePoint

Enum: 0,1,2,3,4,5,6,7,8,9,10,11

userstring

minLength: 1

passwordstring

minLength: 1

sharePathstring

minLength: 1

POST /api/storage/smb
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

{storageId}Deprecated

(Deprecated - use /storage/{storageId}) Update a Dell Isilon/SMB Compatibile

Auth
Path Params
storageIdstring
Request Body
objectobject
namestring

maxLength: 30

minLength: 1

storageVendorTypeint32

0 = AmazonS3, 1 = OneDrive, 2 = Box, 3 = DellIsilon, 4 = AzureFiles, 5 = SmbCompatible, 6 = S3Compatible, 7 = AzureBlob, 8 = AlibabaCloud, 9 = GoogleCloud, 10 = Sftp, 11 = SharePoint

Enum: 0,1,2,3,4,5,6,7,8,9,10,11

userstring

minLength: 1

passwordstring

minLength: 1

sharePathstring

minLength: 1

PATCH /api/storage/smb/{storageId}
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

azureblobDeprecated

(Deprecated - use /storage) Add an Azure Blob storage

Auth
Request Body
objectobject
namestring

maxLength: 30

minLength: 1

tenantIdstring

maxLength: 36

minLength: 36

storageAccountstring

maxLength: 24

minLength: 3

clientIdstring

maxLength: 36

minLength: 36

clientSecretstring

maxLength: 50

minLength: 1

containerstring

maxLength: 63

minLength: 0

cloudTypestring

maxLength: 63

minLength: 0

POST /api/storage/azureblob
Copy
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response
Copy

{storageId}Deprecated

(Deprecated - use /storage/{storageId}) Update an Azure Blob storage

Auth
Path Params
storageIdstring
Request Body
objectobject
namestring

maxLength: 30

minLength: 1

tenantIdstring

maxLength: 36

minLength: 36

storageAccountstring

maxLength: 24

minLength: 3

clientIdstring

maxLength: 36

minLength: 36

clientSecretstring

maxLength: 50

minLength: 1

containerstring

maxLength: 63

minLength: 0

cloudTypestring

maxLength: 63

minLength: 0

PATCH /api/storage/azureblob/{storageId}
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response

alibabacloudDeprecated

(Deprecated - use /storage) Add an Alibaba Cloud storage

Auth
Request Body
objectobject
namestring

maxLength: 30

minLength: 1

endpointstring

minLength: 1

accessKeyIdstring
accessKeySecretstring
bucketNamestring

minLength: 1

folderLocationstring
useRamRoleboolean
POST /api/storage/alibabacloud
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response

{storageId}Deprecated

(Deprecated - use /storage/{storageId}) Update an Alibaba Cloud storage

Auth
Path Params
storageIdstring
Request Body
objectobject
namestring

maxLength: 30

minLength: 1

endpointstring

minLength: 1

accessKeyIdstring
accessKeySecretstring
bucketNamestring

minLength: 1

folderLocationstring
useRamRoleboolean
PATCH /api/storage/alibabacloud/{storageId}
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response

googlecloudDeprecated

(Deprecated - use /storage) Add a Google Cloud storage

Auth
Request Body
objectobject
Credentialsfile
BucketNamestring
FolderLocationstring
UseAdcboolean
Namestring

maxLength: 30

POST /api/storage/googlecloud
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response

{storageId}Deprecated

(Deprecated - use /storage/{storageId}) Update a Google Cloud storage

Auth
Path Params
storageIdstring
Request Body
objectobject
Credentialsfile
BucketNamestring
FolderLocationstring
UseAdcboolean
Namestring

maxLength: 30

PATCH /api/storage/googlecloud/{storageId}
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response

azurefilesDeprecated

(Deprecated - use /storage) Add an Azure Files storage

Auth
Request Body
objectobject
namestring

maxLength: 30

minLength: 1

accountNamestring

minLength: 1

accountKeystring

minLength: 1

shareNamestring

minLength: 1

folderLocationstring
POST /api/storage/azurefiles
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response

{storageId}Deprecated

(Deprecated - use /storage/{storageId}) Update an Azure Files storage

Auth
Path Params
storageIdstring
Request Body
objectobject
namestring

maxLength: 30

minLength: 1

accountNamestring

minLength: 1

accountKeystring

minLength: 1

shareNamestring

minLength: 1

folderLocationstring
PATCH /api/storage/azurefiles/{storageId}
Responses
200

Success

objectobject
responseKeystring
responseMessagestring
responseMessageParamsobject
*string
Response

Object event trigger of real time processing

Auth
Request Body
objectobject
metadatastring

minLength: 1

storageClientIdstring

minLength: 1

POST /api/webhook/realtime
Responses
200

Success

No response body
Response