Daftar Lengkap VirusTotal API Endpoints v3 untuk Analisis

VirusTotal API v3 menyediakan sekumpulan titik akhir (endpoints) berbasis RESTful untuk mengotomatiskan pengiriman dan pengambilan analisis ancaman siber, termasuk file, URL, alamat IP, dan domain. Seluruh permintaan menggunakan basis URL resmi https://www.virustotal.com/api/v3 dan memerlukan penyertaan header kunci API (x-apikey) pada setiap eksekusi HTTP.

Daftar Utama VirusTotal API v3 Endpoints

Berikut adalah tabel komparasi endpoints esensial yang paling sering digunakan dalam pengembangan skrip keamanan dan otomatisasi Security Operations Center (SOC):

Kategori Metode HTTP Endpoint URI Fungsi Utama
Files GET /files/{id} Mengambil laporan analisis file berdasarkan hash (SHA-256, SHA-1, MD5).
Files POST /files Mengunggah file baru untuk dipindai (maksimal ukuran file tergantung kuota akun).
Files GET /files/{id}/upload_url Mendapatkan URL khusus untuk mengunggah file berukuran besar (>32MB).
URLs GET /urls/{id} Mengambil laporan analisis URL (ID adalah base64 encoded URL tanpa padding).
URLs POST /urls Mengirimkan URL baru untuk dipindai ulang atau dianalisis.
IP Addresses GET /ip_addresses/{ip} Mendapatkan laporan reputasi dan informasi keamanan alamat IP.
Domains GET /domains/{domain} Mendapatkan data analitik, resolusi DNS, dan reputasi sebuah domain.
Comments POST /{type}/{id}/comments Menambahkan komentar komunitas pada objek tertentu (files, urls, dll).

Panduan Teknis Penggunaan Endpoint

Dalam mengimplementasikan integrasi VirusTotal API v3, pengembang harus memperhatikan beberapa aturan teknis dasar:

  • Autentikasi: Header permintaan wajib menyertakan x-apikey: [KUNCI_API_ANDA].
  • Format ID URL: Khusus untuk endpoint /urls, ID objek dihitung menggunakan string URL yang telah di-encode ke format Base64 standar, kemudian karakter =, +, dan / disesuaikan (URL safe base64 tanpa padding).
  • Batasan Rate Limit: Akun publik (gratis) dibatasi hingga 4 permintaan per menit dan maksimal 500 permintaan per hari. Akun premium (Enterprise/Intelligence) memiliki kuota yang lebih tinggi sesuai tingkat langganan.

Contoh Implementasi Permintaan (Python)

Berikut adalah contoh cuplikan kode Python menggunakan pustaka requests untuk memeriksa reputasi sebuah hash file:

import requests

url = "https://www.virustotal.com/api/v3/files/44d88612fea8a8f36de82e1278abb02f"

headers = {
    "accept": "application/json",
    "x-apikey": "KUNCI_API_ANDA_DI_SINI"
}

response = requests.get(url, headers=headers)

if response.status_code == 200:
    print(response.json())
else:
    print(f"Error: {response.status_code}")

Troubleshooting Kendala Umum

Jika pengujian API mengalami kegagalan, periksa beberapa kode status HTTP yang sering muncul:

  • 401 Unauthorized: Kunci API salah atau tidak disertakan pada header permintaan.
  • 403 Forbidden: Endpoint memerlukan hak akses premium (Enterprise) yang tidak tersedia pada akun gratis.
  • 429 Too Many Requests: Batasan rate limit terlampaui. Kurangi frekuensi pengiriman permintaan atau terapkan jeda waktu (sleep) antar eksekusi skrip.