Get a global prevalence summary

Retrieve in-the-wild planetary observation and prevalence telemetry for an indicator across Google's enterprise observation mesh.

🚧

Special privileges required

Google Insights In-the-Wild Prevalence is only available to users with the Google Threat Intelligence (Google TI) Enterprise or Enterprise Plus licenses.

Returns a Global Prevalence Summary object.

Examples

Query prevalence for a file hash using cURL

curl --request GET \
     --url "https://www.virustotal.com/api/v3/global_prevalence/summarize?entity_value=787e2c94e6d9ce5ec01f5cbe9ee2518431eca8523155526d6dc85934c9c5787c&entity_type=SHA256" \
     --header "accept: application/json" \
     --header "x-apikey: <YOUR_API_KEY>"

Ingest prevalence into a Python SOAR enrichment playbook

import time
import requests

def get_ioc_global_prevalence(entity_value: str, entity_type: str, api_key: str) -> dict:
    """Queries GTI Global Prevalence summary for an indicator."""
    url = "https://www.virustotal.com/api/v3/global_prevalence/summarize"
    headers = {"x-apikey": api_key, "Accept": "application/json"}
    params = {
        "entity_value": entity_value,
        "entity_type": entity_type  # e.g., "SHA256", "IP", "HOSTNAME"
    }
    response = requests.get(url, headers=headers, params=params)
    response.raise_for_status()
    return response.json().get("data", {}).get("attributes", {})

# Example SOAR Playbook Execution Logic
telemetry = get_ioc_global_prevalence(
    entity_value="203.0.113.55",
    entity_type="IP",
    api_key=SOAR_SECRETS["GTI_API_KEY"]
)

unique_orgs = telemetry.get("customer_count", 0)
raw_sightings = telemetry.get("observation_count", 0)
first_seen_ts = telemetry.get("first_seen_date", 0)
first_industry = telemetry.get("first_seen_industry", "")
last_industry = telemetry.get("last_seen_industry", "")

now = int(time.time())
days_since_first_seen = (now - first_seen_ts) // 86400 if first_seen_ts else 999

# Rule 1: Targeted Vertical Threat (Low org count + peer vertical impact)
if 0 < unique_orgs <= 5 and "FINANCE" in [first_industry, last_industry]:
    alert.add_tag("GTI:Targeted_Vertical_Threat")
    alert.set_severity("CRITICAL")
    alert.increase_risk_score(points=40)
    alert.assign_to("Tier-3 Incident Response")

# Rule 2: High-Volume Shared Infrastructure (Multi-tenant Cloud/CDN IP)
elif unique_orgs > 500 and entity_type == "IP":
    alert.add_tag("GTI:Shared_Infrastructure_Host")
    alert.add_task("Verify SNI / Domain header before applying IP block")

# Rule 3: Emerging In-The-Wild Threat (First observed in enterprise within last 48 hours)
elif unique_orgs > 0 and days_since_first_seen <= 2:
    alert.add_tag("GTI:Emerging_In_The_Wild")
    alert.increase_risk_score(points=25)
Query Params
string
required

The indicator string (e.g. SHA-256, MD5, SHA-1, IPv4/IPv6 address, hostname/domain).

string
enum
required

Entity type for the indicator.

Headers
string
required

Your API key

Responses

400

Bad Request - Missing or invalid required query parameters (entity_value or entity_type).

401

Unauthorized - Missing or invalid API key.

403

Forbidden - Insufficient license privileges. Requires GTI Enterprise or Enterprise Plus subscription.

Language
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json