
Scan files for viruses
🤖/file/virusscan rejects millions of trojans, viruses, malware & other malicious threats before they reach your platform.
  This <dfn>Robot</dfn> is built on top of [ClamAV](https://www.clamav.net/), the best open source antivirus engine available. We update its signatures on a daily basis.
By default, this Robot excludes all malicious files from further processing without any additional notification. This behavior can be changed by setting error_on_decline to true, which will stop Assemblies as soon as malicious files are found. Such Assemblies will then be marked with an error.
We allow the use of industry standard EICAR files for integration testing without needing to use potentially dangerous live virus samples.
Usage example
Scan uploaded files and throw an error if a malicious file is detected:
{
  "steps": {
    "scanned": {
      "robot": "/file/virusscan",
      "use": ":original",
      "error_on_decline": true,
      "error_msg": "At least one of the uploaded files is malicious and was declined"
    }
  }
}Parameters
- output_meta- Record<string, boolean> | boolean | Array<string>- Allows you to specify a set of metadata that is more expensive on CPU power to calculate, and thus is disabled by default to keep your Assemblies processing fast. - For images, you can add - "has_transparency": truein this object to extract if the image contains transparent parts and- "dominant_colors": trueto extract an array of hexadecimal color codes from the image.- For videos, you can add the - "colorspace: true"parameter to extract the colorspace of the output video.- For audio, you can add - "mean_volume": trueto get a single value representing the mean average volume of the audio file.- You can also set this to - falseto skip metadata extraction and speed up transcoding.
- result- boolean(default:- false)- Whether the results of this Step should be present in the Assembly Status JSON 
- queue- batch- Setting the queue to 'batch', manually downgrades the priority of jobs for this step to avoid consuming Priority job slots for jobs that don't need zero queue waiting times 
- force_accept- boolean(default:- false)- Force a Robot to accept a file type it would have ignored. - By default, Robots ignore files they are not familiar with. 🤖/video/encode, for example, will happily ignore input images. - With the - force_acceptparameter set to- true, you can force Robots to accept all files thrown at them. This will typically lead to errors and should only be used for debugging or combatting edge cases.
- use- string | Array<string> | Array<object> | object- Specifies which Step(s) to use as input. - You can pick any names for Steps except ":original"(reserved for user uploads handled by Transloadit)
- You can provide several Steps as input with arrays:
{ "use": [ ":original", "encoded", "resized" ] }
 - Tip- That's likely all you need to know about - use, but you can view Advanced use cases.
- You can pick any names for Steps except 
- error_on_decline- boolean(default:- false)- If this is set to - trueand one or more files are declined, the Assembly will be stopped and marked with an error.
- error_msg- string(default:- "One of your files was declined")- The error message shown to your users (such as by Uppy) when a file is declined and - error_on_declineis set to- true.
Demos
Related blog posts
- Introducing our new virus scanning Robot for safer uploads
- Introducing four new Robots to enhance media processing
- Happy 2016 from Transloadit
- New pricing model for future Transloadit customers
- Tutorial: file filtering & virus scanning with Transloadit
- How to automate content moderation using Transloadit (NSFW)