---
updatedAt: 2025-12-23T13:13:19.000Z
agentTools:
  projectIndex: https://virustotal.readme.io/llms.txt
---

# Batch file downloads

VirusTotal Intelligence's web interface allows you to download packages of files matching the first 25, 50 or 100 results of a given query. If you wish to download any other custom number, including more than 100 files, you should use one of the examples of [vt-py](https://github.com/VirusTotal/vt-py) the official Python client library for VirusTotal.

**This library requires Python 3.6.0+, Python 2.x is not supported. This is because vt-py makes use of the new [async/await](https://snarky.ca/how-the-heck-does-async-await-work-in-python-3-5/) syntax for implementing asynchronous coroutines.**

The easiest and recommended way of installing vt-py is using pip:

```
$ pip install vt-py
```

Alternatively, you can get the source code directly from the GitHub and run setup.py. For getting the code you can either clone the public repository:

```
$ git clone git://github.com/VirusTotal/vt-py.git  
$ cd vt-py
```

Or, download the tarball for the latest release and uncompress it:

```
$ tar -zxvf vt-py-X.Y.Z.tar.gz  
$ cd vt-py-X.Y.Z
```

Once you have the code you can install it with:

```
$ sudo python3 setup.py install
```

After installing the library, you can use the [search\_and\_download\_topn\_files.py](https://github.com/VirusTotal/vt-py/blob/master/examples/search_and_download_topn_files.py) script:

```
user@machine:~/$ python3 search\_and\_download\_topn\_files.py --help  
usage: usage: prog [options] <intelligence\_query/local\_file\_with\_hashes>  
  
Allows you to download the top-n files returned by a givenVirusTotal  
Intelligence search. Example: python %prog type:"peexe" positives:5+ -n 10  
--apikey=<your api key>

positional arguments:  
  query a VirusTotal Intelligence search query.
  
optional arguments:  
  -h, --help show this help message and exit  
  -n NUMFILES, --numfiles NUMFILES  
                        Number of files to download  
  --apikey APIKEY Your VirusTotal API key  
  -o OUTPUT_PATH, --output-path OUTPUT_PATH  
                        The path where you want to put the files in  
  -w WORKERS, --workers WORKERS  
                        Concurrent workers for downloading files

```

Hence, if you wish to download the top 500 files matching the query *type:"peexe"* you would just have to type:

```
python3 search\_and\_download\_topn\_files.py -n 500 'type:"peexe"' --apikey $VT\_API\_KEY
```