Skip to content

Ransomware Histograms API

The Ransomware Histograms API provides time-based aggregation of ransomware attacks and group activity, allowing you to analyze trends over time.

GET/api/v2/histogram/attacks

Retrieve statistics on the number of ransomware attacks per month, providing a time-based view of attack frequency.

NameTypeRequiredDescription
countriesstringNoCountry list following ISO 3166-1 alpha-2 codes (e.g., UK, FR, ES)
gtestringNoStart date (Unix timestamp, YYYY-MM-DD, or YYYY-MM-DDThh:mm:ss)
ltestringNoEnd date (Unix timestamp, YYYY-MM-DD, or YYYY-MM-DDThh:mm:ss)
Terminal window
curl "https://api.vysion.ai/api/v2/histogram/attacks" \
--header 'Accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'
{
"data": {
"total": 12,
"hits": [
{
"key": "2024-01",
"key_as_string": "2024-01-01T00:00:00.000Z",
"doc_count": 234,
"agg": {
"buckets": [
{
"key": "lockbit",
"doc_count": 89
},
{
"key": "alphv",
"doc_count": 67
},
{
"key": "play",
"doc_count": 78
}
]
}
},
{
"key": "2024-02",
"key_as_string": "2024-02-01T00:00:00.000Z",
"doc_count": 198,
"agg": {
"buckets": [
{
"key": "lockbit",
"doc_count": 72
},
{
"key": "alphv",
"doc_count": 54
},
{
"key": "play",
"doc_count": 72
}
]
}
}
]
},
"error": null
}
GET/api/v2/histogram/groups

Retrieve statistics on the number of attacks per ransomware group and month, providing detailed insights into group activity over time.

NameTypeRequiredDescription
countriesstringNoCountry list following ISO 3166-1 alpha-2 codes (e.g., UK, FR, ES)
gtestringNoStart date (Unix timestamp, YYYY-MM-DD, or YYYY-MM-DDThh:mm:ss)
ltestringNoEnd date (Unix timestamp, YYYY-MM-DD, or YYYY-MM-DDThh:mm:ss)
Terminal window
curl "https://api.vysion.ai/api/v2/histogram/groups" \
--header 'Accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'
{
"data": {
"total": 12,
"hits": [
{
"key": "2024-01",
"key_as_string": "2024-01-01T00:00:00.000Z",
"doc_count": 234,
"agg": {
"buckets": [
{
"key": "lockbit",
"doc_count": 89
},
{
"key": "alphv",
"doc_count": 67
},
{
"key": "play",
"doc_count": 45
},
{
"key": "cl0p",
"doc_count": 33
}
]
}
},
{
"key": "2024-02",
"key_as_string": "2024-02-01T00:00:00.000Z",
"doc_count": 198,
"agg": {
"buckets": [
{
"key": "lockbit",
"doc_count": 72
},
{
"key": "alphv",
"doc_count": 54
},
{
"key": "play",
"doc_count": 42
},
{
"key": "cl0p",
"doc_count": 30
}
]
}
}
]
},
"error": null
}

Both histogram endpoints return the same response structure:

FieldTypeDescription
data.totalintegerTotal number of time buckets
data.hitsarrayArray of time bucket objects
data.hits[].keystringTime bucket key (YYYY-MM format)
data.hits[].key_as_stringstringISO 8601 formatted date string
data.hits[].doc_countintegerTotal number of attacks in this time period
data.hits[].aggobjectAggregated statistics for this time period
data.hits[].agg.bucketsarrayArray of group statistics
data.hits[].agg.buckets[].keystringRansomware group name
data.hits[].agg.buckets[].doc_countintegerNumber of attacks by this group
errorobjectError information (null if successful)
  • Each histogram entry represents one month of data
  • The key field shows the month in YYYY-MM format
  • The key_as_string field provides the full ISO 8601 timestamp
  • The doc_count shows the total attacks for that month
  • The agg.buckets array contains the top ransomware groups for each month
  • Groups are typically ordered by attack count (most active first)
  • This allows you to see which groups were most active in each time period
  • Trend Analysis: Track overall attack volume over time
  • Group Activity: Monitor which ransomware groups are most active
  • Seasonal Patterns: Identify patterns in attack frequency
  • Impact Assessment: Measure the effect of law enforcement actions or security improvements

Histogram endpoints may return these error codes:

StatusError CodeDescription
401UnauthorizedInvalid or missing API key
422Unprocessable EntityInvalid parameters
429Too Many RequestsRate limit exceeded
500Internal Server ErrorServer error

The histogram data is perfect for creating time-series charts:

  • Use the key_as_string field for x-axis timestamps
  • Use doc_count for total attack volume
  • Create stacked charts using the agg.buckets data for group-specific trends
  • Consider grouping by quarter or year for longer-term analysis