Bloomberg All-in-One API avatar

Bloomberg All-in-One API

Pricing

from $0.01 / 1,000 results

Go to Apify Store
Bloomberg All-in-One API

Bloomberg All-in-One API

Unofficial always-on REST API for live Bloomberg financial data: quotes, security detail, financials, news, movers, charts, full article bodies (even premium ones), search, Home feed, and Media tab — across stocks, indices, commodities, currencies, bonds. No account needed.

Pricing

from $0.01 / 1,000 results

Rating

0.0

(0)

Developer

Romy

Romy

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

14 hours ago

Last modified

Share

What does Bloomberg All-in-One API do?

Bloomberg All-in-One API is a REST endpoint for live Bloomberg financial data — real-time quotes, full security detail, financials, key statistics, news, top movers, historical price charts, full article bodies, unified search, the regional Home feed, and the Media tab's trending video/audio and live-TV schedule — across stocks, indices, commodities, currencies, and bonds. All from a single always-on API powered by Apify Standby.

It talks directly to the same internal API the official Bloomberg Android app uses, reverse-engineered by capturing and analyzing live traffic from the real app — including bypassing its dual-layer TLS certificate pinning and root-detection with Frida on a real device — then independently re-confirmed by calling the API directly from a plain server with no device involved at all. No Bloomberg account, no API key — call the endpoint, get JSON back.

Why use Bloomberg All-in-One API?

  • No signature, token, or session cookie needed — confirmed live: only a fixed user-agent header identifying the app is required, nothing else
  • Even "premium" content is unrestrictedGET /articles/{id} returns the full article body even for articles the app's own UI marks premium: true and gates behind "You've reached your free article limit"; confirmed live this is a client-side UI nag only, not a server-side restriction
  • One search covers both securities and newsGET /search matches a query against tickers, company names, and news headlines in a single call, the same endpoint the app's own search bar uses
  • Universal security model — the same GET /securities/{id} shape works for stocks, indices, commodities, currencies, and bonds, with a links object pointing to every related resource for that security
  • Always-on — Standby mode means no cold start, responds in milliseconds
  • No account needed — every endpoint works fully anonymously
  • Use cases: market data dashboards, portfolio trackers, financial news aggregation, quant research, price alerting

Endpoints

MethodPathDescription
GET/securitiesBatch quote (price, % change) for any mix of security types
GET/securities/{id}Full detail: profile, executives, P/E, market cap, volume
GET/securities/{id}/financialsIncome statement, quarterly and annual
GET/securities/{id}/statsKey statistics (P/E ratios, etc)
GET/securities/{id}/newsPer-security news and video listing
GET/securities/{id}/moversTop active/gainers/losers (index and stock only)
GET/securities/{id}/chart/{range}Historical price + volume ticks
GET/articles/{id}Full article body, even premium: true ones
GET/articles/bulletinBatch article summaries (title, thumbnail, etc.)
GET/searchUnified search across securities and news
GET/home/{region}Regional curated Home feed (top stories, videos, markets)
GET/media/videos/trendingTrending videos
GET/media/audios/trendingTrending audio/podcasts
GET/media/live/{lineup}/scheduleLive TV show schedule
GET/media/live/{lineup}/eventCurrently-airing live TV event detail

How to use Bloomberg All-in-One API

  1. Open this Actor's Standby API URL (shown on the Actor's page, under the API tab).
  2. Call any endpoint — for example:
    curl "https://romy--bloomberg-all-in-one-api.apify.actor/search?q=microsoft"
    curl "https://romy--bloomberg-all-in-one-api.apify.actor/securities?ids=aapl:us,indu:ind,eurusd:cur"
    curl "https://romy--bloomberg-all-in-one-api.apify.actor/securities/aapl:us"
    curl "https://romy--bloomberg-all-in-one-api.apify.actor/securities/aapl:us/financials"
    curl "https://romy--bloomberg-all-in-one-api.apify.actor/securities/aapl:us/news"
    curl "https://romy--bloomberg-all-in-one-api.apify.actor/securities/ccmp:ind/movers?template=INDEX"
    curl "https://romy--bloomberg-all-in-one-api.apify.actor/securities/aapl:us/chart/m1"
    curl "https://romy--bloomberg-all-in-one-api.apify.actor/articles/TKAK8NT9NJLU00"
    curl "https://romy--bloomberg-all-in-one-api.apify.actor/home/asia"
    curl "https://romy--bloomberg-all-in-one-api.apify.actor/media/videos/trending"
    curl "https://romy--bloomberg-all-in-one-api.apify.actor/media/live/ASIA_LINEUP/schedule"
    Every call needs your Apify API token, either as Authorization: Bearer <token> or ?token=<token> — the Actor's page API tab has a ready-to-copy version with your token filled in.
  3. Read the JSON response — no setup required.

