Time Series API
Build Time Series APIs into your digital experience for quick investment and earnings summaries.
Request Time Series Data
To retrieve time series data, you call the endpoint for a data point and pass the investments and settings you want. This page gives an overview of how a request is built. The pages in this section cover each part of the request in detail.
Endpoint Pattern
Every request is a GET to an endpoint that follows the same pattern.
GET /direct-web-services/time-series/v1/{category}/{data-point}/{ids}
The category and data point select what you retrieve, and {ids} holds the investments. All other inputs are query parameters. Use the base URL for your region, as described in Getting Started.
Headers
| Header | Value |
|---|---|
Authorization | Bearer {token}. Obtain a token from POST /token/oauth and reuse it for up to 60 minutes. |
Content-Type | application/json |
Request Steps
Build a request in the following steps.
- Choose a data point. The data point determines the endpoint and the type of observation returned. See Choose a Data Point.
- Specify the investments. Pass up to 25 identifiers in the path, and use
idTypesand the lookup filters when you aren't using Performance IDs. See Specify Investments. - Set the time range and frequency. Use dates, a relative period or since inception, and choose how often observations are returned. See Set the Time Range.
- Add computed data point parameters. Only needed for
return,cumulative-return,rolling-return,growthandprice. See Configure Computed Data Points. - Set the output currency, if you don't want data in the investment's base currency. See Output Currency.
Example Request
The following request retrieves monthly returns for three investments over a fixed date range, in US dollars.
GET /direct-web-services/time-series/v1/performance/monthly-return/0P00000CSY,0P00002D6U,0P00001XK7
?startDate=2020-01-01
&endDate=2024-12-31
&frequency=monthly
¤cyId=USD
Output Currency
Use the currencyId query parameter to set the currency of the returned data.
| Value | Description |
|---|---|
BAS | Default. Returns data in the investment's base currency. |
| A currency code | Returns data converted to that currency, for example USD, EUR or JPY. |
For the full list of supported values, see API Inputs.
Request Limits
- A request can include a maximum of 25 investments.
- Each request is limited by how far back it can look, which depends on the frequency and on whether the data point is univariate or multivariate. See Lookback Limits.
Requests that exceed these limits must be split into multiple calls.
Responses
| Status | Description |
|---|---|
200 | The request succeeded. The body contains an investments array and a metadata object. See Work with Results. |
400 | The request is invalid. |
500 | Internal server error. |
Error responses contain a statusCode, an errorCode, a message and a requestId.
{
"statusCode": 400,
"errorCode": "400.timeSeries.009",
"message": "Invalid frequency 'm' for datapoint 'daily-closing-price'.",
"requestId": "c63e7f6c-b52d-42c3-9d1b-4a4b4ac05f3c"
}
Include the requestId if you contact support. For the meaning of each error, see Errors.
In This Section
| Page | Description |
|---|---|
| Specify Investments | Identify investments with IDs, identifier types and lookup filters. |
| Set the Time Range | Choose the frequency and time range, and align start dates across investments. |
| Configure Computed Data Points | Set the parameters for data points that are calculated at request time. |