openapi: 3.0.1 info: version: 1.0.0 title: Authorization Tokens Accounts Portfolio Holdings API description: 'Use the `oauth` endpoint to generate the secure, time-limited JSON Web Tokens (JWTs) used to authorize access to APIs and components.

To request a token, click Authorize and enter the following credentials: * Username - Your Client ID. * Password - Your Client Secret.' servers: - url: https://www.us-api.morningstar.com/token description: PROD US - url: https://www.emea-api.morningstar.com/token description: PROD EMEA - url: https://www.apac-api.morningstar.com/token description: PROD APAC security: - BasicAuth: [] tags: - name: Portfolio Holdings paths: /direct-web-services/v1/investments/{id}/full-portfolio-holdings-month-end-or-quarter-end-most-recent: get: summary: Get Full Portfolio Holdings Month-End or Quarter-End Most Recent data view. parameters: - name: id in: path description: "\nSpecifies the investment to query. \n\nMorningstar Performance ID is the default identifer for the API. Use the Universe API to retrieve Performance IDs for investments in your entitled universe." required: true schema: type: string example: 0P00000046 examples: performanceId: summary: Morningstar Performance ID value: 0P00000046 isin: summary: ISIN value: US0042391096 - name: idType in: query description: 'Specifies the type of the value passed in the `id` parameter. Morningstar Performance ID is the default identifer for the API. Use the Universe API to retrieve Performance IDs for investments in your entitled universe.' schema: enum: - performanceId - isin - securityId - cusip - tradingSymbol - fundCode - msid type: string default: performanceId - name: baseCurrency in: query description: Base currency to use for investment lookup. Accepts 3‑character ISO 4217 currency codes. schema: type: string examples: baseCurrencyExample1: summary: US Dollar value: USD baseCurrencyExample2: summary: Swiss Franc value: CHF - name: domicile in: query description: Domicile to use for investment lookup. Accepts 3-character ISO 3166-1 country codes. schema: type: string examples: domicileExample1: summary: CAN (Canada) value: CAN domicileExample2: summary: JPN (Japan) value: JPN domicileExample3: summary: USE (United States) value: USA - name: exchangeCountry in: query description: Exchange country to use for investment lookup. Accepts 3-character ISO 3166-1 country codes. schema: type: string examples: exchangeCountryExample1: summary: CAN (Canada) value: CAN exchangeCountryExample2: summary: JPN (Japan) value: JPN exchangeCountryExample3: summary: USA (USA) value: USA - name: exchangeId in: query description: Exchange identifier to use for investment lookup. schema: type: string externalDocs: description: List of exchange IDs. url: https://developer.morningstar.com/content/hidden-from-navigation/DwsIdLookUpExchangeIds.xlsx examples: exchangeIdExample1: summary: NASDAQ - ALL Markets (NAS) value: EX$$$$XNAS exchangeIdExample2: summary: London Stock Exchange (LSE) value: EX$$$$XLON - name: holdingsView in: query schema: enum: - Full - Top10 - Top25 type: string default: Top10 description: Type of holdings view to return. examples: holdingsViewExample1: summary: Top 10 Holdings value: Top10 holdingsViewExample2: summary: Full Holdings value: Full - name: portfolioDate description: Date for which to retrieve holdings data. schema: type: string examples: portfolioDateExample1: summary: Portfolio Date Example value: '2026-01-02' description: Most recent data supported. operationId: getFullPortfolioHoldingsMonthEndOrQuarterEndMostRecentPackage tags: - Portfolio Holdings responses: '200': $ref: '#/components/responses/ResponseFullPortfolioHoldingsMonthEndOrQuarterEndMostRecent' '400': $ref: '#/components/responses/ResponseBadRequest' '500': $ref: '#/components/responses/ResponseInternalServerError' /direct-web-services/v1/investments/{id}/portfolio-holdings-dates: post: summary: Retrieve portfolio holdings date parameters: - name: id in: path description: "\nSpecifies the investment to query. \n\nMorningstar Performance ID is the default identifer for the API. Use the Universe API to retrieve Performance IDs for investments in your entitled universe." required: true schema: type: string examples: performanceId: summary: Morningstar Performance ID value: 0P00000046 isin: summary: ISIN value: US0042391096 tags: - Portfolio Holdings description: 'This endpoint is used to retrieve dates for which data is available for a portfolio. These dates are used to specify a portfolio date when requesting investment details for the following views: - `full-portfolio-holdings-month-end-or-quarter-end-most-recent`' operationId: retrievePortfolioHoldingsDates requestBody: $ref: '#/components/requestBodies/RequestPortfolioHoldingsDates' responses: '200': $ref: '#/components/responses/ResponsePortfolioHoldingsDates' '400': $ref: '#/components/responses/ResponsePortfolioHoldingsDatesBadRequest' /direct-web-services/time-series/v1/portfolio-holdings/carbon-risk-level-classification/{ids}: get: tags: - Portfolio Holdings summary: Get Carbon Risk Level Classification time series. description: The fund's Historical Carbon Risk Score is assigned to one of five risk categories:Portfolio Carbon Risk Score Risk Level0 Negligible 0. parameters: - name: ids in: path description: "\nComma-separated list of up to 25 investment identifiers to query.\n\nAccepts:\n\n- Morningstar Performance ID (default)\n- Morningstar Security ID\n- Morningstar IDs (MSID)\n- ISIN\n- CUSIP\n- Trading symbol\n- Category ID \n 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: 0P00000016,0P00002Y8D,DODGX,0P000000ppY - name: idTypes in: query description: ' Comma-separated list specifying the type of each value passed in the `ids` parameter.
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` Accepted values: * `performanceId` (default) * `isin` * `securityId` * `cusip` * `tradingSymbol` * `msid`' schema: type: string example: ',securityId' - name: baseCurrency in: query description: ' Comma-separated list of 3-character ISO 4217 currency codes (for example, `CAD`, `EUR`, `JPY`).
* 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`' schema: type: string example: ',USD,,USD' - name: domicile in: query description: "\nComma-separated list of 3-character ISO 3166‑1 country codes (for example, `CAN`, `IRL`, `IND`). \nRules:\n\n* Filters results based on domicile\n* Values must align with the order of values in `ids`\n* Use empty entries to skip\n* Omit trailing commas after the last non-empty value\n\nExample:\n\n* `ids=id1,id2,id3,id4,id5`\n* Domicile passed for `id2` and `id4`\n* `domicile=,USA,,USA`" schema: type: string example: ',USD,,USD' - 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: ',CAN,CAN' - 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: - monthly type: string default: monthly - name: startDate in: query description: 'Specifies the start date for the time series. Accepted format is `yyyy-MM-dd`. ' schema: type: string example: '2020-01-12' 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: '2024-01-12' format: date - name: timePeriod in: query description: "Specifies the size of the time window for the data range. \n\n- Used in combination with `timePeriodUnit` to specify relative time ranges. \n\n- When `startDate`, `endDate`, `timePeriod` and `timePeriodUnit` are provided, `timePeriod` and `timePeriodUnit` take precedence." schema: type: number example: '12' - name: timePeriodUnit in: query description: "\nSpecifies the time period unit. \n\n- Used in combination with `timePeriod` to specify relative time ranges. \n\n- 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: "\nSpecifies whether to apply the earliest common start date across all investments.\n\n 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: "\nSets the time range from inception (or the maximum supported lookback) to the end date. \n\nTakes 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: - BASE - 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: BASE responses: '200': $ref: '#/components/responses/ResponseTimeSeriesSingleObservation' '400': $ref: '#/components/responses/ResponseStatus400' '500': $ref: '#/components/responses/ResponseStatus500' operationId: getPortfolioHoldingsCarbonRiskLevelClassification /direct-web-services/time-series/v1/portfolio-holdings/carbon-risk-score-category-average/{ids}: get: tags: - Portfolio Holdings summary: Get Carbon Risk Score Category Average time series. description: The average Carbon Risk Score for portfolios within the Morningstar Category. parameters: - name: ids in: path description: "\nComma-separated list of up to 25 investment identifiers to query.\n\nAccepts:\n\n- Morningstar Performance ID (default)\n- Morningstar Security ID\n- Morningstar IDs (MSID)\n- ISIN\n- CUSIP\n- Trading symbol\n- Category ID \n 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: 0P00000016,0P00002Y8D,DODGX,0P000000ppY - name: idTypes in: query description: ' Comma-separated list specifying the type of each value passed in the `ids` parameter.
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` Accepted values: * `performanceId` (default) * `isin` * `securityId` * `cusip` * `tradingSymbol` * `msid`' schema: type: string example: ',securityId' - name: baseCurrency in: query description: ' Comma-separated list of 3-character ISO 4217 currency codes (for example, `CAD`, `EUR`, `JPY`).
* 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`' schema: type: string example: ',USD,,USD' - name: domicile in: query description: "\nComma-separated list of 3-character ISO 3166‑1 country codes (for example, `CAN`, `IRL`, `IND`). \nRules:\n\n* Filters results based on domicile\n* Values must align with the order of values in `ids`\n* Use empty entries to skip\n* Omit trailing commas after the last non-empty value\n\nExample:\n\n* `ids=id1,id2,id3,id4,id5`\n* Domicile passed for `id2` and `id4`\n* `domicile=,USA,,USA`" schema: type: string example: ',USD,,USD' - 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: ',CAN,CAN' - 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: - monthly type: string default: monthly - name: startDate in: query description: 'Specifies the start date for the time series. Accepted format is `yyyy-MM-dd`. ' schema: type: string example: '2020-01-12' 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: '2024-01-12' format: date - name: timePeriod in: query description: "Specifies the size of the time window for the data range. \n\n- Used in combination with `timePeriodUnit` to specify relative time ranges. \n\n- When `startDate`, `endDate`, `timePeriod` and `timePeriodUnit` are provided, `timePeriod` and `timePeriodUnit` take precedence." schema: type: number example: '12' - name: timePeriodUnit in: query description: "\nSpecifies the time period unit. \n\n- Used in combination with `timePeriod` to specify relative time ranges. \n\n- 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: "\nSpecifies whether to apply the earliest common start date across all investments.\n\n 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: "\nSets the time range from inception (or the maximum supported lookback) to the end date. \n\nTakes 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: - BASE - 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: BASE responses: '200': $ref: '#/components/responses/ResponseTimeSeriesSingleObservation' '400': $ref: '#/components/responses/ResponseStatus400' '500': $ref: '#/components/responses/ResponseStatus500' operationId: getPortfolioHoldingsCarbonRiskScoreCategoryAverage /direct-web-services/time-series/v1/portfolio-holdings/carbon-risk-score-percent-rank-in-category/{ids}: get: tags: - Portfolio Holdings summary: Get Carbon Risk Score Percent Rank In Category time series. description: The portfolio's percent rank within its Morningstar Category, based on its Portfolio Carbon Risk Score. parameters: - name: ids in: path description: "\nComma-separated list of up to 25 investment identifiers to query.\n\nAccepts:\n\n- Morningstar Performance ID (default)\n- Morningstar Security ID\n- Morningstar IDs (MSID)\n- ISIN\n- CUSIP\n- Trading symbol\n- Category ID \n 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: 0P00000016,0P00002Y8D,DODGX,0P000000ppY - name: idTypes in: query description: ' Comma-separated list specifying the type of each value passed in the `ids` parameter.
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` Accepted values: * `performanceId` (default) * `isin` * `securityId` * `cusip` * `tradingSymbol` * `msid`' schema: type: string example: ',securityId' - name: baseCurrency in: query description: ' Comma-separated list of 3-character ISO 4217 currency codes (for example, `CAD`, `EUR`, `JPY`).
* 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`' schema: type: string example: ',USD,,USD' - name: domicile in: query description: "\nComma-separated list of 3-character ISO 3166‑1 country codes (for example, `CAN`, `IRL`, `IND`). \nRules:\n\n* Filters results based on domicile\n* Values must align with the order of values in `ids`\n* Use empty entries to skip\n* Omit trailing commas after the last non-empty value\n\nExample:\n\n* `ids=id1,id2,id3,id4,id5`\n* Domicile passed for `id2` and `id4`\n* `domicile=,USA,,USA`" schema: type: string example: ',USD,,USD' - 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: ',CAN,CAN' - 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: - monthly type: string default: monthly - name: startDate in: query description: 'Specifies the start date for the time series. Accepted format is `yyyy-MM-dd`. ' schema: type: string example: '2020-01-12' 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: '2024-01-12' format: date - name: timePeriod in: query description: "Specifies the size of the time window for the data range. \n\n- Used in combination with `timePeriodUnit` to specify relative time ranges. \n\n- When `startDate`, `endDate`, `timePeriod` and `timePeriodUnit` are provided, `timePeriod` and `timePeriodUnit` take precedence." schema: type: number example: '12' - name: timePeriodUnit in: query description: "\nSpecifies the time period unit. \n\n- Used in combination with `timePeriod` to specify relative time ranges. \n\n- 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: "\nSpecifies whether to apply the earliest common start date across all investments.\n\n 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: "\nSets the time range from inception (or the maximum supported lookback) to the end date. \n\nTakes 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: - BASE - 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: BASE responses: '200': $ref: '#/components/responses/ResponseTimeSeriesSingleObservation' '400': $ref: '#/components/responses/ResponseStatus400' '500': $ref: '#/components/responses/ResponseStatus500' operationId: getPortfolioHoldingsCarbonRiskScorePercentRankInCategory /direct-web-services/time-series/v1/portfolio-holdings/historical-carbon-risk-score/{ids}: get: tags: - Portfolio Holdings summary: Get Historical Carbon Risk Score time series. description: The historical weighted average of the trailing 12 months of Portfolio Carbon Risk Scores. Historical portfolio scores are not equal-weighted; rather, more-recent portfolios are weighted more heavily than older portfolios. parameters: - name: ids in: path description: "\nComma-separated list of up to 25 investment identifiers to query.\n\nAccepts:\n\n- Morningstar Performance ID (default)\n- Morningstar Security ID\n- Morningstar IDs (MSID)\n- ISIN\n- CUSIP\n- Trading symbol\n- Category ID \n 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: 0P00000016,0P00002Y8D,DODGX,0P000000ppY - name: idTypes in: query description: ' Comma-separated list specifying the type of each value passed in the `ids` parameter.
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` Accepted values: * `performanceId` (default) * `isin` * `securityId` * `cusip` * `tradingSymbol` * `msid`' schema: type: string example: ',securityId' - name: baseCurrency in: query description: ' Comma-separated list of 3-character ISO 4217 currency codes (for example, `CAD`, `EUR`, `JPY`).
* 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`' schema: type: string example: ',USD,,USD' - name: domicile in: query description: "\nComma-separated list of 3-character ISO 3166‑1 country codes (for example, `CAN`, `IRL`, `IND`). \nRules:\n\n* Filters results based on domicile\n* Values must align with the order of values in `ids`\n* Use empty entries to skip\n* Omit trailing commas after the last non-empty value\n\nExample:\n\n* `ids=id1,id2,id3,id4,id5`\n* Domicile passed for `id2` and `id4`\n* `domicile=,USA,,USA`" schema: type: string example: ',USD,,USD' - 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: ',CAN,CAN' - 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: - monthly type: string default: monthly - name: startDate in: query description: 'Specifies the start date for the time series. Accepted format is `yyyy-MM-dd`. ' schema: type: string example: '2020-01-12' 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: '2024-01-12' format: date - name: timePeriod in: query description: "Specifies the size of the time window for the data range. \n\n- Used in combination with `timePeriodUnit` to specify relative time ranges. \n\n- When `startDate`, `endDate`, `timePeriod` and `timePeriodUnit` are provided, `timePeriod` and `timePeriodUnit` take precedence." schema: type: number example: '12' - name: timePeriodUnit in: query description: "\nSpecifies the time period unit. \n\n- Used in combination with `timePeriod` to specify relative time ranges. \n\n- 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: "\nSpecifies whether to apply the earliest common start date across all investments.\n\n 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: "\nSets the time range from inception (or the maximum supported lookback) to the end date. \n\nTakes 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: - BASE - 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: BASE responses: '200': $ref: '#/components/responses/ResponseTimeSeriesSingleObservation' '400': $ref: '#/components/responses/ResponseStatus400' '500': $ref: '#/components/responses/ResponseStatus500' operationId: getPortfolioHoldingsHistoricalCarbonRiskScore /direct-web-services/time-series/v1/portfolio-holdings/historical-corporate-esg-risk-score/{ids}: get: tags: - Portfolio Holdings summary: Get Historical Corporate ESG Risk Score time series. description: The Morningstar Historical Corporate ESG Risk Score is a weighted average of the trailing 12 months of Morningstar Portfolio Corporate ESG Risk Scores. parameters: - name: ids in: path description: "\nComma-separated list of up to 25 investment identifiers to query.\n\nAccepts:\n\n- Morningstar Performance ID (default)\n- Morningstar Security ID\n- Morningstar IDs (MSID)\n- ISIN\n- CUSIP\n- Trading symbol\n- Category ID \n 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: 0P00000016,0P00002Y8D,DODGX,0P000000ppY - name: idTypes in: query description: ' Comma-separated list specifying the type of each value passed in the `ids` parameter.
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` Accepted values: * `performanceId` (default) * `isin` * `securityId` * `cusip` * `tradingSymbol` * `msid`' schema: type: string example: ',securityId' - name: baseCurrency in: query description: ' Comma-separated list of 3-character ISO 4217 currency codes (for example, `CAD`, `EUR`, `JPY`).
* 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`' schema: type: string example: ',USD,,USD' - name: domicile in: query description: "\nComma-separated list of 3-character ISO 3166‑1 country codes (for example, `CAN`, `IRL`, `IND`). \nRules:\n\n* Filters results based on domicile\n* Values must align with the order of values in `ids`\n* Use empty entries to skip\n* Omit trailing commas after the last non-empty value\n\nExample:\n\n* `ids=id1,id2,id3,id4,id5`\n* Domicile passed for `id2` and `id4`\n* `domicile=,USA,,USA`" schema: type: string example: ',USD,,USD' - 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: ',CAN,CAN' - 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 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: '2020-01-12' 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: '2024-01-12' format: date - name: timePeriod in: query description: "Specifies the size of the time window for the data range. \n\n- Used in combination with `timePeriodUnit` to specify relative time ranges. \n\n- When `startDate`, `endDate`, `timePeriod` and `timePeriodUnit` are provided, `timePeriod` and `timePeriodUnit` take precedence." schema: type: number example: '12' - name: timePeriodUnit in: query description: "\nSpecifies the time period unit. \n\n- Used in combination with `timePeriod` to specify relative time ranges. \n\n- 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: "\nSpecifies whether to apply the earliest common start date across all investments.\n\n 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: "\nSets the time range from inception (or the maximum supported lookback) to the end date. \n\nTakes 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: - BASE - 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: BASE responses: '200': $ref: '#/components/responses/ResponseTimeSeriesSingleObservation' '400': $ref: '#/components/responses/ResponseStatus400' '500': $ref: '#/components/responses/ResponseStatus500' operationId: getPortfolioHoldingsHistoricalCorporateEsgRiskScore /direct-web-services/time-series/v1/portfolio-holdings/historical-sovereign-esg-risk-score/{ids}: get: tags: - Portfolio Holdings summary: Get Historical Sovereign ESG Risk Score time series. description: The Morningstar Historical Sovereign ESG Risk Score is a weighted average of the trailing 12 months of Morningstar Portfolio Sovereign ESG Risk Scores. parameters: - name: ids in: path description: "\nComma-separated list of up to 25 investment identifiers to query.\n\nAccepts:\n\n- Morningstar Performance ID (default)\n- Morningstar Security ID\n- Morningstar IDs (MSID)\n- ISIN\n- CUSIP\n- Trading symbol\n- Category ID \n 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: 0P00000016,0P00002Y8D,DODGX,0P000000ppY - name: idTypes in: query description: ' Comma-separated list specifying the type of each value passed in the `ids` parameter.
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` Accepted values: * `performanceId` (default) * `isin` * `securityId` * `cusip` * `tradingSymbol` * `msid`' schema: type: string example: ',securityId' - name: baseCurrency in: query description: ' Comma-separated list of 3-character ISO 4217 currency codes (for example, `CAD`, `EUR`, `JPY`).
* 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`' schema: type: string example: ',USD,,USD' - name: domicile in: query description: "\nComma-separated list of 3-character ISO 3166‑1 country codes (for example, `CAN`, `IRL`, `IND`). \nRules:\n\n* Filters results based on domicile\n* Values must align with the order of values in `ids`\n* Use empty entries to skip\n* Omit trailing commas after the last non-empty value\n\nExample:\n\n* `ids=id1,id2,id3,id4,id5`\n* Domicile passed for `id2` and `id4`\n* `domicile=,USA,,USA`" schema: type: string example: ',USD,,USD' - 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: ',CAN,CAN' - 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 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: '2020-01-12' 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: '2024-01-12' format: date - name: timePeriod in: query description: "Specifies the size of the time window for the data range. \n\n- Used in combination with `timePeriodUnit` to specify relative time ranges. \n\n- When `startDate`, `endDate`, `timePeriod` and `timePeriodUnit` are provided, `timePeriod` and `timePeriodUnit` take precedence." schema: type: number example: '12' - name: timePeriodUnit in: query description: "\nSpecifies the time period unit. \n\n- Used in combination with `timePeriod` to specify relative time ranges. \n\n- 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: "\nSpecifies whether to apply the earliest common start date across all investments.\n\n 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: "\nSets the time range from inception (or the maximum supported lookback) to the end date. \n\nTakes 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: - BASE - 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: BASE responses: '200': $ref: '#/components/responses/ResponseTimeSeriesSingleObservation' '400': $ref: '#/components/responses/ResponseStatus400' '500': $ref: '#/components/responses/ResponseStatus500' operationId: getPortfolioHoldingsHistoricalSovereignEsgRiskScore /direct-web-services/time-series/v1/portfolio-holdings/portfolio-carbon-risk-score/{ids}: get: tags: - Portfolio Holdings summary: Get Portfolio Carbon Risk Score time series. description: The asset-weighted average of the carbon risk scores for the portfolio's covered, corporate holdings. parameters: - name: ids in: path description: "\nComma-separated list of up to 25 investment identifiers to query.\n\nAccepts:\n\n- Morningstar Performance ID (default)\n- Morningstar Security ID\n- Morningstar IDs (MSID)\n- ISIN\n- CUSIP\n- Trading symbol\n- Category ID \n 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: 0P00000016,0P00002Y8D,DODGX,0P000000ppY - name: idTypes in: query description: ' Comma-separated list specifying the type of each value passed in the `ids` parameter.
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` Accepted values: * `performanceId` (default) * `isin` * `securityId` * `cusip` * `tradingSymbol` * `msid`' schema: type: string example: ',securityId' - name: baseCurrency in: query description: ' Comma-separated list of 3-character ISO 4217 currency codes (for example, `CAD`, `EUR`, `JPY`).
* 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`' schema: type: string example: ',USD,,USD' - name: domicile in: query description: "\nComma-separated list of 3-character ISO 3166‑1 country codes (for example, `CAN`, `IRL`, `IND`). \nRules:\n\n* Filters results based on domicile\n* Values must align with the order of values in `ids`\n* Use empty entries to skip\n* Omit trailing commas after the last non-empty value\n\nExample:\n\n* `ids=id1,id2,id3,id4,id5`\n* Domicile passed for `id2` and `id4`\n* `domicile=,USA,,USA`" schema: type: string example: ',USD,,USD' - 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: ',CAN,CAN' - 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: - monthly type: string default: monthly - name: startDate in: query description: 'Specifies the start date for the time series. Accepted format is `yyyy-MM-dd`. ' schema: type: string example: '2020-01-12' 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: '2024-01-12' format: date - name: timePeriod in: query description: "Specifies the size of the time window for the data range. \n\n- Used in combination with `timePeriodUnit` to specify relative time ranges. \n\n- When `startDate`, `endDate`, `timePeriod` and `timePeriodUnit` are provided, `timePeriod` and `timePeriodUnit` take precedence." schema: type: number example: '12' - name: timePeriodUnit in: query description: "\nSpecifies the time period unit. \n\n- Used in combination with `timePeriod` to specify relative time ranges. \n\n- 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: "\nSpecifies whether to apply the earliest common start date across all investments.\n\n 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: "\nSets the time range from inception (or the maximum supported lookback) to the end date. \n\nTakes 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: - BASE - 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: BASE responses: '200': $ref: '#/components/responses/ResponseTimeSeriesSingleObservation' '400': $ref: '#/components/responses/ResponseStatus400' '500': $ref: '#/components/responses/ResponseStatus500' operationId: getPortfolioHoldingsPortfolioCarbonRiskScore /direct-web-services/time-series/v1/portfolio-holdings/portfolio-corporate-esg-risk-score/{ids}: get: tags: - Portfolio Holdings summary: Get Portfolio Corporate ESG Risk Score time series. description: The Morningstar Portfolio Corporate ESG Risk Score is an asset-weighted average of Sustainalytics' company-level ESG Risk Score. parameters: - name: ids in: path description: "\nComma-separated list of up to 25 investment identifiers to query.\n\nAccepts:\n\n- Morningstar Performance ID (default)\n- Morningstar Security ID\n- Morningstar IDs (MSID)\n- ISIN\n- CUSIP\n- Trading symbol\n- Category ID \n 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: 0P00000016,0P00002Y8D,DODGX,0P000000ppY - name: idTypes in: query description: ' Comma-separated list specifying the type of each value passed in the `ids` parameter.
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` Accepted values: * `performanceId` (default) * `isin` * `securityId` * `cusip` * `tradingSymbol` * `msid`' schema: type: string example: ',securityId' - name: baseCurrency in: query description: ' Comma-separated list of 3-character ISO 4217 currency codes (for example, `CAD`, `EUR`, `JPY`).
* 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`' schema: type: string example: ',USD,,USD' - name: domicile in: query description: "\nComma-separated list of 3-character ISO 3166‑1 country codes (for example, `CAN`, `IRL`, `IND`). \nRules:\n\n* Filters results based on domicile\n* Values must align with the order of values in `ids`\n* Use empty entries to skip\n* Omit trailing commas after the last non-empty value\n\nExample:\n\n* `ids=id1,id2,id3,id4,id5`\n* Domicile passed for `id2` and `id4`\n* `domicile=,USA,,USA`" schema: type: string example: ',USD,,USD' - 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: ',CAN,CAN' - 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 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: '2020-01-12' 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: '2024-01-12' format: date - name: timePeriod in: query description: "Specifies the size of the time window for the data range. \n\n- Used in combination with `timePeriodUnit` to specify relative time ranges. \n\n- When `startDate`, `endDate`, `timePeriod` and `timePeriodUnit` are provided, `timePeriod` and `timePeriodUnit` take precedence." schema: type: number example: '12' - name: timePeriodUnit in: query description: "\nSpecifies the time period unit. \n\n- Used in combination with `timePeriod` to specify relative time ranges. \n\n- 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: "\nSpecifies whether to apply the earliest common start date across all investments.\n\n 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: "\nSets the time range from inception (or the maximum supported lookback) to the end date. \n\nTakes 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: - BASE - 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: BASE responses: '200': $ref: '#/components/responses/ResponseTimeSeriesSingleObservation' '400': $ref: '#/components/responses/ResponseStatus400' '500': $ref: '#/components/responses/ResponseStatus500' operationId: getPortfolioHoldingsPortfolioCorporateEsgRiskScore /direct-web-services/time-series/v1/portfolio-holdings/portfolio-environmental-risk-score/{ids}: get: tags: - Portfolio Holdings summary: Get Portfolio Environmental Risk Score time series. description: The asset-weighted average of the Company Environmental Risk scores for the covered corporate holdings in a portfolio. parameters: - name: ids in: path description: "\nComma-separated list of up to 25 investment identifiers to query.\n\nAccepts:\n\n- Morningstar Performance ID (default)\n- Morningstar Security ID\n- Morningstar IDs (MSID)\n- ISIN\n- CUSIP\n- Trading symbol\n- Category ID \n 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: 0P00000016,0P00002Y8D,DODGX,0P000000ppY - name: idTypes in: query description: ' Comma-separated list specifying the type of each value passed in the `ids` parameter.
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` Accepted values: * `performanceId` (default) * `isin` * `securityId` * `cusip` * `tradingSymbol` * `msid`' schema: type: string example: ',securityId' - name: baseCurrency in: query description: ' Comma-separated list of 3-character ISO 4217 currency codes (for example, `CAD`, `EUR`, `JPY`).
* 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`' schema: type: string example: ',USD,,USD' - name: domicile in: query description: "\nComma-separated list of 3-character ISO 3166‑1 country codes (for example, `CAN`, `IRL`, `IND`). \nRules:\n\n* Filters results based on domicile\n* Values must align with the order of values in `ids`\n* Use empty entries to skip\n* Omit trailing commas after the last non-empty value\n\nExample:\n\n* `ids=id1,id2,id3,id4,id5`\n* Domicile passed for `id2` and `id4`\n* `domicile=,USA,,USA`" schema: type: string example: ',USD,,USD' - 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: ',CAN,CAN' - 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 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: '2020-01-12' 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: '2024-01-12' format: date - name: timePeriod in: query description: "Specifies the size of the time window for the data range. \n\n- Used in combination with `timePeriodUnit` to specify relative time ranges. \n\n- When `startDate`, `endDate`, `timePeriod` and `timePeriodUnit` are provided, `timePeriod` and `timePeriodUnit` take precedence." schema: type: number example: '12' - name: timePeriodUnit in: query description: "\nSpecifies the time period unit. \n\n- Used in combination with `timePeriod` to specify relative time ranges. \n\n- 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: "\nSpecifies whether to apply the earliest common start date across all investments.\n\n 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: "\nSets the time range from inception (or the maximum supported lookback) to the end date. \n\nTakes 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: - BASE - 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: BASE responses: '200': $ref: '#/components/responses/ResponseTimeSeriesSingleObservation' '400': $ref: '#/components/responses/ResponseStatus400' '500': $ref: '#/components/responses/ResponseStatus500' operationId: getPortfolioHoldingsPortfolioEnvironmentalRiskScore /direct-web-services/time-series/v1/portfolio-holdings/portfolio-governance-risk-score/{ids}: get: tags: - Portfolio Holdings summary: Get Portfolio Governance Risk Score time series. description: The asset-weighted average of the company Governance Risk Scores for the covered corporate holdings in a portfolio. parameters: - name: ids in: path description: "\nComma-separated list of up to 25 investment identifiers to query.\n\nAccepts:\n\n- Morningstar Performance ID (default)\n- Morningstar Security ID\n- Morningstar IDs (MSID)\n- ISIN\n- CUSIP\n- Trading symbol\n- Category ID \n 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: 0P00000016,0P00002Y8D,DODGX,0P000000ppY - name: idTypes in: query description: ' Comma-separated list specifying the type of each value passed in the `ids` parameter.
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` Accepted values: * `performanceId` (default) * `isin` * `securityId` * `cusip` * `tradingSymbol` * `msid`' schema: type: string example: ',securityId' - name: baseCurrency in: query description: ' Comma-separated list of 3-character ISO 4217 currency codes (for example, `CAD`, `EUR`, `JPY`).
* 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`' schema: type: string example: ',USD,,USD' - name: domicile in: query description: "\nComma-separated list of 3-character ISO 3166‑1 country codes (for example, `CAN`, `IRL`, `IND`). \nRules:\n\n* Filters results based on domicile\n* Values must align with the order of values in `ids`\n* Use empty entries to skip\n* Omit trailing commas after the last non-empty value\n\nExample:\n\n* `ids=id1,id2,id3,id4,id5`\n* Domicile passed for `id2` and `id4`\n* `domicile=,USA,,USA`" schema: type: string example: ',USD,,USD' - 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: ',CAN,CAN' - 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 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: '2020-01-12' 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: '2024-01-12' format: date - name: timePeriod in: query description: "Specifies the size of the time window for the data range. \n\n- Used in combination with `timePeriodUnit` to specify relative time ranges. \n\n- When `startDate`, `endDate`, `timePeriod` and `timePeriodUnit` are provided, `timePeriod` and `timePeriodUnit` take precedence." schema: type: number example: '12' - name: timePeriodUnit in: query description: "\nSpecifies the time period unit. \n\n- Used in combination with `timePeriod` to specify relative time ranges. \n\n- 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: "\nSpecifies whether to apply the earliest common start date across all investments.\n\n 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: "\nSets the time range from inception (or the maximum supported lookback) to the end date. \n\nTakes 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: - BASE - 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: BASE responses: '200': $ref: '#/components/responses/ResponseTimeSeriesSingleObservation' '400': $ref: '#/components/responses/ResponseStatus400' '500': $ref: '#/components/responses/ResponseStatus500' operationId: getPortfolioHoldingsPortfolioGovernanceRiskScore /direct-web-services/time-series/v1/portfolio-holdings/portfolio-social-risk-score/{ids}: get: tags: - Portfolio Holdings summary: Get Portfolio Social Risk Score time series. description: The asset-weighted average of the Company Social Risk Scores for the covered corporate holdings in a portfolio. parameters: - name: ids in: path description: "\nComma-separated list of up to 25 investment identifiers to query.\n\nAccepts:\n\n- Morningstar Performance ID (default)\n- Morningstar Security ID\n- Morningstar IDs (MSID)\n- ISIN\n- CUSIP\n- Trading symbol\n- Category ID \n 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: 0P00000016,0P00002Y8D,DODGX,0P000000ppY - name: idTypes in: query description: ' Comma-separated list specifying the type of each value passed in the `ids` parameter.
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` Accepted values: * `performanceId` (default) * `isin` * `securityId` * `cusip` * `tradingSymbol` * `msid`' schema: type: string example: ',securityId' - name: baseCurrency in: query description: ' Comma-separated list of 3-character ISO 4217 currency codes (for example, `CAD`, `EUR`, `JPY`).
* 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`' schema: type: string example: ',USD,,USD' - name: domicile in: query description: "\nComma-separated list of 3-character ISO 3166‑1 country codes (for example, `CAN`, `IRL`, `IND`). \nRules:\n\n* Filters results based on domicile\n* Values must align with the order of values in `ids`\n* Use empty entries to skip\n* Omit trailing commas after the last non-empty value\n\nExample:\n\n* `ids=id1,id2,id3,id4,id5`\n* Domicile passed for `id2` and `id4`\n* `domicile=,USA,,USA`" schema: type: string example: ',USD,,USD' - 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: ',CAN,CAN' - 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 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: '2020-01-12' 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: '2024-01-12' format: date - name: timePeriod in: query description: "Specifies the size of the time window for the data range. \n\n- Used in combination with `timePeriodUnit` to specify relative time ranges. \n\n- When `startDate`, `endDate`, `timePeriod` and `timePeriodUnit` are provided, `timePeriod` and `timePeriodUnit` take precedence." schema: type: number example: '12' - name: timePeriodUnit in: query description: "\nSpecifies the time period unit. \n\n- Used in combination with `timePeriod` to specify relative time ranges. \n\n- 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: "\nSpecifies whether to apply the earliest common start date across all investments.\n\n 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: "\nSets the time range from inception (or the maximum supported lookback) to the end date. \n\nTakes 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: - BASE - 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: BASE responses: '200': $ref: '#/components/responses/ResponseTimeSeriesSingleObservation' '400': $ref: '#/components/responses/ResponseStatus400' '500': $ref: '#/components/responses/ResponseStatus500' operationId: getPortfolioHoldingsPortfolioSocialRiskScore /direct-web-services/time-series/v1/portfolio-holdings/portfolio-sovereign-esg-risk-score/{ids}: get: tags: - Portfolio Holdings summary: Get Portfolio Sovereign ESG Risk Score time series. description: The Morningstar Portfolio Sovereign ESG Risk Score is an asset-weighted average of Sustainalytics' Country Risk Score. parameters: - name: ids in: path description: "\nComma-separated list of up to 25 investment identifiers to query.\n\nAccepts:\n\n- Morningstar Performance ID (default)\n- Morningstar Security ID\n- Morningstar IDs (MSID)\n- ISIN\n- CUSIP\n- Trading symbol\n- Category ID \n 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: 0P00000016,0P00002Y8D,DODGX,0P000000ppY - name: idTypes in: query description: ' Comma-separated list specifying the type of each value passed in the `ids` parameter.
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` Accepted values: * `performanceId` (default) * `isin` * `securityId` * `cusip` * `tradingSymbol` * `msid`' schema: type: string example: ',securityId' - name: baseCurrency in: query description: ' Comma-separated list of 3-character ISO 4217 currency codes (for example, `CAD`, `EUR`, `JPY`).
* 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`' schema: type: string example: ',USD,,USD' - name: domicile in: query description: "\nComma-separated list of 3-character ISO 3166‑1 country codes (for example, `CAN`, `IRL`, `IND`). \nRules:\n\n* Filters results based on domicile\n* Values must align with the order of values in `ids`\n* Use empty entries to skip\n* Omit trailing commas after the last non-empty value\n\nExample:\n\n* `ids=id1,id2,id3,id4,id5`\n* Domicile passed for `id2` and `id4`\n* `domicile=,USA,,USA`" schema: type: string example: ',USD,,USD' - 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: ',CAN,CAN' - 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 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: '2020-01-12' 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: '2024-01-12' format: date - name: timePeriod in: query description: "Specifies the size of the time window for the data range. \n\n- Used in combination with `timePeriodUnit` to specify relative time ranges. \n\n- When `startDate`, `endDate`, `timePeriod` and `timePeriodUnit` are provided, `timePeriod` and `timePeriodUnit` take precedence." schema: type: number example: '12' - name: timePeriodUnit in: query description: "\nSpecifies the time period unit. \n\n- Used in combination with `timePeriod` to specify relative time ranges. \n\n- 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: "\nSpecifies whether to apply the earliest common start date across all investments.\n\n 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: "\nSets the time range from inception (or the maximum supported lookback) to the end date. \n\nTakes 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: - BASE - 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: BASE responses: '200': $ref: '#/components/responses/ResponseTimeSeriesSingleObservation' '400': $ref: '#/components/responses/ResponseStatus400' '500': $ref: '#/components/responses/ResponseStatus500' operationId: getPortfolioHoldingsPortfolioSovereignEsgRiskScore /direct-web-services/time-series/v1/portfolio-holdings/portfolio-unallocated-risk-score/{ids}: get: tags: - Portfolio Holdings summary: Get Portfolio Unallocated Risk Score time series. description: The asset-weighted average of the Company ESG Risk scores for the covered corporate holdings in a portfolio that do not have Environmental, Social, Governance scores. parameters: - name: ids in: path description: "\nComma-separated list of up to 25 investment identifiers to query.\n\nAccepts:\n\n- Morningstar Performance ID (default)\n- Morningstar Security ID\n- Morningstar IDs (MSID)\n- ISIN\n- CUSIP\n- Trading symbol\n- Category ID \n 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: 0P00000016,0P00002Y8D,DODGX,0P000000ppY - name: idTypes in: query description: ' Comma-separated list specifying the type of each value passed in the `ids` parameter.
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` Accepted values: * `performanceId` (default) * `isin` * `securityId` * `cusip` * `tradingSymbol` * `msid`' schema: type: string example: ',securityId' - name: baseCurrency in: query description: ' Comma-separated list of 3-character ISO 4217 currency codes (for example, `CAD`, `EUR`, `JPY`).
* 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`' schema: type: string example: ',USD,,USD' - name: domicile in: query description: "\nComma-separated list of 3-character ISO 3166‑1 country codes (for example, `CAN`, `IRL`, `IND`). \nRules:\n\n* Filters results based on domicile\n* Values must align with the order of values in `ids`\n* Use empty entries to skip\n* Omit trailing commas after the last non-empty value\n\nExample:\n\n* `ids=id1,id2,id3,id4,id5`\n* Domicile passed for `id2` and `id4`\n* `domicile=,USA,,USA`" schema: type: string example: ',USD,,USD' - 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: ',CAN,CAN' - 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 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: '2020-01-12' 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: '2024-01-12' format: date - name: timePeriod in: query description: "Specifies the size of the time window for the data range. \n\n- Used in combination with `timePeriodUnit` to specify relative time ranges. \n\n- When `startDate`, `endDate`, `timePeriod` and `timePeriodUnit` are provided, `timePeriod` and `timePeriodUnit` take precedence." schema: type: number example: '12' - name: timePeriodUnit in: query description: "\nSpecifies the time period unit. \n\n- Used in combination with `timePeriod` to specify relative time ranges. \n\n- 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: "\nSpecifies whether to apply the earliest common start date across all investments.\n\n 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: "\nSets the time range from inception (or the maximum supported lookback) to the end date. \n\nTakes 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: - BASE - 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: BASE responses: '200': $ref: '#/components/responses/ResponseTimeSeriesSingleObservation' '400': $ref: '#/components/responses/ResponseStatus400' '500': $ref: '#/components/responses/ResponseStatus500' operationId: getPortfolioHoldingsPortfolioUnallocatedRiskScore components: responses: ResponsePortfolioHoldingsDates: description: OK content: application/json: schema: $ref: '#/components/schemas/ResponsePortfolioHoldingsDates' examples: ResponsePortfolioHoldingsDatesExample1: $ref: '#/components/examples/ResponsePortfolioHoldingsDatesExample1' ResponsePortfolioHoldingsDatesExample2: $ref: '#/components/examples/ResponsePortfolioHoldingsDatesExample2' ResponseStatus500: description: '500' content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: ResponseStatus500Example1: $ref: '#/components/examples/ResponseStatus500Example1' ResponseTimeSeriesSingleObservation: description: OK content: application/json: schema: $ref: '#/components/schemas/ResponseTimeSeriesSingleObservation' ResponseFullPortfolioHoldingsMonthEndOrQuarterEndMostRecent: description: OK content: application/json: schema: $ref: '#/components/schemas/ResponseFullPortfolioHoldingsMonthEndOrQuarterEndMostRecent' examples: ResponseFullPortfolioHoldingsMonthEndOrQuarterEndMostRecentExample1: $ref: '#/components/examples/ResponseFullPortfolioHoldingsMonthEndOrQuarterEndMostRecentExample1' ResponseStatus400: description: '400' content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: ResponseStatus400Example1: $ref: '#/components/examples/ResponseStatus400Example1' ResponseInternalServerError: description: '500' content: application/json: schema: $ref: '#/components/schemas/OutputErrorDetails' ResponsePortfolioHoldingsDatesBadRequest: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/OutputErrorDetails' examples: ResponsePortfolioHoldingsDateBadRequestExample1: $ref: '#/components/examples/ResponsePortfolioHoldingsDatesBadRequestExample1' ResponseBadRequest: description: '400' content: application/json: schema: $ref: '#/components/schemas/OutputErrorDetails' schemas: OutputHoldings: type: object properties: countryCode: type: string description: '' nullable: true detailHoldingTypeCode: type: string description: '' nullable: true globalIndustryName: type: string description: '' nullable: true localCurrencyCode: type: string description: '' nullable: true localMarketValue: type: number description: '' format: double nullable: true portfolioWeightingPercentage: type: number description: '' format: double nullable: true secId: type: string description: '' nullable: true secondarySectorCode: type: string description: '' nullable: true sectorCode: type: integer description: '' format: int32 nullable: true lessThan92DaysBond: type: boolean description: '' nullable: true positionMarketValue: type: number description: '' format: double nullable: true shares: type: number description: '' format: double nullable: true shareChange: type: number description: '' format: double nullable: true maturityDate: type: string description: '' nullable: true couponPerc: type: number description: '' format: double nullable: true equitySectorInd: type: string description: '' nullable: true indianCreditQuality: type: string description: '' nullable: true isin: type: string description: '' nullable: true cusip: type: string description: '' nullable: true currency: $ref: '#/components/schemas/CodeMappingString' detailHoldingType: $ref: '#/components/schemas/CodeMappingString' country: $ref: '#/components/schemas/CodeMappingString' paymentType: type: string description: '' nullable: true rule144aEligible: type: boolean description: '' nullable: true altMinTaxEligible: type: boolean description: '' nullable: true secondarySector: $ref: '#/components/schemas/CodeMappingString' lessThanOneYearBond: type: boolean description: '' nullable: true companyId: type: string description: '' nullable: true firstBoughtDate: type: string description: '' nullable: true tv: type: string description: '' nullable: true serie: type: string description: '' nullable: true emisora: type: string description: '' nullable: true holdingLocalName: type: string description: '' nullable: true stableValueContractDuration: type: number description: '' format: double nullable: true stableValuePurchaseDate: type: string description: '' nullable: true stableValueContractType: type: string description: '' nullable: true stableValueSyntheticType: type: string description: '' nullable: true stableValueContractId: type: string description: '' nullable: true sector: $ref: '#/components/schemas/CodeMappingString' ticker: type: string description: '' nullable: true currencyCode: type: string description: '' nullable: true marketIdentifierCode: type: string description: '' nullable: true globalIndustryCode: type: string description: '' nullable: true costBasis: type: string description: '' nullable: true accruedInterest: type: string description: '' nullable: true holdingStorageId: type: string description: '' nullable: true securityName: type: string description: '' nullable: true additionalProperties: false title: OutputHoldings description: All fields are nullable. Empty or `null` value fields are not returned. OutputInvestmentSingleObservation: title: OutputInvestmentSingleObservation type: object additionalProperties: false properties: identifiers: $ref: '#/components/schemas/OutputIdentifiers_2' timeSeries: $ref: '#/components/schemas/OutputTimeSeriesSingleObservation' metadata: $ref: '#/components/schemas/OutputInvestmentsMetadata' 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 ResponseFullPortfolioHoldingsMonthEndOrQuarterEndMostRecent: type: object properties: holdings: type: array items: $ref: '#/components/schemas/OutputHoldings' identifiers: $ref: '#/components/schemas/OutputIdentifiers' metadata: $ref: '#/components/schemas/OutputMetadata' 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 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 OutputPortfolioHoldingsDates: type: object properties: portfolioDate: type: string description: Portfolio date in YYYY-MM-DD format nullable: true holdingsView: type: string description: Holdings view identifier nullable: true additionalProperties: false description: Portfolio date information title: OutputPortfolioHoldingsDates 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 OutputErrorDetails: type: object properties: statusCode: type: integer description: Status Code format: int32 errorCode: type: string description: Custom error code nullable: true message: type: string description: Message nullable: true requestId: type: string description: RequestId nullable: true additionalProperties: false description: Error details title: OutputErrorDetails OutputIdentifiers: type: object properties: performanceId: type: string nullable: true securityId: type: string nullable: true cusip: type: string nullable: true isin: type: string nullable: true sedol: type: string nullable: true tradingSymbol: type: string nullable: true fundCode: type: string nullable: true msid: type: string nullable: true ticker: type: string nullable: true additionalProperties: false title: OutputIdentifiers description: All fields are nullable. Empty or `null` value fields are not returned. OutputMetadata_2: 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_2' 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 OutputMetadataMessages_2: 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 OutputMetadataMessages: type: object properties: type: type: string nullable: true code: type: string nullable: true investments: type: array items: $ref: '#/components/schemas/OutputInvalidInvestments' nullable: true message: type: string nullable: true additionalProperties: false title: OutputMetadataMessages description: All fields are nullable. Empty or `null` value fields are not returned. OutputInvalidInvestments: type: object properties: id: type: string nullable: true idType: type: string nullable: true status: type: string nullable: true datapointId: type: array items: type: string nullable: true errorCode: type: string nullable: true performanceId: type: string description: Performance ID (if not passed in request). nullable: true companyId: type: string description: Company ID (if not passed in request). nullable: true baseCurrency: type: string description: Input base currency used to look up Investment identifier nullable: true domicile: type: string description: Input domicile used to look up Investment identifier. nullable: true exchangeCountry: type: string description: Input exchange country used to look up Investment identifier. nullable: true exchangeId: type: string description: Input exchange id used to look up Investment identifier. nullable: true additionalProperties: false title: OutputInvalidInvestments description: All fields are nullable. Empty or `null` value fields are not returned. OutputIdentifiers_2: 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 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_2' CodeMappingString: type: object properties: value: type: string nullable: true code: type: string nullable: true additionalProperties: false title: CodeMappingString 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' ResponsePortfolioHoldingsDates: type: object properties: portfolioDates: type: array items: $ref: '#/components/schemas/OutputPortfolioHoldingsDates' description: List of available portfolio dates nullable: true identifiers: $ref: '#/components/schemas/OutputIdentifiers' metadata: $ref: '#/components/schemas/OutputMetadata' additionalProperties: false description: Response model for portfolio holdings dates endpoint title: ResponsePortfolioHoldingsDates 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 RequestPortfolioHoldingsDates: type: object properties: holdingsView: type: string description: Holdings view to retrieve. Allowed values are `10`, `25`, or `full`. nullable: true enum: - '10' - '25' - full type: type: string description: Type of portfolio dates to retrieve. Allowed values are `mostRecent`, `timeSeries`, or `staticDates`. nullable: true enum: - mostRecent - timeSeries - staticDates frequency: type: string description: Frequency used when `type` is `timeSeries`. Allowed values are `d` (daily) or `m` (monthly). nullable: true enum: - d - m startDate: type: string description: Start date in `YYYY-MM-DD` format. Required when `type` is `timeSeries`. nullable: true endDate: type: string description: End date in `YYYY-MM-DD` format. Required when `type` is `timeSeries`. nullable: true dates: type: array items: type: string minItems: 1 maxItems: 10 description: Array of dates in `YYYY-MM-DD` format. Required when `type` is `staticDates`. Maximum of 10 dates accepted. nullable: true idType: type: string description: Type of identifier provided in the `id` field. default: performanceId nullable: true enum: - performanceId - securityId - cusip - isin - sedol - tradingSymbol - fundCode - msid - ticker baseCurrency: type: string description: Base currency used to resolve the investment identifier. nullable: true domicile: type: string description: Domicile used to resolve the investment identifier. nullable: true exchangeCountry: type: string description: Exchange country used to resolve the investment identifier. nullable: true exchangeId: type: string description: Exchange identifier used to resolve the investment identifier. nullable: true additionalProperties: false description: Request model for portfolio holdings dates endpoint required: - holdingsView - type title: RequestPortfolioHoldingsDates OutputMetadata: type: object properties: requestId: type: string nullable: true time: type: string format: date-time readOnly: true portfolioDate: type: string nullable: true portfolioCurrency: type: string nullable: true messages: type: array items: $ref: '#/components/schemas/OutputMetadataMessages' nullable: true additionalProperties: false title: OutputMetadata description: All fields are nullable. Empty or `null` value fields are not returned. examples: RequestPortfolioHoldingsDatesExample4: summary: 'Date Type: Static Dates' value: holdingsView: '10' type: staticDates dates: - '2024-06-30' - '2024-12-31' - '2023-12-31' - '2023-06-30' - '2016-12-31' - '2018-12-31' - '2019-06-30' - '2013-06-30' RequestPortfolioHoldingsDatesExample3: summary: 'Date Type: Time Series and Frequency' value: holdingsView: '10' type: timeSeries startDate: '2014-06-30' endDate: '2024-06-30' frequency: m ResponsePortfolioHoldingsDatesExample1: summary: Top 10 Most Recent value: portfolioDates: - portfolioDate: '2025-12-31' holdingsView: '10' identifiers: performanceId: 0P00018P7K metadata: requestId: 3a11f005-394f-4f89-a17f-41d2ffe549f3 time: '2026-06-17T17:28:34.6382675Z' ResponsePortfolioHoldingsDatesExample2: summary: Top 10 Time Series value: portfolioDates: - portfolioDate: '2025-06-30' holdingsView: '10' - portfolioDate: '2024-12-31' holdingsView: '10' - portfolioDate: '2024-06-30' holdingsView: '10' - portfolioDate: '2023-12-31' holdingsView: '10' - portfolioDate: '2023-06-30' holdingsView: '10' - portfolioDate: '2022-12-31' holdingsView: '10' - portfolioDate: '2022-06-30' holdingsView: '10' - portfolioDate: '2021-12-31' holdingsView: '10' - portfolioDate: '2021-06-30' holdingsView: '10' - portfolioDate: '2020-12-31' holdingsView: '10' - portfolioDate: '2020-06-30' holdingsView: '10' - portfolioDate: '2019-12-31' holdingsView: '10' - portfolioDate: '2019-06-30' holdingsView: '10' - portfolioDate: '2018-12-31' holdingsView: '10' - portfolioDate: '2016-12-31' holdingsView: '10' identifiers: performanceId: 0P00018P7K metadata: requestId: d50bc56a-bf63-440e-b6b1-ffc7d14c0ca3 time: '2026-06-17T17:36:52.137352Z' ResponsePortfolioHoldingsDatesBadRequestExample1: summary: Required Parameter Missing value: statusCode: 400 errorCode: 400.investmentDetails.001 message: The EndDate parameter is required. requestId: cd8d3278-a273-4765-87aa-e0beff1f2975 ResponseFullPortfolioHoldingsMonthEndOrQuarterEndMostRecentExample1: summary: Full Portfolio Holdings Month End Or Quarter End Most Recent value: holdings: - detailHoldingTypeCode: SQ portfolioWeightingPercentage: -2.33685 positionMarketValue: -6417940 shares: 12341 shareChange: -390 maturityDate: '2049-12-31' couponPerc: 0 detailHoldingType: value: EQUITY INDEX SWAP code: SQ holdingStorageId: '543' securityName: Portfolio Swap Dj Thematic Neutral Anti-Beta (U - countryCode: USA detailHoldingTypeCode: E portfolioWeightingPercentage: -1.54163 secId: 0P0001FDGE sectorCode: 311 positionMarketValue: -4233934 shares: 10059 shareChange: -315 isin: US24703L2025 cusip: 24703L202 currency: value: US Dollar code: USD detailHoldingType: value: EQUITY code: E country: value: United States code: USA sector: value: Technology code: '311' ticker: DELL currencyCode: USD globalIndustryCode: '31120020' holdingStorageId: '148' securityName: Dell Technologies Inc Ordinary Shares - Class C - countryCode: USA detailHoldingTypeCode: E portfolioWeightingPercentage: -1.14413 secId: 0P000003H5 sectorCode: 311 positionMarketValue: -3142240 shares: 15328 shareChange: -480 isin: US5738741041 cusip: '573874104' currency: value: US Dollar code: USD detailHoldingType: value: EQUITY code: E country: value: United States code: USA sector: value: Technology code: '311' ticker: MRVL currencyCode: USD globalIndustryCode: '31130020' holdingStorageId: '295' securityName: Marvell Technology Inc - countryCode: USA detailHoldingTypeCode: E portfolioWeightingPercentage: -1.13613 secId: 0P0001SG1A sectorCode: 311 positionMarketValue: -3120278 shares: 9101 shareChange: -285 isin: US04626A1034 cusip: 04626A103 currency: value: US Dollar code: USD detailHoldingType: value: EQUITY code: E country: value: United States code: USA sector: value: Technology code: '311' ticker: ALAB currencyCode: USD globalIndustryCode: '31130020' holdingStorageId: '45' securityName: Astera Labs Inc - countryCode: USA detailHoldingTypeCode: E portfolioWeightingPercentage: -1.01611 secId: 0P000003MC sectorCode: 311 positionMarketValue: -2790654 shares: 2874 shareChange: -90 isin: US5951121038 cusip: '595112103' currency: value: US Dollar code: USD detailHoldingType: value: EQUITY code: E country: value: United States code: USA sector: value: Technology code: '311' ticker: MU currencyCode: USD globalIndustryCode: '31130020' holdingStorageId: '305' securityName: Micron Technology Inc - countryCode: USA detailHoldingTypeCode: E portfolioWeightingPercentage: -0.92067 secId: 0P000004VE sectorCode: 311 positionMarketValue: -2528545 shares: 2874 shareChange: -90 isin: IE00BKVD2N49 cusip: G7997R103 currency: value: US Dollar code: USD detailHoldingType: value: EQUITY code: E country: value: United States code: USA sector: value: Technology code: '311' ticker: STX currencyCode: USD globalIndustryCode: '31120020' holdingStorageId: '527' securityName: Seagate Technology Holdings PLC identifiers: performanceId: 0P0000TLDN metadata: requestId: 442d1dc2-2d16-4461-8d95-94e28a4d97cc time: '2026-06-15T14:40:44.4183931Z' portfolioDate: '2026-05-29' portfolioCurrency: USD 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 RequestPortfolioHoldingsDatesExample2: summary: 'Date Type: Time Series' value: holdingsView: '10' type: timeSeries startDate: '2014-06-30' endDate: '2024-06-30' ResponseStatus500Example1: summary: 500 - Internal Server Error value: statusCode: 500 errorCode: 500.investmentDetails.003 message: Error calling Investment API. requestId: 539d62a5-3586-4070-965e-0f7f64712d79 RequestPortfolioHoldingsDatesExample1: summary: 'Date Type: Most Recent' value: holdingsView: full type: mostRecent requestBodies: RequestPortfolioHoldingsDates: required: true content: application/json: schema: $ref: '#/components/schemas/RequestPortfolioHoldingsDates' examples: RequestPortfolioHoldingsDatesExample1: $ref: '#/components/examples/RequestPortfolioHoldingsDatesExample1' RequestPortfolioHoldingsDatesExample2: $ref: '#/components/examples/RequestPortfolioHoldingsDatesExample2' RequestPortfolioHoldingsDatesExample3: $ref: '#/components/examples/RequestPortfolioHoldingsDatesExample3' RequestPortfolioHoldingsDatesExample4: $ref: '#/components/examples/RequestPortfolioHoldingsDatesExample4' securitySchemes: BasicAuth: type: http scheme: basic