Explainable
Every answer carries an evidence chain — which source said it, when, with what confidence. The retrieval trace is exposed too. Black-box TI is not OK anymore.
OmniIntel is the multi-tenant TI API. Indicators, CVEs, actors, malware, MITRE TTPs — answered with evidence chains, retrieval traces, and graph context. STIX 2.1 / TAXII 2.1 native. Region-resident. Agentic.
// Look up any indicator. Get the full evidence chain back.
import { OmniIntel } from "@omni-intel/sdk";
const ti = new OmniIntel({ apiKey: process.env.OMNI_INTEL_KEY });
const result = await ti.enrich("http://evil.example/payload.exe");
console.log(result.verdict); // → "malicious"
console.log(result.confidence); // → 0.92
console.log(result.evidence[0]); // → { source: "abusech/urlhaus",
// fetched_at: "2026-05-13T08:21:11Z",
// confidence: 0.8,
// snippet: "URLhaus: malware_download …"
// }
console.log(result.trace); // → { retrievers: [{ name: "lexical",
// hits: 3,
// latency_ms: 12 }] }The TI space has well-funded incumbents. Generic "feeds plus an LLM" loses. We win on six specific axes.
Every answer carries an evidence chain — which source said it, when, with what confidence. The retrieval trace is exposed too. Black-box TI is not OK anymore.
GraphRAG over a Neo4j entity graph. Multi-hop walks: actor → campaign → TTPs → IOCs → sector. Leiden communities cluster related intel automatically.
First-class MENA / GCC coverage and KSA data residency. Tenant data never leaves its region — not in queries, not in LLM calls, not in logs. Provable at audit.
An agent plans the lookup — which feed, which retriever, which enrichment. Critiques the evidence. Escalates to live-fetch when the KB is cold. Built on LangGraph.
OpenAPI 3.1 contract drives the SDKs. JS, Python, Go. Predictable typed responses. Webhook firehose. Sandbox playground. The API your engineers expected.
MSSPs and enterprise tenants can push private indicators that enrich their queries without ever leaking cross-tenant. Tenant isolation is a database-level invariant.
One Bearer key. Every response carries an evidence chain and a retriever trace. STIX 2.1 shapes on the wire.
curl https://api.omniintel.example/v1/enrich/http://evil.example/payload.exe \
-H "Authorization: Bearer $OMNI_INTEL_KEY"
{
"indicator": "http://evil.example/payload.exe",
"type": "url",
"verdict": "malicious",
"confidence": 0.92,
"first_seen": "2025-12-01T12:00:00Z",
"last_seen": "2026-05-13T08:21:11Z",
"related_actors": ["TA505"],
"related_malware": ["Dridex"],
"mitre_techniques": ["T1566.002", "T1059.001"],
"evidence": [
{
"source": "abusech/urlhaus",
"source_url": "https://urlhaus.abuse.ch/url/3000001/",
"fetched_at": "2026-05-13T08:21:11Z",
"confidence": 0.8,
"tlp": "TLP:CLEAR",
"snippet": "URLhaus: malware_download (status=online) — added 2025-12-01."
},
{ "source": "virustotal", "confidence": 0.95, "...": "..." }
],
"trace": {
"retrievers": [
{ "name": "lexical", "hits": 2, "latency_ms": 8 },
{ "name": "semantic","hits": 1, "latency_ms": 14 }
]
}
}curl -X POST https://api.omniintel.example/v1/ask \
-H "Authorization: Bearer $OMNI_INTEL_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "Which actors targeted GCC oil & gas in 2026 using ransomware?",
"max_evidence": 8,
"time_window_days": 365
}'
{
"answer": "Three intrusion-sets stood out: OilRig (APT34), MuddyWater (Mango Sandstorm),
and a newly-tracked cluster TA505-ME using LockBit 4.0 affiliates. Healthcare and refining
were dual-targeted [1][2]. KSA Aramco subsidiaries received the heaviest pressure in Q1 [3].",
"confidence": 0.74,
"evidence": [
{ "source": "mitre/attack", "snippet": "G0049 OilRig — refining sector pivots …",
"confidence": 0.85, "tlp": "TLP:CLEAR", "fetched_at": "2026-05-09T…" },
{ "source": "saudiCERT", "snippet": "Q1 advisory — credential harvesting …",
"confidence": 0.78, "tlp": "TLP:GREEN", "fetched_at": "2026-04-22T…" }
],
"trace": {
"retrievers": [
{ "name": "graph", "hits": 11, "latency_ms": 142 },
{ "name": "hybrid", "hits": 6, "latency_ms": 88 },
{ "name": "semantic","hits": 4, "latency_ms": 46 }
],
"agent_steps": [
{ "step": "classify", "decision": "graph_walk + free_form" },
{ "step": "plan", "decision": "graph -> hybrid -> semantic" },
{ "step": "critique", "decision": "evidence sufficient (4 indep. sources)" }
]
}
}curl https://api.omniintel.example/v1/cve/CVE-2025-12345 \
-H "Authorization: Bearer $OMNI_INTEL_KEY"
{
"id": "CVE-2025-12345",
"published_at": "2025-11-04T00:00:00Z",
"cvss_v3": 9.8,
"epss": 0.94,
"kev": true,
"kev_added_at": "2025-11-12T00:00:00Z",
"actors_exploiting": ["APT34", "TA505"],
"public_pocs": ["https://github.com/example/cve-2025-12345-poc"],
"affected_products": ["Fortinet FortiOS 7.0.0 - 7.2.3"],
"fix_available": true,
"evidence": [
{ "source": "cisa/kev", "fetched_at": "2025-11-12T13:00:00Z", "confidence": 1.0 },
{ "source": "nvd/cve", "fetched_at": "2025-11-04T18:00:00Z", "confidence": 1.0 }
]
}curl -X POST https://api.omniintel.example/v1/graph/traverse \
-H "Authorization: Bearer $OMNI_INTEL_KEY" \
-H "Content-Type: application/json" \
-d '{
"start": { "type": "threat-actor", "id": "APT34" },
"hops": 3,
"edge_types": ["uses", "targets", "indicates"]
}'
{
"nodes": [
{ "id": "APT34", "type": "threat-actor", "attrs": { "name": "OilRig", "country": "IR" } },
{ "id": "T1566.002", "type": "attack-pattern", "attrs": { "name": "Spearphishing Link" } },
{ "id": "indicator-89a…", "type": "indicator", "attrs": { "value": "phish.example" } },
{ "id": "GCC-OilGas", "type": "sector", "attrs": { "region": "ksa,uae,kw" } }
],
"edges": [
{ "from": "APT34", "to": "T1566.002", "type": "uses" },
{ "from": "T1566.002", "to": "indicator-89a…", "type": "indicates" },
{ "from": "APT34", "to": "GCC-OilGas", "type": "targets" }
]
}Twelve canonical operations cover IOC enrichment, vulnerability context, actor and malware profiles, MITRE TTPs, free-form questions, graph walks, TAXII bulk pulls, webhook subscriptions, and BYOI ingestion.
/v1/enrich/{indicator}/v1/cve/{id}/v1/actor/{name}/v1/malware/{name}/v1/ttp/{id}/v1/ask/v1/graph/traverse/v1/feeds/* (TAXII 2.1)/v1/webhooks/v1/private/submit/v1/attribute/v1/rules/{stix,sigma,yara,kql}A canonical entity model under five stores. Five retrievers above. One agent that orchestrates. Every step is observable, every answer cites its source.
25+ source workers feed STIX 2.1 into the canonical store.
Postgres truth · pgvector · Neo4j graph · OpenSearch · S3 artifacts.
Five strategies. Lexical, semantic, graph, hybrid-RRF, live-fetch.
Classify → plan → retrieve → critique → synthesise → cache.
Three layers — gateway, service, and Postgres RLS. Every row carriestenant_idand connections setSET LOCAL omni.tenant_idper checkout. A logic bug in any single layer can't leak data.
Western TI feeds under-cover the region. OmniIntel is built the other way round: KSA data residency from day 0, regional sources upgraded to Tier 0, Arabic-aware retrieval, and MSSP-grade multi-tenancy for the region's service providers.
KSA tenants never touch a non-KSA store, LLM endpoint, or log sink. The gateway returns 409 + a Location hint on wrong-region requests — never silent routing.
saudiCERT, UAE CERT, GCC-CERT, Arabic-language forums, MENA-targeted Telegram. A dedicated sub-team owns regional coverage as a moat.
BGE-M3 multilingual embeddings, Arabic OCR for PDF reports, English translations surfaced in the canonical model.
MSSP is a tenant; their customers are sub-tenants. Cross-customer data never crosses, billing-grade metering tags every call.
Every call is metered and tagged by tenant + sub-tenant + endpoint. MSSPs get billable transparency built in.
For prototypes, side projects, and SDK exploration.
For startups and small SOCs that need real coverage.
For MSSPs, MENA / GCC service providers, and large enterprises.
One Bearer key. Twelve endpoints. Evidence chains under every answer. Get building in under five minutes.