Know any business.
With the receipts.
Submit a URL. Thirteen official sources run in parallel — sanctions, PEPs, business registries across 140+ jurisdictions, SEC EDGAR, threat intel, adverse media. Get a defensible verdict in seconds, with every rule linked back to the record that fired it.
Powered by official watchlists, registries & intel
Every verdict comes with its evidence.
Black-box risk scores are why compliance teams hate "AI for KYB." We took the opposite bet: every rule that fires shows you the exact record it fired on — sanctioned entity row, abuse-feed entry, registry document.
From URL to defensible verdict, in three steps.
No webhooks to configure to get started. No data residency contracts. Just an API key and a URL.
One URL or a batch up to 1,000. Sandbox keys never count against your quota — wire it up before billing kicks in.
Sanctions across four official lists, PEPs via Open Sanctions, Companies House + OpenCorporates (140+ jurisdictions) + SEC EDGAR for US public-filer matching, domain registry, threat intel, and GDELT adverse-media. Customer-attested beneficial owners get cross-checked too.
22 scoring rules produce a tier and composite risk score (lower is safer). Every rule that fires returns its source_refs — defensible at audit time.
Onboard once. Get pinged when it changes.
Pin a merchant to a monitor — daily, weekly, or monthly. We re-scan on the
cadence, diff the verdict, and fire monitor.tripped on every tier
flip or material score change. No polling. No re-onboarding to find out a
customer landed on OFAC last week.
X-KYB-Event: monitor.tripped
X-KYB-Signature: sha256=…
From pip install to verdict in 60 seconds.
We're product-led, not sales-led. No demo call to try it. Python SDK, full OpenAPI spec, sandbox keys, webhook signature verification — everything you need to wire it up in an afternoon.
QuotaExceeded, RateLimited, ValidationError
from kyb_scanner import KybClient client = KybClient(api_key="kyb_test_xxx") scan = client.scans.create(url="https://stripe.com") print(f"{scan.verdict.tier.upper()} — {scan.verdict.score}/100") for r in scan.verdict.reasons: print(f" {r.delta:+d} {r.name}")
−20 Trusted infrastructure ← Tranco #47
−12 Active registry filing ← SEC EDGAR
−10 Domain age 14y ← ICANN RDAP
−15 Review-site presence ← Trustpilot
+5 Adverse-media mentions ← GDELT
Anchored. Transparent. Free to start.
Sandbox keys never count against quota. Cancel any time. Annual saves 20%.
Trial tier — 10 scans/month, 30/min throttle, no charge.
500 scans/month, 60/min throttle. For small risk teams.
5,000 scans/month, 120/min throttle. For growing fintechs.
Custom quota, 300/min throttle. Contact sales.
Built to pass procurement.
The unsexy stuff your security team will ask about — answered.
Right to deletion via API. Per-tenant data isolation. DPA on request. Source-attribution receipts double as audit trails.
Currently in observation window. SOC 2 Type I report available on request. ISO 27001 prep alongside.
Test keys (kyb_test_*) run the real pipeline but never bill,
never publish, never count against quota. Safe to ship in CI.
Start verifying in 60 seconds.
Free forever tier · 10 scans / month · no credit card