Skip to main content
DFIRLab
ResearchUse CasesCompare
Intel BriefingsThreat Actors
IOC CheckFile AnalyzerPhishing CheckDomain LookupExposure ScannerPrivacy Check
WikiAbout
PlatformNew
DFIRLab

Security research, threat intelligence, and free DFIR tools.

Tools

Phishing CheckerExposure ScannerDomain LookupFile AnalyzerPrivacy CheckAPI Playground

Use Cases

SOC Phishing TriageIR IOC EnrichmentMSSP Exposure Monitoringn8n AutomationSee all use cases →

Compare

vs VirusTotalvs Shodanvs TheHiveSee all 8 →

Resources

DFIR WikiIntel BriefingsAboutPlatformAPI Docs

Legal

Privacy PolicyRSS FeedSitemap

© 2026 DFIR Lab. All rights reserved.


← Back to Research
IOC EnrichmentThreat Intelligenceapisocindicators of compromise

IOC Enrichment APIs: Free vs Paid Options for SOC Teams

DFIR Lab/May 23, 2026/11 min read

Every SOC analyst knows the workflow: an alert fires, an IP or domain surfaces, and you need context — fast. Is this IP associated with known malware infrastructure? Has this hash been seen in the wild? Is this domain newly registered and parked on bulletproof hosting?

That context comes from IOC enrichment — the process of augmenting raw indicators of compromise with threat intelligence data from one or more sources. The tooling decision that follows is deceptively simple: free or paid? Build or buy?

There is no universal answer, but there are clear tradeoffs. This article breaks them down honestly, covering the major free options, where they fall short, what paid tiers actually get you, and how to evaluate the right fit for your team's scale and workflow.


Free IOC Enrichment Options

Free tiers have matured significantly over the last decade. For individual analysts, small teams, or ad-hoc investigations, several platforms offer genuine value at no cost.

VirusTotal Community API

VirusTotal remains the default first stop for most SOC teams. The community API provides access to file hash lookups, URL analysis, IP reputation, and domain intelligence aggregated from 70+ antivirus engines and threat feeds.

Free tier limits (publicly documented):

  • 4 requests per minute
  • 500 requests per day

For manual lookups during an investigation, this is often sufficient. For automated pipelines or alert triage at volume, 500 requests per day runs out quickly — a single busy shift can exhaust the daily quota.

AbuseIPDB

AbuseIPDB is a community-driven database specifically focused on IP reputation. It aggregates abuse reports submitted by network administrators and security teams worldwide, making it particularly useful for identifying scanners, brute-force sources, and known spam infrastructure.

Free tier: 1,000 checks per day, with confidence score and report history per IP.

The API is straightforward to integrate and well-documented. The limitation is scope: it covers IPs only, and the data quality depends entirely on community reporting activity.

OTX AlienVault (now AT&T Cybersecurity)

Open Threat Exchange (OTX) is one of the largest open threat intelligence communities, with millions of indicators contributed by researchers and organizations globally. Indicators are organized into "pulses" — collections of IOCs associated with a specific campaign or threat actor.

Free: No cost, no rate limit published for standard API access. Supports IPs, domains, URLs, file hashes, and CVEs.

OTX data is community-submitted, which means quality varies. High-profile campaigns are typically well-covered; niche or regional threats may not be. There is no guaranteed SLA on data freshness.

URLhaus by abuse.ch

URLhaus focuses specifically on malware distribution URLs. Run by abuse.ch, it tracks active and historical URLs used to distribute malware payloads.

Free: No API key required for basic queries. Supports URL and host lookups, with downloads of the full dataset available for offline use.

URLhaus is narrow by design — it does not cover IPs or file hashes beyond what appears in its malware URL dataset — but within that scope it is highly accurate and actively maintained.

Shodan

Shodan indexes internet-facing devices and services, making it useful for enriching IPs with information about what ports are open, what software is exposed, and whether a host has appeared in known vulnerability scans.

