Widget-slutpunkter

Dessa slutpunkter anropas av SilentShield-widgeten. Normalt anropar du dem inte själv — de dokumenteras så att du kan följa vad som händer på din sida.

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

POST/api/v1/telemetry/behavior

Skickar beteendedata för den aktuella interaktionen (mus, tangentbord, rullning) och returnerar noncen tillsammans med ett utlåtande. Ditt formulär skickar med den noncen som fältet `behavior_nonce`.

Auth: API-nyckel (X-Api-Key-huvud)

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"}

Räknas mot din kvot så snart händelsen `submit` kommer in med en nonce — exakt en gång per inskickning. `init`, `telemetry` och `form_detected` räknas inte.

POST/api/v1/captcha/challenge

Begär en räkneuppgift när utlåtandet var osäkert. Widgeten gör det själv; uppgiften är engångs och bunden till noncen.

Auth: API-nyckel (X-Api-Key-huvud)

Request Body:

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

Response:

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

Behövs bara när telemetrisvaret rapporterade `challenge_required: true`.

POST/api/v1/captcha/verified

Skickar in den lösta uppgiften. Noncen markeras som mänsklig först när svaret matchar en uppgift som servern utfärdat för denna nyckel.

Auth: API-nyckel (X-Api-Key-huvud)

Request Body:

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

Response:

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

Fail-closed: ett felaktigt eller utgånget svar ger 403 med `reason: "invalid_solution"`. Uppgiften är engångs.

POST/api/v1/captcha/verify-nonce

Verifierar en nonce som genererats av widgeten. Anropa detta från din server för att bekräfta att formulärinskickningen är legitim.

Auth: API-nyckel (X-Api-Key-huvud)

Request Body:

{"nonce": "nonce_xyz789"}

Response:

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

Denna slutpunkt räknas mot din kvot. Nonces är engångs och upphör efter 5 minuter.