Earnings vs. Estimates
GET/api/v1.0/quote/{symbol}/financials/earnings-cardGet the latest earnings report summary card for a symbol, comparing actual vs consensus forecast (Beat / Miss / Meet) for core metrics (Operating Revenue, Basic EPS, Net Income) along with AI earnings highlights.
Request
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
symbol | string | path | yes | Stock symbol (path param), e.g. US.TSLA / US.AAPL / HK.00700 |
currency_code | string | query | no | Currency code (e.g. USD / HKD / CNY); omit for native reporting currency |
Example
bash
curl -X GET 'https://webapi.moomoo.com/api/v1.0/quote/US.AAPL/financials/earnings-card?currency_code=1' \
-H 'Authorization: Bearer <AccessToken>' | jqResponse
| Field | Type | Description |
|---|---|---|
data.fiscal_year | integer | Fiscal year, e.g. 2026 |
data.period | integer | Fiscal period: Q1 / Q2 / Q3 / Q4 / H1 / Q9 / FY |
data.currency_code | string | Reporting currency code, e.g. USD |
data.publish_time | integer | Earnings publish timestamp in Unix milliseconds |
data.publish_type | integer | Publish session: PRE_MARKET / AFTER_HOURS / REGULAR |
data.scheme | string | Earnings hub URL |
data.highlights_content | string | AI earnings highlights summary |
data.performance_insights | string | AI performance insights bullet list |
data.indicators | object | Core financial metrics actual vs consensus forecast list |
data.indicators[].indicator_type | integer | Indicator type: OPERATING_REVENUE / BASIC_EPS / NET_INCOME / NET_INCOME_COMMON_SHAREHOLDER |
data.indicators[].actual_value | string | Actual reported value |
data.indicators[].actual_yoy | string | Actual value YoY growth rate (percent) |
data.indicators[].predict_value | string | Consensus forecast value |
data.indicators[].predict_yoy | string | Consensus forecast YoY growth rate (percent) |
data.indicators[].last_year_actual_value | string | Prior-year same-period actual value |
data.indicators[].surprise_diff | string | Difference between actual and forecast (actual - predict) |
data.indicators[].surprise_pct | number | Surprise percentage ((actual - predict)/ |
data.indicators[].surprise_label | integer | Surprise label: BEAT / MISS / MEET / NONE |
data.indicators[].is_only_predict | string | True when actuals have not been released yet (forecast only) |
Errors
| ret_code | error.code | Description |
|---|---|---|
| 0 | — | Success |
| -3 | invalid_parameter | Missing or invalid parameter |
| -7 | invalid_symbol | Unknown symbol |
| -8 | unsupported | Market or product is not supported |
| -9 | permission_denied | Missing permission |
| -10 | no_data | No data |
| -11 | rate_limited | Too many requests |
Sample
json
{
"ret_code": 0,
"ret_msg": "success",
"data": {
"fiscal_year": 0,
"period": 0,
"currency_code": "example",
"publish_time": 0,
"publish_type": 0,
"scheme": "example",
"highlights_content": "example",
"performance_insights": "example"
}
}