1.0OAS 3.1

Try This API

You can try this API by creating an account to get credentials. Once your calls are authorized, you can test the endpoints on this page and get back a limited sample of real data — enough to evaluate the response structure and integrate against it.

Trial responses are restricted to a sample universe. For full data coverage and production access, talk to our sales team.

Before You Start

You’ll need a Client ID and Client Secret. These come from an your account profile — they’re separate from the username and password you use to log in to Morningstar for Developers.

Create Account

Already have an account? Log in and follow the steps below.

  1. Create an application in your portal profile.
  2. Copy the Client ID and Client Secret it issues.

Authenticating Your Requests

Authentication is a two-step process.

  1. Request a token from POST /token/oauth, using your Client ID and Client Secret as HTTP Basic credentials.
  2. Send the token to all other endpoints as an Authorization: Bearer <token> header.

Reuse the token for up to 60 minutes, then request a new one.

Learn More

Ready to go deeper? The Time Series API guide has the concepts, worked examples, and reference material you’ll need to build with confidence.

New to Morningstar’s APIs? The Quick Start takes you from account to first call in a few minutes.


API Base URL
  • Server 1:https://www.us-api.morningstar.com

    Americas

  • Server 2:https://www.apac-api.morningstar.com

    APAC

  • Server 3:https://www.emea-api.morningstar.com

    EMEA

Security
Bearer (http)

JWT obtained from POST /token/oauth.

Send it on every request as Authorization: Bearer <token>. Reuse the token for up to 60 minutes, then request a new one.

Basic (http)

Used only by POST /token/oauth to obtain a bearer token.

Send your Client ID and Client Secret as a Base64-encoded clientId:clientSecret pair.

Authentication

Get token

Exchanges your Client ID and Client Secret for a signed JWT bearer token.

Send your credentials as a Base64-encoded clientId:clientSecret string in the Authorization header. Use the returned access_token as a Bearer token on all other endpoints in this API.

post

Response

application/json

200: OK

OutputToken

A successful authentication response containing a JWT bearer token.

access_tokenstringrequired

The signed JWT to use as a Bearer token in subsequent authenticated requests.

Example:eyJhbGciOiJ example

expires_inintegerrequired

The number of seconds until the token expires. After expiry, request a new token.

Example:3599

token_typestringrequired

The token type. Always Bearer.

Example:Bearer

post/token/oauth
 
application/json

In Trial

Get Cum Fair NAV Unweighted Dri

Includes both our Total Return and Daily Market Return data which adjust for all dividends and capital gains so that clients can make customized point-to-point total return calculations.TRI leverages the NAV of a product while DMRI will utilize the market price.Index values are available daily back to inception.

get

Query Parameters

idTypesstring

Comma-separated list specifying the type of each value passed in the ids parameter.

Rules:

  • Values must align with the order of values in ids
  • Use empty entries to skip
  • Omit trailing commas after the last non-empty value
  • Empty values default to performanceId

Example:

  • ids=id1,id2,id3
  • id1 and id3 are performance IDs
  • id2 is a security ID
  • idTypes=securityId,isin,cusip

Accepted values:

  • performanceId (default)
  • isin
  • securityId
  • cusip
  • tradingSymbol
  • msid

Example:securityId,isin,cusip

baseCurrencystring

Comma-separated list of 3-character ISO 4217 currency codes (for example, CAD, EUR, JPY).

  • Filters results based on currency
  • Values must align with the order of values in ids
  • Use empty entries to skip
  • Omit trailing commas after the last non-empty value

Example:

  • ids=id1,id2,id3,id4,id5
  • Base currency passed for id2 and id4
  • baseCurrency=USD,USD,USD

Example:USD,USD,USD

domicilestring

Comma-separated list of 3-character ISO 3166‑1 country codes (for example, CAN, IRL, IND).
Rules:

  • Filters results based on domicile
  • Values must align with the order of values in ids
  • Use empty entries to skip
  • Omit trailing commas after the last non-empty value

Example:

  • ids=id1,id2,id3,id4,id5
  • Domicile passed for id2 and id4
  • domicile=,USA,,USA

