or those of us who have been in the Financial Services industry for a while, Bloomberg always meant the terminal, but over the last 10 years Bloomberg has been increasing the set of data feeds they offer, until we are left with a (sometimes bewilidering) set of feeds each with its own unique characteristics. During this time, I’ve worked with all of them…. written feed handlers for them and helped clients write applications that consume data from the feed handlers. This is a quick tour.
Normally one might expect with a market data feed, that you request a security and you get all the data. Bloomberg is rather different in this respect because of the huge quantity of reference data available, which must be requested separately. I make a deliberate distinction between static data (price data whose values may change during the day but not broadcast, e.g. FWD_RT_1MO) and reference data (e.g. ID_ISIN, INDUSTRY_SECTOR even though they are requested and delivered in the same way. Also Bloomberg provide some calculation facilities through their "override fields" .
The set of market data feeds is summarised in the table
API | Real-Time | Reference Data | Static Data | API Style | Market Depth * |
Desktop API | streamed | Full range | Full range | V3 | Top 5 |
Server API | streamed | Full range | Full range | V3 | Top 5 |
Managed BPIPE | streamed | Full / Limited ** | Full /Limited ** | V3 | Top 5 |
BPIPE | streamed | Limited | None | BPIPE | Full |
BPOD | streamed | Limited | None | BPIPE | Full |
Data Licence | snapshot | Full range | Full range | ftp | N/A |
* Depends on entitlement to level 2 data
** Depends on Bloomberg Anywhere subscription.(see below)
The Desktop API (DAPI, aka Terminal API) allows applications running on the same PC as a Bloomberg terminal access to much of the data provided by the Bloomberg terminal. This is the api that powers the Bloomberg (and Tick42) DDE and RTD excel add-ins. The data is delivered as a mix of real-time update streams and one-off requests for static and reference data.
The Server API (SAPI) is essential the same feed as the DAPI but can be accessed as a service shared by many users and applications, subject to user authentication and entitlement checks. Consuming client apps can run without a logged-on terminal providing viewers of the data are logged on to a terminal.
Managed BPIPE is BPOD data accessed using the API V3 running on hardware managed by Bloomberg. If the user is logged onto a Bloomberg Anywhere subscription then the full range of SAPI static and refernce data is available, otherwise a limited subset set of the fields is provided. It currently returns 5 levels of depth, but since the system has access to the B-Pod data I think Bloomberg could add more depth at a later date.
The Bloomberg Data Licence provides access to a huge range of reference data delivered as downloaded files via an ftp based mechanism. You simply parse the file to extract the data. Because it is not real-time there is no exchange fee liability; it has it own pricing model based on how much data you request. Unlike the DAPI / SAPI feeds there are no limits on the amount of static data you can request, other than wehat you are prepared to pay for.
BPIPE and BPOD (BPIPE on Demand) provide a real-time data stream with a limited set of reference data and summary data injected into the stream. It is a consolidated feed competing with, for example, Reuters IDN. The BPIPE delivers data on per-exchange basis (based on which exchanges the feed is permissioned for) while the BPOD is based on requesting specific securities. BPIPE can carry full market depth whereas the the DAPI/SAPI feeds only carry the top 5.
An important point to consider with BPIPE is that items are not requested - instead every instrument on the exchange is delivered. This means bandwidth requirements can be high but clients don't need to worry about reference data lists giving them the names of all instruments on an exchange
The V3 API brings together the Deskptop, SAPI and Managed BPIPE into a single API available in .Net, Java and C++. Bloomberg have recently included this api (but not their implementation) as part of their Open Market Data Initiative. Although it delivers the same data as the original terminal API, the programming model is is completely different.
Some years ago Bloomberg did appear to be aiming towards a single API for all their data feeds but the seem to have wimped out leaving us with 2 distinct families of API as well as an old file-based ftp protocol.