Doku

Agent auf die Anmeldeseite, einen Endpoint vom Server aufrufen, nach der Entscheidung handeln.

Schnellstart

1. Agent auf der Anmeldeseite einbinden

Er sammelt Gerätesignale und legt ein kurzlebiges Besucher-Token in ein verstecktes Feld namens attrelix_visitor in jedem Formular der Seite. Für Single-Page-Apps gibt es window.attrelix.token().

<script src="https://attrelix.com/v1.js?v=0bbe74b52d" data-key="pk_live_…" async></script>

// single-page apps: wait for the token before you submit
const visitor = await window.attrelix.token();

2. Anmeldung vom Server prüfen

Senden Sie E-Mail, Client-IP und Besucher-Token mit Ihrem geheimen Schlüssel. Optional: external_id (Ihre Nutzer-ID), user_agent und card_fingerprint (zum Beispiel card.fingerprint von Stripe).

curl https://attrelix.com/v1/check \
  -H "Authorization: Bearer $ATTRELIX_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"email":"jdoe+7@gmail.com","ip":"203.0.113.9","visitor":"vt1.…"}'
# Python
r = requests.post("https://attrelix.com/v1/check", timeout=3,
    headers={"Authorization": f"Bearer {SECRET}"},
    json={"email": email, "ip": ip, "visitor": form["attrelix_visitor"]})
decision = r.json().get("decision", "allow") if r.ok else "allow"

3. Nach der Entscheidung handeln

allow: Gratis-Credits vergeben. review: etwas verlangen, das eine Farm Geld kostet — eine Karte, eine Telefonnummer — oder weniger Credits vergeben. block: Konto oder Credits verweigern. Schlägt der Aufruf fehl, zulassen: sperren Sie nie echte Nutzer wegen uns aus.

Schlüssel und Tokens

  • Öffentlicher Schlüssel (pk_live_…): absichtlich öffentlich. Er steht in Ihrer Seite und kann nur Signale sammeln, von den Origins, die Sie im Dashboard erlauben.
  • Geheimer Schlüssel (sk_live_…): nur auf dem Server. Führt Prüfungen aus und liest Ergebnisse. Wir speichern nur seinen Hash: kopieren Sie ihn beim Erstellen.
  • Besucher-Token: von uns signiert, 15 Minuten und für eine einzige Prüfung gültig, an Ihr Projekt gebunden. Ein zweimal genutztes Token oder eines aus einem anderen Netz als die Anmeldung erhöht den Score.

POST /v1/check

Request-Body (JSON). Senden Sie mindestens eines von email, ip oder visitor.

emailDie vom Nutzer eingegebene Adresse.
ipDie Client-IP der Anmeldeanfrage (nicht die Ihres Servers).
visitorDer Wert attrelix_visitor aus dem Formular.
user_agentDer User-Agent-Header der Anmeldeanfrage.
external_idIhre ID des Kontos, falls es schon existiert.
card_fingerprintEin Karten-Fingerprint, wenn bei der Anmeldung eine Karte hinterlegt wird.

Antwort

decision ist allow, review oder block. score reicht von 0 bis 100: die Summe der Punkte der Gründe, gedeckelt. Jeder Grund hat einen stabilen Code zum Loggen oder Anzeigen.

{
  "id": "chk_3fJ8kQ2mN7pX1aZb",
  "decision": "block",
  "score": 100,
  "reasons": [
    { "code": "linked_accounts_10", "points": 45, "detail": "14" },
    { "code": "alias_of_existing", "points": 30, "detail": "3 variants of jdoe@gmail.com" },
    { "code": "datacenter_ip", "points": 25, "detail": "aws" }
  ],
  "email":   { "normalized": "jdoe@gmail.com", "disposable": false, "relay": false, "mx": "yes", … },
  "network": { "ip": "3.88.0.1", "type": "datacenter", "provider": "aws", "signups_24h": 2 },
  "device":  { "id": "dev_9c1e…", "token": "valid", "browser": "Firefox 144", "flags": ["canvas_noise"] },
  "linked":  { "accounts": 14, "by_device": 12, "by_card": 0, "cluster": "cl_7q2f…" },
  "latency_ms": 38
}