Example:USA,USA,USA

exchangeCountrystring

Comma-separated list of 3-character ISO 3166‑1 country codes (for example, CAN, IRL, IND).

  • Filters results based on domicile
  • Values must align with the order of values in ids
  • Use empty entries to skip
  • Omit trailing commas after the last non-empty value

Example:

  • ids=id1,id2,id3,id4,id5
  • Exchange country passed for id2 and id4
  • exchangeCountry=,USA,,USA

Example:USA,USA,USA

exchangeIdstring

Comma-separated list of exchange IDs (for example, EX$$$$XMEX, EX$$$$XNAS).

  • Filters results based on exchange ID
  • Values must align with the order of values in ids
  • Use empty entries to skip
  • Omit trailing commas after the last non-empty value

Example:

  • ids=id1,id2,id3,id4,id5
  • Exchange ID passed for id2 and id4
  • exchangeId=,EX$$$$XMEX,,EX$$$$XNAS

Example:EX$$$$XMEX

frequencystring

Specifies the time interval between data points.

Allowed values:daily

Default:daily

startDatestring(date)

Specifies the start date for the time series. Accepted format is yyyy-MM-dd.

Example:2026-01-01

endDatestring(date)

Specifies the end date for the time series. Accepted format is yyyy-MM-dd.

Example:2026-05-01

timePeriodnumber

Specifies the size of the time window for the data range.

  • Used in combination with timePeriodUnit to specify relative time ranges.

  • When startDate, endDate, timePeriod and timePeriodUnit are provided, timePeriod and timePeriodUnit take precedence.

Example:12

timePeriodUnitstring

Specifies the time period unit.

  • Used in combination with timePeriod to specify relative time ranges.

  • When startDate, endDate, timePeriod and timePeriodUnit are provided, timePeriod and timePeriodUnit take precedence.

Allowed values:monthsdaysyears

applyEarliestCommonDateboolean

Specifies whether to apply the earliest common start date across all investments.

When set to true, the start date of the time series is adjusted to match the latest inception date among the investments, ensuring all data points are aligned.

Default:false

applyTrackRecordExtensionboolean

Specifies whether to apply the Track Record Extension logic in order to extend the performance of an investment by copying the historical performance of another qualified older investment.

Default:false

applyRestructureDateboolean

Specifies whether to consider the Morningstar or Custom restructure date when determining the start of the performance period.

This option is applicable only when applyEarliestCommonDate is set to true.

Default:false

sinceInceptionboolean

Sets the time range from inception (or the maximum supported lookback) to the end date.

Takes precendence over any timePeriod / timePeriodUnit and startDate / endDate settings.

Default:false

currencyIdstring

Specifies the currency in which to return data.

Allowed values:BASAUDBNDBRLCADCHFCLPCNHCNYCZKDKKEURGBPHKDHUFIDRILSINRJPYKRWMOPMXNMYRNOKNZDPLNRMBRUBSEKSGDTHBTWDUSDZAR

Default:BAS

Path Parameters

idsstringrequired

Comma-separated list of up to 25 investment identifiers to query.

Accepts:

  • Morningstar Performance ID (default)
  • Morningstar Security ID
  • Morningstar IDs (MSID)
  • ISIN
  • CUSIP
  • Trading symbol
  • Category ID
    Important: When a category ID is passed, the corresponding identifierType can be performanceId or securityId. The value must be URL-encoded. For example, if the category ID is LC00002226;CA]FO, the URL-encoded value is LC00002226;CA%5DFO.

Example:0P000000GY,US0378331005,037833100

Response

application/json

OK

ResponseTimeSeriesSingleObservation

List of investments for which time series data was returned.

* Additional properties are NOT allowed.
investmentsarray[object]

>= 1 items

* Additional properties are NOT allowed.
Show Child Parameters
metadataobject

Metadata returned in response. Includes information about identifiers for which no results were found.

* Additional properties are NOT allowed.
Show Child Parameters
get/direct-web-services/time-series/v1/performance/cum-fair-nav-unweighted-dri/{ids}
 
application/json