CNBC All-in-One API
Pricing
Pay per event + usage
CNBC All-in-One API
Unofficial always-on REST API for live CNBC data: news feed, trending, breaking news, special reports, article body text, video with direct stream URL, TV schedule, market ticker banner, and real-time stock/bond/crypto quotes with symbol search. No account needed.
What does CNBC All-in-One API do?
CNBC All-in-One API is a REST endpoint for CNBC's live data — news feed, trending news & videos, breaking news, special reports, most-popular articles, article detail, video with a direct playable stream URL, today's live TV schedule, and a market index ticker banner — plus real-time quotes for stocks, indexes, bonds, crypto, and commodities with symbol search, per-symbol news, and fundamentals. All from a single always-on API powered by Apify Standby.
It talks directly to the same internal API the official CNBC Android app uses (webql.cnbcfm.com, quote.cnbc.com, marketdata.cnbc.com), reverse-engineered by live MITM capture against a real device — every endpoint below is a real persisted GraphQL query or REST call the app itself sends (captured live, never guessed). No CNBC account, no API key, no scraping setup — call the endpoint, get JSON back. Every endpoint works fully anonymously (confirmed by inspecting real request headers — no Authorization header, no cookie, no session token needed).
Why use CNBC All-in-One API?
- Full article body text, no account needed —
/articlereturns real structured body content (paragraphs, links) for the large majority of CNBC's articles anonymously; onlypremium: true(Investing Club/Pro) pieces are gated - Real-time quotes for anything CNBC covers — stocks, indexes, bonds, crypto, commodities, futures, forex — one endpoint, no auth
- Video with a direct stream URL —
/videoreturns aplaybackURLyou can hand straight to any HLS player, no scraping the video player page - Live TV schedule — what's on CNBC right now and what's coming up next
- Market ticker banner — the DJIA/S&P 500/NASDAQ-style summary the app itself shows on its home screen
- Symbol search → fundamentals pipeline — search a company name, get its internal id, pull 52-week/5-year/10-year highs and lows and period returns
- Always-on — Standby mode means no cold start, responds in milliseconds
- No account needed — every endpoint works fully anonymously
- Use cases: financial dashboards, market monitoring bots, news aggregation, quote widgets, video/media pipelines
Endpoints
| Method | Path | Description |
|---|---|---|
GET | /news | Content feed for one or more section ids |
GET | /trending | Trending news articles or trending videos |
GET | /breaking-news | Current breaking news alert / watch-live banner |
GET | /special-reports | Special reports feed |
GET | /most-popular | "Most popular" articles rail, scoped to an article |
GET | /article | Article detail, full body text included for non-premium articles |
GET | /video | Video detail with a direct playable stream URL |
GET | /tv-schedule | Today's live TV schedule |
GET | /markets | Market index ticker banner (DJIA/S&P 500/NASDAQ) |
GET | /quote | Real-time quote for any symbol (stocks, indexes, bonds, crypto, ...) |
GET | /quote-search | Search for a symbol by company name or ticker |
GET | /quote-news | News related to a specific symbol |
GET | /fundamentals | 52-week/5-year/10-year highs and lows, period returns |
How to use CNBC All-in-One API
- Open this Actor's Standby API URL (shown on the Actor's page, under the API tab) —
https://romy--cnbc-all-in-one-api.apify.actor. - Call any endpoint — for example:
Every call needs your Apify API token, either ascurl "https://romy--cnbc-all-in-one-api.apify.actor/news?ids=105230142&count=10"curl "https://romy--cnbc-all-in-one-api.apify.actor/trending?type=news"curl "https://romy--cnbc-all-in-one-api.apify.actor/quote?symbols=AAPL,.DJI,US10Y"curl "https://romy--cnbc-all-in-one-api.apify.actor/quote-search?symbol=TESLA"curl "https://romy--cnbc-all-in-one-api.apify.actor/video?vcp_id=7000422401"curl "https://romy--cnbc-all-in-one-api.apify.actor/tv-schedule"curl "https://romy--cnbc-all-in-one-api.apify.actor/markets"Authorization: Bearer <token>or?token=<token>— the Actor's page API tab has a ready-to-copy version with your token filled in. - Read the JSON response — no setup required.
Parameters
GET /news — ids required.
| Param | Type | Example | Meaning |
|---|---|---|---|
ids | int[], repeat | 105230142 | One or more section ids (repeat ids= for multiple). 105230142 is the app's default Home feed. |
count | int, default 30 | 30 | Assets per section |
GET /trending — type required.
| Param | Type | Example | Meaning |
|---|---|---|---|
type | enum | news | news | videos |
count | int, default 13 | 13 | Items to return — type=news only |
start_period | string, default 2h | 2h | Trending time window — type=videos only. App's own default, not a confirmed enum |
sort_by | string, default engaged_minutes | engaged_minutes | Ranking metric — type=videos only. Same caveat as start_period |
GET /breaking-news
| Param | Type, default | Example | Meaning |
|---|---|---|---|
product | string, web | web | Product surface — only web confirmed live |
GET /special-reports
| Param | Type, default | Example | Meaning |
|---|---|---|---|
page_size | int, 30 | 30 | Reports to return |
GET /most-popular — id required.
| Param | Type | Example | Meaning |
|---|---|---|---|
id | int | 108352201 | Article id to scope the "most popular" rail to |
GET /article — id required.
| Param | Type | Example | Meaning |
|---|---|---|---|
id | int | 108351154 | Article id. Full body text unless the article is premium: true (see Data notes) |
GET /video — vcp_id required.
| Param | Type | Example | Meaning |
|---|---|---|---|
vcp_id | int | 7000422401 | The video's numeric vcpID |
GET /tv-schedule — no parameters.
GET /markets
| Param | Type, default | Example | Meaning |
|---|---|---|---|
id | int, 100769431 | 100769431 | Banner preset — default is the app's "US" home-screen banner |
security_count | int, 3 | 3 | Securities to include |
GET /quote — symbols required.
| Param | Type | Example | Meaning |
|---|---|---|---|
symbols | string | AAPL,.DJI,US10Y,BTC.CM= | Comma-separated symbols. Real formats: plain ticker (AAPL), index with leading dot (.DJI), bond (US10Y), crypto suffixed .CM=, futures prefixed @ (@CL.1) |
GET /quote-search — symbol required.
| Param | Type | Example | Meaning |
|---|---|---|---|
symbol | string | TESLA | Company name or partial ticker |
GET /quote-news — symbol required.
| Param | Type | Example | Meaning |
|---|---|---|---|
symbol | string | .DJI | Symbol to fetch news for |
section | string | 106983828 | Optional section id — confirmed real param, exact effect not fully characterized |
GET /fundamentals — wsod_issue required.
| Param | Type, default | Example | Meaning |
|---|---|---|---|
wsod_issue | string | 599362 | CNBC's internal security id (NOT the ticker) — get it from /quote-search//quote's issueId |
section | string, returns | returns | Only returns confirmed live; other values may exist but aren't validated |
Output
Every response is returned directly over HTTP — this Actor does not write to an Apify dataset. Responses pass through CNBC's own real (deeply nested) GraphQL/REST data. Real responses (trimmed to the most relevant fields for readability):
GET /quote?symbols=AAPL:
{"success": true,"quote": {"FormattedQuoteResult": {"FormattedQuote": [{"symbol": "AAPL","name": "Apple Inc.","last": "313.36","changetype": "DOWN","change": "-3.47","change_pct": "-1.10%","exchange": "NASDAQ"}]}}}
GET /article?id=108351154 (a regular, premium: false article — full body text, no auth):
{"success": true,"article": {"id": 108351154,"premium": false,"body": {"isAuthenticated": false,"content": [{"tagName": "div","children": [{"tagName": "p","children": ["Americans love ",{"tagName": "a","attributes": { "href": "https://www.cnbc.com/sport/" },"children": ["sports"]}," — so much so that many are spending hundreds or thousands of dollars a year to show their fandom."]}]}]}}}
GET /video?vcp_id=7000422401:
{"success": true,"video": {"headline": "Watch CNBC's full interview with Treasury Secretary Scott Bessent","duration": 1148,"playbackURL": "//cnbcawsmpvod.akamaized.net/out/v1/6629fb.../master.m3u8","section": { "shortestHeadline": "Squawk on the Street" }}}
GET /tv-schedule:
{"success": true,"schedule": {"currDate": "2026-08-20","live": { "shortTitle": "Closing Bell", "startTimeFormatted": "03:00 pm", "endTimeFormatted": "04:00 pm" }}}
GET /fundamentals?wsod_issue=599362:
{"success": true,"fundamentals": {"599362": {"Ranges": [{ "Name": "52-Wk Hi/Lo", "HighValue": "53289.30", "LowValue": "43340.68" }],"Values": [{ "Name": "FiveDayReturn", "Value": "0.23%" }]}}}
Data notes
- Two separate GraphQL backends are involved:
webql.cnbcfm.com(the native app's own backend, powers/news,/trending,/breaking-news,/special-reports,/video,/tv-schedule,/markets,/quote-search,/quote-news) andwebql-redesign.cnbcfm.com(the website's backend, powers/articleand/most-popular— reachable from inside the app's in-app article browser). Both use Apollo-style persisted queries (fixed sha256 hashes) with no auth. /articlereturns full body text for regular articles, no auth needed. Onlypremium: truearticles (Investing Club / CNBC Pro pieces) come back with an emptybody.contentarray when unauthenticated — that paywall is server-enforced, not a client-side UI restriction. Confirmed live across an 11-article sample: 9 of 11 (premium: false) returned full structured body text; the 2premium: trueones were empty. Check the response'spremiumfield to know which case you got./quote's symbol formats are real, not guessed: confirmed live across stocks (AAPL), indexes with a leading dot (.DJI,.SPX), bonds (US10Y,US30Y), crypto suffixed.CM=(BTC.CM=), and futures/commodities prefixed@(@CL.1for crude oil) — the same endpoint handles all of them./video'splaybackURLis a direct Akamai HLS master playlist, confirmed playable with no signature or expiring token in the URL./trending'sstart_period/sort_by(videos only) are the app's own fixed defaults — no in-app control to change them was found, so only one real value is confirmed for each; they're passed through as-is rather than validated against a guessed enum.- The app has no separate article/content search — its single search icon (present on every News tab, including Home) always opens the same stock/symbol search (
quoteSearch), confirmed live./quote-searchcovers 100% of the app's search feature; there's no/searchendpoint here because there's nothing further to wrap. - No pagination exists for
/news,/trending, or/special-reports. Confirmed by scrolling all the way to the bottom of the app's Home feed, Trending Now, and Special Reports screens repeatedly —sections/trendingNews/specialReportsare always called with the exact samecount/pageSize, never an offset or cursor. These are fixed-size bounded lists in the app itself, not infinite-scroll feeds —count/page_sizeon those endpoints is the only real control, not a partial implementation. - The CNBC app's production build ignores Android's system-wide HTTP proxy setting and only trusts the OS + user certificate store — unlike some apps in this series, capturing its traffic needed extra work beyond the usual TLS-validation bypass used elsewhere across this developer's actors.
Pricing
Pay-per-event, billed on each successful call. See the Actor's Pricing tab for current rates.
Known limitations
/articleonly withholds body text forpremium: truearticles (Investing Club / CNBC Pro) — that paywall is enforced server-side even for anonymous requests, and this Actor does not support logging into a CNBC account to get around it. Regular articles are unaffected — full body text either way./fundamentals's upstream (marketdata.cnbc.com) showed intermittent503s during development, unrelated to request format — a502from this endpoint may just reflect a transient issue on CNBC's side, worth retrying./fundamentals'ssectionparameter is only confirmed with the valuereturns; other section values common on similar financial APIs (profile, estimates, financials) may be real but weren't captured live, so aren't documented as guaranteed to work.- This is an unofficial, reverse-engineered integration, not affiliated with or endorsed by CNBC or NBCUniversal. Behavior may change if CNBC changes its API.
Found a bug or have a feature request? Use the Issues tab on this Actor's page.