This is the shape of the paid POST /api/v1/deep-scan response, for a deliberately vulnerable snippet:
import os, pickle, requests
def handle(request):
code = request.args.get("code")
exec(code) # dynamic code execution
os.system("ls " + request.args.get("path")) # shell injection
data = pickle.loads(request.data) # unsafe deserialization
requests.get(request.args.get("url"), verify=False) # TLS verification off
Real output of the free deterministic scan for this snippet (7 findings, max severity critical); the deep report additionally computes the risk score and severity counts shown below.
| Severity | Rule | Category | What it catches | Remediation |
|---|---|---|---|---|
| critical | PY-DANGEROUS-EXEC | dynamic_execution | exec() of untrusted input | Never evaluate untrusted text; use an allow-list parser. |
| critical | PY-OS-SYSTEM | shell_execution | os.system() with string interpolation | subprocess with an argument list and shell=False. |
| critical | PY-UNSAFE-DESERIALIZE | deserialization | pickle.loads() on request data | Use a safe format (JSON) and schema validation. |
| critical | PWN-PY-EXEC | dynamic_execution | pattern detector for dynamic execution | Remove eval/exec on user input. |
| critical | PWN-PY-PICKLE-LOADS | deserialization | pattern detector for pickle.loads | Use JSON or a signed serialization format. |
| high | PWN-NET-SSRF-USER-URL | ssrf | user-controlled URL passed to an outbound request | Allow-list destinations, block link-local ranges. |
| medium | PY-NETWORK | network | TLS verification disabled (verify=False) | Remove verify=False; pin a CA bundle if needed. |
{
"product": "scanpay.deep",
"findings_count": 7,
"severity_counts": {"critical": 5, "high": 1, "medium": 1, "low": 0},
"max_severity": "critical",
"risk_score": "",
"risk_band": "",
"findings": [ ... every finding with line ranges, evidence and remediation ... ],
"source_sha256": "",
"engine_version": "1.1.0"
}
Deterministic rules, no code execution, no model call. The same source always
produces the same report. Buy one at POST /api/v1/deep-scan for
$10 (x402 in USDC on Base or Solana), or use the direct on-chain
rail with POST /api/v1/deep-scan/manual.