VirusTotal URL Scan API: Panduan Integrasi dan Endpoint

VirusTotal URL Scan API memungkinkan pengembang dan analis keamanan untuk mengirimkan serta menganalisis tautan URL secara terprogram menggunakan endpoint REST v3. Layanan ini memanfaatkan lebih dari 70 mesin antivirus dan pemindai reputasi untuk mendeteksi potensi ancaman seperti malware, phishing, dan eksploitasi web lainnya secara otomatis tanpa harus menggunakan antarmuka web.

Untuk memulai integrasi, Anda memerlukan kunci API (API Key) aktif dari akun VirusTotal. Setiap permintaan HTTP ke API wajib menyertakan header otentikasi yang valid. Di bawah ini adalah ringkasan teknis mengenai spesifikasi endpoint utama yang sering digunakan dalam proses pemindaian URL.

Tabel Spesifikasi Endpoint VirusTotal API v3

Aksi Metode HTTP Endpoint URL Deskripsi Fungsi
Kirim URL POST https://www.virustotal.com/api/v3/urls Mengirimkan URL baru untuk dipindai oleh sistem.
Analisis Hasil GET https://www.virustotal.com/api/v3/analyses/{id} Mengambil status dan laporan hasil pemindaian berdasarkan ID analisis.
Laporan URL GET https://www.virustotal.com/api/v3/urls/{id} Mengambil laporan terakhir dari URL yang dienkode dengan SHA-256 atau Base64.

Langkah Teknis Implementasi

Proses pemindaian URL melalui API memerlukan dua tahap utama: pengiriman (submission) URL untuk mendapatkan ID analisis, dan pengambilan (retrieval) hasil laporan menggunakan ID tersebut.

1. Mengirimkan URL untuk Dipindai

Kirimkan permintaan HTTP POST dengan menyertakan URL target pada body permintaan dengan format application/x-www-form-urlencoded.

curl --request POST \
     --url https://www.virustotal.com/api/v3/urls \
     --header "accept: application/json" \
     --header "content-type: application/x-www-form-urlencoded" \
     --header "x-apikey: YOUR_API_KEY" \
     --data "url=http%3A%2F%2Fexample.com"

2. Mengambil Hasil Analisis

Gunakan ID analisis yang didapat dari respons sebelumnya pada endpoint analisis untuk memeriksa apakah pemindaian telah selesai.

curl --request GET \
     --url https://www.virustotal.com/api/v3/analyses/ANALYSIS_ID \
     --header "accept: application/json" \
     --header "x-apikey: YOUR_API_KEY"

Batasan Kuota dan Aturan Penggunaan

Akun publik gratis VirusTotal memiliki batasan ketat dalam penggunaan API untuk menjaga ketersediaan layanan bagi seluruh pengguna komunitas keamanan:

  • Batas Permintaan (Rate Limit): Maksimal 4 permintaan per menit untuk akun gratis.
  • Batas Harian: Maksimal 500 permintaan per hari.
  • Penggunaan Komersial: Akun gratis dilarang keras digunakan untuk integrasi produk komersial atau otomatisasi perusahaan skala besar. Diperlukan langganan Premium API untuk kebutuhan tersebut.

Tips Troubleshooting Lapangan

Jika Anda menemui kendala saat melakukan pengiriman data, perhatikan beberapa hal berikut:

  • Pastikan URL dienkode dengan benar (URL encoding) sebelum dikirim melalui parameter data.
  • Kode status HTTP 429 Too Many Requests menandakan Anda telah melampaui batas kuota per menit. Terapkan jeda waktu (delay) atau fungsi exponential backoff pada skrip Anda.
  • Kode status HTTP 401 Unauthorized menunjukkan bahwa x-apikey yang Anda masukkan salah atau sudah tidak aktif.