openapi: 3.0.1 info: version: 1.0.0 title: Authorization Tokens Accounts Quantitative Equity Research Ratings 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: Quantitative Equity Research Ratings paths: /direct-web-services/v1/investments/{id}/quantitative-equity-research-ratings: get: summary: Get Quantitative Equity Research Ratings view parameters: - name: id in: path description: "\nSpecifies the investment to query. \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: startDate in: query schema: type: string format: yyyy-MM-dd description: Time series start date. Accepts `yyyy-MM-dd`. examples: startDateExample1: summary: Example 1 value: '2025-06-01' startDateExample2: summary: Example 2 value: '2025-06-30' - name: endDate in: query schema: type: string format: yyyy-MM-dd description: Time series end date. Accepts `yyyy-MM-dd`. examples: endDateExample1: summary: Example 1 value: '2025-12-01' endDateExample2: summary: Example 2 value: '2025-12-31' description: Most recent and time series data supported. operationId: getEquityQuantitativeEquityResearchRatingsPackage tags: - Quantitative Equity Research Ratings responses: '200': $ref: '#/components/responses/ResponseQuantitativeEquityResearchRatings' '400': $ref: '#/components/responses/ResponseBadRequest' '500': $ref: '#/components/responses/ResponseInternalServerError' /direct-web-services/v1/investments/{id}/quantitative-fair-value: get: summary: Get Quantitative Fair Value view parameters: - name: id in: path description: "\nSpecifies the investment to query. \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: startDate in: query schema: type: string format: yyyy-MM-dd description: Time series start date. Accepts `yyyy-MM-dd`. examples: startDateExample1: summary: Example 1 value: '2025-06-01' startDateExample2: summary: Example 2 value: '2025-06-30' - name: endDate in: query schema: type: string format: yyyy-MM-dd description: Time series end date. Accepts `yyyy-MM-dd`. examples: endDateExample1: summary: Example 1 value: '2025-12-01' endDateExample2: summary: Example 2 value: '2025-12-31' - name: viewType in: query required: true schema: enum: - dataset - package type: string description: Most recent and time series data supported. operationId: getEquityQuantitativeFairValueDataset tags: - Quantitative Equity Research Ratings responses: '200': $ref: '#/components/responses/ResponseQuantitativeFairValue' '400': $ref: '#/components/responses/ResponseBadRequest' '500': $ref: '#/components/responses/ResponseInternalServerError' /direct-web-services/v1/investments/{id}/quantitative-ratings: get: summary: Get Quantitative Ratings view parameters: - name: id in: path description: "\nSpecifies the investment to query. \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: startDate in: query schema: type: string format: yyyy-MM-dd description: Time series start date. Accepts `yyyy-MM-dd`. examples: startDateExample1: summary: Example 1 value: '2025-06-01' startDateExample2: summary: Example 2 value: '2025-06-30' - name: endDate in: query schema: type: string format: yyyy-MM-dd description: Time series end date. Accepts `yyyy-MM-dd`. examples: endDateExample1: summary: Example 1 value: '2025-12-01' endDateExample2: summary: Example 2 value: '2025-12-31' - name: viewType in: query required: true schema: enum: - dataset - package type: string description: Most recent and time series data supported. operationId: getEquityQuantitativeRatingsDataset tags: - Quantitative Equity Research Ratings responses: '200': $ref: '#/components/responses/ResponseQuantitativeRatings' '400': $ref: '#/components/responses/ResponseBadRequest' '500': $ref: '#/components/responses/ResponseInternalServerError' components: schemas: CodeMappingBoolean: type: object properties: value: type: string nullable: true code: type: boolean nullable: true additionalProperties: false title: CodeMappingBoolean 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 CodeMappingString: type: object properties: value: type: string nullable: true code: type: string nullable: true additionalProperties: false title: CodeMappingString 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 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 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 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 OutputQuantitativeRatings: type: object properties: quantitativeStarRatingDate: type: string description: '' nullable: true isMomentumFilterFlag: $ref: '#/components/schemas/CodeMappingBoolean' methodologyVersionId: type: string description: Methodology version identifier nullable: true priceDate: type: string description: Date of the price used to calculate the p/fv; may be before the rating date nullable: true quantitativePriceToFairValue: type: number description: Price to fair value (p/fv) multiple format: double nullable: true quantitativeStarRating: $ref: '#/components/schemas/CodeMappingInt' quantitativeStarRatingCalculationTimestamp: type: string description: Date & time of the star rating calculation nullable: true quantitativeStarRatingPublishDate: type: string description: Date of the star rating publication nullable: true quantitativeValuationLabel: $ref: '#/components/schemas/CodeMappingString' quantitativeStarRatingDateMax: $ref: '#/components/schemas/CodeMappingString' quantitativeStarRatingDateMin: $ref: '#/components/schemas/CodeMappingString' additionalProperties: false title: OutputQuantitativeRatings OutputQuantitativeFairValues: type: object properties: quantitativeFairValueDate: type: string description: '' nullable: true asOfClosePriceDate: type: string description: Date of price used to calculate quantitative fair value nullable: true quantitativeFairValueDateMax: type: string description: Date on which fair value is calculated nullable: true quantitativeFairValueDateMin: type: string description: '' nullable: true closePrice: type: number description: Close price used to calculate quantitative fair value format: double nullable: true liquidityLabel: $ref: '#/components/schemas/CodeMappingString' methodologyVersionId: type: string description: Methodology version identifier nullable: true quantitativeFairValue: type: number description: Fair value format: double nullable: true quantitativeFairValueCalculationTimestamp: type: string description: Date & time of the fair value calculation nullable: true quantitativeFairValuePublishDate: type: string description: Date of the fair value publication nullable: true quantitativeFairValueUncertainty: type: number description: Fair value uncertainty format: double nullable: true quantitativeFairValueUncertaintyLabel: $ref: '#/components/schemas/CodeMappingString' quantitativeFinancialHealth: type: number description: Quantitative financial health score format: double nullable: true quantitativeFinancialHealthLabel: $ref: '#/components/schemas/CodeMappingString' quantitativeFiveStarPrice: type: number description: Price above which the stock would have a five star rating applied format: double nullable: true quantitativeMoat: type: number description: Quantitative moat format: double nullable: true quantitativeMoatLabel: $ref: '#/components/schemas/CodeMappingString' quantitativeOneStarPrice: type: number description: Price below which the stock would have a one star rating applied format: double nullable: true additionalProperties: false title: OutputQuantitativeFairValues CodeMappingInt: type: object properties: value: type: string nullable: true code: type: integer format: int32 nullable: true additionalProperties: false title: CodeMappingInt responses: ResponseQuantitativeFairValue: description: OK content: application/json: schema: type: object properties: quantitativeFairValues: $ref: '#/components/schemas/OutputQuantitativeFairValues' identifiers: $ref: '#/components/schemas/OutputIdentifiers' metadata: $ref: '#/components/schemas/OutputMetadata' ResponseQuantitativeRatings: description: OK content: application/json: schema: type: object properties: quantitativeRatings: $ref: '#/components/schemas/OutputQuantitativeRatings' identifiers: $ref: '#/components/schemas/OutputIdentifiers' metadata: $ref: '#/components/schemas/OutputMetadata' ResponseBadRequest: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/OutputErrorDetails' ResponseQuantitativeEquityResearchRatings: description: OK content: application/json: schema: type: object properties: quantitativeFairValues: $ref: '#/components/schemas/OutputQuantitativeFairValues' quantitativeRatings: $ref: '#/components/schemas/OutputQuantitativeRatings' identifiers: $ref: '#/components/schemas/OutputIdentifiers' metadata: $ref: '#/components/schemas/OutputMetadata' ResponseInternalServerError: description: Internal Server content: application/json: schema: $ref: '#/components/schemas/OutputErrorDetails' securitySchemes: BasicAuth: type: http scheme: basic