Cross-market differences
Quote fields are identical across markets, but company profile, dividend and share-structure fields differ, and some endpoints only cover A-shares. Check this table before writing cross-market code.
What is the same across markets
Quote fields are identical across markets (A-shares / Hong Kong / US all give the same 8 fields):
date · open · last · high · low · volume · amount · turnover
Technical indicators are identical too — technical returns the same field set on A-shares / Hong Kong / US (55 fields covering MA / EMA / MACD / KDJ / RSI / BOLL and more), regardless of market.
What differs
Company profile profile
| Market | Fields |
|---|---|
| A-shares | The fullest (15): business · issuePrice · regCapital · establishDate · chairman · addresses · phone · email |
| US | 8 fields: uses introduction and exchange where A-shares has business |
| Hong Kong | returns empty in testing — use quote for prices and source company detail elsewhere |
⚠️ A-shares has business, US has introduction — different names, so do not read them with the same key.
Dividends dividend
| Market | Fields |
|---|---|
| A-shares | reportEndDate · dividendFlag · dividendType · procedure · proposalSn · rightRegDate · exDiviDate · bonusShareRatio · tranAddShareRatio · cashDiviRMB · dividendPlan |
| Hong Kong | reportEndDate · exDiviDate · cashPayDate · cashDivPerShare · specialDivPerShare · totalCashDivi · dividendPlan |
| US | exDivDate · regDate · payDate · dividendCurrency · dividend · dividendPlan |
⚠️ The three markets barely share any dividend field names — and the ex-dividend date is exDiviDate on A-shares and Hong Kong but exDivDate on US, one letter apart.
Endpoints that cover only some markets
| Endpoint | Coverage (measured) |
|---|---|
snapshot |
A-shares only (including ChiNext and Beijing); Hong Kong and US return empty |
orderbook |
A-shares + Hong Kong + Beijing; US returns empty |
chip |
A-shares only; Hong Kong and US return an empty array |
fund |
returns on all three markets, but the fields are filled to different degrees — see below |
events |
A-shares only have data; Hong Kong and US return “data is empty” |
shareholder |
3 segments for A-shares / 3 for Hong Kong (with different meanings — see Response shapes); US returns empty |
How full fund is, per market
All three markets return something, but the fields thin out market by market (measured):
| Market | main_net (main-capital net inflow) |
main_rank |
|---|---|---|
| A-shares | ✅ present | ✅ present |
| Hong Kong | ✅ present | ⚠️ empty |
| US | ⚠️ empty | ⚠️ empty |
⇒ Only basic fields like close / date are common to all three; check for empties before ranking cross-market by main_net.
The Beijing exchange
Its code prefix is bj (e.g. bj920002). Every K-line period returns data — measured on bj920002: daily / weekly / monthly / quarterly / yearly all present (snapshot covers it too).
⚠️ Two traps:
- Minute bars come back empty — on the Beijing exchange,
klineminute periods (m1–m120) returned empty in testing. - Stale codes return nothing — Beijing codes get re-issued (e.g. Nuosailand moved from
bj430047tobj920047). Calling K-line with an old code returns empty across every column, which looks like “unsupported” but is really an expired code. Switch to the new code and it works (bj920047returned every period normally in testing).
For intraday data on the Beijing exchange, use the minute endpoint, not kline minute bars.
Common misuses
- Using A-share field names for US profile — US has no
business, onlyintroduction. - Calling
snapshotfor Hong Kong — it returns empty (not a failure); usequotefor Hong Kong. - Calling
orderbookfor US — it returns empty. - Assuming
fundis A-shares only — all three markets return it, but USmain_netis empty; onlyclose/dateare common. - Writing one dividend parser for all markets — the fields barely overlap, and
exDiviDate(A-shares/Hong Kong) differs fromexDivDate(US) by one letter. - Concluding “unsupported” from a stale Beijing code — switch to the new code (
bj430047→bj920047) and retest; an empty result has three causes (no data / out-of-window parameters / rate limited), so do not rush to call it unsupported.
Last updated: 2026-10-07
Measured per market on 2026-10-07 by sending sh600519 / hk00700 / usAAPL / bj920002 to the same endpoint and comparing field sets and whether the response was empty. The Beijing section was re-verified on 2026-10-07 (the old code bj430047 returned empty everywhere while bj920002 / bj920047 returned every period).