Das ganze Internet, nur einen HTTP-Aufruf entfernt.
Die athorion API ist eine JSON-REST-API, betrieben aus Deutschland mit Scans aus unserem eigenen Netz in Darmstadt (AS62023). Sie kann drei Dinge: den nicht-intrusiven Internet-Index durchsuchen, einen vollständigen On-Demand-Sicherheitsscan jedes öffentlichen Ziels ausführen und als PDF liefern, und unserer Verteidigungs-KI (Manta für schnelle Triage, Nautilus für tiefes Reasoning) faktenbasierte Fragen stellen. Alle Anfragen gehen per HTTPS an die Basis-URL unten.
BASEhttps://app.athorion.io/v1
Authentifizierung & Scopes
Senden Sie Ihren Schlüssel als Bearer-Token im Header Authorization. Schlüssel beginnen mit ath_ und werden nur einmal bei der Erstellung angezeigt. Kunden erstellen Schlüssel in der Konsole unter API; Partner-Schlüssel vergibt der Plattformbetreiber.
Jeder Schlüssel hat einen Scope, der festlegt, welche Endpunkte er aufrufen darf. Eine Anfrage außerhalb des Scopes liefert 403.
ScopeErreicht
scanNur den On-Demand-Scan - /v1/scans und seine Unterpfade.
llmNur die Verteidigungs-KI (Manta & Nautilus) - /v1/models, /v1/ask, /v1/ask/stream.
mcpDie Werkzeuge des Model Context Protocol - Suche, On-Demand-Scans, Exposure-Vorschau und die Verteidigungs-KI. Genutzt vom gehosteten MCP-Server; nur in bezahlten Tarifen.
fullGanz /v1, einschließlich Suche. Standard für Konsolen- und Kundenschlüssel.
Rate Limits & Kontingent
Jeder Schlüssel hat optional ein Tageskontingent (Anfragen pro Kalendertag, UTC) und optional ein stündliches Rate Limit (Anfragen in einem gleitenden 60-Minuten-Fenster). Beides legt der Betreiber pro Schlüssel fest; nicht gesetzt heißt unbegrenzt. Wird eines davon überschritten, antwortet die API mit 429 und dem errorquota_exceeded oder rate_limited.
HTTP/1.1 429 Too Many Requests
{
"detail": {
"error": "rate_limited",
"message": "hourly rate limit reached (60/hour)"
}
}
On-Demand-Scans sind zusätzlich durch eine plattformweite Obergrenze pro Mandant und die globale Scan-Sperrliste begrenzt (private und reservierte Adressbereiche werden nie gescannt).
Fehler & Statuscodes
Fehler liefern einen JSON-Body mit einem Feld detail: einem String oder einem Objekt mit stabilem error-Code und lesbarer message.
HTTPerrorBedeutung
400invalid_targetDas Ziel ist keine Domain oder öffentliche IP oder ließ sich nicht auflösen.
401-API-Schlüssel fehlt oder ist ungültig.
403-Der Scope des Schlüssels erlaubt diesen Endpunkt nicht.
404-Scan-ID für diesen Schlüssel nicht gefunden.
429quota_exceeded · rate_limitedTageskontingent oder stündliches Rate Limit erreicht.
503llm_unavailableDie Verteidigungs-KI (LLM-Backend) ist auf dieser Instanz nicht konfiguriert.
MCP-Server
Steuern Sie die ganze Plattform aus einem KI-Agenten über das Model Context Protocol. Der gehostete Server unter mcp.athorion.io stellt Index-Suche, On-Demand-Scans, Exposure-Checks und die Verteidigungs-KI (Manta & Nautilus) als MCP-Tools bereit. Authentifizieren Sie sich mit einem Schlüssel mit dem Scope mcp (in der Konsole erstellen; Tarif Cyber Intelligence oder Ecosystem). Jeder Aufruf läuft mit Ihrem Schlüssel, Kontingent und Modellbudget - Scans bleiben nicht-intrusiv und durch die Authorization Plane abgesichert.
Clients mit Remote-Unterstützung verbinden sich direkt mit https://mcp.athorion.io/mcp und einem Header Authorization: Bearer.
GET/v1/searchscope: full
Index durchsuchen
Suche im nicht-intrusiven Tier-1-Index. Die Filter in q sind port:product:cve:vuln:category:net:has_vuln:sev: plus Freitext. Sortiert nach Anzahl der Schwachstellen, dann nach letzter Sichtung.
PARAMETER
q
string
Abfrage, z. B. port:3389 category:rdp has_vuln:true.
port
int
Kurzfilter für einen einzelnen Port.
ip
string
Kurzfilter für ein Netz oder eine IP (net:).
scan
bool
true führt einen Live-Deep-Check eines einzelnen Hosts aus, der nicht aktuell im Index ist.
Stellt einen vollständigen, nicht-intrusiven Tier-2-Scan einer beliebigen öffentlichen Domain oder IP in die Warteschlange (Ports, TLS, HTTP-Banner, versionsbasierte CVEs). Kein Eigentumsnachweis nötig. Liefert eine Job-ID zum Abfragen. Eine optionale webhook_url erhält einen POST, sobald der Scan fertig ist.
PARAMETER
target
body · Pflicht
Domain oder öffentliche IPv4.
webhook_url
body
Öffentliche http(s)-URL, die nach Abschluss des Scans aufgerufen wird (überschreibt den Standard des Schlüssels).
Nach dem Start eines Scans regelmäßig abfragen. Während der Ausführung ist statusqueued oder running. Bei done sind findings (Schweregrad, CVE, KEV, Kategorie) und eine pdf_url gefüllt. refused/error enthalten einen refusal_reason.
Der Katalog des KI-Routers: manta (schnelle Triage, Standard) und nautilus (tiefes Reasoning). Auswahl mit ?model= bei /v1/ask (unbekannt oder leer fällt auf den Standard zurück). available:false heißt, dieser Alias ist auf dieser Instanz nicht konfiguriert.
Faktenbasierte Fragen und Antworten. Das Modell führt einen nicht-intrusiven Live-Deep-Check jedes in der Frage genannten Hosts aus und antwortet nur auf Basis dieser Belege (erfindet nie Findings). Liefert die Antwort, das antwortende Modell und die geprüften Hosts.
PARAMETER
q
body · Pflicht
Die Frage. Jede darin genannte Domain/IP wird live geprüft.
model
body
manta (schnell) oder nautilus (tief). Standard manta.
history
body
Optionales JSON-Array früherer {q, a}-Runden als Kontext.
{
"model": "nautilus",
"model_label": "Nautilus",
"answer": "mail.example.de exposes SMTP on 25 and\n587 with STARTTLS; SPF and DMARC are present,\nDKIM is missing. No critical CVE on the banner.",
"grounded_on": ["mail.example.de"]
}
GET/v1/ask/streamscope: llm
Antwort streamen (SSE)
Server-Sent-Events-Variante von /v1/ask: think-Deltas (das Reasoning des Modells), dann answer-Deltas (der Inhalt), dann ein done-Event. Gleiche Faktenbasis, gleiche Modelle.
event: think
data: Running a live deep check of
example.de (DNS, mail, TLS, ports, CVEs) ...
event: answer
data: example.de has no critical exposure.
event: done
data: {}
POST/v1/chat/completionsscope: llm
OpenAI-kompatibler Chat
Direkter Ersatz für das OpenAI-SDK und Agent-Clients wie Crush, Cursor oder Continue: Basis-URL https://app.athorion.io/v1, Ihr Schlüssel als API-Key. Unterstützt stream, tools (Aufrufe kommen als echte tool_calls zurück) und JSON-Modus. Anders als /v1/ask ohne Live-Scan - den Kontext liefern Sie selbst.
PARAMETER
model
body · Pflicht
nautilus (denkt zuerst) oder manta (antwortet direkt); full / flash funktionieren auch, unbekannte Namen liefern 400.
messages
body · Pflicht
OpenAI-Chat-Nachrichten.
stream
body
true für Server-Sent Events im OpenAI-Chunk-Format.
tools
body
Funktions-Tools; die Aufrufe des Modells kommen als tool_calls zurück.
curl -X POST "https://app.athorion.io/v1/chat/completions" \
-H "Authorization: Bearer $ATHORION_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"nautilus","messages":[{"role":"user","content":"Explain the risk of RDP without NLA."}]}'
Ein schlanker Kommandozeilen-Client für diese API: Scan starten, PDF abholen und mit der Verteidigungs-KI sprechen, direkt aus Ihrem Terminal. Er liest Ihren Schlüssel aus ATHORION_KEY und wählt das Modell mit --model, mit denselben Aliasen recon / deep wie /v1/ask.
pip install athorion
export ATHORION_KEY=ath_••••••••
# full non-intrusive scan of a target, wait, save the PDF
athorion scan example.de --pdf report.pdf
# ask the defence AI, grounded on a live check
athorion ask "is mail.example.de exposed?" --model deep
# pipe context in, like any unix tool
cat targets.txt | athorion scan --stdin --json