Most Bloomberg Terminal users interact with the platform through its graphical interface: typing function codes, reading screens, copying data. That works fine for ad-hoc research. But for repeatable, daily workflows, it’s painfully inefficient.
That’s where BQL and the Bloomberg API come in.
BQL: SQL for Financial Data
Bloomberg Query Language (BQL) is essentially SQL designed for financial
data. If you can write SELECT * FROM stocks WHERE..., you can write BQL.
A simple example: pulling current price and P/E ratio for a basket of UK equities:
get(PX_LAST, PE_RATIO)
for(filter(members('UKX Index'),
PE_RATIO < 20))
That single query replaces what might otherwise be 30 minutes of manual lookups across individual company screens.
API: Programmatic Access
The Bloomberg API provides programmatic access to the same data, but with more control over formatting, scheduling, and integration. You can:
- Pull real-time and historical data into Excel, Python, or any API-compatible tool
- Schedule automatic refreshes at set intervals
- Build custom data pipelines that feed into models or dashboards
In Excel, the API works through a simple add-in. You define your securities and fields once, then refresh with a single click.
When to Use Which
| Scenario | Best Tool |
|---|---|
| Quick ad-hoc research | Terminal GUI |
| Daily data pulls, 5–50 securities | BQL in Excel |
| Large-scale or scheduled extracts | Bloomberg API |
| Building models or dashboards | API + Excel/Python |
The Untapped Opportunity
In my experience, maybe one in ten equity clients uses BQL or the API regularly, despite the fact that almost all of them could benefit from automation. The barrier isn’t technical complexity; it’s awareness.
BQL syntax is learnable in an afternoon. The API takes a bit longer, but the Excel integration makes it accessible to anyone comfortable with spreadsheets.
The clients who make the investment see their daily data-gathering shrink from hours to minutes. The ones who don’t keep spending their mornings copying and pasting.