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.