Zum Inhalt springen
DSGVO-konform. Gehostet in DE.
14 Tage kostenlos testen →

API-Referenz

REST-API mit über 230 Endpoints über die gesamte Plattform. Basis-URL: https://api.xictraq.com/api. Auth via Bearer-Token oder X-API-Key Header.

# Schnellstart

API-Key unter Einstellungen > API-Keys erstellen. Der Key beginnt mit xtraq_ und wird nur einmal angezeigt.

$ curl -H "Authorization: Bearer xtraq_IHR_KEY" \
       https://api.xictraq.com/api/websites

[{"id":"019d7e3c-...","name":"Shop","url":"https://shop.invalid","is_up":true}]

Auth

Authorization: Bearer xtraq_... oder X-API-Key: xtraq_...

Rate-Limit

1.200 Req/min/User; je Key optional enger

Permissions

read (GET) / write (POST/PUT/DELETE)

Resources

# Vollständige Endpoint-Referenz

Live aus der OpenAPI-Spezifikation generiert — immer aktuell. Die ausführlichen Beispiele weiter unten decken die häufigsten Endpoints ab.

Lädt …

# Plan-Limits

RessourceFreeStarterBusinessAgency
Websites131050
Scans/h1030100300
Pageviews/Mo10k100k1M10M
Heartbeats210100Unbegr.
API-Endpoints—1025100
Keywords (noch nicht freigeschaltet)——50500
Team-Mitglieder—25Unbegr.
API-Keys10 (nur Geo)10 (nur Geo)1010
Rate-Limit1.200/min1.200/min1.200/min1.200/min

# Websites

# Scans

Wenn die Zielseite Bot-Schutz aktiviert hat (Cloudflare, Imunify, Sucuri u.a.), werden uptime.waf_blocked und privacy.waf_blocked auf true gesetzt. Compliance-Checks wie Impressum/Datenschutz liefern dann null statt false — die Ergebnisse sind in diesem Fall nicht zuverlässig auswertbar. technology.waf zeigt die erkannte WAF (z.B. "Cloudflare", "Sucuri").
dns.ermittelt sagt je DNS-Teilabfrage, ob der Namensdienst geantwortet hat. Ein Merker wie has_spf ist nur dann eine Messung, wenn der zugehörige Eintrag in ermittelt true ist — blieb die Abfrage unbeantwortet, steht der Merker auf false, ohne dass der Eintrag fehlen muss. Werten Sie beide Felder zusammen aus, sonst wird aus einer ausgefallenen Abfrage ein fehlender Schutz.

# Uptime & SSL

# Alerts

# Analytics (Starter+)

# E-Commerce & Shopdaten (Business)

Umsatz, Bestellungen, Produkte und die Daten aus dem Shopware-6-Bestellimport. Die Auswertungen und Shopdaten-Endpunkte verlangen den Business-Tarif; die Shop-Anbindung selbst (shop-integration) nicht, dort nur das Einschalten des Bestellimports. Alle Endpunkte lassen sich mit einem API-Key nutzen, schreibende nur mit Schreibrecht des Keys. Beträge mit der Endung _minor stehen in Cent. Bestellungen aus dem Import ohne Tracker-Kauf zählen in Umsatz, Bestellungen, Produkten und Export mit, nicht in Conversion, Funnel und ROAS. Name, Firma und Kundennummer aus dem Import erscheinen nur mit Kundenzuordnung im Tarif und nie bei neutralisiertem Abruf. Über Freigabelinks kommen nie Kundendaten, weder aus dem Import noch Identitäten des Trackers (Name, Firma, Kunden-ID, external_user_id); die Kennzahlen bleiben.

