Time Series API

Build Time Series APIs into your digital experience for quick investment and earnings summaries.

API Inputs

Common Inputs

This API returns one data point per request, at a single endpoint per data point (GET /direct-web-services/time-series/v1/{category}/{data-point}/{ids}). These inputs identify the investments to look up, define the date range and frequency of the series, and apply general options. They are accepted across all data point endpoints unless noted otherwise.

Up to 25 investments can be requested in a single call. Several inputs (idTypes, baseCurrency, domicile, exchangeCountry, and exchangeId) accept a comma-separated list that is matched to the values in ids by position:

  • Values must align with the order of values in ids.
  • Use an empty entry to skip an investment.
  • Omit trailing commas after the last non-empty value.

For example, with ids=id1,id2,id3,id4,id5, passing baseCurrency=,USD,,USD applies USD to id2 and id4 only.

applyEarliestCommonDate

AttributeValue
TypeQuery Parameter
Data Typeboolean
Possible Valuestrue, false. Default: false
Exampletrue

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.

applyRestructureDate

AttributeValue
TypeQuery Parameter
Data Typeboolean
Possible Valuestrue, false. Default: false
Exampletrue

Specifies whether to consider the Morningstar or Custom restructure date when determining the start of the performance period. Applies only when applyEarliestCommonDate is set to true.

applyTrackRecordExtension

AttributeValue
TypeQuery Parameter
Data Typeboolean
Possible Valuestrue, false. Default: false
Exampletrue

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

baseCurrency

AttributeValue
TypeQuery Parameter
Data Typestring (comma-separated list)
Possible Values3-character ISO 4217 currency codes
Example,USD,,USD

Base currency to use for investment lookup, passed as a list aligned by position with ids. Accepts 3-character ISO 4217 currency codes.

For more information about investment lookup, see the Identifiers page.

currencyId

AttributeValue
TypeQuery Parameter
Data Typestring
Possible ValuesBAS, AUD, BND, BRL, CAD, CHF, CLP, CNH, CNY, CZK, DKK, EUR, GBP, HKD, HUF, IDR, ILS, INR, JPY, KRW, MOP, MXN, MYR, NOK, NZD, PLN, RMB, RUB, SEK, SGD, THB, TWD, USD, ZAR
ExampleUSD

Specifies the currency in which to return data. Unlike baseCurrency, this is a single value that applies to every investment in the request.

domicile

AttributeValue
TypeQuery Parameter
Data Typestring (comma-separated list)
Possible Values3-character ISO 3166-1 country codes
Example,USA,,USA

Domicile to use for investment lookup, passed as a list aligned by position with ids. Accepts 3-character ISO 3166-1 country codes.

For more information about investment lookup, see the Identifiers page.

endDate

AttributeValue
TypeQuery Parameter
Data Typestring (date)
Possible Valuesyyyy-MM-dd
Example2024-01-12

Specifies the end date for the time series. See startDate for how the date range inputs interact and the lookback limits that apply.

exchangeCountry

AttributeValue
TypeQuery Parameter
Data Typestring (comma-separated list)
Possible Values3-character ISO 3166-1 country codes
Example,USA,,USA

Exchange country to use for investment lookup, passed as a list aligned by position with ids. Accepts 3-character ISO 3166-1 country codes.

For more information about investment lookup, see the Identifiers page.

exchangeId

AttributeValue
TypeQuery Parameter
Data Typestring (comma-separated list)
Possible Values—
Example,EX$$$$XMEX,,EX$$$$XNAS

Exchange identifier to use for investment lookup, passed as a list aligned by position with ids.

For more information about investment lookup, see the Identifiers page.

frequency

AttributeValue
TypeQuery Parameter
Data Typestring
Possible Valuesdaily, weekly, monthly, quarterly, annually. The accepted values and the default depend on the data point (see below).
Examplemonthly

Specifies the time interval between data points. Most data points are stored at a single frequency, so only that frequency is accepted and it is also the default. A small set of data points accepts all five frequencies and defaults to daily.

Data points that accept all five frequencies:

  • Current Yield
  • Daily Bid Price
  • Daily Offer Price
  • Growth
  • Price
  • Return
  • Rolling Return

The frequency also determines the maximum lookback. See startDate.

ids

AttributeValue
TypePath
Data Typestring (comma-separated list)
Possible ValuesA performance ID, security ID, Morningstar ID (MSID), ISIN, CUSIP, trading symbol, or category ID, matching the corresponding value in idTypes
Example0P00000016,0P00002Y8D,DODGX,0P000000ppY

Specifies the investments to query. Required. A maximum of 25 identifiers can be passed in a single request. Morningstar Performance ID is the default identifier; use the Universe API to retrieve Performance IDs for investments in your entitled universe.

When a category ID is passed, the corresponding idTypes value can be performanceId or securityId, and the value must be URL-encoded. For example, the category ID LC00002226;CA]FO is passed as LC00002226;CA%5DFO.