Parameters

GET /securitiesids required (comma-separated, format symbol:exchange for stocks, e.g. aapl:us; index/commodity/currency/bond codes like indu:ind, cl1:com, eurusd:cur, gt10:gov for other asset classes). Confirmed live with 81 distinct ids in one call, no batch-size limit found.

GET /securities/{id} — path param id required. Get one from GET /search. Same response shape regardless of asset class.

GET /securities/{id}/financials — path param id required.

ParamTypeExampleMeaning
currencystringUSDISO 4217 currency code

Confirmed a real, fixed depth server-side — 4 quarters and 4 years. Every periods/years/limit param tried was silently ignored.

GET /securities/{id}/stats — path param id required, no other params.

GET /securities/{id}/news — path param id required, no other params. Confirmed a real, fixed cap of 10 stories server-side — every pagination param tried (limit, offset, page, count, size, pageSize, maxResults, num) was ignored.

GET /securities/{id}/movers — path param id required (a reference security, e.g. an index for template=INDEX).

ParamTypeExampleMeaning
templatestring, default STOCK, enum INDEX|STOCKINDEXAsset class — only these two work

Confirmed live: template=COMMODITY/CURRENCY/BOND all return {"restricted":true} — a real server-side restriction, not a bug here.

GET /securities/{id}/chart/{range} — path params id and range required. range is one of d1, d2, d3, ytd, m1, m3, m6, y1, y5.

GET /articles/{id} — path param id required. Get an id from a type: "article" story in GET /securities/{id}/news or GET /search's news array.

GET /articles/bulletinids required (comma-separated article internal ids).

GET /home/{region} — path param region required, one of africa, asia, canada, europe, latam, uk. Confirmed live for these 6 regions only — other guesses (us, global, apac, emea, ...) 404.

GET /media/videos/trending and GET /media/audios/trending — no params.

GET /media/live/{lineup}/schedule and GET /media/live/{lineup}/event — path param lineup required, one of ASIA_LINEUP, ASIA_EVENT_LINEUP. Confirmed live for these 2 lineups only — other guessed lineup names found in the app's bundled code (AUS_LINEUP, PHOENIX_US_LINEUP, POLITICS_LINEUP, PAN_EUROPE_EVENT) all 400.

GET /searchq required.

ParamTypeExampleMeaning
qstringmicrosoftSearch text — real substring match on ticker + company name
filterstring, default ALLEQUITYRestrict to one asset class: ALL, EQUITY, INDEX, COMMODITY, CURRENCY, FUND
securityLimitint, default 2510Max security results — real cap, confirmed live, effective max 25
storyLimitint, default 2510Max news results — same behavior as securityLimit
countrystring, default USIDISO 3166-1 alpha-2 country code, used for result relevance

Confirmed live: no offset/page param exists beyond the 25-result cap on either limit.

Output

Every response is returned directly over HTTP — this Actor does not write to an Apify dataset. Real responses (trimmed for readability):

GET /search?q=microsoft (trimmed to one quote, one story):

{
"success": true,
"quote": [
{ "symbol": "MSFT", "ticker": "msft:us", "tickerName": "MSFT:US", "name": "Microsoft Corp", "resourceId": "MSFT:US" }
],
"news": [
{ "title": "Microsoft Cuts Purchases of Carbon Removals by 80% Amid AI Push", "published": 1787680000 }
]
}

GET /securities?ids=aapl:us (trimmed):

{
"success": true,
"result": {
"aapl:us": { "symbol": "AAPL", "name": "Apple Inc", "last": "309.42", "netChange": "-0.59", "pctChange": "-0.19" }
}
}

GET /securities/aapl:us (trimmed to key fields):

{
"success": true,
"result": {
"aapl:us": {
"name": "Apple Inc",
"sector": "Technology",
"exchange": "NASDAQ GS",
"last": 309.75,
"open": 310.79,
"volume": 11734148,
"marketCap": 4521714789400,
"peRatio": 35.53,
"yearHigh": 344.57,
"yearLow": 224.69,
"executives": [{ "title": "Chief Executive Officer", "name": "Timothy Donald Cook \"Tim\"" }]
}
}
}

GET /securities/aapl:us/movers (template=INDEX, trimmed to one leader):

{
"success": true,
"leaders": [{ "symbol": "AIXI", "name": "...", "last": "...", "pctChange": "..." }],
"laggards": [{ "symbol": "OSRH", "...": "..." }],
"active": [{ "symbol": "NCPL", "...": "..." }]
}

GET /articles/TKAK8NT9NJLU00 (trimmed):