Stornos herausrechnen: exclude_cancelled
In der Vorgabe zählt jeder Kauf, den der Tracker gemeldet hat, auch wenn die Bestellung im Shop später storniert wurde. Mit exclude_cancelled=1 rechnen /revenue, /analytics/revenue-aggregate, /ecommerce/order-log, /ecommerce/finance, /ecommerce/refunds, /ecommerce/categories, /ecommerce/products, /ecommerce/product-detail, /ecommerce/payment-shipping, /ecommerce/orders, /ecommerce/customers, /shop/summary, /shop/orders und der Bestell-Export diese Tracker-Käufe heraus. Als storniert gilt ein Kauf, dessen vom Bestellimport zugeordnete Bestellung den Bestellstatus cancelled trägt, ohne zugeordnete Bestellung der zuletzt gelesene Stand des Bestellstatus-Abrufs; eine Erstattung zu derselben Bestellung fällt mit heraus. Ist beides ausgeschaltet, ändert der Parameter nichts. Importzeilen betrifft er nicht, eine stornierte Bestellung bekommt nie eine. Jede dieser Antworten trägt cancelled_excluded.
Einrichtung, die acht Leserechte der Rolle, Zählregeln und Fehlerkennungen beschreibt die Seite Shop-Anbindung (Shopware 6).

# Heartbeats

# API-Monitoring (Starter+)

# API-Keys (Business+, Geo-Key in jedem Tarif)

permissions und scopes erfüllen zwei verschiedene Aufgaben: permissions steuert die erlaubten HTTP-Methoden (read = nur GET, write = POST/PUT/PATCH/DELETE), scopes schaltet einzelne Funktionsbereiche frei. Der Wert geo im scopes-Array ist Voraussetzung, damit ein Key die Geo-API nutzen darf — ohne ihn antwortet /geo mit 403 scope_denied. Der Wert neutral liefert jede Antwort dieses Keys ohne Namen, E-Mail-Adressen und Rufnummern. Der Platzhalter * deckt alle Scopes ab, neutral aber nicht — die Neutralisierung wird immer ausdrücklich gesetzt. Den betreiberseitigen Scope admin (kontenübergreifende Lesesicht) deckt er ebenfalls nicht ab; er lässt sich über diesen Endpoint nicht anlegen. Der Klartext-Key wird nur einmal in der Antwort zurückgegeben; danach ist nur noch das key_prefix sichtbar. Ein Key, dessen einziger Scope geo ist, bildet die Ausnahme zur Business-Voraussetzung: er lässt sich in jedem Tarif anlegen, auflisten und widerrufen, gilt dann aber ausschließlich für /geo, /geo/batch und /geo/db — auf jedem anderen Endpoint antwortet er mit 403 scope_denied.

# Neutralisierte Abrufe (DSGVO)

Jeder Endpunkt kann seine Antwort ohne Personendaten ausliefern: Namen, E-Mail-Adressen und Rufnummern fallen weg, alle übrigen Felder bleiben unverändert. Gedacht für die Weiterverarbeitung im Data-Warehouse, im BI-Werkzeug oder bei einem Dienstleister, der die Personendaten nicht braucht.

Drei Wege, ihn einzuschalten

scope "scopes": ["read", "neutral"]
header X-Neutral: 1
query ?neutral=1

Ein Key mit dem Scope neutral liefert dauerhaft neutralisiert, ganz ohne Header und ohne Parameter — das ist der Weg für einen Zugang, den ein Dritter bekommt. Header und Query-Parameter sind der Weg für den eigenen Key, wenn nur ein einzelner Abruf ohne Personendaten laufen soll. Alle drei akzeptieren 1, true, ja oder yes.

GET /team/invitations — normal

[
  {
    "id": "019d8f2a-…",
    "email": "team@firma.invalid",
    "role": "editor",
    "status": "accepted",
    "created_at": "2026-06-14T09:12:00Z"
  }
]

GET /team/invitations?neutral=1

[
  {
    "id": "019d8f2a-…",
    "email": null,
    "role": "editor",
    "status": "accepted",
    "created_at": "2026-06-14T09:12:00Z"
  }
]
Die Kontrolle ist der Antwort-Header X-Neutralisiert: 1. Er steht auf jeder Antwort, die tatsächlich neutralisiert wurde. Fehlt er, enthält die Antwort Personendaten — unabhängig davon, was angefordert war. Wer neutralisierte Daten weiterverarbeitet, sollte auf diesen Header prüfen und nicht auf den eigenen Aufruf vertrauen.

