GET returns the matches in the same response. In the API reference this source is the Ransomwatch tag, and a domain quick search reports it as Cyber Intel. To be alerted when a new victim matches, create a monitor on the Ransomware source.
Availability and cost
Availability: Ransomware Threat Actor Monitoring. Plans and quotas lists what each plan includes. Cost: no metered allowance. As with every call made with an API key, each call that returns2xx counts once against your monthly API Calls allowance. See Rate limits.
Without the feature, or when your license is not active, every endpoint on this page returns 403:
429 comes from the per-second rate limit, the API Calls allowance or the source’s own per-minute cap. Errors explains each body.
Source per-minute cap
The source caps traffic per endpoint per minute across all DarknetSearch callers, not per organization: 60 for the victim search, each lookup and each statistic, 20 for victim reads, 2 for CSV exports. A429 with {"error": "Rate limit exceeded: 2 per 1 minute"} can occur even after a few calls of your own. Wait a minute and retry.
Search victims
ransomware_victims_list returns one page of matching victims and the total count.
- Filters combine with
AND. Send none to list every victim. - Dates count whole UTC days. Both dates are cut to midnight UTC of their day, so
end_dateexcludes victims discovered later that day. The example above covers 1 January to 30 September 2026. - Newest first by default. Results are ordered by
discovered, newest first. To sort another way, send bothsort_byandsort_by_2. If either isNONE, the default order applies. - There is no group filter. Sort by
GROUPto cluster victims by the group that posted them. For victim counts per group, see Read index statistics. - Page with
skip. Raiseskipbytakeuntil it reachescount.
What comes back
count— victims matching your filters, across all pages.rows— this page of victims. Each carries:id— the victim record’s ID, as a string. Use it to read one victim.company— the name the group posted.domain— the victim’s domain, ornull.groupname— the ransomware group that posted the victim.country,region,industry_type— where the victim is and what it does, ornull.description— a summary of the post, ornull.discovered— when the post was discovered on the leak site.created_at,updated_at— when the record was stored and last changed.
Read one victim
ransomware_victim_detail/{victim_id} returns one victim with the same fields as a list row. Pass the row’s id as digits.
404 with {"detail": "Victim not found"}.
Find filter values
Three lookups return the values stored in the records, each with its victim count:ransomware_targeted_countriesreturnscountryandcount.ransomware_targeted_regionsreturnsregionandcount.ransomware_targeted_industriesreturnsindustry_typeandcount.
q with any value, for example q=all, to get every value instead. That list is unsorted, and q does not filter it.
Read index statistics
ransomware_group_attacks counts victims per ransomware group. It returns groupname and count for the 10 groups with the most victims, most first. As with the lookups, send q with any value to get every group instead, unsorted.
Export the list as CSV
ransomware_victims_csv_export returns every matching victim as one file, exported_victims.csv.
- It takes the same filters as the search, plus
sort_by. It has notake,skiporsort_by_2. - The dates filter on
created_athere, when the record was stored, not ondiscovered. sort_byalways sorts descending.DATEsorts bycreated_at.- The columns are
id,company,groupname,domain,country,industry_type,region,discovered,description,created_atandupdated_at. - When nothing matches, the file is empty, with no header row.
RansomWatchVictim catalog entry. Its arguments use camelCase names: company, domain, targetedCountry, targetedRegion, industryType, startDate, endDate and sort_by.