Widget-slutpunkter

Disse endpoints kaldes af SilentShield-widgetten. Du kalder dem normalt ikke selv — de er dokumenteret, så du kan følge, hvad der sker på din side.

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

POST/api/v1/telemetry/behavior

Sender adfærdsdata for den aktuelle interaktion (mus, tastatur, scrolling) og returnerer noncen sammen med en kendelse. Din formular sender den nonce med som feltet `behavior_nonce`.

Auth: API-nøgle (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"}

Tæller mod din kvote, så snart hændelsen `submit` ankommer med en nonce — præcis én gang pr. indsendelse. `init`, `telemetry` og `form_detected` tæller ikke.

POST/api/v1/captcha/challenge

Anmoder om en regneopgave, når kendelsen var usikker. Widgetten gør det selv; opgaven er engangs og bundet til noncen.

Auth: API-nøgle (X-Api-Key-header)

Request Body:

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

Response:

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

Kun nødvendigt, når telemetrisvaret meldte `challenge_required: true`.

POST/api/v1/captcha/verified

Indsender den løste opgave. Noncen markeres først som menneskelig, når svaret matcher en opgave, serveren udstedte for denne nøgle.

Auth: API-nøgle (X-Api-Key-header)

Request Body:

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

Response:

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

Fail-closed: et forkert eller udløbet svar giver 403 med `reason: "invalid_solution"`. Opgaven er engangs.

POST/api/v1/captcha/verify-nonce

Verificerer en nonce genereret af widgeten. Kald dette fra din server for at bekræfte, at formularindsendelsen er legitim.

Auth: API-nøgle (X-Api-Key-header)

Request Body:

{"nonce": "nonce_xyz789"}

Response:

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

Dette slutpunkt tæller mod din kvota. Nonces er engangsbrug og udløber efter 5 minutter.