Bloomberg APIbloomberg.com ↗
Access Bloomberg market data via 3 endpoints: real-time indices, commodities, currencies, bonds, top movers, and latest market news articles.
What is the Bloomberg API?
The Bloomberg Markets API provides 3 endpoints covering real-time prices for stock indices, commodities, currencies, and bonds, plus the most active stocks and latest news from Bloomberg's markets section. The get_market_data endpoint accepts any Bloomberg ticker ID (e.g. SPX:IND, CL1:COM, EURUSD:CUR) and returns price, percent change, and timestamps. get_market_movers pairs each active stock with a live headline and article URL.
curl -X GET 'https://api.parse.bot/scraper/2e69f8d8-bcf7-4bba-a8ac-17a49c3c1887/get_market_data?ticker_ids=SPX%3AIND%2CCCMP%3AIND%2CINDU%3AIND' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace bloomberg-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Bloomberg Markets API — real-time indices, movers, and news."""
from parse_apis.bloomberg_markets_api import Bloomberg, Ticker, Mover, Article, TickerNotFound
client = Bloomberg()
# Fetch major US index tickers — limit caps total items returned.
for ticker in client.tickers.list(ticker_ids="SPX:IND,CCMP:IND,INDU:IND", limit=5):
print(ticker.name, ticker.price, ticker.percent_change_1day)
# Get today's most active stocks with related headlines.
mover = client.movers.list(limit=1).first()
if mover:
print(mover.ticker_id, mover.percent_change_1day, mover.headline)
# Browse latest market news articles.
for article in client.articles.list(limit=3):
print(article.headline, article.byline, article.published_at)
# Typed error handling: catch when ticker lookup yields nothing.
try:
for t in client.tickers.list(ticker_ids="INVALID:XXX", limit=5):
print(t.ticker_id, t.price)
except TickerNotFound as exc:
print(f"Ticker not found: {exc.ticker_ids}")
print("exercised: tickers.list / movers.list / articles.list / TickerNotFound")Real-time market data for stock indices, commodities, currencies, and bonds. Accepts any Bloomberg ticker ID via the comparison data API. Each ticker includes current price, 1-day/1-month/1-year percent changes, and last-update timestamps. A single request can fetch up to ~50 tickers. Tickers not recognized by Bloomberg return an empty collection entry.
| Param | Type | Description |
|---|---|---|
| ticker_ids | string | Comma-separated Bloomberg ticker IDs. Format is SYMBOL:TYPE where TYPE is IND (index), COM (commodity), CUR (currency), GOV (government bond). Examples: SPX:IND, CL1:COM, EURUSD:CUR, GT10:GOV. |
{
"type": "object",
"fields": {
"count": "integer total number of tickers returned",
"tickers": "array of Ticker objects with ticker_id, name, price, percent changes, and timestamps"
},
"sample": {
"data": {
"count": 1,
"tickers": [
{
"name": "S&P 500 INDEX",
"price": 7266.99,
"country": "US",
"long_name": "S&P 500 INDEX",
"ticker_id": "SPX:IND",
"price_date": "6/10/2026",
"last_update_iso": "2026-06-10T20:42:12.000Z",
"price_change_1day": -119.66,
"percent_change_1day": -1.62,
"percent_change_1year": 20.34,
"percent_change_1month": -1.78
}
]
},
"status": "success"
}
}About the Bloomberg API
Market Data by Ticker
The get_market_data endpoint accepts a comma-separated list of Bloomberg ticker IDs via the ticker_ids parameter. You can pass equity indices (e.g. SPX:IND), commodity futures (e.g. CL1:COM), currency pairs (e.g. EURUSD:CUR), or bond tickers. Each ticker object in the response includes id, name, price, percent change fields, and timestamps. Omitting ticker_ids returns a default set of major indices and commodities.
Market Movers
get_market_movers returns the most active or largest-moving stocks at the time of the request. Each mover object carries ticker_id, price, percent_change_1day, a headline from an associated Bloomberg article, and an article_url. The endpoint currently accepts a locale parameter, though only en is supported. This makes the endpoint useful for building watchlists or alerting pipelines that need both price movement and a linked editorial context in one call.
News Articles with Pagination
get_market_news fetches articles from Bloomberg's markets section. Each article object includes id, headline, summary, url, byline, published_at, updated_at, brand, type, a premium flag (indicating whether the article sits behind Bloomberg's paywall), and image_url. Pagination is controlled through limit and offset parameters, and the response echoes back the offset used alongside a count of articles returned. The page parameter lets you target a specific Bloomberg page section.
The Bloomberg API is a managed, monitored endpoint for bloomberg.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when bloomberg.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official bloomberg.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Display a live multi-asset dashboard showing prices and percent changes for custom Bloomberg ticker lists using
get_market_data. - Build a daily market-open email digest by pulling top movers and their associated Bloomberg headlines from
get_market_movers. - Filter
get_market_newsbypremiumflag to surface only freely accessible Bloomberg articles for redistribution or summarization workflows. - Track commodity futures like crude oil (CL1:COM) or gold alongside equity indices in the same response for cross-asset analysis.
- Paginate through Bloomberg market news using
limitandoffsetto archive article metadata, bylines, and publication timestamps. - Pair mover
ticker_iddata withget_market_datato enrich an active-stocks feed with multi-timeframe percent change context. - Monitor currency pairs such as EURUSD:CUR or bond tickers alongside equity indices for a macro trading dashboard.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Bloomberg have an official developer API?+
What does the `premium` field in `get_market_news` indicate?+
premium boolean on each article object signals whether that article is behind Bloomberg's paywall. The API returns the metadata (headline, summary, URL, byline, dates) for premium articles, but the full article body is not included in the response regardless of that flag.Does `get_market_data` support historical price data or only current prices?+
Is company-level fundamental data (earnings, P/E ratios, balance sheets) available?+
How does pagination work in `get_market_news`?+
get_market_news endpoint accepts limit (number of articles to return) and offset (starting position in the result set). The response echoes both count and offset so you can walk through pages sequentially. There is no cursor-based pagination; increment offset by your limit value to fetch the next page.