Free tier: Extremely limited. Basic IP lookups are available, but most useful features (filters, export, historical data, full API access) require a paid membership starting at $49 one-time or $17/month.

For SOC use, Shodan's free tier is mostly useful for occasional manual spot-checks rather than any automated workflow.


The Limitations of Free Tiers

Each free platform above has real value. The problems emerge when you try to use them together, at scale, or inside an automated pipeline.

Rate limits compound quickly. A SOC processing 200 alerts per day — a modest volume for many organizations — will exhaust VirusTotal's free tier within two to three hours. With multiple analysts sharing a single API key, the situation degrades further.

Single-source coverage creates blind spots. No single platform sees everything. An IP may be clean on VirusTotal but flagged across 40 AbuseIPDB reports. A domain may have no URLhaus entry but show up as newly registered, using a privacy-protected registrar, and resolving to infrastructure linked to a known threat group. Enrichment from one source is a partial picture.

No normalization means manual reconciliation. Each API returns data in its own schema. Building a workflow that queries three or four sources means writing and maintaining parsers for each. When those APIs version or change their response format, your pipeline breaks.

No batch support. Most free APIs are designed for single-IOC queries. Processing a list of 500 suspicious IPs extracted from firewall logs means 500 sequential API calls — against rate limits that may not allow it.

No SLA, no support. Free community platforms go down, have data lag, or deprecate endpoints without notice. For a production SOC workflow, that unpredictability carries real operational risk.


Paid IOC Enrichment Options

Paid platforms address the above limitations in different ways and at very different price points.

VirusTotal Premium

VirusTotal's enterprise offering removes rate limits, adds retrohunt capabilities, grants access to PCAP samples, and provides enriched relationship graphs between indicators. It is built for teams that need VirusTotal's breadth at production scale.

Pricing: Enterprise pricing, not publicly listed. Generally positioned for large enterprise and government customers. Expect significant investment.

Recorded Future

Recorded Future is a full threat intelligence platform combining IOC enrichment with analyst tooling, dark web monitoring, vulnerability intelligence, and geopolitical risk data. It aggregates across technical, open-source, and premium closed-source feeds.

Pricing: Enterprise pricing, not publicly listed. Widely reported to range from $10,000 to over $100,000 per year depending on modules and seat count. Aimed at mature security programs with dedicated threat intelligence functions.

Pulsedive

Pulsedive occupies the middle ground between free community tools and enterprise platforms. It aggregates threat intelligence across feeds and provides enriched profiles for IPs, domains, and URLs with risk scoring, linked indicators, and historical context.

Pricing (publicly listed):

  • Free: Community access, limited API calls
  • Pro: $29/month — increased API limits, bulk lookup, threat feeds
  • Team: $99/month — higher limits, team collaboration features, priority support

Pulsedive is a credible option for small-to-mid-sized SOC teams that need more than free tiers offer but cannot justify enterprise spend.

DFIR Lab Platform

The DFIR Lab Platform is purpose-built for SOC teams that need enrichment integrated into investigation workflows rather than as a standalone intelligence product.

Lookups pull from 14+ sources — including VirusTotal, AbuseIPDB, OTX, Shodan, URLhaus, and others — normalize the output into a unified schema, and return a consolidated risk assessment per indicator. Batch mode supports processing lists of IOCs in a single request, making it practical for alert triage at volume.

Pricing (publicly listed):

  • Free: 100 credits/month — covers regular ad-hoc lookups for individuals or evaluation
  • Starter: $29/month — for analysts and small teams
  • Professional: $79/month — 2,500 credits/month, batch priority, full API access

Credits are consumed at 3–5 per lookup depending on IOC type and source depth. Full documentation at platform.dfir-lab.ch/docs/enrichment.

For teams evaluating the platform, the code LAUNCH50 gives you 50% off your first paid month.

The CLI integration is worth noting for engineers who live in the terminal or want to pipe enrichment into scripts:

bash
1dfir-cli enrich 185.220.101.45
2dfir-cli enrich suspicious-domain.io
3dfir-cli enrich 44d88612fea8a8f36de82e1278abb02f # MD5

What Paid Tiers Actually Get You

Across all paid options, the consistent benefits over free tiers are:

Multi-source aggregation. A single query returns results from multiple feeds, reducing blind spots without requiring you to manage multiple API integrations.

Normalized output. Results arrive in a consistent schema. Your SIEM ingestion pipeline, your SOAR playbook, your enrichment script — they all consume the same structure regardless of which underlying sources returned data.

Batch processing. Triage a block of 500 IPs from a firewall export in one request rather than 500 sequential calls against rate-limited free APIs.

Reliability and SLA. Paid platforms commit to uptime, communicate planned maintenance, and provide support channels when something goes wrong.

Historical data and trends. Many paid platforms retain historical snapshots, letting you answer questions like "was this IP malicious three months ago even if it's clean now?"


The DIY Approach: Building Your Own Enrichment Script

For teams comfortable with Python and willing to maintain the code, querying free APIs directly is a legitimate option — particularly for lower-volume workflows or to augment existing tooling.

A minimal enrichment script hitting VirusTotal and AbuseIPDB:

python
1import requests
2 
3VT_API_KEY = "your_virustotal_api_key"
4ABUSEIPDB_API_KEY = "your_abuseipdb_api_key"
5 
6def enrich_ip(ip: str) -> dict:
7 result = {"ip": ip}
8 
9 # VirusTotal IP lookup
10 vt_url = f"https://www.virustotal.com/api/v3/ip_addresses/{ip}"
11 vt_resp = requests.get(vt_url, headers={"x-apikey": VT_API_KEY})
12 if vt_resp.status_code == 200:
13 vt_data = vt_resp.json()
14 stats = vt_data.get("data", {}).get("attributes", {}).get("last_analysis_stats", {})
15 result["vt_malicious"] = stats.get("malicious", 0)
16 result["vt_suspicious"] = stats.get("suspicious", 0)
17 
18 # AbuseIPDB lookup
19 abuse_url = "https://api.abuseipdb.com/api/v2/check"
20 abuse_resp = requests.get(
21 abuse_url,
22 headers={"Key": ABUSEIPDB_API_KEY, "Accept": "application/json"},
23 params={"ipAddress": ip, "maxAgeInDays": 90}
24 )
25 if abuse_resp.status_code == 200:
26 abuse_data = abuse_resp.json().get("data", {})
27 result["abuse_confidence_score"] = abuse_data.get("abuseConfidenceScore", 0)
28 result["abuse_total_reports"] = abuse_data.get("totalReports", 0)
29 
30 return result
31 
32# Example usage
33print(enrich_ip("185.220.101.45"))

This works. The honest assessment of the DIY path:

  • You own the maintenance burden. API changes, new fields, deprecated endpoints — all yours to fix.
  • You are still rate-limited on the free tier and will need to implement retry logic and throttling.
  • Adding a third or fourth source multiplies the integration surface proportionally.
  • Output normalization is your responsibility. Different analysts querying different scripts produce inconsistent results.

For periodic, low-volume enrichment — processing a weekly threat hunting sweep, for example — this approach is entirely reasonable. For anything approaching production alert triage, the maintenance cost typically exceeds the cost of a paid API.


When to Go Paid

The case for a paid enrichment API strengthens as any of the following become true:

Volume exceeds free tier limits regularly. If you are hitting daily quotas before noon, a paid tier pays for itself in analyst time recovered.

You are querying more than one free source. The moment you are maintaining integrations with two or three APIs, you are already paying in engineering time. Consolidating to one normalized API reduces that cost.

Enrichment is part of an automated SOAR playbook. Automated pipelines need reliability. Free community APIs are not designed or guaranteed to support production-grade automation.

