Time Series API
Build Time Series APIs into your digital experience for quick investment and earnings summaries.
Set the Time Range
A time series request needs a frequency and a time range. This page explains how to set both, the limits that apply, and how to align the start dates of several investments.
Frequency
The frequency parameter sets the interval between observations.
| Value | Description |
|---|---|
daily | Default. |
weekly | |
monthly | |
quarterly | |
annually |
For how observations are dated at each frequency, see Core Concepts.
Choose a Time Range
Define the time range with one of the following approaches.
Start and End Dates
Pass startDate and endDate in yyyy-MM-dd format.
GET /direct-web-services/time-series/v1/performance/daily-price/0P00000CSY
?startDate=2024-01-01
&endDate=2024-12-31
Relative Time Period
Pass timePeriod and timePeriodUnit to request a window of a given length. timePeriod is the number of units, and timePeriodUnit is days, months or years.
GET /direct-web-services/time-series/v1/performance/daily-price/0P00000CSY
?timePeriod=12
&timePeriodUnit=months
Since Inception
Set sinceInception to true to request data from the start of each investment's history, or from the maximum supported lookback, to the end date.
GET /direct-web-services/time-series/v1/performance/monthly-return/0P00000CSY
?sinceInception=true
sinceInception isn't supported for multivariate data points such as daily-ohlcv.
Which Setting Wins
If you combine approaches, the API applies them in this order of precedence.
| Priority | Settings | Effect |
|---|---|---|
| 1 | sinceInception | Overrides timePeriod, timePeriodUnit, startDate and endDate. |
| 2 | timePeriod and timePeriodUnit | Override startDate and endDate. |
| 3 | startDate and endDate | Used when neither of the above is set. |
Lookback Limits
The maximum lookback depends on the frequency and on the observation type of the data point. A request that goes further back than the limit must be split into several requests.
| Frequency | Univariate Data Points | Multivariate Data Points |
|---|---|---|
daily | 12 months | 6 months |
weekly | 60 months | 6 months |
monthly | 120 months | 6 months |
quarterly | 600 months | 6 months |
annually | 600 months | 6 months |
The limits apply whichever approach you use to set the time range, including sinceInception.
Align Start Dates
Investments don't all have data from the same date. The following parameters change the start of each time series. All three default to false.
| Parameter | Effect |
|---|---|
applyEarliestCommonDate | Moves the start date of every time series to the latest inception date among the requested investments, so all series start on the same date. |
applyRestructureDate | Considers the Morningstar or custom restructure date when determining the start of the performance period. Applies only when applyEarliestCommonDate is true. |
applyTrackRecordExtension | Extends an investment's performance by copying the historical performance of another qualified, older investment. |
The following request aligns three investments to a common start date.
GET /direct-web-services/time-series/v1/performance/monthly-return/0P00000CSY,0P00002D6U,0P00001XK7
?startDate=2010-01-01
&endDate=2024-12-31
&frequency=monthly
&applyEarliestCommonDate=true
Aligned start dates are useful when you want to compare investments over the same period.