Skip to content

Quick Start

This guide will help you make your first Bloomberg request.

Get point-in-time data for securities:

import xbbg
# Single ticker, single field
df = xbbg.bdp('AAPL US Equity', 'PX_LAST')
# Multiple tickers and fields
df = xbbg.bdp(
['AAPL US Equity', 'MSFT US Equity'],
['PX_LAST', 'VOLUME', 'NAME']
)

Output (long format):

tickerfieldvalue
AAPL US EquityPX_LAST185.50
AAPL US EquityVOLUME45234521
AAPL US EquityNAMEApple Inc
MSFT US EquityPX_LAST378.91

Get time series data:

df = xbbg.bdh(
'AAPL US Equity',
['PX_LAST', 'VOLUME'],
start_date='2024-01-01',
end_date='2024-01-31'
)

Output:

tickerdatefieldvalue
AAPL US Equity2024-01-02PX_LAST185.50
AAPL US Equity2024-01-02VOLUME45234521
AAPL US Equity2024-01-03PX_LAST186.20

Get multi-row data like dividends or index members:

# Dividend history
df = xbbg.bds('AAPL US Equity', 'DVD_Hist_All')
# Index members
df = xbbg.bds('SPX Index', 'INDX_MEMBERS')

Return data in your preferred DataFrame format:

# Global setting
xbbg.set_backend('polars')
df = xbbg.bdp('AAPL US Equity', 'PX_LAST') # polars.DataFrame
# Per-call override
df = xbbg.bdp('AAPL US Equity', 'PX_LAST', backend='pandas') # pandas.DataFrame
# Available backends: pandas, polars, pyarrow, duckdb, narwhals

For concurrent requests, use the async API:

import asyncio
import xbbg
async def main():
# Concurrent requests
results = await asyncio.gather(
xbbg.abdp('AAPL US Equity', 'PX_LAST'),
xbbg.abdp('MSFT US Equity', 'PX_LAST'),
xbbg.abdp('GOOGL US Equity', 'PX_LAST'),
)
return results
dfs = asyncio.run(main())