---
title: "Get Rolling Return"
url: "https://developer-beta.morningstar.com/apis/time-series-api/versions/64e349d6-6f88-44cb-8d05-c86bc4a80b3b/operations/getPerformanceRollingReturn"
---

> Full API specification: https://developer-beta.morningstar.com/apis/time-series-api/versions/64e349d6-6f88-44cb-8d05-c86bc4a80b3b.md

# Get Rolling Return

`GET` `/direct-web-services/time-series/v1/performance/rolling-return/{ids}`

Operation ID: `getPerformanceRollingReturn`

## Path parameters

- `ids` (string, required) - Comma-separated list of up to 25 investment identifiers to query. Accepts: - Morningstar Performance ID (default) - Morningstar Security ID - Morningstar IDs (MSID) - ISIN - CUSIP - Trading symbol - Category ID Important: When a category ID is passed, the corresponding `identifierType` can be `performanceId` or `securityId`. The value must be URL-encoded. For example, if the category ID is `LC00002226;CA]FO`, the URL-encoded value is `LC00002226;CA%5DFO`.

## Query parameters

- `idTypes` (string, optional) - Comma-separated list specifying the type of each value passed in the `ids` parameter.<br> Rules: * Values must align with the order of values in `ids` * Use empty entries to skip * Omit trailing commas after the last non-empty value * Empty values default to `performanceId` Example: * `ids=id1,id2,id3` * `id1` and `id3` are performance IDs * `id2` is a security ID * `idTypes=securityId,isin,cusip` Accepted values: * `performanceId` (default) * `isin` * `securityId` * `cusip` * `tradingSymbol` * `msid`
- `baseCurrency` (string, optional) - Comma-separated list of 3-character ISO 4217 currency codes (for example, `CAD`, `EUR`, `JPY`).<br> * Filters results based on currency * Values must align with the order of values in `ids` * Use empty entries to skip * Omit trailing commas after the last non-empty value Example: * `ids=id1,id2,id3,id4,id5` * Base currency passed for `id2` and `id4` * `baseCurrency=USD,USD,USD`
- `domicile` (string, optional) - Comma-separated list of 3-character ISO 3166‑1 country codes (for example, `CAN`, `IRL`, `IND`). Rules: * Filters results based on domicile * Values must align with the order of values in `ids` * Use empty entries to skip * Omit trailing commas after the last non-empty value Example: * `ids=id1,id2,id3,id4,id5` * Domicile passed for `id2` and `id4` * `domicile=,USA,,USA`
- `exchangeCountry` (string, optional) - Comma-separated list of 3-character ISO 3166‑1 country codes (for example, `CAN`, `IRL`, `IND`). * Filters results based on domicile * Values must align with the order of values in `ids` * Use empty entries to skip * Omit trailing commas after the last non-empty value Example: * `ids=id1,id2,id3,id4,id5` * Exchange country passed for `id2` and `id4` * `exchangeCountry=,USA,,USA`
- `exchangeId` (string, optional) - Comma-separated list of exchange IDs (for example, `EX$$$$XMEX`, `EX$$$$XNAS`). * Filters results based on exchange ID * Values must align with the order of values in `ids` * Use empty entries to skip * Omit trailing commas after the last non-empty value Example: * `ids=id1,id2,id3,id4,id5` * Exchange ID passed for `id2` and `id4` * `exchangeId=,EX$$$$XMEX,,EX$$$$XNAS`
- `frequency` (string, optional) - Specifies the time interval between data points.
- `startDate` (string, date, optional) - Specifies the start date for the time series. Accepted format is `yyyy-MM-dd`.
- `endDate` (string, date, optional) - Specifies the end date for the time series. Accepted format is `yyyy-MM-dd`.
- `timePeriod` (number, optional) - 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 provided, `timePeriod` and `timePeriodUnit` take precedence.
- `timePeriodUnit` (string, optional) - Specifies the time period unit. - Used in combination with `timePeriod` to specify relative time ranges. - When `startDate`, `endDate`, `timePeriod` and `timePeriodUnit` are provided, `timePeriod` and `timePeriodUnit` take precedence.
- `applyEarliestCommonDate` (boolean, optional) - 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.
- `applyTrackRecordExtension` (boolean, optional) - Specifies whether to apply the Track Record Extension logic in order to extend the performance of an investment by copying the historical performance of another qualified older investment.
- `applyRestructureDate` (boolean, optional) - Specifies whether to consider the Morningstar or Custom restructure date when determining the start of the performance period. This option is applicable only when `applyEarliestCommonDate` is set to true.
- `sinceInception` (boolean, optional) - Sets the time range from inception (or the maximum supported lookback) to the end date. Takes precendence over any `timePeriod` / `timePeriodUnit` and `startDate` / `endDate` settings.
- `currencyId` (string, optional) - Specifies the currency in which to return data.
- `performanceType` (string, optional) - Specifies the type of performance calculation to apply. Accepts up to two values. The first value is considered the preferred or primary performance type. The second value is considered the secondary performance type and serves as a fallback if the preferred type returns no data. If only one value is provided, no fallback is attempted. Used with calculated data points only.
- `annualDays` (number, optional) - Specifies the number of days in a year for annualized calculations. Common values are 252 for business days, 365 for calendar days. Used with calculated data points only.
- `annualized` (boolean, optional) - Specifies whether the calculation results should be annualized. Used with calculated data points only.
- `preCurrency` (string, optional) - Specifies the currency to use before currency conversion. Accepts 3-character ISO 4217 currency codes. Used with calculated data points only.
- `requireContinueData` (boolean, optional) - Specifies whether continuous data is required for calculations. Used with calculated data points only.
- `stepSize` (number, optional) - Specifies the step size for rolling or iterative calculations. Used with 'rolling-return' data point only. For example, `stepSize=12` and `frequency=monthly` 12-month rolling values are calculated.
- `windowSize` (integer, optional) - Specifies the time interval between data points.

