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

HeaderValue
AuthorizationBearer {token}. Obtain a token from POST /token/oauth and reuse it for up to 60 minutes.
Content-Typeapplication/json

Request Steps

Build a request in the following steps.

  1. Choose a data point. The data point determines the endpoint and the type of observation returned. See Choose a Data Point.
  2. Specify the investments. Pass up to 25 identifiers in the path, and use idTypes and the lookup filters when you aren't using Performance IDs. See Specify Investments.
  3. 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.
  4. Add computed data point parameters. Only needed for return, cumulative-return, rolling-return, growth and price. See Configure Computed Data Points.
  5. 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
  &currencyId=USD

Output Currency

Use the currencyId query parameter to set the currency of the returned data.

ValueDescription
BASDefault. Returns data in the investment's base currency.
A currency codeReturns 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

StatusDescription
200The request succeeded. The body contains an investments array and a metadata object. See Work with Results.
400The request is invalid.
500Internal 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

PageDescription
Specify InvestmentsIdentify investments with IDs, identifier types and lookup filters.
Set the Time RangeChoose the frequency and time range, and align start dates across investments.
Configure Computed Data PointsSet the parameters for data points that are calculated at request time.