Punkty końcowe widgetu

Te punkty końcowe wywołuje widget SilentShield. Zwykle nie wywołują ich Państwo sami — są udokumentowane, aby mogli Państwo prześledzić, co dzieje się na stronie.

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

POST/api/v1/telemetry/behavior

Wysyła dane behawioralne bieżącej interakcji (mysz, klawiatura, przewijanie) i zwraca nonce wraz z werdyktem. Formularz przesyła ten nonce jako pole `behavior_nonce`.

Auth: Klucz API (nagłówek 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"}

Liczy się do limitu, gdy tylko zdarzenie `submit` dotrze z nonce — dokładnie raz na wysłanie. `init`, `telemetry` i `form_detected` nie są liczone.

POST/api/v1/captcha/challenge

Prosi o zadanie rachunkowe, gdy werdykt był niepewny. Widget robi to sam; zadanie jest jednorazowe i powiązane z nonce.

Auth: Klucz API (nagłówek X-Api-Key)

Request Body:

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

Response:

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

Potrzebne tylko wtedy, gdy odpowiedź telemetrii zgłosiła `challenge_required: true`.

POST/api/v1/captcha/verified

Przesyła rozwiązane zadanie. Nonce zostaje oznaczony jako ludzki dopiero wtedy, gdy odpowiedź pasuje do zadania wydanego przez serwer dla tego klucza.

Auth: Klucz API (nagłówek X-Api-Key)

Request Body:

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

Response:

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

Fail-closed: błędna lub wygasła odpowiedź zwraca 403 z `reason: "invalid_solution"`. Zadanie jest jednorazowe.

POST/api/v1/captcha/verify-nonce

Weryfikuje nonce wygenerowany przez widget. Wywołaj to z serwera, aby potwierdzić, że przesłanie formularza jest prawidłowe.

Auth: Klucz API (nagłówek X-Api-Key)

Request Body:

{"nonce": "nonce_xyz789"}

Response:

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

Ten punkt końcowy jest wliczany do limitu. Nonce są jednorazowe i wygasają po 5 minutach.