Widget-eindpunten

Deze endpoints worden aangeroepen door de SilentShield-widget. Normaal roept u ze niet zelf aan — ze staan hier zodat u kunt volgen wat er op uw pagina gebeurt.

Base URL: https://api.silentshield.io

POST/api/v1/telemetry/behavior

Verstuurt de gedragsgegevens van de huidige interactie (muis, toetsenbord, scrollen) en geeft de nonce met een oordeel terug. Uw formulier stuurt die nonce mee als veld `behavior_nonce`.

Auth: API-sleutel (X-Api-Key header)

Request Body:

{"ts": 1767225600000, "nonce": "bh_abc123", "event": "submit", "form_key": "contact", "feature_hash": "...", "metrics": {...}, "signature": "..."}

Response:

{"id": "...", "nonce": "bh_abc123", "status": "queued", "verdict": "human", "score": 0.87, "captcha_solved": false, "challenge_required": false, "difficulty": "pass", "reason_codes": [], "action": "allow"}

Telt mee voor uw quotum zodra de gebeurtenis `submit` met een nonce binnenkomt — precies één keer per verzending. `init`, `telemetry` en `form_detected` tellen niet mee.

POST/api/v1/captcha/challenge

Vraagt een rekenopgave aan wanneer het oordeel onzeker was. De widget doet dit zelf; de opgave is eenmalig en aan de nonce gebonden.

Auth: API-sleutel (X-Api-Key header)

Request Body:

{"nonce": "bh_abc123", "difficulty": "medium"}

Response:

{"ok": true, "challenge_id": "ch_xyz789", "a": 7, "op": "+", "b": 5}

Alleen nodig wanneer het telemetrie-antwoord `challenge_required: true` meldde.

POST/api/v1/captcha/verified

Dient de opgeloste opgave in. De nonce wordt pas als menselijk gemarkeerd wanneer het antwoord past bij een opgave die de server voor deze sleutel heeft uitgegeven.

Auth: API-sleutel (X-Api-Key header)

Request Body:

{"challenge_id": "ch_xyz789", "answer": 12}

Response:

{"ok": true}   //  403: {"ok": false, "reason": "invalid_solution"}

Fail-closed: een fout of verlopen antwoord geeft 403 met `reason: "invalid_solution"`. De opgave is eenmalig.

POST/api/v1/captcha/verify-nonce

Verifieert een nonce die door de widget is gegenereerd. Roep dit aan vanaf uw server om te bevestigen dat de formulierinzending legitiem is.

Auth: API-sleutel (X-Api-Key header)

Request Body:

{"nonce": "nonce_xyz789"}

Response:

{"valid": true, "verdict": "human", "score": 0.92, "timestamp": "2025-01-15T10:30:00Z"}

Dit eindpunt telt mee voor uw quotum. Nonces zijn eenmalig en verlopen na 5 minuten.