Morningstar Report
GET/api/v1.0/quote/{symbol}/research/morningstarGet the Morningstar comprehensive rating report for a single stock (star rating, fair value, economic moat, uncertainty, capital allocation, plus analyst commentary). Returns: rating_type (1=quantitative / 2=qualitative), star rating and update time (seconds timestamp and string), fair value estimate and commentary, economic moat / uncertainty / capital allocation / financial health labels (English), analyst by-line and report update time, per-dimension commentary text (fair value / moat / uncertainty / capital allocation / financial health / investment thesis / fundamentals / valuation), analyst note title and body, bull_say and bear_say view lists, PDF URL. Field set varies by symbol per Morningstar coverage; pdf_url, *_content, bull_say / bear_say, fundamentals / valuation text may be absent; quantitative-rating symbols return a smaller subset. For analyst consensus and target price use quote.research_analyst_consensus; for institution / analyst rating summary use quote.research_rating_summary.
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
symbol | string | path | yes | Stock symbol (path parameter), e.g. HK.00700 / US.AAPL |
Example
curl 'https://webapi.moomoo.com/api/v1.0/quote/US.AAPL/research/morningstar' | jqResponse
| Name | Type | Description |
|---|---|---|
data.rating_type | string | Rating type. 1=quantitative rating / 2=qualitative rating (analyst-covered), e.g. 2 |
data.star_rating | string | Morningstar star rating (1-5 stars), e.g. 5 |
data.star_update_time | int | Star rating update time, seconds-level timestamp, e.g. 1780072800 |
data.star_update_time_str | string | Star rating update date string (market timezone, yyyy-MM-dd), e.g. 2026-05-30 |
data.fair_value | number | Fair value estimate (in report currency), e.g. 800 (HKD) |
data.pdf_url | string | Morningstar report PDF download URL (null for some symbols) |
data.economic_moat_label | string | Economic moat label (English). One of: 'Wide' / 'Narrow' / 'None' |
data.economic_moat_type | string | Economic moat enum: 1=Wide / 2=Narrow / 3=None |
data.uncertainty_label | string | Uncertainty rating label (English). One of: 'Low' / 'Medium' / 'High' / 'Very High' / 'Extreme' |
data.uncertainty_type | string | Uncertainty enum: 1=Low / 2=Medium / 3=High / 4=Very High / 5=Extreme |
data.capital_allocation_label | string | Capital allocation label (English). One of: 'Exemplary' / 'Standard' / 'Poor' / 'Not Rated' |
data.capital_allocation_type | string | Capital allocation enum: 1=Exemplary / 2=Standard / 3=Poor / 4=Not Rated |
data.financial_health_label | string | Financial health label (English). One of: 'Strong' / 'Moderate' / 'Weak' (omitted when not rated) |
data.financial_health_type | string | Financial health enum: 1=Strong / 2=Moderate / 3=Weak |
data.analyst_report_by_line | string | Analyst by-line list, e.g. ['Ivan Su'] |
data.analyst_report_update_time | int | Analyst report update time, seconds-level timestamp, e.g. 1766457180 |
data.analyst_report_update_time_str | string | Analyst report update date string (market timezone, yyyy-MM-dd), e.g. 2025-12-23 |
data.fair_value_content | string | Fair value commentary text (English), returns |
data.economic_moat_content | string | Economic moat analysis text (English) |
data.uncertainty_content | string | Uncertainty rating analysis text (English) |
data.capital_allocation_content | string | Capital allocation analysis text (English) |
data.financial_health_content | string | Financial health analysis text (English) |
data.investment_thesis_content | string | Investment thesis text (English) |
data.fundamentals_content | string | Fundamentals analysis text (not returned for most symbols) |
data.valuation_content | string | Valuation analysis text (not returned for most symbols) |
data.analyst_note_title | string | Analyst note title (English) |
data.analyst_note_content | string | Analyst note body (English) |
data.bull_say | string | Bull-say view list (English); each item |
data.bear_say | string | Bear-say view list (English); each item |
data.ai_analysis | string | Morningstar AI analysis (markdown), returns {summary, analysis} (not returned for some symbols) |
Errors
| ret_code | error.code | When |
|---|---|---|
| 0 | — | Success |
| -3 | invalid_parameter | A parameter is missing or not in the allowed set |
| -7 | invalid_symbol | Symbol is not in the security master |
| -8 | unsupported | Market or instrument is outside this API |
| -9 | permission_denied | Authenticated, but without quote permission |
| -10 | no_data | Nothing is returned |
| -11 | rate_limited | Per-user rate limit |
Response example
{
"ret_code": 0,
"ret_msg": "success",
"data": {
"rating_type": "example",
"star_rating": "example",
"star_update_time": 1710000000000000,
"star_update_time_str": "example",
"fair_value": 1.2,
"pdf_url": "example",
"economic_moat_label": "example",
"economic_moat_type": "example",
"uncertainty_label": "example",
"uncertainty_type": "example",
"capital_allocation_label": "example",
"capital_allocation_type": "example",
"financial_health_label": "example",
"financial_health_type": "example",
"analyst_report_by_line": "example",
"analyst_report_update_time": 1710000000000000,
"analyst_report_update_time_str": "example",
"fair_value_content": "example",
"economic_moat_content": "example",
"uncertainty_content": "example",
"capital_allocation_content": "example",
"financial_health_content": "example",
"investment_thesis_content": "example",
"fundamentals_content": "example",
"valuation_content": "example",
"analyst_note_title": "example",
"analyst_note_content": "example",
"bull_say": "example",
"bear_say": "example",
"ai_analysis": "example"
}
}