Integrationen

Formular-Gate

Ein Token aus dem Browser des Besuchers, von Ihrem Server mit dem Secret der Website geprüft.

Token ausstellen

POST/v1/gate/token
Kein Schlüssel nötig1 Anfrage pro nicht gecachtem Besucher

Parameter

  • sitekeystringErforderlich

    Der Site-Key des Formular-Gates aus dem Dashboard.

  • signalsobjectErforderlich

    Browser-Merkmale von gate.js: headless_flags, user_agent und client.

Antwortfelder

  • tokenstring

    Einmal-Token für das Formular. Läuft nach fünf Minuten ab.

  • expiresAtstring

    Ablaufzeit des Tokens, ISO 8601.

  • errorstring

    Bei Fehlern: 403 hostname_mismatch (der Origin der Seite ist keiner der Hostnamen des Gates), 404 unknown_site, 429 rate_limit_exceeded oder quota_exhausted. gate.js sendet das Formular dann ohne Token.

curl -X POST https://ipscanner.io/v1/gate/token \
  -H "Origin: https://shop.example.com" \
  -H "Content-Type: application/json" \
  -d '{
    "sitekey": "site_4fQ8nZ2kLm7xR1vT9cBw",
    "signals": {
      "headless_flags": {
        "webdriver": false,
        "headless_ua": false
      },
      "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 Safari/605.1.15"
    }
  }'
Antwort
{
  "token": "Z3RfNGZROG5aMmtMbTd4UjF2VDljQnd8MTc2MDAwMDAwMHxrM3Z4.Qm9yZGVyIGNvbGxpZQ",
  "expiresAt": "2026-10-09T09:35:00Z"
}

Token prüfen

POST/v1/gate/verify
Site-SecretNicht berechnet

Parameter

  • secretstringErforderlich

    Das Secret des Formular-Gates. Nur serverseitig, nie in einer Seite.

  • tokenstringErforderlich

    Der Wert ipscanner-token, den das Formular gesendet hat.

  • remote_ipstring

    Die IP des Besuchers aus Sicht Ihres Servers. Optional, setzt ip_match.

Antwortfelder

  • successboolean

    True, wenn das Token gültig und unbenutzt ist.

  • classstring

    verified_bot, malicious_automation, ai_agent, tor, vpn, proxy, relay, hosting oder human.

  • actionstring

    Die Aktion Ihrer Richtlinie für die Klasse: allow, flag oder block.

  • modestring

    monitor oder enforce. Im Monitor-Modus entscheiden Sie selbst über ein block.

  • confidencenumber

    Konfidenz von 0 bis 1.

  • networkobject

    classification, anonymized, provider und vpn_provider. provider und vpn_provider ab Starter, bei Free null.

  • network.vpn_providerstring | null

    VPN-Dienst einer vpn-Adresse (NordVPN, Mullvad...), sofern bekannt. Ab Starter, bei Free null.

  • signalsstring[]

    Die ausgelösten Automatisierungsmerkmale, etwa webdriver. Leer bei einem unauffälligen Besucher.

  • hostnamestring

    Der Hostname der Seite, für die das Token ausgestellt wurde.

  • issued_atstring

    Ausstellungszeit des Tokens, ISO 8601.

  • ip_matchboolean

    False, wenn remote_ip gesendet wurde und von der Adresse abweicht, für die das Token ausgestellt wurde.

  • lockedstring[]

    Punktierte Pfade der Felder, die in diesem Tarif als null gesendet werden. Ab Starter nicht vorhanden.

  • planRequiredstring

    Tarif, der die gesperrten Felder enthält. Ab Starter nicht vorhanden.

  • errorstring

    Bei success false: 400 missing_token, invalid_token, expired_token, already_used oder hostname_mismatch; 401 invalid_secret.

curl -X POST https://ipscanner.io/v1/gate/verify \
  -H "Content-Type: application/json" \
  -d '{
    "secret": "gs_YOUR_GATE_SECRET",
    "token": "Z3RfNGZROG5aMmtMbTd4UjF2VDljQnd8MTc2MDAwMDAwMHxrM3Z4.Qm9yZGVyIGNvbGxpZQ",
    "remote_ip": "203.0.113.7"
  }'
Antwort
{
  "success": true,
  "class": "human",
  "action": "allow",
  "mode": "enforce",
  "confidence": 0.6,
  "network": {
    "classification": "residential_clean",
    "anonymized": false,
    "provider": null,
    "vpn_provider": null
  },
  "signals": [],
  "hostname": "shop.example.com",
  "issued_at": "2026-10-09T09:30:00Z",
  "ip_match": true
}