Morningstar Scraper [$1💰/1K] | Quotes | Holdings | Ratings
Pricing
from $0.90 / 1,000 qoutes & live prices
Morningstar Scraper [$1💰/1K] | Quotes | Holdings | Ratings
Pull Morningstar quotes, live prices, fund holdings, star and analyst ratings, performance tables, profiles, market news and movers — seven resources, each in its own dataset, no API key and no browser. Built for advisors, fintech apps and investment research. From $1 per 1,000 quotes.
Pricing
from $0.90 / 1,000 qoutes & live prices
Rating
0.0
(0)
Developer
Ahmed Jasarevic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 days ago
Last modified
Categories
Features
Share
Morningstar Scraper
Extract Morningstar quotes, live prices, fund holdings, star and analyst ratings, performance tables, profiles, market news and market movers — seven resources, each writing to its own dataset — without a browser or an API key, from $1 per 1,000 quotes.
Built for:
- Investment advisors and wealth managers maintaining client research
- Fintech apps that need structured quotes, ratings and holdings
- Monitoring a watchlist of funds, ETFs and stocks
- Building a joinable fund database (holdings, ratings, performance)
- Asset managers tracking category performance and analyst views
Get Morningstar Quotes, Ratings & Fund Holdings Without an API Key
Give the actor tickers (VFIAX, VOO, AAPL), fund names, ISINs or Morningstar quote URLs — each is resolved through Morningstar's own security-search endpoint — then select the resources you need. Every resource writes to its own dataset (quotes, holdings, ratings, performance, profile, news, movers, plus a securities resolution log), rows carry secId so datasets join cleanly, and only selected resources generate requests and charges. A default run with the three prefilled securities and all resources produces about 132 rows across the eight datasets.
How It Works

