# From https://agent-guide.moneytools.workers.dev/guides/ (MIT). Disclosure: that site contains referral links and # MoneyTools earns commission through them; MoneyTools also operates x402 Pay-Precheck and earns from its paid calls. # Not investment, financial or legal advice. Region restrictions apply (e.g. United States). Read-only: no keys, no payments. import json, urllib.parse, urllib.request UA = {"User-Agent": "my-agent/1.0 (+https://example.org/contact)"} # default Python-urllib UA gets HTTP 403 # Free demo (10 calls/hour/IP). In production call /v1/precheck ($0.005 via x402). PRECHECK = "https://x402-pay-precheck.moneytools.workers.dev/demo/precheck" def precheck(target_url): q = urllib.parse.urlencode({"url": target_url}) with urllib.request.urlopen(urllib.request.Request(f"{PRECHECK}?{q}", headers=UA), timeout=30) as r: return json.load(r) def should_pay(target_url, max_usd, allow_warn=False): """Return (decision, report). Read-only: no keys, no payment.""" r = precheck(target_url) if r["verdict"] == "ok" or (allow_warn and r["verdict"] == "warn"): options = [o for o in r["options"] if o["valid"] and not o["sanctions"]["hit"] and float(o["amountUsd"]) <= max_usd] return bool(options), {"verdict": r["verdict"], "options": options, "warnings": r["warnings"]} return False, {"verdict": r["verdict"], "summary": r["summary"], "reasons": r["reasons"]} if __name__ == "__main__": import sys ok, report = should_pay(sys.argv[1], max_usd=float(sys.argv[2])) print("PAY" if ok else "DO NOT PAY", json.dumps(report, indent=2)[:800])