Was entfernt wird

  • Alle E-Mail-Felder (email, owner_email, contact_email, recipient …)
  • Alle Namensfelder (first_name, last_name, owner_name, customer_name …)
  • Ein bloßes name in einem Personen-Objekt (user, owner, member, contact …)
  • Rufnummern (phone, telefon, mobile …)
  • E-Mail-Adressen mitten im Fließtext werden zu [entfernt]

Was bleibt

  • Alle IDs, damit sich Datensätze weiterhin verknüpfen lassen
  • Website-, Monitor- und Key-Namen — die sind keine Personendaten
  • Alle Messwerte, Zeitstempel, Status- und Plan-Felder
  • Struktur und Feldnamen bleiben gleich — geleerte Felder stehen auf null
Grenze der Erkennung: In Freitextfeldern werden ausschließlich E-Mail-Adressen gefunden und ersetzt. Ein Personenname, der in einem Fließtext steht — etwa in einer Notiz oder einer Alarmmeldung — lässt sich nicht zuverlässig als solcher erkennen und bleibt darum stehen. Der Modus nimmt nur weg und fügt nie etwas hinzu; ein versehentlich gesetzter Schalter kann deshalb keine Daten verfälschen, sondern höchstens ein Feld leeren, das gebraucht wird.

# Geo-API (Add-on)

Native, offline IP-Geolokation direkt aus eigenen Indizes — DSGVO-konform, ohne Live-Anfrage an Dritte. Daten stammen aus offenen Quellen. Die Geo-API ist ein Add-on zu jedem Tarif — auch zum Gratis-Tarif — und wird in drei Volumen-Stufen gebucht: Starter (50.000 Lookups/Monat), Pro (500.000) und Business (3 Mio.). Ohne gebuchtes Add-on sind zum Testen 1.000 Lookups pro Monat inklusive.

Authentifizierung

API-Key mit dem Scope geo. Die Geo-Endpoints akzeptieren drei Übergabewege — der Query-Parameter ?key= ist dabei Geo-spezifisch (servertauglich, header-unabhängig):

