The product

One console. Every device. Every DNS query.

From the resolver to the SOC, olladns is the modern DNS security platform. Six interconnected surfaces — built for teams who care about milliseconds and audit trails.

API & MCP Per-device Threat Intel v2 Query Log AI Detection Policies Audit + Webhooks Privacy controls Integrations
API + MCP

Configure DNS from code, CI, or your AI editor.

Every setting is a REST endpoint or an MCP tool. The dashboard is read-only on purpose — config changes have to be versionable, diff-able, and auditable.

57 REST endpoints
api.olladns.com · OpenAPI 3.1 with x-required-scopes · auth via JWT or scoped API key.
54 MCP tools
mcp.olladns.com · auto-generated from OpenAPI via FastMCP. Connect Claude, Cursor, Continue, Goose, any MCP client.
16 granular scopes
Mint a read-only key for your SIEM, a write key for CI, a tool-specific key per AI agent. Revoke independently.
HMAC-signed webhooks
Every audit event fans out to your SIEM. SHA-256 signed bodies, timestamp + replay protection, wildcard event subscriptions.
Open developer docs
api.olladns.com/api/v1
# Block a domain across all of tenant 11
PUT /policies/custom-rules
x-api-key: qd_***
{"block":["evil.example"],"allow":[]}
# Register a device — get its DoH URL
POST /devices
{"slug":"bob","display_name":"Bob - MBP"}
→ doh_url: dns.olladns.com/dns-query/<uuid>--bob
# Triage every DGA suspect this week
GET /analytics/top-dga?hours=168
→ [{query_name, max_score, count, unique_clients}, ...]
/devices
Device
DoH URL
Queries 24h
bob-laptop
…--bob-laptop
14,820
alice-laptop
…--alice-laptop
9,233
conference-room
…--conference-room
421
Per-device identification

Every lookup tagged to the device that made it.

Register a device, get its unique DoH URL. AGH writes the device suffix into every query log row, so every analytics endpoint can answer "which device looked up X?"

Unique DoH URL per device
dns.olladns.com/dns-query/<tenant>--<slug> — point your laptop, your phone, your router each at their own.
Device-level analytics
"Top devices by queries" tile + every other aggregate slice-able by device slug.
Last-seen telemetry
First-seen / last-seen timestamps surface roaming gaps and ghost devices.
Query Log

Forensic visibility, streaming live.

A high-throughput record of every DNS lookup on your network — searchable in milliseconds, exportable in seconds.

Live tail
Pause, scroll, filter — the stream waits for you. Up to 50k events/sec per tenant without dropping rows.
Click into any row
See the resolver, the device, the matched rule, the AI confidence, and the policy chain that produced the verdict.
Long retention
90 days hot, 13 months cold. Hot search returns in <500ms across 4B events.
/query-log
live · 2,841/s All actions ▾ All categories ▾ All devices ▾ ⌘K Search
TimeActionDomainCategoryDevice
09:42:18blocklogin-microsoft-secure.cfPhishingMacBook-Pro-Riley
09:42:17allowapi.github.comProductivityjenkins-runner-03
09:42:16blockc2-server-relay.icuMalware C&CWin10-Finance-08
09:42:15allowcdn.cloudflare.comCloudvpn-lax-09
09:42:13blockpaypal-verify-update.topPhishingiPad-Pro-Mia
/ai-detection
Detections / 24h
744
FP rate
0.04%
Models
Phishing lookalike
v4.2.1 · 99.6%
DGA detector
v3.8.0 · 97.2%
Newly registered domain
v2.4.4 · 94.1%
Typosquat
v3.0.2 · 98.4%
C2 beacon timing
v1.2.0 · 89.7%
AI Detection

Five models. One verdict. Zero day-zero excuses.

Our models are trained on 180+ billion daily queries across thousands of customers. They see new threats before threat-intel vendors finish writing the report.

Phishing lookalike
Visual + structural similarity to your protected brands. Catches login-m1crosoft-secure.cf within an hour of registration.
DGA & algorithmic C2
Statistical n-gram + entropy classifier. Blocks malware command-and-control even when the hostname has never been seen.
Feedback loop
One click confirms or rejects a detection. Models retrain nightly with your verdicts.
Policies

Filtering rules that map to humans, not IPs.

Build policies from 80+ content categories, custom block/allow lists, schedules, and threat sources. Assign them to sites, groups, or individual devices.

80+ curated categories
From phishing & malware to streaming & social. Each updated continuously by our research team.
Identity-aware
Sync from Entra ID, Okta, Google Workspace. Engineering gets dev tools, Finance gets locked down.
Time-of-day & geofenced rules
Strict during business hours, looser after. Different policies for office vs roaming networks.
Branded block page
Your logo, your support contact, your messaging. Reduce helpdesk tickets to almost zero.
/policies
Default + Strict
4 sites · 480 devices edit
Phishing & Deception
Malware & Ransomware
Botnet C&C
Cryptomining
Anonymizers
Adult Content
Social Media
Streaming
Roaming Clients

Protected anywhere. Felt nowhere.

Lightweight clients for every major platform. Encrypted DoH/DoT to the nearest POP. Same policy whether the laptop is on the office Wi-Fi, an airport, or a hotel.

macOS
Intel · Apple Silicon
Windows
10 · 11
iOS
MDM-deployable
Android
EMM-deployable
ChromeOS
DoH config
Linux
systemd-resolved

