Endpoints Widget

Αυτά τα σημεία τα καλεί το widget του SilentShield. Κανονικά δεν τα καλείτε εσείς — τεκμηριώνονται ώστε να παρακολουθείτε τι συμβαίνει στη σελίδα σας.

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

POST/api/v1/telemetry/behavior

Στέλνει τα δεδομένα συμπεριφοράς της τρέχουσας αλληλεπίδρασης (ποντίκι, πληκτρολόγιο, κύλιση) και επιστρέφει το nonce μαζί με ετυμηγορία. Η φόρμα σας υποβάλλει αυτό το nonce ως πεδίο `behavior_nonce`.

Auth: Κλειδί API (κεφαλίδα 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"}

Προσμετράται στο όριό σας μόλις φτάσει το συμβάν `submit` με nonce — ακριβώς μία φορά ανά υποβολή. Τα `init`, `telemetry` και `form_detected` δεν προσμετρώνται.

POST/api/v1/captcha/challenge

Ζητά μια αριθμητική δοκιμασία όταν η ετυμηγορία ήταν αβέβαιη. Το widget το κάνει μόνο του· η δοκιμασία είναι μιας χρήσης και δεμένη με το nonce.

Auth: Κλειδί API (κεφαλίδα X-Api-Key)

Request Body:

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

Response:

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

Χρειάζεται μόνο όταν η απάντηση τηλεμετρίας ανέφερε `challenge_required: true`.

POST/api/v1/captcha/verified

Υποβάλλει τη λυμένη δοκιμασία. Το nonce σημειώνεται ως ανθρώπινο μόνο όταν η απάντηση ταιριάζει με δοκιμασία που εξέδωσε ο διακομιστής για αυτό το κλειδί.

Auth: Κλειδί API (κεφαλίδα X-Api-Key)

Request Body:

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

Response:

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

Fail-closed: λανθασμένη ή ληγμένη απάντηση δίνει 403 με `reason: "invalid_solution"`. Η δοκιμασία είναι μιας χρήσης.

POST/api/v1/captcha/verify-nonce

Επαληθεύει ένα nonce που δημιουργήθηκε από το widget. Καλέστε το από τον διακομιστή σας για να επιβεβαιώσετε ότι η υποβολή φόρμας είναι νόμιμη.

Auth: Κλειδί API (κεφαλίδα X-Api-Key)

Request Body:

{"nonce": "nonce_xyz789"}

Response:

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

Αυτό το endpoint μετράει στο όριό σας. Τα nonce είναι μίας χρήσης και λήγουν μετά από 5 λεπτά.