my-api.hata.io
api.luno.com
read-only · no credentials
… upstream calls
snapshot, see why
Work sample: Hata vs Luno liquidity benchmark
The Product Analyst posting asks for competitor benchmarking and for finding operational bottlenecks. This does both: every MYR pair Hata lists, measured against Luno at the same instant, plus what the platform's minimum order actually costs a user on each book. Built by Edward Tay for the Product Analyst application. Not affiliated with Hata or Luno.
Why this is a stamped snapshot rather than a live read
Three things, and together they are finding number three on the checks tab.
1. Hata's public API returns
403 to any request carrying an Origin header, and sends no Access-Control-Allow-Origin. A browser can never call it.2. Both Hata hosts sit behind Cloudflare, so a Cloudflare Worker proxying them fails with Cloudflare error
1042. The usual edge workaround is unavailable.3. Hata also returns
403 to a default scripted user-agent, so a client has to send a browser string.So the only way to read this data is a plain server-side process spoofing a browser. That is
refresh.py in the repo, run by hand and stamped. In production it would be a cron job writing to object storage. Saying that plainly is better than pretending the page is live.Every Hata MYR pair against Luno, sorted by Hata volume
| Pair | Hata bps | Luno bps | Hata 24h MYR | Luno 24h MYR | Relative volume | Px div bps | Levels |
|---|---|---|---|---|---|---|---|
| loading the snapshot… | |||||||
Spread is top-of-book, in basis points of mid. Luno volume is converted from base units to MYR at Luno's own mid, so both columns are ringgit notional. Px div is Hata's mid against Luno's mid at the same instant; negative means Hata is quoting below Luno. Figures move with the market.