Morningstar APImorningstar.com ↗
Access Morningstar stock quotes, financial statements, valuation metrics, ownership data, dividends, and news via 12 structured API endpoints.
What is the Morningstar API?
The Morningstar API exposes 12 endpoints covering real-time stock quotes, multi-year financial statements, valuation multiples, institutional ownership, and dividend history drawn from Morningstar's financial data. Starting with search_securities, you resolve a company name or ticker to a performanceID that unlocks all other endpoints — from get_income_statement to get_market_movers — without managing separate identifier lookups per data type.
curl -X GET 'https://api.parse.bot/scraper/ff5e9ddb-e072-40f9-9cbb-800529fa46e5/search_securities?query=Apple' \ -H 'X-API-Key: $PARSE_API_KEY'
Full-text search for financial instruments by name or ticker symbol. Returns matching securities (stocks, funds, ETFs) with their Morningstar performance IDs, and related news/article content. Use the performanceID from results to call other endpoints.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search keyword such as a company name or ticker symbol (e.g. Apple, AAPL, MSFT) |
{
"type": "object",
"fields": {
"content": "array of related news/article stories with headlines, URLs, and dates",
"entities": "array of matching securities with performanceID, ticker, exchange, name, investmentType"
},
"sample": {
"data": {
"content": [
{
"type": "story",
"score": 9.08,
"value": {
"id": "NQKEC7AJYE775VOHWNIXESET5E",
"format": "Article",
"headline": {
"title": "Apple: Hey Siri",
"subtitle": "We think Apple stock is moderately overvalued."
},
"displayDate": "2026-06-10",
"canonicalURL": "/stocks/apple-hey-siri"
}
}
],
"entities": [
{
"type": "security",
"score": 30.27,
"value": {
"name": "Apple Inc",
"ticker": "AAPL",
"exchange": "XNAS",
"companyID": "0C00000ADA",
"securityID": "0P000000GY",
"performanceID": "0P000000GY",
"investmentType": "EQ",
"exchangeCountry": "USA"
}
}
]
},
"status": "success"
}
}About the Morningstar API
Security Lookup and Quotes
Every data fetch starts with search_securities, which accepts a company name or ticker string and returns an entities array with each match's performanceID, ticker, exchange, name, and investmentType. That performanceID is the single key passed to every other endpoint. get_stock_quote uses it to return lastPrice, netChange, percentNetChange, volume, marketCap, bidPrice, askPrice, openPrice, and 52-week highPrice/lowPrice — all keyed by the performanceID in the response object.
Financials and Valuation
get_income_statement, get_balance_sheet, and get_cash_flow_statement each return a rows array of hierarchical line items with label, per-year datum values, and nested subLevel children. The columnDefs array lists the fiscal year labels including a TTM column. get_valuation_metrics returns two views: a Collapsed object with basic ratios (P/S, P/E, P/CF, P/B) and an Expanded object with P/Forward E, PEG, Earnings Yield, EV, EV/EBIT, and EV/EBITDA, each across multiple calendar years. get_company_profile adds context including Morningstar's own stockStarRating and medalistRating from its dataPoints object.
Ownership, Dividends, and News
get_ownership returns a ranked list of top mutual fund and ETF holders with totalSharesHeld, currentShares, changeAmount, changePercentage, and the holder's Morningstar starRating. get_dividends_and_splits supplies annual dividend metrics (yield, payout ratio, buyback yield) in rows, plus a dividendData object with per-event ex-dividend dates and amounts. get_upcoming_dividends goes further, returning declared-but-unpaid dividends with exDividendDate, declarationDate, recordDate, and payableDate, alongside a mostRecent object for the latest paid distribution — all across stocks (EQ), ETFs (FE), and open-end funds (FO).
Market Movers and News
get_market_movers requires no input and returns gainers, losers, and actives arrays, each entry carrying lastPrice, netChange, percentNetChange, volume, and marketCap, with an updatedOn ISO timestamp. get_stock_news takes a ticker and exchange code (e.g. XNAS, XNYS) and returns Morningstar articles and analyst commentary with title, subtitle, url, author, displayDate, and format.
The Morningstar API is a managed, monitored endpoint for morningstar.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when morningstar.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 morningstar.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?+
- Build a stock screener that pulls P/E, P/B, and EV/EBITDA from
get_valuation_metricsto rank securities by cheapness. - Track portfolio positions by polling
get_stock_quotefor real-timelastPriceandpercentNetChangeacross a watchlist. - Aggregate multi-year revenue and net income trends from
get_income_statementfor fundamental analysis dashboards. - Monitor institutional ownership changes using
changeAmountandchangePercentagefromget_ownershipto detect accumulation or distribution. - Alert users to upcoming ex-dividend dates by querying
get_upcoming_dividendsand filtering theupcomingarray byexDividendDate. - Display Morningstar star ratings and analyst commentary alongside price data using
get_company_profileandget_stock_news. - Surface daily market context in a trading app by fetching
get_market_moversfor the top gainers, losers, and most active stocks.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Morningstar have an official public developer API?+
What does `get_ownership` actually return, and is the data ever restricted?+
get_ownership returns the top mutual fund and ETF holders of a security, including name, ticker, totalSharesHeld, currentShares, changeAmount, changePercentage, date, and the holder's Morningstar starRating. The response includes an isRestricted boolean and a userType field; when isRestricted is true, the holder list may be truncated or partially masked depending on access tier.Are financial statement values ever masked or hidden?+
label, datum, subLevel, columnDefs) in all cases, but individual datum values may appear as null or masked for some line items depending on Morningstar's data access rules for a given security. The _meta object in each response includes a report status field that signals whether the full report is available.Does the API cover intraday price history or historical OHLCV time series?+
get_stock_quote and annual financial statement data, but does not expose intraday or daily historical price series (OHLCV). You can fork the API on Parse and revise it to add a historical price endpoint.Can I fetch fund-level data — expense ratios, holdings, or portfolio allocations — for ETFs and mutual funds?+
search_securities and get_upcoming_dividends both handle ETFs (FE) and open-end funds (FO), the financial statement, valuation, and ownership endpoints are oriented toward equities. Fund-specific fields like expense ratios, sector allocations, or top holdings are not exposed. You can fork the API on Parse and revise it to add fund-specific endpoints.