▸ API-Referenz
# read-only json api · cursor-paginierung · kostenloser Schlüssel aus dem Dashboard
openapi.json
realtime.md
▸ Echtzeit-Stream (WebSocket)
Jede neu indexierte Domain – aus CT-Logs und Zone-Dateien – wird als JSON-Frame über einen einzelnen WebSocket gesendet. Kein API-Schlüssel erforderlich.
endpoint
wss://dnsniffer.com/ws
Query-String-Filter (optional)
# nur .com wss://dnsniffer.com/ws?tld=com # nur Domains, die "acme" enthalten (3–64 Zeichen, ohne Beachtung der Groß-/Kleinschreibung) wss://dnsniffer.com/ws?q=acme # beides wss://dnsniffer.com/ws?tld=com&q=acme
Frames
// bei Verbindung (einmal) { "type": "hello", "server": "dnsniffer-ws/1", "filters": { ... }, "heartbeat_ms": 30000 } // für jede neue Domain { "type": "domain", "id": "1234567890", "name": "foo.com", "tld": "com", "created_at": "2026-05-16T16:00:00Z" }
JavaScript-Beispiel
const ws = new WebSocket('wss://dnsniffer.com/ws?tld=com');
ws.onmessage = (e) => {
const m = JSON.parse(e.data);
if (m.type === 'domain') console.log(m.name);
};Node-Beispiel
import WebSocket from 'ws';
const ws = new WebSocket('wss://dnsniffer.com/ws?q=acme');
ws.on('message', (data) => {
const m = JSON.parse(data.toString());
if (m.type === 'domain') console.log(m.name);
});- ▸ Server pingt alle 30s; Clients, die einen Pong verpassen, werden getrennt
- ▸ Pro-Client-Rate-Limit: 200 Nachrichten/Sek. (Burst-Schutz während Bulk-Ingest)
- ▸ wieder verbinden durch einfaches Öffnen des Sockets – kein Auth-Handshake
- ▸ siehe /new für eine Live-Demo und CSV-Massenalternativen