What OmniIntel is.

A multi-tenant threat-intelligence engine. Other security tools send it indicators, CVEs, actors or plain questions, and get back structured answers with the evidence attached.

The one-paragraph answer

OmniIntel ingests threat data from upstream open-source and commercial feeds, plus whatever you submit yourself, and reconciles it into one canonical record per entity. It keeps the provenance of every claim — which source said it, when it was fetched, how confident that source is — and it keeps that provenance attached all the way through to the answer. A SIEM, SOAR, EDR or scanner talks to it over a typed REST API or pulls STIX 2.1 objects from TAXII 2.1 collections. Everything is scoped to a tenant, and isolation is enforced by the database rather than by application code.

The distinction that matters: a feed hands you a list and leaves the judgement to you. OmniIntel is built so that you can always ask why — and get an answer that points at a specific retained document.

The shape of it

UPSTREAM + YOUR OWN INTELCITED ANSWERFetchconnectorsNormaliseSTIX 2.1Dedupe + linkenrichmentStoreKB + graphRetrievehybridAnswer+ evidenceprovenance is attached at Fetch and travels with the record to Answer
Fig. Six stages, fetch to answer. Provenance is attached at the first stage and travels with the record.

Six stages. Each page below covers one part of this in depth; the end-to-end pipeline page walks the whole path with the tables and services named at each step.

What is actually running

  • 10 upstream connectors on per-connector cadences — abuse.ch (URLhaus, ThreatFox, MalwareBazaar), AlienVault OTX, CISA KEV, EPSS, GitHub GHSA, NVD, MITRE ATT&CK, ransomware.live.
  • 67 tables in one Postgres with pgvector. 14 of them carry FORCE ROW LEVEL SECURITY — those are the tenant-scoped ones.
  • Five canonical entity types — indicators, vulnerabilities, actors, malware and MITRE attack patterns — plus a knowledge base and a CTI graph over them.
  • 22 mounted route groups on the public API gateway, and official TypeScript and Python SDKs.
  • Six organisation roles mapped to a 16-entry capability catalogue, checked server-side at the point of use.
How to read these docs

Everything here describes what is in the codebase today, and says so when something is scaffolded, partial or not built. Where the repo's own README is aspirational — it mentions Neo4j and OpenSearch — these pages describe what actually runs: Postgres with pgvector is the canonical store, and the Node-side knowledge base and graph are canonical.

Gaps are called out in amber boxes like this one rather than left for you to discover.

Signed in and wiring up a key?

These pages explain the system. For the hands-on integration walkthrough — key anatomy, auth header, scopes, region routing, error codes, webhook signatures, plus links to your own keys and the sandbox — open Docs & SDKs in the portal. It requires a session.

Every section

Documentation — OmniIntel · OmniIntel