Push silently via Jamf, Intune, Kandji, Workspace ONE, or Google Endpoint Management. No popups, no certificates to install, no user interaction.

/roaming
Active
614
Protected
608
Alerts
4
Stale
2
MacBook-Pro-Riley
macOS 14.4
protected
iPhone-15-CEO
iOS 17.5
protected
Win10-Finance-08
Windows 11
alert
Android 14
protected
Surface-IT-3
Windows 11
stale
Threat Intel v2

Inline classifiers + curated blocklists. No vendor magic.

Two transparent classifiers run at ingest, with zero per-query vendor cost: a DGA scorer (entropy + ngram + vowel-ratio features) and a typosquat detector (Damerau-Levenshtein ≤ 2 with homoglyph normalization). Stacked on a curated catalog of 30 community blocklists that you opt into per-tenant.

DGA classifier
~280 LoC

Feature-based scoring (entropy, character n-grams, vowel ratio). Surfaces via /analytics/top-dga; tunable threshold (default 0.7). No auto-block by default — flagged for review.

Typosquat detector
~230 LoC

Damerau-Levenshtein distance ≤ 2 after homoglyph normalization (Cyrillic 'а'→Latin 'a', etc.). Length-band pruning keeps the per-query cost bounded. Catches g00gle.com, githab.com, paypa1.com.

Blocklist catalog
67 lists

Curated community blocklists across 15 categories: phishing, malware, ads, NRD, DGA, NSFW, gambling, telemetry, AI scrapers, bypass-bypass (Tor + DoH), regional (IN/RU/JP/CN/PL), and more. Per-tenant subscriptions reconciled to AGH automatically every 5 minutes.

Catalog includes
Hagezi Pro (ads) OISD Big (general) URLhaus (malware) ThreatFox (malware) Phishing Army Extended OpenPhish Disconnect Tracking EasyPrivacy Hagezi NRDs (30d) Suspicious TLDs Hagezi DoH bypass Tor exit nodes +18 more
Allowlist-only mode

For when "block what's bad" isn't strict enough.

Per-tenant default-deny toggle flips resolution from blocklist to allowlist: nothing resolves unless explicitly permitted. The Fortune-500-healthcare / SCIF / kiosk mode. Layered under existing per-tenant allow entries.

Protect-list

Per-tenant brand defense.

Push your owned domains (yourcompany.com, internal-tool.com) to /policies/protect-list. The typosquat detector scores incoming queries against your list — catches phishing campaigns built around your specific brand within minutes of the first DNS lookup.

Audit + Webhooks

Every change attributed. Every event delivered.

Every API mutation writes an audit-log row tagged with the actor (human session or specific agent token). Every audit event can fan out to your SIEM via HMAC-signed webhook.

Actor-attributed audit
Each row carries actor_type + user_id or api_key_id. Filter by humans, by agents, by system actions.
Per-tenant retention
1–365 days, configurable. Pair with per-tenant logs anonymization for GDPR / DPDP setups that need to drop client IPs at ingest.
Wildcard webhook events
Subscribe to policy.*, threat.*, device.create, or *. Bodies HMAC-SHA256 signed; timestamp header for replay protection.
CSV / NDJSON export
/analytics/export for ad-hoc pulls into your data lake.
/audit-logs
WHEN
ACTOR
ACTION
14:22
agent #15
policy.custom_rules.update
14:18
user #23
device.create
14:11
agent #15
policy.threat_intel.update
14:02
system
blocklists.reconcile
Privacy controls

Per-tenant levers for GDPR, DPDP, HIPAA, FERPA.

Client-IP anonymization

Flip log_anonymize_clients per tenant; the AGH-to-ClickHouse poller drops source IPs at ingest. Analytics still slice by device slug — privacy without losing device-level visibility.

Configurable retention

Per-tenant log_retention_days from 1 to 365. ClickHouse TTL is applied at partition rotation. Default 30; healthcare tenants typically choose 90; a few choose 1.

Bypass-bypass blocklists

Subscribe to the Hagezi DoH-bypass and Tor-exit catalog entries to block users from circumventing your DNS filter via third-party encrypted resolvers.

Integrations

Slots into the stack you already operate.

Identity, SIEM, MDM, alerting — wire olladns to the rest of your security graph in minutes, not weeks.

IDENTITY
EN
Microsoft Entra ID
Sync users + groups, SSO
connect
OK
Okta
SCIM provisioning + SSO
connect
GO
Google Workspace
Directory + SSO
connect
SIEM
MS
Microsoft Sentinel
Native log analytics connector
connect
SP
Splunk
HEC token, 1-click
connect
DD
Datadog
Logs + dashboards
connect
EL
Elastic
ECS-formatted streams
connect
MDM
JF
Jamf Pro
Push roaming client + profile
connect
IN
Intune
Windows + iOS deployment
connect
KA
Kandji
macOS Blueprint
connect
WS
Workspace ONE
Cross-platform
connect
ALERTS
SL
Slack
Channel routing per severity
connect
PD
PagerDuty
Page on critical
connect
MT
Microsoft Teams
Adaptive cards
connect
WH
Webhooks
Pipe to anything
connect

Want to see it on your own DNS traffic?

Free 14-day trial. Connect 50 devices in 15 minutes. No commitment.