+Morningstar API
Morningstar fund, ETF and stock pages and fund holdings as JSON, without an enterprise data contract.
The API.SH Morningstar API turns public Morningstar pages into structured JSON. Search stocks, funds and ETFs by name or ticker, then pull a fund with its NAV, expense ratio, category, style box, yield, turnover and top holdings, an ETF with its trailing returns against its category, a stock's quote page with valuation ratios and competitors, or a full holdings list with weights, sectors and share changes.
- 5 endpoints
- from $1 / 1,000 calls
- 1,000 free credits / month
- failed calls free
GET https://api.api.sh/morningstar/v1/ search
{ "success": true } What you can build with the Morningstar API
Fund and ETF screening
Compare expense ratios, categories, yields, minimum investment and returns across funds and ETFs you are shortlisting.
Holdings and overlap analysis
Pull a fund's or ETF's full holdings with weights, sectors, countries and ISIN or CUSIP to measure overlap and concentration.
Stock valuation snapshots
Read a stock's normalized P/E, price to sales, dividend yield, market cap and the side-by-side metrics of its main competitors.
Performance versus category
Compare an ETF's trailing returns for NAV and market price with its category average, percentile rank and fund count.
Morningstar data you get
Field names from real responses. Numbers come parsed, URLs absolute, dates in ISO 8601.
Morningstar API endpoints and prices
Every Morningstar endpoint costs 1 credit per call: credits are $1 per 1,000 on a monthly plan, $2 pay-as-you-go. Pricing
| Morningstar search /morningstar/ | $1 · $2 PAYG 1 credit |
| Morningstar stock /morningstar/ | $1 · $2 PAYG 1 credit |
| Morningstar ETF /morningstar/ | $1 · $2 PAYG 1 credit |
| Morningstar fund /morningstar/ | $1 · $2 PAYG 1 credit |
| Morningstar holdings /morningstar/ | $1 · $2 PAYG 1 credit |
Call the Morningstar API
Morningstar search: GET https://api.api.sh/morningstar/
curl "https://api.api.sh/morningstar/v1/search?q=vanguard+500" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/morningstar/v1/search",
params={"q": "vanguard 500"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/morningstar/v1/search");
url.searchParams.set("q", "vanguard 500");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); # Google Sheets (API.SH add-on)
=APISH("/morningstar/v1/search", "q", "vanguard 500")
# Zapier, Make, n8n (verified node): pick the API.SH app,
# choose "Morningstar" and "Morningstar search".
# AI agents (Claude, ChatGPT, Cursor): add the
# API.SH MCP server https://api.sh/mcp - Create a free accountConfirm your email and get 1,000 free credits every month. No card needed.
- Create an API keyOne key works for all 482 platforms.
- Send the requestJSON back in one call. Add
output=csvoroutput=ndjsonfor files.
Why API.SH for Morningstar data
- Public data only: no Morningstar login, cookies or account needed
- One key and one response shape for Morningstar and 481 other platforms
- Built and maintained by API.SH, not third-party publishers
- Pay per call; errors on our side cost nothing
- Live status for every endpoint
API.SH vs the official Morningstar API
Morningstar sells official APIs: Direct Web Services, the Equity Data API Center and a Python package for Morningstar Direct, all with credentials and licensing. API.SH reads public Morningstar pages instead. Subscriber-only items such as fair values, moats and some ratings are not included.
Skip writing your own Morningstar scraper, fixing it each time the site changes, or paying for an enterprise feed when you only need public page data: API.SH gives you one key and a fixed price per call.
Morningstar API questions
What Morningstar data can I get?+
Search (/morningstar/v1/search), fund pages (/morningstar/v1/fund), ETF pages (/morningstar/v1/etf), stock quote pages (/morningstar/v1/stock) and holdings lists (/morningstar/v1/holdings).
How much does the Morningstar API cost?+
Every Morningstar endpoint costs 1 credit per call. On a monthly plan 1,000 credits cost $1 (Starter is $50/month for 50,000 credits). Pay-as-you-go is $2 per 1,000 credits, with top-ups from $15 that never expire.
Is there a free trial?+
Yes. Every account gets 1,000 free credits every month. That is 1,000 calls to /morningstar/v1/etf at 1 credit each.
Is there an official Morningstar API?+
Yes. Morningstar offers Direct Web Services, the Equity Data API Center, an Excel add-in and the morningstar_data Python package, all for licensed clients. API.SH is a lighter option that returns public page data as JSON.
Do I need a Morningstar account or login?+
No. API.SH reads public Morningstar pages only. No endpoint uses a login, cookies or anyone's account. Items Morningstar keeps for subscribers, such as fair values and moat ratings, are not returned.
Is there a free Morningstar API?+
Morningstar's own APIs are licensed products. With API.SH every account gets 1,000 free credits every month to try the public fund, ETF, stock and holdings data.
Can I pull Morningstar data into Python or Excel?+
Yes. Call the JSON API from Python with the SDK or requests, or use the Google Sheets integration to bring fund and stock data into a spreadsheet.
How do I get started?+
1. Sign up at api.sh. 2. Copy your API key. 3. Call /morningstar/v1/fund with the ticker of a fund, for example a mutual fund ticker. Request examples and every parameter are in the docs at https://api.sh/docs. You can also use the JS or Python SDK, Google Sheets, Zapier, Make, n8n or the MCP server at https://api.sh/mcp.