Evaluating market data APIs: two simple tips
Whether you're new to using market data APIs or on the search for a new data provider, it can be challenging to determine what a quality API looks like. In our new series, we'll share our perspective on important factors to consider when evaluating a market data API. In this edition, we cover what we like to call the exchange smell test: when every venue is called an "exchange."
Exchange smell test
We previously had a customer point out an API he used that had everything either prefixed with "Exg" or suffixed with "Exch."
This name is inaccurate for several reasons:
Millions of active fixed-income instruments, such as corporate bonds, municipal bonds, and cash treasuries, are not traded on exchanges.
A majority of FX trading takes place between banks, dealer markets, and ECNs like EBS, FXall, and Currenex.
There are whole asset classes like forwards that, by definition, don't trade on a centralized exchange.
The notional volume of derivatives trading dwarfs that of equities. A significant amount of derivatives trading is off-exchange, e.g., swaps on SEFs.
ATSes and off-exchange trading make-up almost half of US equities ADV.
Non-exchange venues have important microstructural value for price discovery, e.g., some of these allow you to identify your counterparties. Through this, you can glean the percentage of contras that execute against a particular market-maker, how sharp a particular market-maker's order flow is, follow a more sophisticated market-maker on the rollover, or know if the same counterparty has been picking you off repeatedly.
Exchange vs. venue: why does this matter?
When an API and its documentation fail the exchange smell test, it's a hint that the API designers have limited or no institutional trading experience and aren't prepared to extend the API beyond stock exchanges or a handful of retail trading venues. You'll most likely spend much of your time as your API provider's bug hunter, with support engineers who aren't knowledgeable of any market microstructure.
If you're writing a financial API, whether it's for internal or customer use, it's better to use the term "venue" unless you're certain you'll only ever deal with exchanges. This naming convention may seem pedantic, but it'll creep fast into downstream code, pair programming sessions, research meetings, and trading desk conversations. Before you know it, you'll start saying things like "FINRA TRF exchange" or "UBS exchange."