import os
import requests
API = "https://api.routeur.app"
session = requests.Session()
session.headers["X-API-Key"] = os.environ["ROUTEUR_API_KEY"]
def equivalent_pairs(pages=5, limit=200):
for page in range(pages):
res = session.get(f"{API}/v1/cross-venue",
params={"relation": "equivalent", "limit": limit, "offset": page * limit}, timeout=20)
res.raise_for_status()
data = res.json()["data"]
yield from data
if len(data) < limit:
return
def yes_ask(market):
ask = (market.get("quote") or {}).get("yes_ask_usd")
return float(ask) if ask else None
gaps = []
for pair in equivalent_pairs():
left, right = yes_ask(pair["left"]), yes_ask(pair["right"])
if left is None or right is None:
continue
gaps.append((abs(left - right), pair))
for gap, pair in sorted(gaps, key=lambda g: g[0], reverse=True)[:10]:
l, r = pair["left"], pair["right"]
print(f"{gap * 100:4.0f}¢ {l['title']}")
print(f" {l['venue']}: {yes_ask(l) * 100:.0f}¢ {r['venue']}: {yes_ask(r) * 100:.0f}¢")