Discover/Morningstar API
live

Morningstar APImorningstar.no ↗

Search Nordic funds and ETFs on Morningstar Norway and retrieve portfolio exposure by world region, country, equity sector, and fixed-income sector.

Endpoint health
monitored
get_portfolio_exposure
search_funds
Checks pendingself-healing
Endpoints
2
Updated
3h ago

What is the Morningstar API?

This API exposes two endpoints covering the Norwegian Morningstar market: search_funds for querying open-end funds and ETFs by name, ISIN, or ticker, and get_portfolio_exposure for retrieving portfolio weights across 10 world regions, a full country list, 11 equity sectors, and 6 fixed-income sector groups — each with fund, Morningstar category, and index breakdowns.

This call costs5 credits / call— charged only on success
Try it
1-based result page.
Rows per page; values above 50 are clamped to 50.
Fund name, ISIN or ticker fragment, e.g. a fund family and strategy name.
→ api.parse.bot/scraper/96d4b012-c12f-4647-87ae-4153de8d12a3/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/96d4b012-c12f-4647-87ae-4153de8d12a3/search_funds?query=DNB+Global' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace morningstar-no-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Morningstar Nordics — search funds, then drill into portfolio exposure."""
from parse_apis.morningstar_no_api import Morningstar, FundNotFound

client = Morningstar()

# Search for funds by name; limit= caps total items fetched across all pages.
for fund in client.funds.search(query="DNB Global", limit=5):
    print(fund.name, fund.isin, fund.base_currency)

# Drill into the first search hit's full portfolio exposure.
fund = client.funds.search(query="DNB Global", limit=1).first()
if fund is not None:
    try:
        exposure = fund.exposure()
    except FundNotFound:
        print("Fund was delisted or not found")
    else:
        print(exposure.fund_name, exposure.asset_type)

        # Regional allocation vs category and index benchmarks
        for row in exposure.regions.rows:
            print(f"  {row.name}: fund={row.fund_pct}%  cat={row.category_pct}%  idx={row.index_pct}%")

        # Top country weights
        for row in exposure.countries.rows[:5]:
            print(f"  {row.name}: {row.fund_pct}%")

        # Equity sector breakdown
        for row in exposure.equity_sectors.rows:
            print(f"  {row.name}: fund={row.fund_pct}%  cat={row.category_pct}%")

print("exercised: funds.search / fund.exposure / regions / countries / equity_sectors")
All endpoints · 2 totalmissing one? ·

Searches open-end funds and ETFs offered in the Nordic (Norway) market by name, ISIN or ticker, ranked by relevance. Each result row is one share class / exchange listing and carries security_id, the identifier accepted by get_portfolio_exposure. Paginated through page and limit: page defaults to 1, limit defaults to 20 and is clamped to 50; has_more tells whether a later page exists. total is the site's count of matching rows. One round trip. An empty results array is a valid response when nothing matches. Returns a validation error for a query containing characters other than letters, digits, spaces and . - & ' / ( ) + , : or longer than 80 characters.

Input
ParamTypeDescription
pageinteger1-based result page.
limitintegerRows per page; values above 50 are clamped to 50.
queryrequiredstringFund name, ISIN or ticker fragment, e.g. a fund family and strategy name.
Response
{
  "type": "object",
  "fields": {
    "page": "page returned",
    "limit": "page size applied after clamping",
    "query": "the search term as applied",
    "total": "site-reported number of matching rows across all pages",
    "results": "array of fund/ETF rows: security_id (consumed by get_portfolio_exposure), performance_id, name, isin, ticker (ETF listings only, else null), exchange (ETF listings only, else null), exchange_country (ISO3, ETF listings only), base_currency, investment_type ('fund' or 'etf')",
    "has_more": "true when page < total_pages",
    "total_pages": "site-reported number of pages at this limit"
  },
  "sample": {
    "data": {
      "page": 1,
      "limit": 5,
      "query": "DNB Global",
      "total": 95,
      "results": [
        {
          "isin": "NO0010337553",
          "name": "DNB Global C",
          "ticker": null,
          "exchange": null,
          "security_id": "F0GBR05LMO",
          "base_currency": "NOK",
          "performance_id": "0P000015GL",
          "investment_type": "fund",
          "exchange_country": null
        },
        {
          "isin": "NO0012766031",
          "name": "DNB Global L",
          "ticker": null,
          "exchange": null,
          "security_id": "F00001EX9I",
          "base_currency": "NOK",
          "performance_id": "0P0001QBJR",
          "investment_type": "fund",
          "exchange_country": null
        }
      ],
      "has_more": true,
      "total_pages": 19
    },
    "status": "success"
  }
}

About the Morningstar API

Search Nordic Funds and ETFs

search_funds accepts a query string (fund name fragment, ISIN, or ticker) and returns paginated rows of matching share classes and ETF listings available on Morningstar Norway. Each row carries a security_id, performance_id, name, isin, and — for exchange-listed products — a ticker. The total and total_pages fields let you walk through result sets; the limit parameter caps at 50 rows per page. The security_id from any result row is the key input for the second endpoint.

