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
| Attribute | Value |
|---|---|
| Type | Query Parameter |
| Data Type | boolean |
| Possible Values | true, false. Default: false |
| Example | true |
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
| Attribute | Value |
|---|---|
| Type | Query Parameter |
| Data Type | boolean |
| Possible Values | true, false. Default: false |
| Example | true |
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
| Attribute | Value |
|---|---|
| Type | Query Parameter |
| Data Type | boolean |
| Possible Values | true, false. Default: false |
| Example | true |
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
| Attribute | Value |
|---|---|
| Type | Query Parameter |
| Data Type | string (comma-separated list) |
| Possible Values | 3-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
| Attribute | Value |
|---|---|
| Type | Query Parameter |
| Data Type | string |
| Possible Values | BAS, 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 |
| Example | USD |
Specifies the currency in which to return data. Unlike baseCurrency, this is a single value that applies to every investment in the request.
domicile
| Attribute | Value |
|---|---|
| Type | Query Parameter |
| Data Type | string (comma-separated list) |
| Possible Values | 3-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
| Attribute | Value |
|---|---|
| Type | Query Parameter |
| Data Type | string (date) |
| Possible Values | yyyy-MM-dd |
| Example | 2024-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
| Attribute | Value |
|---|---|
| Type | Query Parameter |
| Data Type | string (comma-separated list) |
| Possible Values | 3-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
| Attribute | Value |
|---|---|
| Type | Query Parameter |
| Data Type | string (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
| Attribute | Value |
|---|---|
| Type | Query Parameter |
| Data Type | string |
| Possible Values | daily, weekly, monthly, quarterly, annually. The accepted values and the default depend on the data point (see below). |
| Example | monthly |
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
| Attribute | Value |
|---|---|
| Type | Path |
| Data Type | string (comma-separated list) |
| Possible Values | A performance ID, security ID, Morningstar ID (MSID), ISIN, CUSIP, trading symbol, or category ID, matching the corresponding value in idTypes |
| Example | 0P00000016,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
| Attribute | Value |
|---|---|
| Type | Query Parameter |
| Data Type | string (comma-separated list) |
| Possible Values | performanceId, 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
| Attribute | Value |
|---|---|
| Type | Query Parameter |
| Data Type | boolean |
| Possible Values | true, false. Default: false |
| Example | true |
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
| Attribute | Value |
|---|---|
| Type | Query Parameter |
| Data Type | string (date) |
| Possible Values | yyyy-MM-dd |
| Example | 2020-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:
sinceInceptiontimePeriodandtimePeriodUnitstartDateandendDate
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).
| Frequency | Maximum Lookback (Univariate) | Maximum Lookback (Multivariate) |
|---|---|---|
| Daily | 12 months | 6 months |
| Weekly | 60 months | 6 months |
| Monthly | 120 months | 6 months |
| Quarterly | 600 months | 6 months |
| Annual | 600 months | 6 months |
timePeriod
| Attribute | Value |
|---|---|
| Type | Query Parameter |
| Data Type | number |
| Possible Values | A positive number, interpreted in the unit set by timePeriodUnit |
| Example | 12 |
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
| Attribute | Value |
|---|---|
| Type | Query Parameter |
| Data Type | string |
| Possible Values | days, months, years |
| Example | months |
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
| Attribute | Value |
|---|---|
| Type | Query Parameter |
| Data Type | number |
| Possible Values | Any number. Common values are 252 (business days) and 365 (calendar days). Default: 365.25 |
| Example | 365 |
Specifies the number of days in a year for annualized calculations. Used by the following data points:
- Cumulative Return
- Growth
- Return
- Rolling Return
annualized
| Attribute | Value |
|---|---|
| Type | Query Parameter |
| Data Type | boolean |
| Possible Values | true, false |
| Example | true |
Specifies whether the calculation results should be annualized. Used by the following data points:
- Cumulative Return
- Rolling Return
initialInvestment
| Attribute | Value |
|---|---|
| Type | Query Parameter |
| Data Type | number |
| Possible Values | Any number. Default: 10000 |
| Example | 10000 |
Specifies the initial value for the growth calculation, which is the base value for the index. Used by the following data points:
- Growth
performanceType
| Attribute | Value |
|---|---|
| Type | Query Parameter |
| Data Type | string |
| Possible Values | total, market, gross. Default: total |
| Example | total |
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
| Attribute | Value |
|---|---|
| Type | Query Parameter |
| Data Type | string |
| Possible Values | 3-character ISO 4217 currency codes |
| Example | USD |
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
| Attribute | Value |
|---|---|
| Type | Query Parameter |
| Data Type | boolean |
| Possible Values | true, false |
| Example | true |
Specifies whether continuous data is required for calculations. Used by the following data points:
- Cumulative Return
- Growth
- Return
- Rolling Return
stepSize
| Attribute | Value |
|---|---|
| Type | Query Parameter |
| Data Type | number |
| Possible Values | Any number. Default: 1 |
| Example | 12 |
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
| Attribute | Value |
|---|---|
| Type | Query Parameter |
| Data Type | integer |
| Possible Values | Integers from 1 to 2147483647 |
| Example | 6 |
Specifies the size of the rolling window, in periods of the selected frequency. Used by the following data points:
- Rolling Return