Get Started
Understand how to get started with APIs.
Identifiers
Lorum ipsum.
Supported Identifiers
Identifier lookup supports the following identifier types:
Morningstar Identifiers
| Identifier | Description | Data Type (Max. Length) | Example |
|---|---|---|---|
| Fund Code | Morningstar fund identifier | Alphanumeric (10) | FS00008NJG |
| Security ID | Morningstar Security ID | Alphanumeric (10) | F00000MY89 |
| MSID | Morningstar ID | — | — |
Standard Industry Identifiers
| Identifier | Description | Data Type (Max. Length) | Example |
|---|---|---|---|
| CUSIP | Committee on Uniform Securities Identification Procedures | Alphanumeric (9) | 868536AT0 |
| ISIN | International Securities Identification Number | Alphanumeric (12) | US5434957743 |
| Trading Symbol | Security symbol or ticker | Alphanumeric (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:
| Filter | Description |
|---|---|
| baseCurrency | Filters identifiers by base currency. Accepts 3-character ISO 4217 currency codes. |
| domicile | Filters identifiers by domicile. Accepts 3-character ISO 3166-1 country codes. |
| exchangeCountry | Filters identifiers by exchange country. Accepts 3-character ISO 3166-1 country codes. |
| exchangeId | Filters 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
identifiersobject lists the input identifier (ISIN) and the resolved Performance ID. - The
metadataobject 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:
| Code | Message | Recommended Action |
|---|---|---|
200.common.126 | Lookup : Multiple identifier match found for the investments. | Provide additional filters to narrow the match to a single Performance ID. |
200.common.128 | Duplicate investments found in the request. | Remove duplicate identifiers from the request. |
404.common.125 | Lookup : Invalid investments. | Review the input identifier values and filters for accuracy. |