{
"success": true,
"title": "Apple Unveils New Mac Mini, Mac Studio With Major Chip Upgrades",
"byline": "Chris Welch",
"wordCount": 549,
"premium": false,
"components": [
{ "role": "p", "parts": [{ "role": "text", "text": "The Mac mini, now starting at $899, will be powered by Apple's new M6 chip..." }] }
]
}

Data notes

  • No signature, token, or session cookie required, confirmed from two independent angles. First captured live from the real Android app with all traffic passed through an SSL-intercepting proxy — required defeating dual-layer TLS pinning (standard OkHttp CertificatePinner on some calls, a separate app-level SSLContext/TrustManager layer on others) plus root-detection that otherwise silently blocks the app from starting entirely on a rooted device. Then independently re-confirmed by calling the same API directly from a plain server, with no device involved at all — it worked identically, only needing the same fixed user-agent string a real app install sends.
  • premium: true articles are not actually restricted server-side. Confirmed live: an article the app's own UI shows behind "You've reached your free article limit" / "Get the story behind the story when you subscribe" still returns its full 2000+-word body and all structured components through this same API call — the flag only drives the app's own client-side paywall UI.
  • Search, the Home feed, and the Media tab's trending/live-TV data are all real API calls, not bundled local data or WebView content — but they're easy to mistake for that. The app sends this traffic over an already-open HTTP/1.1 keep-alive socket via a raw HTTP client, not through its usual HTTP library's request-builder — three independent traffic-capture methods (a hook on the app's HTTP client class, a hook on the native connect() syscall, and raw tcpdump packet capture) all showed zero relevant traffic for any of it. It only surfaced when hooking one layer deeper, at the TLS socket's plaintext write, before encryption. Only the topic/category feeds under the app's Menu (Technology/Politics/etc.) remain genuinely WebView-only — that traffic produced zero requests at any hook layer, including the deep one.
  • /home/{region} and /media/live/{lineup}/* only work for a small, confirmed set of values. Region and lineup names aren't a free-form field — they were found via a regex sweep of the app's bundled JS strings, then verified live one by one; unlisted guesses reliably 404/400 rather than silently falling back.
  • /securities/{id} uses one universal shape across every asset class — confirmed live for stocks (aapl:us), indices (ccmp:ind), commodities (cl1:com), currencies (eurusd:cur), and bonds (gt10:gov); field availability varies sensibly by type (e.g. marketCap only meaningfully populated for stocks) but the endpoint and id format never change.
  • /securities/{id}/movers's restricted behavior is a real, confirmed server-side rule — not every asset class supports "top movers" the way indices and stocks do.
  • Every hard-capped endpoint (news at 10, movers at 10 per category, financials at 4 periods, search at 25) was confirmed by directly testing every plausible pagination parameter name against the live API — none had any effect, so these are documented as real limits rather than left to guesswork.

Pricing

Pay-per-event, billed only on a successful call — one event per request, tiered by your Apify plan (Free/Bronze/Silver/Gold/Platinum/Diamond get progressively cheaper rates). See the Actor's Pricing tab for the exact current rate per tier.

EventWhat it charges for
securities-compactBatch quote
security-fullFull security detail
security-financialsIncome statement
security-statsKey statistics
security-newsPer-security news listing
security-moversTop movers
security-chartHistorical price chart
articleFull article body
articles-bulletinBatch article summaries
searchUnified security + news search
home-pageRegional Home feed
media-videos-trendingTrending videos
media-audios-trendingTrending audio/podcasts
media-live-scheduleLive TV show schedule
media-live-eventCurrently-airing live TV event

Known limitations

  • No portfolio/watchlist endpoints. The app's personal watchlist and portfolio holdings require a real signed-in Bloomberg account — confirmed live via the app's own /user/login and /sso/login endpoints — and are out of scope for this Actor, by design (no account credentials are used or stored).
  • Topic/category feeds (Technology, Politics, etc. under the app's Menu) are not covered. See Data notes above — confirmed WebView-only, unlike the Home feed and Media tab which this Actor does cover.
  • /home/{region} and /media/live/{lineup}/* are limited to the confirmed regions/lineups listed under Parameters — not every region or lineup name that appears in the app's code is a working value.
  • No live trading/order endpoints. This Actor only wraps guest-accessible, read-only market-data and content endpoints.
  • /search and /securities/{id}/news are hard-capped server-side (25 and 10 results respectively) with no way to page further — see Data notes.
  • This is an unofficial, reverse-engineered integration, not affiliated with or endorsed by Bloomberg L.P. Behavior may change if Bloomberg changes its API.

Found a bug or have a feature request? Use the Issues tab on this Actor's page.