How are they different technologically and in terms of practical usage (e.g. different types of datasets available, etc)?
Researched around but can't find a clear answer.
For a high-level comparison, B-PIPE is just a data stream and SAPI is a traditional API. Both B-PIPE and SAPI give access to the same data that powers Bloomberg Terminal but that is effectively all that B-PIPE does whereas SAPI provides a more diverse interface for building out more robust applications. If all you need is the Bloomberg Terminal data stream, then B-PIPE is the more economical choice. However, if you need additional features then B-PIPE will not do but SAPI may suffice, depending on what you need.
UPDATED LINK: Here is the documentation for a more in-depth look at the two technologies.
Let's talk about some basics. Bloomberg has a lot of content, content it creates, content it downloads from listed venues (eg, exchanges, MTFS), content it researches (eg, ESG), content from its venues (ALLQ, FXGO, SEF). The content is available through three channels; The Bloomberg Terminal, Data License, and, the Realtime API.
The Bloomberg Terminal is for "viewing" (eyeballing). Data License provides SFTP, WebServices(SOAP/XML) and REST access to those content sets (they have something called bulk/back-office datasets). Data License is very much a request-wait-response paradigm. It's meant for end/start of day processes, for intraday (eg, NAV). The realtime API is the "I need it now" request.
The realtime API is in fact the BLP API. To use the BLP API you have to connect to a 'delivery point'. There are three delivery points;
When you light up a Bloomberg Terminal, it also lights up a Bloomberg Terminal delivery point. Sometimes called DAPI, or BBCOMM. That means, as a Bloomberg Terminal subscriber you could write some Python and use the BLP API library and connect to localhost:8194 delivery point and away you go.
However, imagine there is a desk of equity traders and you all want the same analytics, or blotter. You might consider something like Charles River as an ISV application. In order to better service the community (desk) of Bloomberg Terminal users, the organisation would benefit from a Server API (SAPI). It's a terrible name, but effectively, it's a server that presents a delivery point, that presents the BLP API, that allows you to write client/server applications for Bloomberg Terminal users. The licensing stipulates the same conditions for SAPI that align with the Bloomberg Terminal. That is, no distribution of data, no systematic trading, no derived works, etc
To go beyond this you need an "enterprise" feed. Enter B-PIPE. It presents a delivery point (on-premise, private cloud and public cloud options), where you can use the BLP API. There's not many restrictions on use although you may have to have deep pockets for some use cases (eg, redistribution).
So, for the realtime (I want it now) access you use the BLP API. You can use the BLP API to delivery points available on the Bloomberg Terminal (DAPI), Server API (SAPI), and B-PIPE.
You can write a piece of code that runs on DAPI, that will work on SAPI that will work on B-PIPE. Behind the scenes, the BLP API isa micro-services approach. The micro-services are called //blp/, so the //blp/mktdata is if you want to stream ticks from a venue (listed or OTC), and //blp/refdata is if you want to snap, //blp/mktdepthdata is if you want to look at the Level2/3 order book, and so on.
There's probably about 10 micro-services common across all three delivery points, and way more (for $$$) on B-PIPE.
The other point to bear in mind is licensing which is where the real difference is (because the API is the same). Licensing for Terminal/DAPI and SAPI is display only. B-PIPE is everything (within reason).
Hope that helps.
PS. BLP API information (SDKs) are available here: https://www.bloomberg.com/professional/support/api-library/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With