Portfolio Exposure Detail

get_portfolio_exposure takes a single security_id and returns four exposure breakdowns for that share class. The regions object contains rows for each of the 10 Morningstar world regions, each with fund_pct, category_pct, and index_pct, plus the three portfolio dates used (fund, category, index). The countries object provides fund_pct for every country in the Morningstar universe, including zero-weight entries. The equity_sectors object covers 11 Morningstar sectors, and fixed_income_sectors covers 6 groups — both with fund, category, and index percentages.

Response Context Fields

Every get_portfolio_exposure response includes fund_name, asset_type (e.g. EQUITY), category_name (the Morningstar peer group), index_name (the benchmark used for index comparisons), and the security_id echoed back. These make it straightforward to label and contextualize results without a separate lookup.

Reliability & maintenance

The Morningstar API is a managed, monitored endpoint for morningstar.no — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when morningstar.no 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.no 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?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Screening Nordic funds by geographic tilt — e.g. identifying which funds in a Morningstar category are most overweight emerging markets relative to index_pct
  • Comparing equity sector weights between a fund and its Morningstar category to surface active bets
  • Building a fund-of-funds overlap tool using country-level fund_pct values from multiple security_ids
  • Tracking fixed-income sector allocation shifts (government, corporate, securitized) across Nordic bond funds
  • Populating a fund search widget with ISIN and ticker data for Norwegian retail investors
  • Benchmarking a custom ETF portfolio against the Morningstar category average using category_pct fields
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 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.

Frequently asked questions
Does Morningstar have an official developer API?+
Morningstar offers a licensed data platform for institutional clients (Morningstar Data), but there is no publicly documented self-serve API available for morningstar.no specifically.
What does get_portfolio_exposure return for a fund that holds mostly bonds?+
The response includes both equity_sectors and fixed_income_sectors breakdowns regardless of asset_type, so a bond fund will show meaningful data in fixed_income_sectors (6 groups with fund_pct, category_pct, and index_pct) while equity_sectors weights may be zero or absent. The asset_type field signals the primary classification.
Does search_funds return all share classes for a given fund?+
Yes — each row in results represents one share class or ETF listing, so a single fund family with multiple currency or accumulation classes will appear as separate rows, each with a distinct security_id.
Does the API cover historical portfolio exposure or only the latest snapshot?+
Currently it returns the most recent portfolio snapshot as reported by Morningstar Norway; the portfolio dates are included in the response (fund_portfolio_date, category_portfolio_date, index_portfolio_date) but historical time-series is not covered. You can fork this API on Parse and revise it to add an endpoint that retrieves past portfolio dates if Morningstar Norway exposes them.
Can I retrieve performance data such as returns or Morningstar star ratings through this API?+
Not currently. The API covers fund search metadata and portfolio exposure breakdowns. Performance metrics, star ratings, and risk statistics are not included in the current endpoints. You can fork this API on Parse and revise it to add endpoints targeting those data points.
Page content last updated . Spec covers 2 endpoints from morningstar.no.
Related APIs in FinanceSee all →
morningstar.in API
Access mutual fund and stock data from Morningstar India. Search by name or ticker, then retrieve NAV, expense ratios, star ratings, historical performance, asset allocation, portfolio holdings, risk metrics, and analyst pillar ratings for any covered fund.
morningstar.com API
Get comprehensive financial data including stock quotes, company profiles, historical financials, valuation metrics, ownership details, dividends, and market movers from Morningstar. Search securities and access the latest stock news to make informed investment decisions.
morningstar.com.au API
Access comprehensive financial data for Australian stocks, ETFs, and managed funds including key metrics, valuations, dividends, and historical prices. Search securities, review company profiles and ownership details, and stay informed with market news and upcoming dividend information.
ssga.com API
Search and explore State Street's SPDR ETFs, mutual funds, and money market funds with detailed pricing, performance metrics, expense ratios, and holdings information. Filter funds by category and access comprehensive fund details including benchmarks, standardized returns, market prices, and NAV data to make informed investment decisions.
ishares.com API
Access comprehensive iShares ETF information including fund holdings, performance metrics, sector allocation, and investment literature all in one place. Search and compare ETFs to find the right funds for your portfolio and get detailed breakdowns of what's inside each fund.
markets.ft.com API
Access comprehensive fund data from Financial Times Markets, including current pricing, performance metrics, holdings, and diversification details in a single tearsheet view. Get detailed fund profiles and investment objectives to quickly evaluate and compare investment opportunities.
regnskapstall.no API
Search Norwegian companies and retrieve their financial statements, ownership details, roles, competitors, and regulatory announcements all in one place. Get comprehensive company overviews including registration data and financial metrics to research businesses and track new market entries.
stockanalysis.com API
Access comprehensive stock market data including real-time financials, income statements, statistics, and IPO calendars to research individual stocks and identify market movers. Search stocks, view detailed overviews, and monitor premarket activity all in structured, easy-to-use format.