# 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.request UA = {"User-Agent": "my-agent/1.0 (+https://example.org/contact)"} # default Python-urllib UA gets HTTP 403 FEES = "https://agent-guide.moneytools.workers.dev/fees.json" NOTIONAL_USD = 10_000 # size of one taker fill MY_REGION = "United States" # crude text match against each venue's restrictions with urllib.request.urlopen(urllib.request.Request(FEES, headers=UA), timeout=30) as r: data = json.load(r) rows = [] for v in data["venues"]: if v["takerPct"] is None: # "Unconfirmed" -> never guess print(f"skip {v['name']}: fee unconfirmed") continue restricted = MY_REGION.lower() in (v["restrictions"] or "").lower() rows.append((v["takerPct"], v["makerPct"], v["name"], restricted, v["feeSource"])) for taker, maker, name, restricted, src in sorted(rows): cost = NOTIONAL_USD * taker / 100 flag = " <- restricted in your region" if restricted else "" print(f"{name:12} taker {taker}% maker {maker}% taker fee on ${NOTIONAL_USD:,}: ${cost:.2f}{flag}") print(f"{'':12} source: {src}") print("checked:", data["checked"])