Threat intelligence API / Reference / Dark web

Dark web endpoints

Ransomware leak-site listings, groups and victim records from ThreatCluster's own collection.

GET /darkweb/stats · GET /darkweb/ransomware/victims · GET /darkweb/ransomware/groups · GET /darkweb/ransomware/group/{group_name} · GET /darkweb/ransomware/victim/{victim_id} · GET /darkweb/keyword-hits · GET /darkweb/ransomware/victims/facets · GET /darkweb/trends

GET /darkweb/stats

Dark-web counts + last-sync timestamp · 1 credit per call

Get dark web monitoring statistics.

Returns ransomware group counts and victim counts.

Response 200 · DarkwebStatsResponse

FieldTypeMeaning
ransomware_groups *integer
total_victims *integer
victims_last_7d *integer
victims_last_30d *integer
last_updatedstring or null
data_sourcestring or null
curl -H "X-API-Key: $TC_KEY" \
  "https://threatcluster.io/api/public/v1/darkweb/stats"

GET /darkweb/ransomware/victims

List ransomware victims · 1 credit per call

Get ransomware victims.

Query parameters

  • days: Filter to victims from last N days (default: 30, max: 90)
  • group: Filter by ransomware group name (optional)
  • country: Filter by country code (optional)
  • sector: Filter by victim sector/industry (optional). Use the values from

the /darkweb/ransomware/victims/facets endpoint. Turns this into a per-client sector view for platform reports.

  • limit: Maximum results (default: 100, max: 500)

Returns list of ransomware victims with group, date, and country info.

Parameters

NameInTypeRequiredMeaning
daysqueryinteger
groupquerystring
countryquerystring
sectorquerystring
limitqueryinteger

Response 200 · RansomwareVictimsListResponse

FieldTypeMeaning
victims *array of VictimListItem
count *integerItems returned in this response (not total)
curl -H "X-API-Key: $TC_KEY" \
  "https://threatcluster.io/api/public/v1/darkweb/ransomware/victims"

GET /darkweb/ransomware/groups

List ransomware groups · 1 credit per call

Get ransomware groups.

Query parameters

  • active_only: Only return currently active groups (default: false)

Returns list of ransomware groups with victim counts and activity status.

Parameters

NameInTypeRequiredMeaning
active_onlyqueryboolean

Response 200 · RansomwareGroupsListResponse

FieldTypeMeaning
groups *array of RansomwareGroupListItem
count *integer
curl -H "X-API-Key: $TC_KEY" \
  "https://threatcluster.io/api/public/v1/darkweb/ransomware/groups"

GET /darkweb/ransomware/group/{group_name}

Ransomware group detail · 1 credit per call

Get detailed information about a specific ransomware group.

Path parameters

  • group_name: Name of the ransomware group

Returns group details, recent victims, and activity timeline.

Parameters

NameInTypeRequiredMeaning
group_namepathstringyes

Response 200 · GroupDetailResponse

FieldTypeMeaning
name *string
descriptionstring or null
activeboolean or nullComputed from recent victim activity, not upstream flag
has_captchaboolean or null
first_seenstring or null
last_seenstring or null
victim_countinteger or null
recent_victim_count_30dinteger or null
toolsarray or null
urlsarray or nullTor leak-site URLs
profile_linksarray or nullAnalyst write-ups / research blogs
recent_victimsarray or null
screenshot_urlstring or null
page_titlestring or null
ai_descriptionstring or null
ai_risk_tagsarray or null
ai_languagestring or null
captcha_or_login_gateboolean or null
scraped_atstring or null
entitiesobject or null
curl -H "X-API-Key: $TC_KEY" \
  "https://threatcluster.io/api/public/v1/darkweb/ransomware/group/{group_name}"

GET /darkweb/ransomware/victim/{victim_id}

Victim detail · 10 credits per call

Full enriched victim payload: base record + LLM-extracted fields (headquarters, revenue, data_size, publication_status, negotiation state), mirrored entities, blurred+captioned leak images, and the full-page site screenshot captured via our own Tor pipeline.

Path parameters

  • victim_id: Victim ID (16-char hex, returned by /ransomware/victims)

Returns 404 if not found.

Parameters

NameInTypeRequiredMeaning
victim_idpathstringyes

Response 200 · VictimEnrichmentResponse

FieldTypeMeaning
id *string
victim_namestring or null
group_namestring or null
discoveredstring or null
countrystring or null
sectorstring or null
descriptionstring or null
websitestring or null
post_urlstring or null
screenshot_urlstring or nullransomware.live screenshot (external)
scraped_atstring or null
extracted_atstring or null
scrape_okboolean or null
scrape_errorstring or null
legal_namestring or null
legal_formstring or null
headquartersobject or null
revenueobject or null
employee_countinteger or null
founded_yearinteger or null
victim_descriptionstring or nullAI-generated victim description
domainsarray or null
peoplearray or null
platformsarray or null
data_sizeobject or null
data_size_bytesinteger or null
file_countinteger or null
view_countinteger or null
data_categoriesarray or null
group_tagsarray or null
publication_statusstring or nulllisted | countdown | partial_leak | fully_leaked | removed
victim_status_rawstring or null
countdownobject or null
countdown_ends_atstring or null
posted_atstring or null
publication_atstring or null
ransom_amountobject or null
sample_filesarray or null
file_typesobject or null
negotiation_contactsobject or null
negotiation_statestring or null
negotiation_chat_excerptsarray or null
page_languagestring or null
victim_tldstring or null
is_sea_hitboolean or null
image_countinteger or null
image_bytesinteger or null
imagesarray or null
site_screenshot_urlstring or null
site_screenshot_atstring or null
site_screenshot_errorstring or null
entitiesobject or nullEntities extracted from the leak post, keyed by entity_type (company, country, industry, ...) → [{value, confidence}]
curl -H "X-API-Key: $TC_KEY" \
  "https://threatcluster.io/api/public/v1/darkweb/ransomware/victim/{victim_id}"

GET /darkweb/keyword-hits

Keyword match across ransomware victims and groups · 3 credits per call

Match one or more keywords against ransomware victim names and group names. Case-insensitive substring match — ideal for supply-chain / brand monitoring.

Query parameters

  • keywords: Comma-separated list (required). Caller-provided; this

endpoint does NOT use the org's stored keywords list.

  • per_bucket_limit: Max hits per bucket (default 25, max 100).

Returns: { keywords, hits: {victims, groups}, total }

Parameters

NameInTypeRequiredMeaning
keywordsquerystring
per_bucket_limitqueryinteger

Response 200 · KeywordHitsResponse

FieldTypeMeaning
keywords *array of stringEcho of the keywords matched against
hits *KeywordHitsBucket
total *integerSum across all buckets
curl -H "X-API-Key: $TC_KEY" \
  "https://threatcluster.io/api/public/v1/darkweb/keyword-hits"

GET /darkweb/ransomware/victims/facets

Victim filter facets (countries, sectors, groups) · 1 credit per call

Distinct values for victim filter fields (countries, sectors, groups) with counts. For building filter dropdowns in customer integrations.

Query parameters

  • days: Lookback window (default 365, max 3650 = 10 years)

Returns: { countries, sectors, groups } — each is [{value, count}, ...]

Parameters

NameInTypeRequiredMeaning
daysqueryinteger

Response 200 · VictimFacetsResponse

FieldTypeMeaning
countriesarray of FacetValue
sectorsarray of FacetValue
groupsarray of FacetValue
curl -H "X-API-Key: $TC_KEY" \
  "https://threatcluster.io/api/public/v1/darkweb/ransomware/victims/facets"