Rather than render pages behind Morningstar's AWS WAF, the Actor calls the same JSON services the site uses: the public SAL API, Nuxt front-end stores, an Arc RSS feed and open sitemaps. A shared secId links every resource.
Seven datasets cover quotes, holdings, star and analyst ratings, performance, profiles, news and daily movers, with only the selected resources billed.
Morningstar's HTML pages sit behind an AWS WAF challenge that turns away plain HTTP clients, so this actor skips page rendering entirely and calls the JSON surfaces the site's own front end uses:
- SAL public service (
api-global.morningstar.com, authenticated only with the publicapikeyheader the site embeds) — quote metrics, holdings, star/analyst ratings, performance table, style box, risk, profile. - Nuxt front-end stores (
www.morningstar.com/api/v2/stores/...) — ticker/name/ISIN → security-ID resolution, live price/NAV, daily movers. - Arc RSS feed (
media.morningstar.com) — market news. - Sitemaps (open) — quote-URL enumeration for bulk seeding.
The endpoints were found in the site's own JS bundles; all answer with clean JSON, so the actor runs as a pure HTTP crawler on 256 MB of memory — no Playwright, no browser. Analyst-research pages, price-target and screener stores are login-gated (401) and are not read.
Input Parameters
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
securities | array | No* | [] | Tickers (VFIAX, VOO, AAPL), fund names, ISINs or full Morningstar quote URLs. |
resources | array | No | all seven | Any subset of quotes, holdings, ratings, performance, profile, news, movers. |
maxSecurities | integer | No | 25 | Securities per run; free accounts are capped at 10. |
maxHoldingsPerFund | integer | No | 25 | Portfolio positions saved per fund. |
maxNewsItems | integer | No | 25 | Market-news items from the RSS feed. |
maxRequestsPerCrawl | integer | No | 500 | Hard cap on HTTP requests (25 securities with all resources ≈ 252 requests). |
proxy | object | No | disabled | Standard Apify proxy picker; enable if your IPs get WAF-challenged. |
* Provide at least one security unless you only want news / movers (then deselect all per-security resources).
Output Fields
The default dataset is intentionally empty — results go to one dataset per resource:
| Dataset | Rows | Key fields |
|---|---|---|
securities | 1 per input | securityID, performanceID, ticker, name, exchange, slug, investmentType, isin, resolve_error |
quotes | 1–2 per security | SAL quote metrics (expense ratio, yield, fund size, style box, benchmark…) + live price/NAV |
holdings | up to maxHoldingsPerFund per fund | position weight, market value, sector, moat, forward P/E, per-holding ratings; parent secId |
ratings | 1 per security | star ratings (3/5/10Y), analyst Medalist rating with people/process/price/parent scores, rating history |
performance | 1 per security | annual returns vs category and index |
profile | up to 4 per security | meta, profile, style, risk rows (ISIN, category, domicile, style box, risk/return) |
news | up to maxNewsItems | title, link, author, description, date |
movers | up to 30 per run | daily gainers / losers / most active with quote snapshot |
Example Input
{"securities": ["VFIAX", "VOO", "AAPL"],"resources": ["quotes", "holdings", "ratings"],"maxSecurities": 10,"maxHoldingsPerFund": 25}
Example Output
{"itemType": "price","secId": "0P000000GY","name": "Apple Inc","ticker": "AAPL","lastPrice": 247.12,"change": 1.34,"changePercent": 0.54,"asOfSource": "www.morningstar.com realtime store"}
Automate Portfolio & Market Monitoring With Schedules & Webhooks
- Daily watchlist prices: schedule
resources: ["quotes"]for your tickers and load the delta into a dashboard; the realtime store row (itemType: "price") carries the live value. - Quarterly holdings rotation: run
holdingsafter each fund reports and diff positions bysecId+ security name. - Daily news & movers: schedule
news/moversalone — no securities are resolved, so the run stays small and cheap. - Dataset webhooks push finished runs to Slack, email or a warehouse; recurring runs also improve this actor's Store recommendation signals.
Related Actors
- Yahoo Finance Scraper - Stocks, Fundamentals & News — the largest stock-data actor in this cluster, closest everyday alternative.
- Yahoo Finance Scraper — Quotes, Fundamentals, Options & News — Yahoo Finance coverage with options data.
- Morningstar Fund & ETF Scraper — Morningstar fund-list collection with category filters.
- ETF Holdings Tracker — Daily Constituents & Weights API — ETF constituents and weights tracking.
- Morningstar Quote Scraper — lightweight Morningstar quotes.
Frequently Asked Questions
Why use this actor instead of the official API?
Morningstar's official developer offering (developer.morningstar.com — Direct Web Services REST APIs and an MCP server) is a contracted, enterprise product: OAuth 2.0 credentials, onboarding through a Morningstar account manager, and a Market Data API whose credentials are IP-restricted. This actor instead reads the public JSON endpoints the morningstar.com front end itself calls — no contract, no OAuth, no IP allowlist — and packages seven resources (quotes, holdings, ratings, performance, profile, news, movers) as separate datasets with Apify's export, scheduling and webhook tooling on top.
Is there a free Morningstar API?
Not really. The official API requires a business agreement, and the free website is for human browsing (its HTML sits behind a WAF challenge). This actor is the keyless middle path: public JSON surfaces, pay-per-event pricing from $1 per 1,000 quotes, and a capped free preview on free accounts.
How do I get fund holdings data?
Select the holdings resource — you get up to maxHoldingsPerFund positions per fund with weight, market value, sector, forward P/E and per-holding ratings, joined to the parent fund via secId. (If you only need regulatory quarterly holdings, SEC N-PORT filings are an alternative source with a reporting lag.)
Does it work for ETFs and individual stocks?
Yes. Quotes, ratings, performance and profile work for stocks and ETFs too (AAPL resolves normally); holdings applies to funds. news and movers are global market resources that run once per run regardless.
What are the analyst ratings included?
Star ratings (3/5/10-year and overall) plus Morningstar's own analyst Medalist rating with people/process/price/parent scores and rating history — all from public SAL endpoints. Full analyst-report pages are login-gated and are not scraped.
Do I need an API key or account?
No key, no login. Free Apify accounts get a capped preview (10 securities, 10 holdings per fund, 10 news items); paying accounts get the full configured caps.
For AI Agents & LLM Apps
Purpose: returns Morningstar quotes, holdings, ratings, performance, profile, news and movers for given tickers/names/ISINs/quote URLs — one dataset per resource, keyless, no browser.
Minimal input:
{ "securities": ["VFIAX", "AAPL"] }
Quotes-only variant:
{ "securities": ["VOO"], "resources": ["quotes"], "maxSecurities": 5 }
Output fields: (securities) securityID, performanceID, ticker, name, exchange, slug, investmentType, isin, resolve_error; (quotes) secId, name, ticker, lastPrice, change, changePercent, asOfSource; (holdings) secId, position weight, market value, sector, forward P/E; (ratings) star ratings, medalist rating, rating history; (performance) annual returns; (profile) meta/profile/style/risk rows; (news) title, link, author, date; (movers) symbol, price, daily change.
Behaviors an agent should know:
- The default dataset is empty by design — read the per-resource datasets (named by the
resourcesentry), notdefaultDatasetId. resourcesdefaults to all seven; deselecting a resource removes both its requests and its charges.newsandmoversare fetched once per run (no securities needed for them).- Free accounts are capped at 10 securities / 10 holdings per fund / 10 news items regardless of input.
- Rows join across datasets on
secId; thesecuritiesdataset records resolution failures inresolve_error. maxRequestsPerCrawl(default 500) is the hard stop for runaway inputs; keep concurrency at default (3) to avoid WAF challenges.
Billing: pay-per-event — quotes $0.001/security, holdings $0.003/fund, ratings $0.001, performance $0.001, profile $0.002/security, news $0.005/run, movers $0.005/run, plus a run-start event; minimum total charge $0.05 per run.
Legal & Compliance Disclaimer
This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Morningstar, Inc. It reads only publicly reachable JSON endpoints (including the site's own embedded public API key), the public Arc RSS feed and open sitemaps — no login, no account session, no CAPTCHA solving; login-gated analyst pages and screener stores are explicitly not read. Investment data is provided as published at scrape time; users are responsible for their own compliance with Morningstar's Terms of Service and applicable law when storing, redistributing or automating access to the collected data, and nothing here is investment advice.
SEO Keywords
morningstar api, morningstar scraper, morningstar api alternative, morningstar quotes api, fund holdings data, etf holdings api, mutual fund data api, star ratings api, analyst ratings data, fund performance data, stock quotes scraper, morningstar data, morningstar without api key, fund screener data, market movers data, investment research data, portfolio holdings database, morningstar direct web services, fund facts api, nav price data, morningstar holdings download, financial data api