Investment List API

Build the Investment List API into your digital experience for quick investment and earnings summaries.

Explore Data Points

Data points are the columns of an investment list. You choose them in each request, and you can sort by them. This page explains how to list the available data points and how to read their metadata, so that you can choose the right ones.

For background on data points, see Core Concepts.

List the Data Points

Use the data points endpoint to retrieve every data point that you can request. The request takes no query parameters or body, only your access token.

GET /direct-web-services/v1/investment-list/data-points

The following request lists the data points.

curl --request GET \
  --url "https://www.us-api.morningstar.com/direct-web-services/v1/investment-list/data-points" \
  --header "accept: application/json" \
  --header "Authorization: Bearer {token}"

Use the base URL for your region, as described in Getting Started.

The response is an array, with one object for each data point.

[
  {
    "name": "shareClassInformation.symbol",
    "type": "string"
  },
  {
    "name": "instrumentIdentifiers.performanceId",
    "alias": "performanceId",
    "type": "string"
  },
  {
    "name": "instrumentIdentifiers.isin",
    "type": "string"
  }
]

Read the Metadata

Each data point has the following properties.

PropertyDescription
nameThe data point name, in the format <dataGroup>.<fieldName>. Use this value in dataPoints and sort.
aliasAn alternative name for the data point, where one exists. You can use the alias in place of the name in a request.
typeThe type of value returned for the data point: string, decimal, int or bool.

Unlike the data points in the screener APIs, these entries have no properties for operators, sortability or language and currency dependency.

Use the Metadata to Build a Request

Names and Aliases

Use the name of a data point in the dataPoints array. If a data point has an alias, you can use that instead. For example, instrumentIdentifiers.performanceId has the alias performanceId, so both of these requests ask for the same data point.

"dataPoints": ["instrumentIdentifiers.performanceId"]
"dataPoints": ["performanceId"]

The performance ID is always returned for every investment, under the key performanceId, whether or not you request it.

Types

The type tells you how to read the value in the response. Plan for values to be strings or numbers, and to be null where no value exists. See Work with Results.

Limits and Sorting

A request can include up to 50 data points. To sort the rows, name a data point in sort. It must also be in the dataPoints array of the request. See Request an Investment List.

Language and Currency

The request has optional languageId and currencyId properties. The metadata doesn't show which data points depend on them.

Find the Data Point You Need

The response lists every available data point and has no parameters for searching or paging. To find the one you need:

  • Search the names. Names describe the value, so you can search the list for a keyword such as return, isin or allocation.
  • Browse by data group. The part of the name before the period is the data group, and related data points share one.
  • Save the list. Retrieve it once and search it in your own application, instead of calling the endpoint each time you build a request.

There are hundreds of data points. Some apply to funds and ETFs, such as asset allocation and category data points, and some to equities, such as company and valuation data points. The following data groups appear in the examples in this guide.

Data GroupExample Data Points
basicReferencebasicReference.fundLegalName, basicReference.isin, basicReference.name, basicReference.domicile
instrumentIdentifiersinstrumentIdentifiers.performanceId, instrumentIdentifiers.isin
shareClassInformationshareClassInformation.symbol, shareClassInformation.tradingCurrency
trailingReturntrailingReturn.trailing1YearReturn, trailingReturn.trailing5YearReturn
dailyReturnsMostRecentdailyReturnsMostRecent.totalRet1DayDaily, dailyReturnsMostRecent.totalRetYtdDaily
assetAllocationBreakdownassetAllocationBreakdown.assetAllocEquityPercNet, assetAllocationBreakdown.assetAllocBondPercNet
countryAndRegionalExposureBreakdowncountryAndRegionalExposureBreakdown.equityRegionUnitedStatesPercLongRescaled
marketCapitalBreakdownmarketCapitalBreakdown.marketCapLargePercLongRescaled
morningstarEquitySectorsBreakdownmorningstarEquitySectorsBreakdown.equityEconSectorTechnologyPercLongRescaled
morningstarCategorymorningstarCategory.globalCategory
companyInformationcompanyInformation.legalName, companyInformation.standardName

Entitlements

The list contains the data points that are available for investment lists. Whether you can retrieve a data point for a particular investment depends on your entitlements. If you request a data point that you aren't entitled to, the investment is still returned without it, and metadata.messages lists the data points that couldn't be returned. See Work with Results.

Next Steps