Skip to main content
https://raw.githubusercontent.com/blacktop/virustotal-api/master/doc/logo.png

virustotal-api

https://travis-ci.org/blacktop/virustotal-api.svg?branch=master http://img.shields.io/:license-mit-blue.svg https://img.shields.io/pypi/v/virustotal-api.svg https://img.shields.io/pypi/pyversions/virustotal-api.svg

Virus Total Public/Private/Intel API

Installation

$ pip install virustotal-api

Usage

from __future__ import print_function
import json
import hashlib
from virus_total_apis import PublicApi as VirusTotalPublicApi

API_KEY = 'Sign-Up for API Key at virustotal.com'

EICAR = "X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*".encode('utf-8')
EICAR_MD5 = hashlib.md5(EICAR).hexdigest()

vt = VirusTotalPublicApi(API_KEY)

response = vt.get_file_report(EICAR_MD5)
print(json.dumps(response, sort_keys=False, indent=4))

Output:

{
    "response_code": 200,
    "results": {
        "scan_id": "275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f-1397510237",
        "sha1": "3395856ce81f2b7382dee72602f798b642f14140",
        "resource": "44d88612fea8a8f36de82e1278abb02f",
        "response_code": 1,
        "scan_date": "2014-04-14 21:17:17",
        "permalink": "https://www.virustotal.com/file/275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f/analysis/1397510237/",
        "verbose_msg": "Scan finished, scan information embedded in this object",
        "sha256": "275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f",
        "positives": 49,
        "total": 51,
        "md5": "44d88612fea8a8f36de82e1278abb02f",
        "scans": {
            "Bkav": {
                "detected": true,
                "version": "1.3.0.4959",
                "result": "DOS.EiracA.Trojan",
                "update": "20140412"
            },
            "MicroWorld-eScan": {
                "detected": true,
                "version": "12.0.250.0",
                "result": "EICAR-Test-File",
                "update": "20140414"
            },
            "nProtect": {
                "detected": true,
                "version": "2014-04-14.02",
                "result": "EICAR-Test-File",
                "update": "20140414"
            },
            ...<snip>...
            "AVG": {
                "detected": true,
                "version": "13.0.0.3169",
                "result": "EICAR_Test",
                "update": "20140414"
            },
            "Panda": {
                "detected": true,
                "version": "10.0.3.5",
                "result": "EICAR-AV-TEST-FILE",
                "update": "20140414"
            },
            "Qihoo-360": {
                "detected": true,
                "version": "1.0.0.1015",
                "result": "Trojan.Generic",
                "update": "20140414"
            }
        }
    }
}

Testing

To run the tests:

$ ./tests

Documentation

You’re looking at it.

Issues

Find a bug? Want more features? Find something missing in the documentation? Let me know! Please don’t hesitate to file an issue and I’ll get right on it.

Contributing

See all contributors on GitHub.

Please update the HISTORY.rst, and submit a Pull Request on GitHub.

License

MIT Copyright (c) 2014-2019 blacktop

Release History

1.1.11 (2019-09-22)

Allow for hash list input in get_file_report

1.1.10 (2018-03-12)

Intel API Fix

1.1.9 (2018-01-03 aka the day the CPUs fell)

Intel API Fix

1.1.7 (2017-05-28)

Intel API Fix

1.1.6 (2017-05-14)

Py3 Fix

1.1.5 (2017-04-13)

API Changes

  • Added Intelligence notifications feed and ability to programmatically delete notifications from the feed. (credit: @keithjjones)

1.1.4 (2017-03-11)

Fixed timeout functionality, removed unnecessary methods

  • Fixed the timeout parameter in the PublicApi and removes unnecessary code in the PrivateApi (credit: @mrredamber aka LEGEND)

1.1.3 (2017-02-03)

Request Timeout Functionality

  • Adds a timeout parameter to methods that make requests to the VirusTotal API (credit: @mrredamber aka LEGEND)

1.1.2 (2016-04-13)

API Changes

  • Re-adding the ability to use files from memory as well as from disk. (credit: @tweemeterjop)

1.1.1 (2016-03-13)

API Changes

  • Adding file/url feed private API endpoint.

1.0.9 (2016-01-01)

Privacyfixes

  • Fix scan_file (upload to VT), do not leak full path. (credit: @Rafiot)

1.0.8 (2014-12-26)

Bugfixes

  • Fixed get_url_report method for the Private API (credit: @John-Lin)

1.0.7 (2014-10-17)

Bugfixes

  • Fixed get_network_traffic method to return the pcap data (credit: adrianherrera)

1.0.6 (2014-09-22)

Bugfixes

  • Fixed a small typo in the private API’s scan_file method (credit: adrianherrera)

1.0.5 (2014-05-18)

Bugfixes

  • Fixing README.rst for better PYPI presentation.

1.0.2 (2014-05-18)

API Changes

  • Changing folder structure so when people import it it is not dumb :(

1.0.1 (2014-04-14)

Bugfixes

  • Trying to fix setup.py for deploying to PYPI.

Metadata

Release files for virustotal-api 1.1.11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for virustotal-api 1.1.11
File Size Uploaded
virustotal-api-1.1.11.tar.gz 18.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for virustotal-api 1.1.11
File Interpreter ABI Platform
virustotal_api-1.1.11-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 34.0 kB

Release files / virustotal-api-1.1.11.tar.gz

Download URL virustotal-api-1.1.11.tar.gz
Size 18.1 kB
Tags Source
SHA-256 checksum
How to use checksums
9f1d783a848e928a78aa168372645c6899cbbd6b888951e1d6335e5b87de1c3d
BLAKE2b-256 checksum
How to use checksums
2a442780b13218eb0b417ee3bf57b24df82496853c14d30524b43a89b8cc9222
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Python-urllib/3.7

Release files / virustotal_api-1.1.11-py2.py3-none-any.whl

Download URL virustotal_api-1.1.11-py2.py3-none-any.whl
Size 16.0 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
d238603aafa9d6229394f4df26fb076eb0f5ddf4b60672cf0fd1b7f2608a8b29
BLAKE2b-256 checksum
How to use checksums
371fe10b873b889efea9c97bbfa35ce56e5d1c2fc1a2996f7287060215ad49be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Python-urllib/3.7

Release history Release notifications | RSS feed

This release

1.1.11 This release

2 release files

1.1.10

2 release files

1.1.9

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

1 release file

1.1.4

1 release file

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.9

1 release file

1.0.8

1 release file

1.0.7

1 release file

1.0.6

1 release file

1.0.5

1 release file

1.0.4

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

1

1.0.0

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page