Dasar Penggunaan VirusTotal REST API v3
VirusTotal REST API v3 memungkinkan integrasi otomatis untuk menganalisis file, domain, IP address, dan URL menggunakan basis data ancaman global. Untuk mengakses API ini, Anda wajib memiliki API Key yang dapat diperoleh melalui profil akun di situs resmi virustotal.com. Seluruh komunikasi API menggunakan protokol HTTPS dengan format data JSON.
Persiapan Lingkungan
Pastikan Anda telah menginstal pustaka requests pada Python Anda. Gunakan perintah pip install requests. API Key harus disertakan dalam header setiap permintaan HTTP dengan format x-apikey: <API_KEY_ANDA>.
Contoh Kode: Analisis URL
Berikut adalah implementasi teknis untuk mengirimkan URL guna dipindai oleh sistem VirusTotal:
import requests
url = "https://www.virustotal.com/api/v3/urls"
headers = {
"accept": "application/json",
"x-apikey": "YOUR_API_KEY_HERE",
"content-type": "application/x-www-form-urlencoded"
}
payload = {"url": "https://www.google.com"}
response = requests.post(url, data=payload, headers=headers)
print(response.json())Tabel Parameter Utama API
| Endpoint | Metode | Deskripsi |
|---|---|---|
| /files | POST | Mengunggah file untuk dianalisis |
| /files/{id} | GET | Mengambil laporan analisis file |
| /urls | POST | Mengirimkan URL untuk dipindai |
| /urls/{id} | GET | Mengambil laporan analisis URL |
Langkah Teknis Integrasi
- Autentikasi: Simpan API Key dalam variabel lingkungan (environment variable) untuk keamanan, jangan pernah menuliskan API Key langsung di dalam kode sumber (hardcoded).
- Rate Limiting: Perhatikan batasan kuota. Akun gratis dibatasi pada 4 permintaan per menit dan 500 permintaan per hari.
- Polling Hasil: Setelah mengirim file/URL, Anda akan menerima
idanalisis. Gunakanidtersebut untuk melakukan polling ke endpoint GET guna mendapatkan hasil akhir setelah proses pemindaian selesai. - Error Handling: Selalu periksa status code HTTP. Kode 429 menandakan Anda telah mencapai batas kuota (Rate Limit Exceeded), sementara 403 menandakan API Key tidak valid.
Tips Troubleshooting
Jika Anda menerima respons 401 Unauthorized, pastikan API Key telah disalin dengan benar tanpa spasi tambahan. Jika hasil analisis menunjukkan queued, artinya sistem sedang memproses antrean; lakukan jeda (sleep) selama 5-10 detik sebelum melakukan permintaan ulang untuk mendapatkan hasil final.