Your domain reputation or IP reputation checks need consistent schema. Downstream correlation — flagging when an IP scored malicious on two independent sources, for example — requires normalized data. Free APIs do not provide that.

You need audit trail or historical lookup capability. Many paid platforms retain query history and support point-in-time indicator lookups that free APIs do not.


Evaluate DFIR Lab's approach with our free tools: exposure scanner for domain intelligence and domain lookup for DNS and reputation analysis.

Benchmark free vs paid response quality directly. The DFIR API Playground runs the same indicator through 14+ aggregated sources and returns a normalized JSON response — 10 free calls per week, no signup. Paste in an IOC you already looked up on VirusTotal or AbuseIPDB and see the trade-off between a single-source free lookup and a consolidated paid one for yourself.

Conclusion

Free IOC enrichment APIs are not a trap — they are genuinely useful, and several of them (VirusTotal, AbuseIPDB, OTX) should be in every SOC analyst's toolkit for manual investigation. The limitations appear at the edges: volume, automation, normalization, and reliability.

Paid options range from entry-level ($29/month for Pulsedive or DFIR Lab Starter) to enterprise-grade (Recorded Future, VirusTotal Premium) with correspondingly different capabilities and audiences. The right choice depends on your team's alert volume, automation maturity, and budget — not on marketing claims.

If your team is hitting free tier limits regularly or maintaining brittle multi-API enrichment scripts, a consolidated paid API will typically recover more analyst time than it costs. Start with a free trial or credit allocation to validate integration before committing.

The DFIR Lab Platform offers 100 free credits per month to evaluate the workflow — no commitment required. Use code LAUNCH50 at platform.dfir-lab.ch to get started. Full enrichment API documentation is at platform.dfir-lab.ch/docs/enrichment, and the CLI reference is available via dfir-cli --help.


Related reading: IOC Enrichment · Indicators of Compromise · IP Reputation · Domain Reputation · Threat Intelligence · SOAR

Table of Contents

  • Free IOC Enrichment Options
  • VirusTotal Community API
  • AbuseIPDB
  • OTX AlienVault (now AT&T Cybersecurity)
  • URLhaus by abuse.ch
  • Shodan
  • The Limitations of Free Tiers
  • Paid IOC Enrichment Options
  • VirusTotal Premium
  • Recorded Future
  • Pulsedive
  • DFIR Lab Platform
  • What Paid Tiers Actually Get You
  • The DIY Approach: Building Your Own Enrichment Script
  • When to Go Paid
  • Conclusion
Share on XShare on LinkedIn
DFIR Platform

Incident Response. Automated.

Analyze phishing emails, enrich IOCs, triage alerts, and generate forensic reports — from your terminal with dfir-cli or through the REST API.

Phishing Analysis

Headers, URLs, attachments + AI verdict

IOC Enrichment

Multiple threat intel providers

Exposure Scanner

Attack surface mapping

CLI & API

Terminal-first, JSON output

Start FreeFree tier · No credit card required

Related Research

IOC EnrichmentThreat Intelligenceapi+1

VirusTotal API Alternative: Cheaper Multi-Source IOC Enrichment for Security Teams

VirusTotal is the industry standard for IOC enrichment, but its rate limits and enterprise pricing leave small and mid-size teams behind. Here's how DFIR Platform compares as a VirusTotal API alternative for SOC analysts and MSSPs.

Apr 8, 20269 min read
SplunkIOC EnrichmentCustom Search Command+3

DFIR Platform + Splunk: IOC Enrichment via Custom Search Commands

Build a Splunk custom search command that enriches IOCs via DFIR Platform API. Includes Python code, commands.conf configuration, packaging as a Splunk app, and example SPL queries.

Apr 14, 202611 min read
Threat IntelligenceiocIOC Enrichment+3

IOC Enrichment Explained: Why Multi-Source Threat Intelligence Matters

Apr 22, 202610 min read