API & Developer Ecosystem

The Malware Families Catalog exposes a free, public threat intelligence API, OpenAPI 3.1 specification, and official Python SDK letting you query 2,982 malware families programmatically. Zero authentication or API keys required.

PyPI Package OpenAPI 3.1.0 STIX 2.1 Ready SHA256 Checksums Apache 2.0 License

Endpoints & Threat Intelligence Feeds

Endpoint / ResourceFormatDescription
/api/families.jsonJSONFull index of all 2,982 families with categorized functional classification and curation depth tiers.
/api/{family_name}.jsonJSONDetailed profile for a single family: aliases, MITRE ATT&CK, severity rating, containment procedures, anti-patterns, and FAQs.
/api/mitre.jsonJSONMITRE ATT&CK Reverse Index: Mapping of Enterprise Techniques (e.g. T1055, T1566.001) to associated malware families.
/api/stix2_bundle.jsonSTIX 2.1OASIS STIX 2.1 Threat Intel Bundle: 15,018 objects (malware, attack-patterns, relationships) for SIEM/TIP (Splunk, OpenCTI, MISP) ingestion.
/api/yara/YARA FeedMaster YARA Threat Hunting Feed: 5,962 multi-tier detection rules (.yar & manifest) and master rules.yar for ClamAV / YARA daemon ingestion.
/api/sigma/Sigma RulesProduction Sigma Rules: 2,981 YAML & JSON behavioral detection rules for SIEM/EDR log analytics.
/api/misp/MISP FeedStandard MISP Community Threat Feed: Manifest and event JSONs ready for zero-configuration ingestion into any MISP instance.
/api/otx/pulses.jsonOTX PulsesAlienVault OTX Pulse Feed: 488 curated threat intelligence pulses with verified file hashes, CVEs, and MITRE tags for AT&T AlienVault USM.
/research/DataCite & BibTeXAcademic Research Portal: Peer-reviewed citations, DataCite 4.4 metadata XML, and Open Science DOIs for scholars and universities.
/api/openapi.jsonOpenAPI 3.1OpenAPI Specification: Complete machine-readable contract for automated client generation and gateway proxies.
malware-families-catalog-technical-report.pdfPDFAcademic Technical Report: Formal methodology, CAIRN attribution framework, and EMBER 2018 statistical study (SHD-TR-2026-08-MF).
SHA256SUMS.txtTextCryptographic Manifest: Published SHA-256 checksums verifying data and document integrity.

Official Python SDK & CLI (malware-families-catalog)

The catalog provides an official, zero-dependency Python client library and command-line tool designed for SOC automations, threat intelligence pipelines, and incident response triage.

# Install via pip
pip install malware-families-catalog

Command-Line Interface (malware-catalog)

# Lookup detailed family profile and immediate containment steps
malware-catalog lookup emotet

# Export machine-readable JSON for SIEM / jq pipelines
malware-catalog lookup emotet --json

# Search catalog by keyword or threat category
malware-catalog search ransomware --limit 10

# Reverse query MITRE ATT&CK techniques to discover employing families
malware-catalog mitre T1055 --limit 15

# View catalog threat metrics and enrichment distribution
malware-catalog stats

Python SDK Quickstart

from malware_families_catalog import MalwareCatalogClient

client = MalwareCatalogClient()

# 1. Lookup a specific malware family
family = client.get_family("emotet")
if family:
    print(f"Family:     {family.family} ({family.severity_rating})")
    print(f"Category:   {family.category}")
    print(f"Samples:    {family.sample_count:,}")
    print(f"Techniques: {family.mitre_attack}")
    for step in family.containment_steps:
        print(f"Containment Action: {step}")

# 2. Query families by category
ransomware_list = client.list_families(category="ransomware")
print(f"Total ransomware families: {len(ransomware_list)}")

# 3. Lookup MITRE ATT&CK technique reverse mappings
technique = client.get_technique("T1566.001")
if technique:
    print(f"Technique: {technique['name']} ({technique['tactic']})")
    print(f"Associated families: {len(technique['families'])}")

JavaScript / Fetch Example

// Fetch the full family index
fetch("https://malware-families-catalog.systemhelpdesk.com/api/families.json")
  .then(res => res.json())
  .then(data => {
    console.log(`Total families: ${data.total}`);
    data.families.filter(f => f.category === 'ransomware')
      .forEach(f => console.log(f.family));
  });

// Fetch a specific family profile
fetch("https://malware-families-catalog.systemhelpdesk.com/api/emotet.json")
  .then(res => res.json())
  .then(family => {
    console.log(`${family.family}: ${family.description.slice(0,100)}...`);
  });

Interactive OpenAPI 3.1 Explorer

Explore schema models, inspect endpoint parameters, and execute live queries directly against the production catalog API:

Rate Limits & License

This is a static JSON API distributed across a global CDN. There are no rate limits, no API keys, and no authentication walls. Responses are cached and distributed under the Apache-2.0 license. Data derived from EMBER 2018 and SystemHelpDesk research operations.