Skip to main content
WEBHOOK

Authorizations

Authorization
string
header
required

Partner API key as a Bearer token: Authorization: Bearer gsk_live_.... Live keys (gsk_live_) run real scans; test keys (gsk_test_) run request validation then return deterministic sandbox mocks (sandbox: true, nothing persisted, no rate-limit consumption). Keys are issued per partner and are revokable.

Body

application/json

Envelope for every webhook event. The signed bytes are exactly this JSON document as transmitted.

data is discriminated by event: scan.preliminary and scan.completed carry a PartnerScanOutput, scan.failed carries a PartnerScanFailedOutput (score fields absent, error present). Switch on event before reading data.

event
enum<string>
required
Available options:
scan.preliminary,
scan.completed,
scan.failed
data
object
required

The single scan result contract. Returned by POST (sync completion), GET status polls, and inside both webhook events — partners always see this one shape regardless of entry point. Sandbox (test-key) responses add a top-level sandbox: true extension field.

Response

200

Return any 2xx to acknowledge receipt. Non-2xx responses are retried (durable delivery via queue).