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.