Fehler

Fehler kommen als JSON: {"error": code, "message": text}.

401Schlüssel fehlt, unbekannt, widerrufen oder falscher Typ (ein pk_-Schlüssel auf /v1/check).
400der Body ist kein JSON oder enthält weder email noch ip noch visitor.
402die monatlichen Prüfungen des Tarifs sind aufgebraucht.
403der Agent lief auf einem Origin, den Sie nicht erlaubt haben.
429zu viele Anfragen von einer Adresse.

Bewertung

Punkte addieren sich, gedeckelt bei 100. Standard: prüfen ab 50, blockieren ab 80 — beides einstellbar. Ein Wegwerf-Postfach allein führt zu „prüfen“; kein einzelnes Geräte- oder Netzsignal tut das.

CodePunkteBedeutung
invalid_email+50Die Adresse ist ungültig
disposable_email+50Wegwerf-E-Mail-Domain
no_mx+35Die Domain kann keine Mail empfangen
alias_of_existing+30Andere Schreibweise eines bekannten Postfachs
relay_email+10Weiterleitungsadresse
plus_tag+5Plus-Tag oder Gmail-Punkte
tor_exit+35Tor-Exit-Knoten
datacenter_ip+25Rechenzentrums- oder Cloud-Adresse
vpn_ip+20VPN-Adresse
ip_signups_24h+103+ Konten von dieser IP in 24 h
ip_signups_24h_high+2510+ Konten von dieser IP in 24 h
subnet_burst+1510+ Konten aus diesem Subnetz in 1 h
automation_webdriver+40WebDriver-Automatisierung
headless_browser+40Headless-Browser
automation_cdp+10Automatisierung per DevTools-Protokoll (Puppeteer, Playwright)
antidetect_browser+15Anti-Detect-Browser (mehrere Tarnungen zugleich)
headless_viewport+15Fenster ohne Browserleiste oder Tabs
webgl_os_mismatch+25Die Grafikkarte gehört zu einem anderen Betriebssystem
memory_cpu_mismatch+10Kernzahl und Arbeitsspeicher passen nicht zusammen
no_human_interaction+30Sofort abgeschickt, ohne Tippen, Maus oder Touch
instant_signup+25Innerhalb einer Sekunde nach dem Laden ausgefüllt und abgeschickt
os_mismatch+20Das Betriebssystem widerspricht sich
browser_mismatch+20Der Browser widerspricht seinem User-Agent
fonts_mismatch+15Schriften passen nicht zum angegebenen System
canvas_noise+15Zufälliger Canvas-Fingerprint
software_renderer+15Software-Grafik (virtuelle Maschine oder headless)
zero_window+15Fenster ohne Größe
permissions_mismatch+15Widersprüchliche Berechtigungszustände
no_plugins+10Desktop-Chrome ohne Plugins
no_languages+10Browser ohne Sprachen
utc_timezone+5Uhr auf UTC
token_missing0–100Kein Besucher-Token (Agent nicht geladen oder blockiert)
token_invalid+30Gefälschtes oder fremdes Besucher-Token
token_replayed+35Besucher-Token bereits verwendet
token_expired+10Abgelaufenes Besucher-Token
token_ip_mismatch+8Token in einem anderen Netz gesammelt
token_ua_mismatch+15Token von einem anderen Browser gesammelt
linked_accounts+15Mit anderen Konten verknüpft
linked_accounts_3+30Mit 3+ Konten verknüpft
linked_accounts_10+45Mit 10+ Konten verknüpft
shared_card+30Karte von einem anderen Konto genutzt
device_burst+155+ Prüfungen von diesem Gerät in 1 h

Datenquellen

Wegwerf-Domains: das Projekt disposable-email-domains (CC0) und disposable/disposable-email-domains (MIT), täglich aktualisiert. Rechenzentrumsbereiche: die veröffentlichten Listen von AWS, Google Cloud, Oracle Cloud, DigitalOcean und Linode. Tor: die Exit-Liste des Tor Project, stündlich aktualisiert.

Aktuell: 98,644 Wegwerf-Domains und 21,665 Bereiche.