
Seven crypto exchanges, one normalized schema, ~700 lines of Python
This is a follow-up to my previous post on building a funding-rate arbitrage scanner . That post was about the product — what it does, the three non-obvious gotchas, and why I built it. This one is about the plumbing : how seven different exchange APIs handle the same data and what it took to unify them. If you've ever thought "I'll just call the public APIs and join the data, how hard can it be" — this post is for you. The dataset I wanted For each USDT-margined perpetual on each major venue, I needed: Current funding rate (per period, decimal — e.g. 0.0001 = 0.01%) Funding interval in hours (8h, 4h, 1h depending on the venue and the symbol) Mark price (for sizing calculations) 24h volume in USD (for liquidity filtering — without this, the scanner is useless) Next funding time (UNIX seconds — for "this opportunity expires in X minutes" UI) Sounds simple. It's not. Each exchange returns a subset of this in a different shape, and you usually need at least two API calls per exchange to a
Continue reading on Dev.to
Opens in a new tab