query ?key=xtraq_…
header X-Api-Key: xtraq_…
header Authorization: Bearer xtraq_…
FeldBedeutung
accuracy_radius_kmGeschätzter Radius in km um die ausgegebenen Koordinaten — kein Punktstandort.
confidenceKonfidenz je Ebene (country/region/city), 0–100. Höher = sicherere Zuordnung.
calling_codeInternationale Telefon-Vorwahl des Landes als Ganzzahl ohne Plus (z. B. 353 für Irland).
currencyLandeswährung als Objekt mit code und symbol (z. B. code EUR, symbol €).
languagesAmts- und Verkehrssprachen des Landes als Array von ISO-639-1-Codes, Hauptsprache zuerst.
networkZugehöriges Netz-Präfix in CIDR-Notation (z. B. 185.60.216.0/22).
rirZuständige Regional Internet Registry (RIPE, ARIN, APNIC, LACNIC, AFRINIC).
connection_typehosting, satellite, relay oder isp — abgeleitete Netzwerkklasse.
is_hosting / is_datacenterIP gehört zu einem Hosting-/Rechenzentrums-Bereich (Server, kein Endkunde).
is_anycastPräfix wird per Anycast aus mehreren Standorten angekündigt (z. B. DNS/CDN).
cloud_providerErkannter Cloud-Betreiber, sofern die Range eindeutig zuordenbar ist (inkl. Azure; sonst null).
is_relayiCloud Private Relay — anonymisierter Apple-Proxy.
is_vpn / is_torBekannter VPN-Ausgang bzw. Tor-Exit-Node.
is_satelliteSatelliten-Internet (z. B. bekannte Satelliten-ASNs).
is_bogonPrivate/reservierte IP (RFC 1918/6890) — nicht öffentlich routbar.
abuse_scoreHeuristische Missbrauchs-Schätzung 0–100 (höher = riskanter). Kein Echtzeit-Reputationsdienst, nur ein Orientierungswert. null, wenn die Reputationslagen nicht gelesen werden konnten.
riskAus abuse_score abgeleitete Einstufung: „niedrig“ (<20), „erhöht“ (<50) oder „hoch“. Bei lang=en englisch: low/elevated/high. null, wenn kein abuse_score vorliegt.
is_euLand ist EU-Mitgliedstaat (für DSGVO-/Geoblocking-Logik).
timezoneIANA-Zeitzonen-Kennung als String; bei mehrdeutiger Zuordnung wird die Haupt-Zeitzone des Landes als Fallback ausgegeben.
time_zoneIANA-Zeitzone mit UTC-Offset, Sommerzeit-Flag und aktueller Lokalzeit.
HTTPerrorUrsache
401missing_api_keyKein API-Key übergeben.
401invalid_api_keyKey unbekannt, inaktiv oder abgelaufen.
403scope_deniedKey besitzt keinen geo-Scope.
422invalid_ipip ist keine gültige IPv4/IPv6.
429rate_limitedPro-Minute-Limit des Keys überschritten.
429quota_exceededMonats-Kontingent erschöpft — Add-on hochstufen.
503db_unavailableOffline-Datenbank (.mmdb) ist nicht verfügbar.
Hinweis zur Genauigkeit: IP-Geolokation ist eine Schätzung, keine exakte Standortbestimmung. Stadt- und Regionsangaben sind je nach Netzbetreiber unterschiedlich präzise (siehe accuracy_radius_km und confidence). Die Daten werden nativ und offline aus offenen Quellen aufgebaut und regelmäßig aktualisiert.

# Rechnungen

# Empfehlungsprogramm

# USt-ID (VIES)

# Account

# Status-Pages (in jedem Tarif)

# Team & Agency

Team-Mitglieder einladen (ab Starter), Client-Portal verwalten (Agency), Agency-Zugriff gewähren (in jedem Tarif).

# Browser-Monitore (Business+)

Playwright-basierte Multi-Step-Skripte: Login-Flows, Checkout, Formulare automatisiert prüfen.

# Reports & Vorlagen (Business+)

Automatisierte Reports erstellen, planen und an Empfänger senden.

# Webhooks (Business+)

JSON-POST bei jedem Alert. Events: alert.opened, alert.resolved. HMAC-SHA256-Signatur.

POST https://hooks.firma.invalid/xictraq
X-Xictraq-Event: alert.opened
X-Xictraq-Delivery: dlv_8f3a91c2d4e6f0a1
X-Xictraq-Signature: sha256=8f3a91...

{
  "event": "alert.opened",
  "delivered_at": "2026-06-20T09:14:07+00:00",
  "data": {
    "alert_id": "019d7e3c-...",
    "incident_id": "019d7e3c-...",
    "type": "downtime",
    "severity": "critical",
    "title": "HTTP 503",
    "message": "...",
    "website": { "id": "019d7e3c-..." },
    "is_resolved": false,
    "created_at": "2026-06-20T09:14:06+00:00"
  },
  "source": "XICTRAQ"
}

Häufige Fragen

API-Key als Bearer-Token (Authorization: Bearer xtraq_...) oder als X-API-Key Header. Die Geo-Endpoints akzeptieren zusätzlich den Query-Parameter ?key=. Keys erstellen Sie unter Einstellungen > API-Keys; jeder Key beginnt mit xtraq_ und wird nur einmal im Klartext angezeigt.
In 60 Sekunden starten

Lassen Sie XICTRAQ Ihre Website bewachen.

Dauerhaft kostenloser Plan verfügbar. Keine Kreditkarte, keine Installation, keine versteckten Kosten.