Endpoints du widget

Ces points de terminaison sont appelés par le widget SilentShield. Vous ne les appelez normalement pas vous-même : ils sont documentés pour que vous puissiez suivre ce qui se passe sur votre page.

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

POST/api/v1/telemetry/behavior

Envoie les données comportementales de l’interaction en cours (souris, clavier, défilement) et renvoie le nonce accompagné d’un verdict. Votre formulaire transmet ce nonce dans le champ `behavior_nonce`.

Auth: API Key (en-tête X-Api-Key)

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

Compte dans votre quota dès que l’événement `submit` arrive avec un nonce — exactement une fois par envoi. `init`, `telemetry` et `form_detected` ne comptent pas.

POST/api/v1/captcha/challenge

Demande un calcul à résoudre lorsque le verdict était incertain. Le widget le fait de lui-même ; l’épreuve est à usage unique et liée au nonce.

Auth: API Key (en-tête X-Api-Key)

Request Body:

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

Response:

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

Nécessaire uniquement lorsque la réponse de télémétrie a indiqué `challenge_required: true`.

POST/api/v1/captcha/verified

Soumet l’épreuve résolue. Le nonce n’est marqué comme humain que si la réponse correspond à une épreuve émise par le serveur pour cette clé.

Auth: API Key (en-tête X-Api-Key)

Request Body:

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

Response:

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

Fail-closed : une réponse fausse ou expirée renvoie 403 avec `reason: "invalid_solution"`. L’épreuve est à usage unique.

POST/api/v1/captcha/verify-nonce

Vérifie un nonce généré par le widget. Appelez ce endpoint depuis votre serveur pour confirmer que la soumission du formulaire est légitime.

Auth: API Key (en-tête X-Api-Key)

Request Body:

{"nonce": "nonce_xyz789"}

Response:

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

Ce endpoint compte dans votre quota. Les nonces sont à usage unique et expirent après 5 minutes.