## Responses

- `200` - OK
- `400` - 400
- `500` - 500

## OpenAPI definition

```yaml
openapi: 3.1.0
info:
  title: Time Series API
  version: "1.0"
servers:
  - url: https://www.us-api.morningstar.com
    description: Americas
  - url: https://www.apac-api.morningstar.com
    description: APAC
  - url: https://www.emea-api.morningstar.com
    description: EMEA
paths:
  /direct-web-services/time-series/v1/performance/rolling-return/{ids}:
    get:
      tags:
        - Performance
      summary: Get Rolling Return
      parameters:
        - name: ids
          in: path
          description: >-
            
            Comma-separated list of up to 25 investment identifiers to query.


            Accepts:


            - Morningstar Performance ID (default)

            - Morningstar Security ID

            - Morningstar IDs (MSID)

            - ISIN

            - CUSIP

            - Trading symbol

            - Category ID   
              Important: When a category ID is passed, the corresponding `identifierType` can be `performanceId` or `securityId`. The value must be URL-encoded. For example, if the category ID is `LC00002226;CA]FO`, the URL-encoded value is `LC00002226;CA%5DFO`.
          required: true
          schema:
            type: string
            example: 0P000000GY,US0378331005,037833100
        - name: idTypes
          in: query
          description: >-
            
            Comma-separated list specifying the type of each value passed in the
            `ids` parameter.<br>

            Rules:


            *   Values must align with the order of values in `ids`

            *   Use empty entries to skip

            *   Omit trailing commas after the last non-empty value

            *   Empty values default to `performanceId`


            Example:


            *   `ids=id1,id2,id3`

            *   `id1` and `id3` are performance IDs

            *   `id2` is a security ID

            *   `idTypes=securityId,isin,cusip`


            Accepted values:


            *   `performanceId` (default)

            *   `isin`

            *   `securityId`

            *   `cusip`

            *   `tradingSymbol`

            *   `msid`
          schema:
            type: string
            example: securityId,isin,cusip
        - name: baseCurrency
          in: query
          description: >-
            
            Comma-separated list of 3-character ISO 4217 currency codes (for
            example, `CAD`, `EUR`, `JPY`).<br>


            *   Filters results based on currency

            *   Values must align with the order of values in `ids`

            *   Use empty entries to skip

            *   Omit trailing commas after the last non-empty value


            Example:


            *   `ids=id1,id2,id3,id4,id5`

            *   Base currency passed for `id2` and `id4`

            *   `baseCurrency=USD,USD,USD`
          schema:
            type: string
            example: USD,USD,USD
        - name: domicile
          in: query
          description: >-
            
            Comma-separated list of 3-character ISO 3166‑1 country codes (for
            example, `CAN`, `IRL`, `IND`). 

            Rules:


            *   Filters results based on domicile

            *   Values must align with the order of values in `ids`

            *   Use empty entries to skip

            *   Omit trailing commas after the last non-empty value


            Example:


            *   `ids=id1,id2,id3,id4,id5`

            *   Domicile passed for `id2` and `id4`

            *   `domicile=,USA,,USA`
          schema:
            type: string
            example: USA,USA,USA
        - name: exchangeCountry
          in: query
          description: >-
            
            Comma-separated list of 3-character ISO 3166‑1 country codes (for
            example, `CAN`, `IRL`, `IND`).



            *   Filters results based on domicile

            *   Values must align with the order of values in `ids`

            *   Use empty entries to skip

            *   Omit trailing commas after the last non-empty value


            Example:


            *   `ids=id1,id2,id3,id4,id5`

            *   Exchange country passed for `id2` and `id4`

            *   `exchangeCountry=,USA,,USA`
          schema:
            type: string
            example: USA,USA,USA
        - name: exchangeId
          description: >-
            
            Comma-separated list of exchange IDs (for example, `EX$$$$XMEX`,
            `EX$$$$XNAS`).


            *   Filters results based on exchange ID

            *   Values must align with the order of values in `ids`

            *   Use empty entries to skip

            *   Omit trailing commas after the last non-empty value


            Example:


            *   `ids=id1,id2,id3,id4,id5`

            *   Exchange ID passed for `id2` and `id4`

            *   `exchangeId=,EX$$$$XMEX,,EX$$$$XNAS`
          in: query
          required: false
          schema:
            type: string
            example: EX$$$$XMEX
        - name: frequency
          in: query
          description: Specifies the time interval between data points.
          schema:
            enum:
              - daily
              - weekly
              - monthly
              - quarterly
              - annually
            type: string
            default: daily
        - name: startDate
          in: query
          description: >
            Specifies the start date for the time series. Accepted format is
            `yyyy-MM-dd`.
          schema:
            type: string
            example: 2026-01-01
            format: date
        - name: endDate
          in: query
          description: >
            Specifies the end date for the time series. Accepted format is
            `yyyy-MM-dd`.
          schema:
            type: string
            example: 2026-05-01
            format: date
        - name: timePeriod
          in: query
          description: >-
            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
            provided, `timePeriod` and `timePeriodUnit` take precedence.
          schema:
            type: number
            example: "12"
        - name: timePeriodUnit
          in: query
          description: >-
            
            Specifies the time period unit. 


            - Used in combination with `timePeriod` to specify relative time
            ranges. 


            - When `startDate`, `endDate`, `timePeriod` and `timePeriodUnit` are
            provided, `timePeriod` and `timePeriodUnit` take precedence.
          schema:
            type: string
            enum:
              - months
              - days
              - years
        - name: applyEarliestCommonDate
          in: query
          description: >-
            
            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.
          schema:
            type: boolean
            default: false
        - name: applyTrackRecordExtension
          in: query
          description: >-
            
            Specifies whether to apply the Track Record Extension logic in order
            to extend the performance of an investment by copying the historical
            performance of another qualified older investment.
          schema:
            type: boolean
            default: false
        - name: applyRestructureDate
          in: query
          description: >-
            
            Specifies whether to consider the Morningstar or Custom restructure
            date when determining the start of the performance period.


            This option is applicable only when `applyEarliestCommonDate` is set
            to true.
          schema:
            type: boolean
            default: false
        - name: sinceInception
          in: query
          description: >-
            
            Sets the time range from inception (or the maximum supported
            lookback) to the end date. 


            Takes precendence over any `timePeriod` / `timePeriodUnit` and
            `startDate` / `endDate` settings.
          required: false
          schema:
            type: boolean
            default: false
        - name: currencyId
          in: query
          description: Specifies the currency in which to return data.
          schema:
            type: string
            enum:
              - 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
            default: BAS
        - name: performanceType
          in: query
          description: Specifies the type of performance calculation to apply. Accepts up
            to two values. The first value is considered the preferred or
            primary performance type. The second value is considered the
            secondary performance type and serves as a fallback if the preferred
            type returns no data. If only one value is provided, no fallback is
            attempted. Used with calculated data points only.
          schema:
            type: string
            enum:
              - total
              - market
              - gross
            default: total
            example: total
        - name: annualDays
          in: query
          description: Specifies the number of days in a year for annualized calculations.
            Common values are 252 for business days, 365 for calendar days. Used
            with calculated data points only.
          schema:
            type: number
            default: 365.25
            example: "365"
        - name: annualized
          in: query
          description: Specifies whether the calculation results should be annualized.
            Used with calculated data points only.
          schema:
            type: boolean
            example: true
        - name: preCurrency
          in: query
          description: Specifies the currency to use before currency conversion. Accepts
            3-character ISO 4217 currency codes. Used with calculated data
            points only.
          schema:
            type: string
            example: USD
        - name: requireContinueData
          in: query
          description: Specifies whether continuous data is required for calculations.
            Used with calculated data points only.
          schema:
            type: boolean
            example: "true"
        - name: stepSize
          in: query
          description: Specifies the step size for rolling or iterative calculations. Used
            with 'rolling-return' data point only. For example, `stepSize=12`
            and `frequency=monthly` 12-month rolling values are calculated.
          schema:
            type: number
            default: 1
            example: "12"
        - name: windowSize
          in: query
          description: Specifies the time interval between data points.
          schema:
            type: integer
            example: 6
            maximum: 2147483647
            minimum: 1
      responses:
        "200":
          $ref: "#/components/responses/ResponseTimeSeriesSingleObservation"
        "400":
          $ref: "#/components/responses/ResponseStatus400"
        "500":
          $ref: "#/components/responses/ResponseStatus500"
      operationId: getPerformanceRollingReturn
security:
  - Bearer: []
components:
  responses:
    ResponseTimeSeriesSingleObservation:
      description: OK
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ResponseTimeSeriesSingleObservation"
    ResponseStatus400:
      description: "400"
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorResponse"
          examples:
            ResponseStatus400Example1:
              $ref: "#/components/examples/ResponseStatus400Example1"
    ResponseStatus500:
      description: "500"
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorResponse"
          examples:
            ResponseStatus500Example1:
              $ref: "#/components/examples/ResponseStatus500Example1"
  schemas:
    ResponseTimeSeriesSingleObservation:
      title: ResponseTimeSeriesSingleObservation
      readOnly: true
      description: List of investments for which time series data was returned.
      type: object
      additionalProperties: false
      properties:
        investments:
          type: array
          minItems: 1
          items:
            $ref: "#/components/schemas/OutputInvestmentSingleObservation"
        metadata:
          $ref: "#/components/schemas/OutputMetadata"
    ErrorResponse:
      title: ErrorResponse
      description: Defines the structure of an error response returned when a bad or
        invalid request is submitted. Includes the HTTP status code, descriptive
        message, and request identifier for traceability.
      type: object
      properties:
        statusCode:
          description: Numeric HTTP status code associated with the error.
          type: integer
          format: int32
          example: 400
          readOnly: true
        errorCode:
          description: Identifier for a specific type of error.
          type: string
          example: 400.timeSeries.009
          readOnly: true
        message:
          type: string
          description: Descriptive message providing details about the error or validation
            failure.
          example: Invalid frequency 'm' for datapoint 'daily-closing-price'.
          readOnly: true
        requestId:
          description: Indicates unique request identifier.
          example: c63e7f6c-b52d-42c3-9d1b-4a4b4ac05f3c
          readOnly: true
          type: string
      additionalProperties: false
    OutputInvestmentSingleObservation:
      title: OutputInvestmentSingleObservation
      type: object
      additionalProperties: false
      properties:
        identifiers:
          $ref: "#/components/schemas/OutputIdentifiers"
        timeSeries:
          $ref: "#/components/schemas/OutputTimeSeriesSingleObservation"
        metadata:
          $ref: "#/components/schemas/OutputInvestmentsMetadata"
    OutputMetadata:
      description: Metadata returned in response. Includes information about
        identifiers for which no results were found.
      title: OutputMetadata
      type: object
      properties:
        messages:
          $ref: "#/components/schemas/OutputMetadataMessages"
        requestId:
          description: Indicates the request identifier.
          example: c63e7f6c-b52d-42c3-9d1b-4a4b4ac05f3c
          type: string
          readOnly: true
        time:
          description: Indicates time response was returned.
          example: 2025-10-02T10:54:36.9161062Z
          type: string
          format: date-time
          readOnly: true
      additionalProperties: false
    OutputIdentifiers:
      title: OutputIdentifiers
      description: Specifies the identifier type used to specify the target investment
        in the request.
      additionalProperties: false
      properties:
        performanceId:
          type: string
          example: 0P00002CI5
        isin:
          type: string
          example: US2562191062
        securityId:
          type: string
          example: FCUSA0000P
        cusip:
          type: string
          example: 459200101
        sedol:
          type: string
          example: B4TT7L5
        tradingSymbol:
          type: string
          example: MDLOX
    OutputTimeSeriesSingleObservation:
      title: OutputTimeSeriesSingleObservation
      type: object
      description: A named time series with dated data points.
      additionalProperties: false
      properties:
        categories:
          type: array
          description: Semantic tags/labels for this series.
          items:
            $ref: "#/components/schemas/OutputCategory"
        dataPoint:
          description: Data point time series relates to.
          type: string
          example: daily-price
          enum:
            - 12-mo-yield
            - 7-day-gross-yield
            - 7-day-unsubsidized-yield
            - 7-day-yield
            - absolute-carbon-emissions-scope-1-and-2-tonnes
            - absolute-carbon-emissions-scope-1-and-2-tonnes-category-average
            - absolute-carbon-intensity-scope-1-and-2-tonnes-per-usd-millions
            - absolute-carbon-intensity-scope-1-and-2-tonnes-per-usd-millions-category-average
            - accounting-fee
            - administrator-fee
            - advisor-fee
            - aggregated-12-month-yield
            - aggregated-sec-yield
            - annual-ongoing-charge-excluding-performance-fee
            - annual-ongoing-charge-including-performance-fee
            - annual-report-adjusted-expense-ratio
            - annual-report-management-expense-ratio-mer
            - annual-report-ongoing-charge
            - borrowing-costs-actual
            - borrowing-costs-estimated
            - carbon-footprint-scope-1-and-2-and-3-tonnes-per-usd-millions
            - carbon-footprint-scope-1-and-2-and-3-tonnes-per-usd-millions-category-average
            - carbon-footprint-scope-1-and-2-eligible-holding-type
            - carbon-footprint-scope-1-and-2-number-of-holdings-covered
            - carbon-footprint-scope-1-and-2-percentage-of-eligible-portfolio-covered
            - carbon-footprint-scope-1-and-2-percentage-of-eligible-portfolio-not-covered
            - carbon-footprint-scope-1-and-2-percentage-of-portfolio-covered
            - carbon-footprint-scope-1-and-2-percentage-of-portfolio-eligible
            - carbon-footprint-scope-1-and-2-percentage-of-portfolio-eligible-not-covered
            - carbon-footprint-scope-1-and-2-percentage-of-portfolio-not-covered
            - carbon-footprint-scope-1-and-2-percentage-of-portfolio-not-eligible
            - carbon-footprint-scope-1-and-2-tonnes-per-aud-million-category-average
            - carbon-footprint-scope-1-and-2-tonnes-per-aud-millions
            - carbon-footprint-scope-1-and-2-tonnes-per-chf-million-category-average
            - carbon-footprint-scope-1-and-2-tonnes-per-chf-millions
            - carbon-footprint-scope-1-and-2-tonnes-per-eur-million-category-average
            - carbon-footprint-scope-1-and-2-tonnes-per-eur-millions
            - carbon-footprint-scope-1-and-2-tonnes-per-gbp-million-category-average
            - carbon-footprint-scope-1-and-2-tonnes-per-gbp-millions
            - carbon-footprint-scope-1-and-2-tonnes-per-hkd-million-category-average
            - carbon-footprint-scope-1-and-2-tonnes-per-hkd-millions
            - carbon-footprint-scope-1-and-2-tonnes-per-sgd-million-category-average
            - carbon-footprint-scope-1-and-2-tonnes-per-sgd-millions
            - carbon-footprint-scope-1-and-2-tonnes-per-usd-millions
            - carbon-footprint-scope-1-and-2-tonnes-per-usd-millions-category-average
            - carbon-risk-level-classification
            - carbon-risk-score-category-average
            - carbon-risk-score-percent-rank-in-category
            - cum-fair-nav-unweighted-dri
            - cum-fair-nav-weighted-dri
            - current-yield
            - cumulative-return
            - daily-closing-price
            - daily-estimated-holding-cost
            - daily-gross-return-index
            - daily-high-price
            - daily-load-adj-return-index-restated
            - daily-low-price
            - daily-market-impact-cost
            - daily-market-return-index
            - daily-net-return-index
            - daily-portfolio-concentration
            - daily-price
            - daily-return-index
            - daily-return-index-cum-fair
            - daily-tracking-volatility
            - daily-volume
            - daily-yield
            - distribution-fee-percentage-of-nav-actual
            - distribution-fee-percentage-of-nav-estimated
            - dividend-amount-history
            - dividend-yield-12-month
            - dividend-yield-long
            - dividend-yield-short
            - entry-cost-acquired-actual
            - equity-mkt-cap-rescaling-factor-long
            - estimated-quarterly-return
            - estimated-share-class-net-flow-daily
            - estimated-share-class-net-flow-monthly
            - ex-par-nav-unweighted-dri
            - ex-par-nav-weighted-dri
            - growth
            - five-year-five-star-rating-percent
            - five-year-four-star-rating-percent
            - five-year-not-star-rated-percent
            - five-year-not-star-rating-eligible-percent
            - five-year-one-star-rating-percent
            - five-year-three-star-rating-percent
            - five-year-two-star-rating-percent
            - historical-carbon-risk-score
            - historical-corporate-esg-risk-score
            - historical-sovereign-esg-risk-score
            - income-only-yield-nav-uk
            - income-only-yield-nav-us
            - income-only-yield-price-us
            - indirect-costs-closed-ended-actual-uk
            - indirect-costs-closed-ended-estimated-uk
            - indirect-costs-open-ended-actual-uk
            - indirect-costs-open-ended-estimated-uk
            - management-fee-ex-distribution-fees-actual
            - management-fee-ex-distribution-fees-estimated
            - market-cap-giant-percentage-long-rescaled
            - market-cap-large-percentage-long-rescaled
            - market-cap-micro-percentage-long-rescaled
            - market-cap-mid-percentage-long-rescaled
            - market-cap-small-percentage-long-rescaled
            - maximum-entry-cost-acquired
            - maximum-entry-cost-base-currency
            - maximum-entry-cost-percentage
            - maximum-exit-cost-acquired
            - maximum-exit-fee-base-currency
            - maximum-exit-fee-percentage
            - model-representative-cost
            - monthly-downside-tracking-error
            - monthly-gross-return
            - monthly-inflation-adjusted-return
            - monthly-load-adj-return-restated
            - monthly-market-return
            - monthly-net-return
            - monthly-return
            - monthly-return-unweighted-nav
            - monthly-return-unweighted-price
            - monthly-return-weighted-nav
            - monthly-return-weighted-price
            - monthly-tracking-error
            - monthly-yield
            - morningstar-esg-risk-rating-for-funds
            - morningstar-medalist-rating
            - morningstar-medalist-rating-parent-pillar
            - morningstar-medalist-rating-parent-pillar-type
            - morningstar-medalist-rating-people-pillar
            - morningstar-medalist-rating-people-pillar-type
            - morningstar-medalist-rating-performance-pillar
            - morningstar-medalist-rating-performance-pillar-type
            - morningstar-medalist-rating-price-pillar
            - morningstar-medalist-rating-price-pillar-type
            - morningstar-medalist-rating-process-pillar
            - morningstar-medalist-rating-process-pillar-type
            - morningstar-medalist-rating-type
            - morningstar-rating-overall
            - nav-unweighted-daily-income-and-capital-gain-yield
            - nav-unweighted-daily-income-only-yield
            - nav-unweighted-daily-total-distribution-yield
            - nav-unweighted-dri
            - nav-weighted-daily-income-and-capital-gain-yield
            - nav-weighted-daily-income-only-yield
            - nav-weighted-daily-total-distribution-yield
            - nav-weighted-dri
            - ongoing-charge-ex-perf-fee
            - ongoing-charge-inc-perf-fee
            - ongoing-cost-actual
            - ongoing-cost-estimated
            - other-fee
            - other-fee-amount-cn
            - overall-five-star-rating-percent
            - overall-four-star-rating-percent
            - overall-not-star-rated-percent
            - overall-not-star-rating-eligible-percent
            - overall-one-star-rating-percent
            - overall-three-star-rating-percent
            - overall-two-star-rating-percent
            - performance-fee-actual
            - performance-fee-estimated
            - portfolio-carbon-risk-score
            - portfolio-corporate-esg-risk-rating
            - portfolio-corporate-esg-risk-score
            - portfolio-environmental-risk-score
            - portfolio-governance-risk-score
            - portfolio-social-risk-score
            - portfolio-sovereign-esg-risk-rating
            - portfolio-sovereign-esg-risk-score
            - portfolio-unallocated-risk-score
            - price
            - price-unweighted-daily-income-and-capital-gain-yield
            - price-unweighted-daily-income-only-yield
            - price-unweighted-daily-total-distribution-yield
            - price-unweighted-dri
            - price-weighted-daily-income-and-capital-gain-yield
            - price-weighted-daily-income-only-yield
            - price-weighted-daily-total-distribution-yield
            - price-weighted-dri
            - prospective-acquired-fund-expense
            - prospectus-adjusted-expense-ratio
            - quarterly-downside-tracking-error
            - quarterly-gross-return
            - quarterly-inflation-adjusted-return
            - quarterly-load-adj-return-restated
            - quarterly-market-return
            - quarterly-net-return
            - quarterly-return
            - quarterly-tracking-error
            - quoted-yield-daily
            - rating-10-yr
            - rating-3-yr
            - rating-5-yr
            - raw-return-cum-fair
            - raw-return-market-price
            - raw-return-nav
            - real-assets-costs-actual-uk
            - real-assets-costs-estimated-uk
            - return
            - rolling-return
            - sec-yield
            - sec-yield-rescaling-factor
            - sitca-yield
            - sri-value
            - ten-year-five-star-rating-percent
            - ten-year-four-star-rating-percent
            - ten-year-not-star-rated-percent
            - ten-year-not-star-rating-eligible-percent
            - ten-year-one-star-rating-percent
            - ten-year-three-star-rating-percent
            - ten-year-two-star-rating-percent
            - three-year-five-star-rating-percent
            - three-year-four-star-rating-percent
            - three-year-not-star-rated-percent
            - three-year-not-star-rating-eligible-percent
            - three-year-one-star-rating-percent
            - three-year-three-star-rating-percent
            - three-year-two-star-rating-percent
            - total-expense-survey
            - trading-expense
            - transaction-costs-actual-uk
            - transaction-costs-estimated-uk
            - transaction-fee-actual
            - transaction-fee-estimated
            - turnover-ratio-percentage
            - typical-exit-cost
            - unannualized
            - weekly-return
            - yearly-capital-return
            - yearly-gross-return
            - yearly-income-return
            - yearly-inflation-adjusted-return
            - yearly-interest-income
            - yearly-investor-return
            - yearly-load-adj-return-restated
            - yearly-market-return
            - yearly-net-return
            - yearly-return
        performanceType:
          type: string
          description: Indicates the performance type used for the time series.
          enum:
            - total
            - market
            - gross
        data:
          type: array
          items:
            $ref: "#/components/schemas/DataModelSingleObservation"
    OutputInvestmentsMetadata:
      title: OutputInvestmentsMetadata
      description: Provides the identifier look up details passed in request.
      type: object
      additionalProperties: false
      properties:
        exchangeCountry:
          type: string
          example: GBR
          default: USA
          description: Indicates exchange country used to look up investment. Represented
            by 3-character ISO 3166-1 country codes.
          minLength: 3
          maxLength: 3
        domicile:
          type: string
          example: GBR
          default: USA
          description: Indicates domicile used to look up investment. Represented
            by  3-character ISO 3166-1 country codes.
          minLength: 3
          maxLength: 3
        baseCurrency:
          type: string
          example: GBP
          default: USD
          description: Indicates base currency used to look up investment. Represented
            by  3-character ISO 4217 currency codes.
          minLength: 3
          maxLength: 3
    OutputMetadataMessages:
      description: Provides information about identifiers for which no results were
        returned.
      title: OutputMetadataMessages
      type: object
      additionalProperties: false
      properties:
        investments:
          description: Indicates identifiers for which no results were returned.
          type: array
          items:
            $ref: "#/components/schemas/OutputMetadataMessageInvestment"
        type:
          type: string
          description: Indicates the message type.
          example: Warning
          readOnly: true
          const: Warning
        message:
          type: string
          description: Description of the issue encountered.
          example: "Lookup : Invalid investments."
          readOnly: true
        code:
          type: string
          description: Code associated with the message.
          example: 404.common.125
          readOnly: true
    OutputCategory:
      title: OutputCategory
      type: string
      description: Identifies the thematic category or functional area a data point
        belongs to within the Time Series API.
      enum:
        - fees-expenses
        - corporate-actions
        - fund-sustainability
        - fund-research
        - performance
        - portfolio-analytics
        - portfolio-holdings
        - reference
    DataModelSingleObservation:
      title: DataModelSingleObservation
      description: Represents a time series of single observations, where each entry
        contains a date and its corresponding value.
      type: object
      properties:
        date:
          type: string
          format: date
          example: 2025-09-06
        value:
          type: number
          example: 1.108
    OutputMetadataMessageInvestment:
      title: OutputMetadataMessageInvestment
      type: object
      additionalProperties: false
      properties:
        id:
          type: string
          description: Indicates identifier value passed in request.
          example: 0P000PPP6Q
          readOnly: true
        idType:
          type: string
          description: Indicates the identifier type passed in request.
          example: performanceId
          readOnly: true
  examples:
    ResponseStatus400Example1:
      summary: 400 -  Bad Request
      value:
        statusCode: 400
        errorCode: 400.investmentDetails.002
        message: Invalid date format. Expected format is yyyy-MM-d
        requestId: 539d62a5-3586-4070-965e-0f7f64712d79
    ResponseStatus500Example1:
      summary: 500 - Internal Server Error
      value:
        statusCode: 500
        errorCode: 500.investmentDetails.003
        message: Error calling Investment API.
        requestId: 539d62a5-3586-4070-965e-0f7f64712d79
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        JWT obtained from `POST /token/oauth`.


        Send it on every request as `Authorization: Bearer <token>`. Reuse the
        token for up to 60 minutes, then request a new one.
```
