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.