Panduan Praktis Implementasi VirusTotal REST API v3

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

EndpointMetodeDeskripsi
/filesPOSTMengunggah file untuk dianalisis
/files/{id}GETMengambil laporan analisis file
/urlsPOSTMengirimkan URL untuk dipindai
/urls/{id}GETMengambil laporan analisis URL

Langkah Teknis Integrasi

  1. Autentikasi: Simpan API Key dalam variabel lingkungan (environment variable) untuk keamanan, jangan pernah menuliskan API Key langsung di dalam kode sumber (hardcoded).
  2. Rate Limiting: Perhatikan batasan kuota. Akun gratis dibatasi pada 4 permintaan per menit dan 500 permintaan per hari.
  3. Polling Hasil: Setelah mengirim file/URL, Anda akan menerima id analisis. Gunakan id tersebut untuk melakukan polling ke endpoint GET guna mendapatkan hasil akhir setelah proses pemindaian selesai.
  4. 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.