idTypes

AttributeValue
TypeQuery Parameter
Data Typestring (comma-separated list)
Possible ValuesperformanceId, isin, securityId, cusip, tradingSymbol, msid. Default: performanceId
Example,securityId

Specifies the type of each identifier provided in ids, passed as a list aligned by position with ids. Empty entries default to performanceId.

For example, with ids=id1,id2,id3, where id1 and id3 are performance IDs and id2 is a security ID, pass idTypes=,securityId.

sinceInception

AttributeValue
TypeQuery Parameter
Data Typeboolean
Possible Valuestrue, false. Default: false
Exampletrue

Sets the time range from inception (or the maximum supported lookback) to the end date. Takes precedence over timePeriod / timePeriodUnit and startDate / endDate.

Not supported by Daily OHLCV, which returns multivariate observations.

startDate

AttributeValue
TypeQuery Parameter
Data Typestring (date)
Possible Valuesyyyy-MM-dd
Example2020-01-12

Specifies the start date for the time series.

The time range can be defined in three ways. When more than one is provided, the following order of precedence applies:

  1. sinceInception
  2. timePeriod and timePeriodUnit
  3. startDate and endDate

Requested ranges are limited by the type of observation returned and the frequency of the data. Most data points return univariate observations (date and value). Some, such as Daily OHLCV, return multivariate observations (a date and multiple named values).

FrequencyMaximum Lookback (Univariate)Maximum Lookback (Multivariate)
Daily12 months6 months
Weekly60 months6 months
Monthly120 months6 months
Quarterly600 months6 months
Annual600 months6 months

timePeriod

AttributeValue
TypeQuery Parameter
Data Typenumber
Possible ValuesA positive number, interpreted in the unit set by timePeriodUnit
Example12

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 all provided, timePeriod and timePeriodUnit take precedence.

timePeriodUnit

AttributeValue
TypeQuery Parameter
Data Typestring
Possible Valuesdays, months, years
Examplemonths

Specifies the unit for timePeriod. Used in combination with timePeriod to specify relative time ranges. When startDate, endDate, timePeriod, and timePeriodUnit are all provided, timePeriod and timePeriodUnit take precedence.

Data Point-Specific Inputs

These inputs apply to computed data points, whose values are calculated at runtime. Standard data points are returned directly from stored data and do not accept them. Each entry links to the data point(s) where the input is used.

annualDays

AttributeValue
TypeQuery Parameter
Data Typenumber
Possible ValuesAny number. Common values are 252 (business days) and 365 (calendar days). Default: 365.25
Example365

Specifies the number of days in a year for annualized calculations. Used by the following data points:

  • Cumulative Return
  • Growth
  • Return
  • Rolling Return

annualized

AttributeValue
TypeQuery Parameter
Data Typeboolean
Possible Valuestrue, false
Exampletrue

Specifies whether the calculation results should be annualized. Used by the following data points:

  • Cumulative Return
  • Rolling Return

initialInvestment

AttributeValue
TypeQuery Parameter
Data Typenumber
Possible ValuesAny number. Default: 10000
Example10000

Specifies the initial value for the growth calculation, which is the base value for the index. Used by the following data points:

  • Growth

performanceType

AttributeValue
TypeQuery Parameter
Data Typestring
Possible Valuestotal, market, gross. Default: total
Exampletotal

Specifies the type of performance calculation to apply. Accepts up to two values. The first value is the preferred (primary) performance type. The second value is the secondary performance type and is used as a fallback if the preferred type returns no data. If only one value is provided, no fallback is attempted. Used by the following data points:

  • Cumulative Return
  • Growth
  • Price
  • Return
  • Rolling Return

preCurrency

AttributeValue
TypeQuery Parameter
Data Typestring
Possible Values3-character ISO 4217 currency codes
ExampleUSD

Specifies the currency to use before currency conversion. Accepts 3-character ISO 4217 currency codes. Used by the following data points:

  • Cumulative Return
  • Growth
  • Return
  • Rolling Return

requireContinueData

AttributeValue
TypeQuery Parameter
Data Typeboolean
Possible Valuestrue, false
Exampletrue

Specifies whether continuous data is required for calculations. Used by the following data points:

  • Cumulative Return
  • Growth
  • Return
  • Rolling Return

stepSize

AttributeValue
TypeQuery Parameter
Data Typenumber
Possible ValuesAny number. Default: 1
Example12

Specifies the step size for rolling or iterative calculations. For example, stepSize=12 with frequency=monthly calculates 12-month rolling values. Used by the following data points:

  • Cumulative Return
  • Rolling Return

windowSize

AttributeValue
TypeQuery Parameter
Data Typeinteger
Possible ValuesIntegers from 1 to 2147483647
Example6

Specifies the size of the rolling window, in periods of the selected frequency. Used by the following data points:

  • Rolling Return