Get Started

Understand how to get started with APIs.

Identifiers

Lorum ipsum.

Supported Identifiers

Identifier lookup supports the following identifier types:

Morningstar Identifiers

IdentifierDescriptionData Type (Max. Length)Example
Fund CodeMorningstar fund identifierAlphanumeric (10)FS00008NJG
Security IDMorningstar Security IDAlphanumeric (10)F00000MY89
MSIDMorningstar ID——

Standard Industry Identifiers

IdentifierDescriptionData Type (Max. Length)Example
CUSIPCommittee on Uniform Securities Identification ProceduresAlphanumeric (9)868536AT0
ISINInternational Securities Identification NumberAlphanumeric (12)US5434957743
Trading SymbolSecurity symbol or tickerAlphanumeric (25)IBM

Morningstar Performance ID

Direct Web Services APIs use the Morningstar Performance ID as the default identifier for investments.

A single share class can have multiple performance streams, for example:

  • Different currencies
  • Different exchanges
  • Different distribution types

Each of these scenarios may require a distinct performance history over time, so Morningstar issues separate Performance IDs.

Identifier Lookup

APIs that use the Morningstar Performance ID as the default identifier type have a built-in lookup feature that allows you to pass common investment identifiers — such as ISINs or trading symbols — along with optional filters. The API resolves these to the corresponding Performance ID and uses it to retrieve matching records. The response includes the resolved Performance IDs alongside the input lookup details.

Where input details cannot be matched to a Performance ID, no data is returned. The unmatched details are listed in the response metadata. See Unmatched IDs for more information.

Filters

At least one filter must be provided alongside a supported identifier type. The following filters are supported:

FilterDescription
baseCurrencyFilters identifiers by base currency. Accepts 3-character ISO 4217 currency codes.
domicileFilters identifiers by domicile. Accepts 3-character ISO 3166-1 country codes.
exchangeCountryFilters identifiers by exchange country. Accepts 3-character ISO 3166-1 country codes.
exchangeIdFilters identifiers by exchange ID.

Requests

Lookup details can be passed either in the request body or as query string parameters, depending on the API endpoint. Both approaches are described below.

Request Body

Where lookup details are passed in the request body, they are provided as an array of investment objects. The maximum number of items in the array depends on the API being queried. See the relevant API documentation for details.

{
  "investments": [
    {
      "id": "US5434957743",
      "idType": "isin",
      "baseCurrency": "USD"
    },
    {
      "id": "IBM",
      "idType": "tradingSymbol",
      "exchangeCountry": "USA"
    }
  ]
}

Query String

Where lookup details are passed as query string parameters, the following conventions apply.

Single ID

The id parameter accepts a single value.

?id=US5434957743&idType=isin&baseCurrency=USD
Multiple IDs

The ids parameter accepts a comma-separated list of values. The values in the other lookup parameters (idTypes, domicile, exchangeCountry, and baseCurrency) must align positionally with the values in the ids parameter. Use empty entries to skip a position. Omit trailing commas after the last non-empty value.

?ids=US5434957743,IBM&idTypes=isin,tradingSymbol&baseCurrency=USD,&exchangeCountry=,USA

Responses

Matched IDs

Where input lookup details are matched to a Performance ID, the input identifier and the resolved Performance ID are returned alongside the results. Any lookup filters provided in the request are also returned as metadata.

The structure of result objects depends on the API. The following example shows a response from the Time Series API:

  • The identifiers object lists the input identifier (ISIN) and the resolved Performance ID.
  • The metadata object contains the filter values used, in combination with the ISIN, to resolve the Performance ID.
{
  "investments": [
    {
      "identifiers": {
        "isin": "US5434957743",
        "performanceId": "0P00000CSY"
      },
      "metadata": {
        "baseCurrency": "USD",
        "exchangeCountry": "USA"
      },
      "timeSeries": []
    }
  ]
}

Unmatched IDs

Where lookup details cannot be matched to a Performance ID, no data is returned for that investment. The unmatched details are listed in the messages object in the response metadata.

"metadata": {
  "messages": {
    "investments": [
      {
        "id": "US0000000000",
        "idType": "isin"
      }
    ],
    "type": "Warning",
    "message": "Lookup : Invalid investments.",
    "code": "404.common.125"
  }
}

Messages

The following messages may be returned where no matching Performance ID was found:

CodeMessageRecommended Action
200.common.126Lookup : Multiple identifier match found for the investments.Provide additional filters to narrow the match to a single Performance ID.
200.common.128Duplicate investments found in the request.Remove duplicate identifiers from the request.
404.common.125Lookup : Invalid investments.Review the input identifier values and filters for accuracy.