Search across all Whatoblock threat intelligence data from a single interface. No API key required.
Getting Started
Global Search is available at search.whatoblock.com. It searches four data sources simultaneously. A captcha verification is required before each new search. Once verified, you can paginate, sort, and filter results freely.
Data Sources
Global Search queries all four data sources and merges the results into a single view:
Scanners
Port scan activity
Botnets
C2 servers & malware
Open Data
Internet-wide scans
Heartbeat
Live threat signals
How to Search
You can search by entering a value directly or by using prefix:value syntax for targeted searches.
Direct Input (auto-detected)
These formats are recognized automatically without a prefix:
IPv4 Address
192.168.1.1
Searches all IP fields across all sources
MD5 Hash
d41d8cd98f00b204...
32 hex character hash — searches Botnet and Open Data
UUID (Botnet ID)
550e8400-e29b-41d4-...
Unique Botnet ID — searches Botnet source only
Prefix Queries
Use a prefix to search a specific field. Only data sources that support the field will be queried.
Prefix
Description
Sources
Example
ip:
IPv4 address
Scanner, Botnet, Heartbeat
ip:1.2.3.4
port:
Port number (1–65535)
Scanner, Open Data
port:443
md5:
MD5 hash
Botnet, Open Data
md5:d41d8cd9...
country:
Origin country (code or name)
Scanner, Botnet, Heartbeat
country:US
target:
Targeted country (code or name)
Scanner, Botnet
target:US
org:
Organization name
Scanner, Botnet, Heartbeat
org:Cloudflare
service:
Service name
Scanner, Open Data
service:ssh
asn:
AS Number
Scanner, Botnet, Heartbeat
asn:AS13335
protocol:
TCP or UDP
Scanner, Open Data
protocol:tcp
ubid:
Unique Botnet ID (UUID)
Botnet
ubid:550e8400...
Combining Filters
Separate two or more prefixes with a space to combine them. All conditions must match (AND logic). Results are limited to data sources that support every prefix used.
Example Combinations
DNS Traffic on UDP
port:53 protocol:udp
Matches Scanner and Open Data sources
IP Targeting a Country
ip:1.2.3.4 target:US
Find activity from a specific IP targeting the United States
Multi-Field Filter
country:CN target:JP org:Chinanet
Find Chinanet-originated activity from China targeting Japan
Incompatible Prefixes
If no data source supports all the prefixes in your query, no results will be returned. For example, ubid:... port:443 will return nothing because ubid: is Botnet-only and port: does not apply to Botnet data.
Filtering & Sorting Results
After a search completes, you can refine your results using the controls on the results page:
Data Type Filters
Toggle Scanner, Botnet, Open Data, or Heartbeat on/off
Show or hide each source individually
Sort Order
Date (newest first) — most recent results first
Date (oldest first) — earliest results first
Relevance — best matches first
Sidebar Aggregations
The results page shows breakdowns by data type, top ports, countries, and organizations. Click any item to filter the results.
Good to Know
Global Search is free and does not consume API tokens.
Results are cached for a few minutes. Repeating the same query returns cached data instantly.
Queries are limited to 64 characters. Only letters, numbers, dots, hyphens, underscores, colons, and spaces are allowed.
The country: prefix searches both the origin and targeted country fields. Use target: to search only the targeted country.
Country codes (e.g. US) are automatically converted to full country names for matching.
Threat Map
A real-time global visualization of threat activity. Watch live attack lines and threat events unfold on an interactive map.
Access
The Threat Map is available at threatmap.whatoblock.com. It is completely free, requires no account, and works on any device.
Data Sources
The map ingests data from three threat intelligence sources. Each source is rendered with a distinct color:
Botnet (C2)
Command & Control server activity
Rolling 14-day window
Origin → Target country lines
Scanner
Network port scanning activity
Last 24 hours
Origin → Target country lines
Heartbeat
Threat signals (proxies, Tor nodes, etc.)
Last 24 hours
Point explosions on the map
View Modes
Switch between two rendering modes from the settings panel:
2D Map
Flat world projection
Pan and zoom with mouse or touch
Best for viewing a specific region
3D Globe
Interactive rotating globe
Optional auto-rotation and cloud layer
Best for a global overview
Controls & Settings
The settings panel (top-left on desktop, hamburger menu on mobile) provides:
Display Options
Data Source toggles — show or hide Botnet, Scanner, or Heartbeat individually
Hide Labels — remove country and city labels from the map
Hide News — collapse the live activity feed (desktop only)
Performance Presets
Mobile — reduced effects for phones and tablets
Laptop — balanced quality and frame rate
Desktop — full visual effects and particle density
Live Statistics Panel
The stats panel (top-right) updates in real time with:
Threat Counts
Total events and per-source breakdowns (Botnet, Scanner, Heartbeat) with a country count.
Top Targeted Countries
The five countries receiving the most attacks, ranked by event count with relative bar charts.
Top Origin Countries
The five countries generating the most threat activity.
Recent Activity Feed
The news panel (bottom-left on desktop, swipe-up sheet on mobile) shows a scrollable feed of the latest threat events as they appear on the map, including origin, target, source type, and masked IP addresses.
Good to Know
The Threat Map is completely free and requires no account or API key.
IP addresses displayed on the map are partially masked (e.g. 192.168.xxx.xxx) for privacy.
Threat data is cached and refreshed automatically. The map always shows the latest available data.
A device selection prompt appears on first visit to optimize rendering for your hardware.
On mobile, use the hamburger menu to access settings and the bottom toggle for the activity feed.
API v3 System
Access comprehensive threat intelligence through our RESTful API with flexible filtering, real-time data retrieval, and direct file downloads.
Key Features
Token-Based Billing: Pay only for what you use with transparent cost calculation
Real-Time Data: Access to live threat intelligence and scanning results
Filtering: Data filtering with mutual exclusivity validation
Direct Downloads: Stream files directly
Cost Preview Mode: Preview costs and results before actual queries
Pretty-Printed JSON: Human-readable responses for better debugging
Base URL & Authentication
Base URL: https://whatoblock.com/apiv3/
Authentication: ?apiKey=7eae00f2-d740-4756-9658-ca2d62b05c73
API Key Format
API keys must be valid UUIDv4 format: 7eae00f2-d740-4756-9658-ca2d62b05c73
Status Endpoint
Check your account status, token balance, and API costs. This endpoint does not consume any tokens.
GET https://whatoblock.com/apiv3/status?apiKey=7eae00f2-d740-4756-9658-ca2d62b05c73
All API endpoints use token-based billing. See the Token-Based Billing section for detailed pricing information, including cost per record and minimum costs for each endpoint.
Common Features
Response Format Options
The Heartbeat, Botnet, and Scanner endpoints support flexible response formats:
Format Parameter
format=json - Returns JSON response
format=text - Returns plain text, one IP per line
format=csv - Returns CSV format, one IP per line
format=xml - Returns XML format for system integrations
Perfect for importing IPs into firewall rules or other programs
Info Parameter
info=false (default) - Returns IPs only
info=true - Includes metadata (tokens charged, filters, etc.)
For text format, metadata appears as # comments
For XML format, metadata appears as additional XML elements
Example Combinations
/apiv3/heartbeat?apiKey=KEY&time=24h&format=json - JSON with IPs only (info=false)
/apiv3/heartbeat?apiKey=KEY&time=24h&format=json&info=true - JSON with full metadata
/apiv3/heartbeat?apiKey=KEY&time=24h&format=text - Plain text, IPs only
/apiv3/heartbeat?apiKey=KEY&time=24h&format=text&info=true - Plain text with metadata comments
/apiv3/heartbeat?apiKey=KEY&time=24h&format=csv - CSV format, one IP per line
/apiv3/heartbeat?apiKey=KEY&time=24h&format=xml - XML format for system integrations
/apiv3/heartbeat?apiKey=KEY&time=24h&format=xml&info=true - XML with full metadata
Cost Preview Mode
All endpoints support cost preview mode to preview costs and results without consuming tokens. Use cost=true:
Add &cost=true to any endpoint to preview the operation
Cost Preview Response Format
{
"success": true,
"cost_preview": true,
"query_details": {
"endpoint": "/apiv3/heartbeat",
"records_found": 150,
"filters_applied": {
"time": "24h",
"country": "US"
},
"operation_type": "HEARTBEAT_API",
"response_format": "IP addresses only",
"pricing_info": {
"OpenProxy": "0.1 tokens per unique IP",
"Tor Exit Node": "0.1 tokens per unique IP",
"ResidentialProxy": "0.1 tokens per unique IP",
"DatacenterProxy": "0.1 tokens per unique IP",
"DDoS": "0.1 tokens per unique IP"
}
},
"account_impact": {
"current_balance": 1000.0,
"tokens_to_charge": 15,
"balance_after_query": 985,
"sufficient_balance": true
},
"timestamp": "January 15, 2024, 10:30:00 AM",
"note": "This is a cost preview query. No tokens have been charged and no data has been returned.",
"category_breakdown": {
"ResidentialProxy": {"count": 50, "cost": 5},
"OpenProxy": {"count": 75, "cost": 7.5},
"DDoS": {"count": 25, "cost": 2.5}
}
}
Note: category_breakdown is only included for Heartbeat API responses.
Filter Validation
Parameter Validation
Unknown Parameters: All endpoints validate query parameters and reject unknown parameters with a 400 error.
Allowed Parameters: Each endpoint has a specific set of allowed parameters. See the endpoint-specific sections for details.
Error Response: When unknown parameters are detected, the API returns a list of allowed parameters for that endpoint.
Mutual Exclusivity Rules
Time Filter: The time parameter is required for Heartbeat, Scanner, and Botnet endpoints. Not required for Open Data endpoint.
Open Data - MD5 vs Service Mode: Cannot use md5 filter together with service, protocol, or port filters. Choose ONE filtering mode:
MD5 Mode: Use md5 alone to get a specific file by hash (e.g., ?md5=9f3a7b2c4d1e8a0b6c5f2d9e3a1b0c4d)
Service Mode: Use service, protocol, and port together (e.g., ?service=DNS&protocol=tcp&port=53)
Required Filter Combinations
Open Data - Service Mode: When using service mode, service, protocol, and port are all required together:
The API returns standardized error responses with appropriate HTTP status codes:
401 - Authentication Errors
{
"success": false,
"error": "API key is required. Please include ?apiKey=YOUR_API_KEY in your request.",
"note": "Make sure to include the ? before apiKey= in your URL"
}
// Invalid API key format
{
"success": false,
"error": "Invalid API key format. API key must be a valid UUIDv4.",
"format": "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx (where x is any hexadecimal digit and y is one of 8, 9, A, or B)"
}
// Invalid API key
{
"success": false,
"error": "Invalid API key. Please check your API key and try again."
}
402 - Insufficient Tokens
// Preliminary validation (before processing)
{
"success": false,
"error": "Insufficient token balance for this operation.",
"required_operation": "HEARTBEAT_API",
"cost_per_record": "0.1 tokens per record",
"available_tokens": 5.2,
"message": "Please top up your account to use this endpoint."
}
// Final validation (after processing)
{
"success": false,
"error": "Insufficient token balance. Please top up your account.",
"required_tokens": 125.5,
"available_tokens": 100.0
}
403 - Banned Account
{
"success": false,
"error": "Your account has been banned. Please contact support at [email protected] for assistance."
}
{
"success": false,
"error": "Data is being generated.",
"message": "Data not yet available. Please wait a few seconds and retry."
}
// Maintenance mode
{
"success": false,
"error": "System is under maintenance. Please check back later.",
"maintenance": true
}
500 - Server Error
{
"success": false,
"error": "Failed to retrieve heartbeat data. Please try again later."
}
Best Practices
Always use cost preview mode first to estimate costs for large queries
Use time=30d for broader analysis or time=24h for recent data
Combine filters to get precisely the data you need
Monitor your token balance regularly using the status endpoint
Use case-insensitive parameters where supported (protocol, etc.)
Only use documented parameters - unknown parameters will be rejected with a 400 error
Scanners
The Scanner API provides access to IP addresses from network scanning activity data.
API Endpoint
Access IP addresses from network scanning activity through the API v3 endpoint:
GET https://whatoblock.com/apiv3/scanner?apiKey=7eae00f2-d740-4756-9658-ca2d62b05c73&time=24h&hideBots=true
Response Format
The Scanner API supports four response formats: JSON, plain text, CSV, and XML. The format parameter is required. Use format=json, format=text, format=csv, or format=xml to control the output format. Use info=true to include metadata in the response.
JSON Format (format=json)
JSON response with IPs only when info=false (minimal format - just the array):
When no data matches your filters, the API returns an empty array:
{
"success": true,
"ips": [],
"records": 0,
"tokens_charged": 0,
"filters_applied": {
"time": "24h",
"country": "US"
},
"message": "No data found for your query.",
"suggestion": "Try adjusting your filters (time period, country, protocol, ASN) to get results. You can use time=30d for a broader range, or remove some filters to see more data.",
"supported_filters": {
"time": ["24h", "30d"],
"country": "Use 2-letter codes like US, DE, GB",
"protocol": "Use exact protocol names like TCP, UDP",
"asn": "Use format like AS1234 or AS1234,AS5678"
}
}
Cost Preview Response
Use cost=true to preview costs without consuming tokens:
GET https://whatoblock.com/apiv3/scanner?apiKey=KEY&time=24h&country=US&cost=true
{
"success": true,
"cost_preview": true,
"query_details": {
"endpoint": "/apiv3/scanner",
"records_found": 150,
"filters_applied": {
"time": "24h",
"country": "US"
},
"operation_type": "SCANNER_API",
"response_format": "IP addresses only"
},
"account_impact": {
"current_balance": 1000.0,
"tokens_to_charge": 150,
"balance_after_query": 850.0,
"sufficient_balance": true
},
"timestamp": "January 15, 2024, 10:30:00 AM",
"note": "This is a cost preview query. No tokens have been charged and no data has been returned."
}
Available Filters
Time Filters
time: Required - 24h, 30d
Technical Filters
country: 2-letter ISO codes (US, UK, DE, etc.) - comma-separated for multiple
protocol: tcp or udp (case-insensitive)
asn: AS1234 format (comma-separated for multiple, e.g., AS1234,AS5678)
Get IP addresses in text format with metadata comments for documentation
Heartbeat
The Heartbeat API provides access to IP threat intelligence data, categorizing IP addresses by threat type.
API Endpoint
Access Heartbeat data through the API v3 endpoint:
GET https://whatoblock.com/apiv3/heartbeat?apiKey=7eae00f2-d740-4756-9658-ca2d62b05c73&time=24h&format=json&country=US
Response Format
The Heartbeat API supports four response formats: JSON, plain text, CSV, and XML. The format parameter is required. Use format=json, format=text, format=csv, or format=xml to control the output format. Use info=true to include metadata in the response.
JSON Format (format=json)
JSON response with IPs only when info=false (minimal format - just the array):
country: 2-letter ISO codes (US, UK, DE, etc.) - comma-separated for multiple
asn: AS1234 format (comma-separated for multiple, e.g., AS1234,AS5678)
ip: Heartbeat endpoint only - Specific IP or prefix (e.g., 185.220.101 or 185.220.101.45)
Threat Filters
category: Heartbeat endpoint only - OpenProxy, Tor Exit Node, ResidentialProxy, DatacenterProxy, DDoS (comma-separated; Tor_Exit_Node, Residential_Proxy, Datacenter_Proxy, and ddos aliases are also accepted)
Get IP addresses in text format with metadata comments for documentation
Botnets
The Botnet API provides access to Command & Control (C2) server intelligence and downloadable malware samples for security research.
API Endpoint
Access Botnet data through the API v3 endpoint:
GET https://whatoblock.com/apiv3/botnet?apiKey=7eae00f2-d740-4756-9658-ca2d62b05c73&time=24h&downloadableOnly=true
Response Format
The Botnet API supports four response formats: JSON, plain text, CSV, and XML. The format parameter is required. Use format=json, format=text, format=csv, or format=xml to control the output format. Use info=true to include metadata in the response.
JSON Format (format=json)
JSON response with C2 IPs only when info=false (minimal format - just the array):
format: Required - json, text, csv, or xml - controls response format
info: true/false (default: false) - include metadata in response
cost: true/false (cost preview mode - no tokens charged)
Botnet Sample Download
Download malware samples directly from botnet C2 servers. Each downloadable sample is identified by a unique botnet ID.
Obtaining Botnet IDs
Botnet IDs are obtained from the web interface. Visit the Botnet page to view C2 servers and their associated botnet ID values. Only botnets with downloadable samples will have available files. Botnet IDs must contain only alphanumeric characters, hyphens, and underscores.
GET https://whatoblock.com/apiv3/botnet/download/YOUR_BOTNET_ID?apiKey=YOUR_API_KEY
Response Format
The Botnet download endpoint returns a binary ZIP file containing the malware sample. The filename is automatically constructed as {botnet_id}-binaries.zip. Tokens are consumed after successful download (5 tokens per file).
Malware samples are live and dangerous! Only download if you have proper isolation,
analysis tools, and security expertise. These files can damage systems and compromise networks.
Pricing
See the Token-Based Billing section for detailed pricing information, including costs for C2 IP addresses and malware sample downloads.
Example Use Cases
Block C2 Servers
/apiv3/botnet?apiKey=KEY&time=24h&country=US
Get C2 server IP addresses from the US to block in your firewall
Open Data API always returns a single file as a binary stream. The API returns the most recent file for the specified service, protocol, and port combination, or the file matching the MD5 hash. Multiple files are not supported - each query returns exactly one file. One active download per user at a time.
Filter Modes & Combinations
Important: Mutually Exclusive Filter Modes
Open Data API supports two mutually exclusive filtering modes. You must choose ONE mode per request:
• MD5 Mode: Use md5 filter alone to get a specific file by hash
• Service Mode: Use service, protocol, and port together (all three required)
• Cannot combine: You cannot use md5 with service/protocol/port filters
Available Filters
Service + Protocol + Port Mode
service: Required - DNS, NTP, SSH, HTTPS_ALT, etc. (both hyphens and underscores accepted)
protocol: Required - Must be tcp or udp (case-insensitive)
port: Required - Port number (1-65535)
All three required: service, protocol, and port must all be provided
Returns: Most recent file matching all three criteria
Standalone mode: Use md5 filter alone (no other filters allowed)
Returns: Specific file matching MD5 hash exactly
Note: Cannot combine with service/protocol filters
Supported Services & Ports
Complete list of supported services organized by protocol:
TCP Services
DNS53
FTP21
HTTP80
HTTP_ALT8080
(HTTP-ALT)
HTTPS443
HTTPS_ALT8443
(HTTPS-ALT)
IMAP143
IMAPS993
MSSQL1433
MYSQL3306
POP3110
POP3S995
POSTGRESQL5432
RDP3389
SMB445
SMTP25, 587
SMTPS465
SSH22
TELNET23
UDP Services
ARD3283
CHARGEN19
DNS53
IPMI623
LDAP389
MDNS5353
MEMCACHED11211
MSSQL1434
NAT_PMP5351
(NAT-PMP)
NETBIOS_NS137
(NETBIOS-NS)
NTP123
QOTD17
RIP520
SIP5060
SSDP1900
STUN3478
UBIQUITI10001
WSD3702
Important Note
Services with hyphens in their names (HTTP-ALT, HTTPS-ALT, NAT-PMP, NETBIOS-NS) must use underscores in the API query parameter (HTTP_ALT, HTTPS_ALT, NAT_PMP, NETBIOS_NS).
Example: Use service=HTTP_ALT to access HTTP-ALT service data.
{
"success": false,
"error": "You already have a download in progress. Please wait for it to complete."
}
200 - No Data Found
{
"success": true,
"files": [],
"records": 0,
"tokens_charged": 0,
"filters_applied": {
"service": "DNS",
"protocol": "tcp",
"port": 53
},
"message": "No data found for your service+protocol+port query.",
"suggestion": "No files found for service \"DNS\" with protocol \"tcp\" on port 53. Verify the combination is correct.",
"supported_filters": {
"service": "Service name (e.g., DNS, NTP, SSH, HTTPS_ALT)",
"protocol": "Required: tcp or udp (case-insensitive)",
"port": "Required: port number (1-65535)",
"md5": "Single MD5 hash - alternative to service mode"
},
"examples": {
"dns_tcp": "/apiv3/opendata?apiKey=KEY&service=DNS&protocol=tcp&port=53",
"ntp_udp": "/apiv3/opendata?apiKey=KEY&service=NTP&protocol=udp&port=123",
"https_alt": "/apiv3/opendata?apiKey=KEY&service=HTTPS_ALT&protocol=tcp&port=8443",
"md5_hash": "/apiv3/opendata?apiKey=KEY&md5=9f3a7b2c4d1e8a0b6c5f2d9e3a1b0c4d"
}
}