Insider Trades
GET/api/v1.0/quote/{symbol}/shareholders/insider-tradesGet insider (directors, executives, 5%+ shareholders) trading records. Data is based on US SEC insider filings (Form 3/4/144).
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
symbol | string | path | yes | Symbol code, e.g. US.AAPL. |
next_key | string | query | no | Pagination cursor; leave empty for the first page. |
limit | int | query | no | Page size. Default 10, max 50. |
holder_id | int | query | no | Filter by insider ID. 0=no filter (default). |
Request Example
bash
curl "https://webapi.moomoo.com/api/v1.0/quote/US.AAPL/shareholders/insider-trades?limit=2" | jqResponse Fields
| Field | Type | Description |
|---|---|---|
trades[].holder_id | int | Insider ID. |
trades[].name | string | Insider name. |
trades[].title | string | Insider title. |
trades[].trade_shares | int | Trade shares (positive=buy, negative=sell). |
trades[].min_trade_date / max_trade_date | int | Earliest/latest trade date within interval (millisecond timestamp). |
trades[].min_trade_date_str / max_trade_date_str | string | Trade dates within interval (yyyy-MM-dd). |
trades[].min_price / max_price | float | Lowest/highest trade price within interval (USD). |
trades[].security_holder_quantity | int | Current shares held. |
trades[].transaction_type | string | Transaction type: Buy / Sell / Exercise and Sell / Other Acquisition etc. |
trades[].source_group_name | string | Data source: Form 3 / Form 4 / Form 144 etc. |
trades[].is_proposed_sale_of_securities | bool | Whether it is a proposed sale of securities (Form 144). |
pagination.total | int | Total trade record count. |
pagination.has_more | bool | Whether there is a next page. |
pagination.next_key | string | Next page cursor; "-1" when no more pages. |
Supported Markets
- Data source is US SEC insider filings. Covers US operating companies and their dual-listed/ADR counterparts.
- Symbols without such filings (A-shares, most HK stocks, ETFs etc.) return empty trades.
Error Codes
| ret_code | error.code | Trigger Condition | Suggested Action |
|---|---|---|---|
| 0 | — | Success (trades is empty array when no data) | — |
| -3 | invalid_parameter | limit > 50 / invalid symbol format | Fix parameters |
| -7 | invalid_symbol | Symbol not found in securities database | Check the security code |
| -2 / -5 / -6 | internal_error | Gateway or backend internal error | Retry; report if persistent |
Response Example
json
{
"ret_code": 0,
"ret_msg": "success",
"data": {
"trades": [
{
"holder_id": 234085,
"is_proposed_sale_of_securities": false,
"max_price": 311.02,
"max_trade_date": 1779811200000,
"max_trade_date_str": "2026-05-26",
"min_price": 311.02,
"min_trade_date": 1779811200000,
"min_trade_date_str": "2026-05-26",
"name": "Arthur Levinson",
"security_description": "Common Stock",
"security_holder_quantity": 3755576,
"source_group_name": "Form 4",
"title": "Independent Non-Executive Chairman",
"trade_shares": -50000,
"transaction_type": "Sell"
}
]
},
"pagination": { "has_more": true, "total": 178, "next_key": "10" }
}