Eastmoney Scraper — Stocks, Funds, Quotes & History
Pricing
from $1.00 / 1,000 results
Eastmoney Scraper — Stocks, Funds, Quotes & History
Eastmoney (东方财富) scraper: A-share, Hong Kong, US, ETF, bond, index and board quotes with full fields, K-line history, 24,000+ funds with NAV history, financial reports and announcements. Field codes mapped to English + Chinese names. No login, no API key.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Logiover
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Eastmoney Scraper — Stocks, Funds, Quotes & History from 东方财富
Disclaimer: this Actor is an independent tool and is not affiliated with, endorsed by or sponsored by Eastmoney (东方财富) or any company of its group. "Eastmoney" and "东方财富" are trademarks of their owners and are used only to describe which public data the Actor reads. It collects public market data that the Eastmoney website shows to every visitor, without a login. You are responsible for using the data lawfully.
Eastmoney Scraper is a ready-made 东方财富数据采集 tool and an Eastmoney API alternative. It scrapes eastmoney.com for A-share, Hong Kong and US stock quotes (股票行情, A股行情, 港股行情, 美股行情), ETF, LOF, REIT, convertible bond (可转债), bond and index quotes, industry, concept and region boards (板块), K-line history from one-minute to yearly bars (K线数据), the whole fund catalogue with returns and fees (基金净值, 基金排行), the complete NAV history of any fund, the financial data centre (业绩报表, 资产负债表, 利润表, 现金流量表, 估值分析) and company announcements (公告). No login, no API key, no browser: pick a mode, press Start and export CSV, Excel, JSON, XML or HTML, or call it from the Apify API, Python, Node.js, Google Sheets, Make, Zapier or n8n.
Eastmoney's pages speak in field codes — f2, f3, f62, f184 — and Chinese labels. This 东方财富爬虫 turns every code into a readable English column, normalises units (lots of 100 shares in mainland China, single shares in Hong Kong and the US, 10-bond lots for bonds), turns Eastmoney's placeholder zeros into real empty values, and returns numbers as numbers and dates as ISO dates. Typical searches it answers: scrape Eastmoney stock list to Excel, download A-share daily prices as CSV, Eastmoney fund NAV history export, AH premium table, Chinese stock market data API, 沪深京A股 全部行情, 东方财富 K线 历史数据, 基金净值 历史 导出.
Table of contents
- At a glance
- What you get
- Who uses this
- Quick start
- Recipes
- Input reference
- Market lists
- Data dictionary
- Sample output
- Scale and speed
- Data quality checks
- What you pay
- Integrations
- Performance tips
- Troubleshooting
- Honest limits
- Comparison with other options
- FAQ
- Glossary
- Legality and data protection
- Changelog
- Support
At a glance
| Source | eastmoney.com (东方财富网): quote centre, fund centre, financial data centre, announcement centre |
| Modes | Quotes · Price history · Funds · Fund NAV history · Financial reports · Announcements |
| Market lists | 51: A-shares (all boards), Hong Kong, US, ETF, LOF, REIT, bonds, repos, indices, boards, forex |
| History | daily to yearly bars back to listing (6,027 bars of 600519 in one request), 5- to 60-minute bars for 31 trading days, 1-minute for the latest day |
| Depth proven | 10,322 unique quote rows in one run (103.7 s, 0 duplicates); 24,699 unique funds in one run (34.0 s); measured 2026-10-25 |
| Price | pay per result: $1.50 per 1,000 on the Free plan, down to $1.00 on higher Apify tiers; you set a maximum cost per run |
What you get
- Quotes in blocks: identity, price, trading, order book, valuation, fundamentals, money flow by order size (主力资金), classification, A+H pair, convertible-bond data, board breadth.
- Price history (raw, forward or backward adjusted), funds (NAV, returns from 1 week to 5 years, fees, money-fund yields), fund NAV history (daily return, dividends, splits, managers).
- Financial reports (results summary, forecast, express, balance sheet, income, cash flow, daily valuation) and announcements (date, company, categories, title, link).
Who uses this
- Quant researchers: history mode with
adjustment: "backward", joined with the dailyvaluationreport. - Spreadsheet investors: quotes with
symbolssuch as600519,00700,510300, scheduled into Google Sheets. - Fund analysts: funds mode to screen 24,000+ funds, then fund NAV mode for the shortlist.
- Convertible-bond traders: list
convertible-bonds, filter on conversion and pure-bond premium. - Cross-border strategists:
hk-ahfor the 210 A+H pairs,us-chinafor US-listed Chinese companies. - Equity research and journalists: financials mode with several
reportKinds; top gainers and money-flow rankings throughsortBy. - Fintech developers:
run-sync-get-dataset-itemsas a China-market back end, cached bysecId. - Academics and compliance teams: announcements by day, then history around the events; filter on
category. - Credit and rates analysts:
bonds-sh,bonds-sz,bond-index,bond-repo-shandbond-repo-sz. - FX desks:
forex-allorforex-cnhwith 3-, 5-, 10-day change. - AI-agent builders: the Apify MCP server returns labelled, unit-explicit rows.
Quick start
In the Console. Open the Actor and press Start: the prefilled input reads 100 A-shares in about 8 seconds. Pick Market lists, or clear them and type codes, names or Eastmoney links into Codes / names (a bare 000001 is both Ping An Bank and the Shanghai Composite: use 1.000001 or a link for the index). Set Max results (0 = everything) and switch off column blocks you do not need. The Output tab has one view per mode; export as CSV, Excel, JSON, XML or HTML. Other modes: change What to collect.
With the API.
curl -X POST "https://api.apify.com/v2/acts/logiover~eastmoney-scraper/run-sync-get-dataset-items?token=<APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"mode":"quotes","markets":[],"symbols":["600519","00700","AAPL"],"maxItems":0}'
The synchronous call must finish within five minutes. For big jobs start a run (POST .../acts/logiover~eastmoney-scraper/runs?token=<APIFY_TOKEN>&maxTotalChargeUsd=5), read data.defaultDatasetId from the answer and fetch .../datasets/<ID>/items?format=csv&clean=true. Every run's key-value store holds a SUMMARY record: outcome, request and route counts, notes.
Recipes
Exact inputs, validated against the input schema; dates are examples.
1. Every A-share with the full quote row. 沪深京A股; maxItems: 0 = no limit.
{"mode":"quotes","markets":["cn-a-shares"],"maxItems":0}
2. Top 100 gainers. Sorted by Eastmoney, so one page is fetched.
{"mode":"quotes","markets":["cn-a-shares"],"sortBy":"changePercent","sortDescending":true,"maxItems":100}
3. Hong Kong by turnover. Rows carry quotesDelayed: true.
{"mode":"quotes","markets":["hk-main"],"sortBy":"amount","sortDescending":true,"maxItems":300}
4. A+H premium table. 210 pairs with ahPriceRatio, ahPremiumPercent.
{"mode":"quotes","markets":["hk-ah"],"maxItems":0}
5. Convertible bond screener. Conversion data and the underlying stock.
{"mode":"quotes","markets":["convertible-bonds"],"maxItems":0}
6. Look up codes, names and links. Codes, ids, names, links; markets cleared.
{"mode":"quotes","markets":[],"symbols":["600519","00700","AAPL","贵州茅台","https://quote.eastmoney.com/sz000001.html"],"maxItems":0}
7. Whole daily history of a few stocks. backward stays positive; the default is raw.
{"mode":"history","symbols":["600519","000001","00700"],"period":"daily","adjustment":"backward","maxItems":0}
8. One trading day of the 50 largest A-shares. Codes come from the sorted list; ran in 45 s on 2026-10-25.
{"mode":"history","markets":["cn-a-shares"],"sortBy":"marketCap","sortDescending":true,"maxSymbols":50,"period":"daily","fromDate":"2026-10-23","toDate":"2026-10-23","maxItems":0}
9. Whole open-end fund catalogue. One request.
{"mode":"funds","fundTypes":["open-end"],"maxItems":0}
10. NAV history of chosen funds. Unit and accumulated NAV, dividends, splits.
{"mode":"fundNav","fundCodes":["000001","110011","161725","510300","000198"],"maxItems":0}
11. Latest results summary of all A-shares. Empty reportPeriods = latest quarter with rows.
{"mode":"financials","reportKinds":["performance"],"reportMarket":"cn-a-shares","maxItems":0}
12. Balance sheet, income and cash flow of a quarter. Joinable on code.
{"mode":"financials","reportKinds":["balance","income","cashflow"],"reportPeriods":["2026-06-30"],"reportMarket":"cn-a-shares","maxItems":0}
13. Filings of one day. Date ranges are read day by day.
{"mode":"announcements","announcementScopes":["cn-a-shares","us-all"],"fromDate":"2026-10-23","toDate":"2026-10-23","maxItems":0}
Input reference
| Field | Type | Default | Meaning |
|---|---|---|---|
mode | string | quotes | quotes, history, funds, fundNav, financials or announcements. |
markets | array | prefill ["cn-a-shares"], no default | Market list keys (below). Quotes reads them; History takes codes from them when you give none. Clear it to read only typed codes or boards; left out of an API call with no codes, A-shares are read. |
symbols | array | [] | Codes (600519), quote ids (1.600519), HK or US tickers (00700, AAPL), Eastmoney links, Chinese or English names. |
searchTerms | array | [] | Names always resolved by Eastmoney's search (茅台, 比亚迪). |
boards | array | [] | Board codes (BK0475, MK0021); adds every constituent. Quotes. |
maxItems | integer 0–1,000,000 | 1000 (prefill 100) | Stop after N rows; 0 = no limit. |
sortBy | string | code | code, amount, volume, changePercent, price, marketCap, floatMarketCap, turnoverRate, volumeRatio, amplitude, peDynamic, pb, mainNetInflow, listingDate (sorted by Eastmoney). |
sortDescending | boolean | false | Highest first. |
valuation, fundamentals, moneyFlow, classification, orderBook | boolean | true | Quote column blocks; false drops the block. |
period | string | daily | 1m, 5m, 15m, 30m, 60m, daily, weekly, monthly, quarterly, half-yearly, yearly. 1-minute bars cover the latest trading day, 5- to 60-minute bars 31 trading days. |
adjustment | string | none | none (raw), forward (前复权), backward (后复权). |
barsPerSymbol | integer 0–100,000 | 0 | Newest N bars or NAV points per instrument; 0 = all. |
maxSymbols | integer 1–20,000 | 200 | Instruments (History) or funds (NAV) taken from a list or type. |
fromDate, toDate | string YYYY-MM-DD | "" | Filter bars, NAV dates, announcements; in Funds mode they add a window return. |
fundTypes | array | ["open-end"] | open-end, exchange-traded, money-market. |
fundCodes | array | [] | Six-digit fund codes for NAV mode; empty = codes from fundTypes. |
reportKinds | array | ["performance"] | performance, forecast, express, balance, income, cashflow, valuation. |
reportPeriods | array | [] | Quarter ends (2026-06-30) or trading days (valuation); empty = latest. |
reportMarket | string | cn-a-shares | all, cn-a-shares, cn-sh-a, cn-sz-a, cn-chinext, cn-star, cn-bj-a, cn-b-shares, cn-neeq, cn-st-shares. |
announcementScopes | array | ["cn-a-shares"] | cn-a-shares, cn-sh-a, cn-sz-a, cn-chinext, cn-star, cn-bj-a, cn-b-shares, cn-neeq, hk-all, us-all, bonds. |
proxyConfiguration | object | Apify proxy | Leave the default (direct, then datacenter, then a capped residential rescue route). |
Names go through Eastmoney's search (first match wins); ids like 1.600519 and links skip the lookup. History mode takes codes from symbols, else from the market lists, up to maxSymbols.
Market lists
Eastmoney's own lists of the quote centre, with the rows each held on 2026-10-25 (they change daily; every quote row also carries listTotal).
- Mainland China:
cn-a-shares沪深京A股 5,580 ·cn-sh-a沪市A股 2,319 ·cn-sz-a深市A股 2,907 ·cn-bj-a京市A股 354 ·cn-star科创板 619 ·cn-chinext创业板 1,412 ·cn-b-sharesB股 77 ·cn-new-shares新股 85 ·cn-st-sharesST股 392 ·cn-delisting退市整理 2 ·cn-neeq新三板 6,431 ·cn-connect-sh沪股通 1,642 ·cn-connect-sz深股通 1,887 - Hong Kong:
hk-all全部港股 4,742 ·hk-main港股主板 2,621 ·hk-gem港股创业板 315 ·hk-connect-sh港股通(沪) 666 ·hk-connect-sz港股通(深) 666 ·hk-ahAH股比价 210 ·hk-bluechips蓝筹股 95 ·hk-redchips红筹股 172 ·hk-stateowned国企股 218 ·hk-warrants港股窝轮 6,838 ·hk-cbbc港股牛熊证 5,527 ·hk-index港股指数 368 - United States:
us-all全部美股 13,906 ·us-wellknown知名美股 280 ·us-china中概股 382 ·us-china-internet互联网中国 23 ·us-technology美股科技类 29 ·us-financial美股金融类 20 ·us-pinksheet粉单市场 957 ·us-index美股指数 3 - Funds, bonds, indices, boards, forex:
etfETF基金 1,661 ·lofLOF基金 390 ·reits公募REITs 103 ·convertible-bonds可转债 320 ·bonds-sh沪市债券 22,742 ·bonds-sz深市债券 20,006 ·bond-repo-sh沪市质押式回购 9 ·bond-repo-sz深市质押式回购 9 ·bond-index债券指数 6 ·index-sh上证系列指数 268 ·index-sz深证系列指数 957 ·index-csi中证系列指数 563 ·index-global全球主要指数 20 ·board-industry行业板块 496 ·board-concept概念板块 516 ·board-region地域板块 31 ·forex-all外汇行情 190 ·forex-cnh离岸人民币 20
Data dictionary
Quotes
Fill % = share of rows with a non-empty value, measured on 5,580 A-share rows and 4,742 Hong Kong rows of the 2026-10-25 run (build 1.0.7); a dash means the column does not exist for that kind of row. Columns that cannot apply to an instrument are left out rather than null (a conversion price on a share), so no column is empty across a run. Identity, price and trading blocks are always on; the others are switchable.
| Fields | Eastmoney code · 中文 | Meaning | Fill % A-shares / Hong Kong |
|---|---|---|---|
secId code marketNum name url | f12 代码 · f13 市场 · f14 名称 | Identity. Quote id market.code (input in every mode); code; market number (0 Shenzhen/Beijing, 1 Shanghai, 116 Hong Kong, 105/106/107 NASDAQ/NYSE/AMEX, 90 board, 2 CSI); name; quote link. | 100 / 100 |
nameTraditional nameEn | f421 繁体名称 · f422 英文名称 | Names. Traditional and English name. | 99.9–100 / 72–100 |
securityTypeCode | f19 证券类型 | Board. With marketNum: 1/2 Shanghai A, 1/23 STAR, 0/6 Shenzhen A, 0/80 ChiNext, 0/81 Beijing and NEEQ, 116/3 HK main, 116/4 GEM. | 100 / 100 |
tradingStatusCode tradingStatus tradingStatusCn | f292 交易状态 | Status. Eastmoney status 1 to 19, English and Chinese. | 100 / 100 |
quoteTime tradeDate | f124 交易时间 · f297 行情日期 | Time. ISO UTC time of the last update; ISO trading day. | 100 / 100 |
market marketCn exchange currency baseCurrency instrumentClass priceUnit volumeUnit quotesDelayed | — | Context. Set by the Actor. currency per row (Shenzhen B-shares HKD, Shanghai B-shares USD); class: equity, fund, bond, cbond, repo, index, board, forex; units spelled out; quotesDelayed true for Hong Kong. | 100 / 100 |
listKey list listCn listTotal rank scrapedAt rowId | — | List. List of origin, its size, position in Eastmoney's order, UTC read time, de-duplication key (= secId). | 100 / 100 |
price change changePercent | f2 最新价 · f4 涨跌额 · f3 涨跌幅 | Price. In priceUnit; percent (1.25 = +1.25 %). Null if not traded. | 99.9 / 66.4 |
open high low previousClose amplitudePercent | f17 今开 · f15 最高 · f16 最低 · f18 昨收 · f7 振幅 | Session. In priceUnit; amplitude in percent. | 99.9–100 / 66.4–71.1 |
speed3minPercent change5minPercent change3dPercent change5dPercent change10dPercent change60dPercent changeYtdPercent | f22 涨速(3分钟) · f11 5分钟涨跌 · f127 3日涨跌幅 · f109 5日涨跌幅 · f160 10日涨跌幅 · f24 60日涨跌幅 · f25 年初至今涨跌幅 | Momentum. Percent change over 3 and 5 minutes, 3, 5, 10, 60 days, year to date. | 99.9–100 / 66.4–71 |
volume amount | f5 成交量 · f6 成交额 | Volume. volume in volumeUnit (lots of 100 shares on the mainland, shares in Hong Kong and US, lots of 10 bonds); amount in currency. | 99.9 / 53.6–66.6 |
turnoverRatePercent volumeRatio buyVolume sellVolume | f8 换手率 · f10 量比 · f34 外盘(买盘) · f35 内盘(卖盘) | Activity. Percent of float; vs 5-day average; outer and inner volume. | 99.8–100 / 48.7–90.3 |
bidPrice askPrice bidPrice2 askPrice2 bidVolume askVolume orderImbalancePercent | f31 买一价 · f32 卖一价 · f142 买二价 · f143 卖二价 · f211 买量 · f212 卖量 · f33 委比 | Order book. Best two bids and asks, sizes, imbalance -100 to 100 (not on indices, boards, forex). | 98.4–100 / 60.7–100 |
marketCap floatMarketCap totalShares floatShares | f20 总市值 · f21 流通市值 · f38 总股本 · f39 流通股本 | Size. In currency; share counts. | 100 / 59.7–59.8 |
peDynamic peStatic peTtm pb | f9 市盈率(动态) · f114 市盈率(静态) · f115 市盈率(TTM) · f23 市净率 | Valuation. PE on annualised latest, last full-year, trailing-12-month earnings; price to book. No peStatic for US ADRs. | 100 / 59.3 |
revenue revenueYoyPercent netProfit netProfitYoyPercent | f40 营业收入 · f41 营业收入同比 · f45 净利润 · f46 净利润同比 | Fundamentals. In currency, growth in percent, period in reportDate; mainland values cumulative for the fiscal year. No net profit for Hong Kong and US; Hong Kong amounts: see Data quality checks. | 99.9–100 / 58.9 |
roePercent bookValuePerShare grossMarginPercent debtRatioPercent reportDate | f37 净资产收益率(加权) · f113 每股净资产 · f49 毛利率 · f57 资产负债率 · f221 报告期 | Ratios. Weighted ROE (not annualised); book value per share; gross margin (none for banks, Hong Kong, US); debt ratio (HK/US fractions x 100); report date. | 98.2–100 / 59.3–59.4 |
mainNetInflow mainNetInflowPercent superLargeNetInflow superLargeNetInflowPercent largeNetInflow largeNetInflowPercent mediumNetInflow mediumNetInflowPercent smallNetInflow smallNetInflowPercent | f62 主力净流入 · f184 主力净占比 · f66 超大单净流入 · f69 超大单净占比 · f72 大单净流入 · f75 大单净占比 · f78 中单净流入 · f81 中单净占比 · f84 小单净流入 · f87 小单净占比 | Money flow today. Net inflow in currency and percent of turnover by order size; main force = super-large + large. | 99.9 / 53.5 |
mainNetInflow3d mainNetInflow3dPercent mainNetInflow5d mainNetInflow5dPercent mainNetInflow10d mainNetInflow10dPercent | f267 3日主力净流入 · f268 3日主力净占比 · f164 5日主力净流入 · f165 5日主力净占比 · f174 10日主力净流入 · f175 10日主力净占比 | Money flow 3, 5, 10 days. Main-force net inflow and its share of turnover. | 99.9 / 61.3–64.8 |
mainNetInflowRank mainNetInflowRankChange | f225 主力净占比排名 · f226 主力排名变化 | Money-flow rank. Eastmoney's rank by main-force share and its change (mainland). | 93.5–99.9 / — |
industryBoard industryBoardCode regionBoard conceptBoards listingDate | f100 所属行业 · f265 行业板块代码 · f102 所属地域 · f103 所属概念 · f26 上市日期 | Classification. Boards of the stock (industryBoardCode BKnnnn feeds boards); listing date. | 98.7–100 / 58.9–97.1 |
hShareCode hShareMarketNum hShareName hSharePrice hShareChangePercent hShareSecId | f191 A/H对应股代码 · f192 A/H对应股市场 · f193 A/H对应股名称 · f186 A/H对应股最新价 · f187 A/H对应股涨跌幅 | A+H, A-share row. The H-share of an A-share (A+H pairs only). | 3.8 / — |
aShareCode aShareMarketNum aShareName aSharePrice aShareChangePercent aShareSecId | f191 A/H对应股代码 · f192 A/H对应股市场 · f193 A/H对应股名称 · f186 A/H对应股最新价 · f187 A/H对应股涨跌幅 | A+H, Hong Kong row. The A-share of a Hong Kong share. | — / 4.5 |
ahPriceRatio ahPremiumPercent | f189 AH股比价 · f188 AH股溢价 | A+H premium. A price over H price in one currency; premium in percent. | 3.8 / 4.5 |
convertibleBondCode convertibleBondMarketNum convertibleBondName convertibleBondPrice convertibleBondChangePercent convertibleBondSecId | f232 正股/转债代码 · f233 正股/转债市场 · f234 正股/转债名称 · f229 正股/转债最新价 · f230 正股/转债涨跌幅 | Convertible link, share row. The company's convertible bond. | 5.5–5.8 / — |
Convertible-bond rows (320) add underlyingStockCode, Name, MarketNum, SecId, Price, ChangePercent (f232 f234 f233 f229 f230 正股), conversionPrice (f235 转股价), conversionValue (f236 转股价值), conversionPremiumPercent (f237 转股溢价率), pureBondValue (f227 纯债价值), pureBondPremiumPercent (f238 纯债溢价率), putTriggerPrice (f239 回售触发价), callTriggerPrice (f240 强赎触发价), maturityRedemptionPrice (f241 到期赎回价), conversionStartDate (f242 开始转股日), bondIssueDate (f243 申购日). Filled on 96.6 to 100 % of the rows.
Board and index rows add risingCount, fallingCount, unchangedCount (f104 f105 f106 上涨 下跌 平盘家数), leadingStockName, Code, MarketNum, SecId, Percent (f128 f140 f141 f136 板块领涨股) and laggingStockName, Code, MarketNum, SecId, Percent (f207 f208 f209 f222 板块领跌股).
Price history
One row per bar; fill % from the 2,500-row run of 10 instruments (shares, index, board, ETF, bond, currency pair, US stock).
| Fields | Source | Meaning | Fill % |
|---|---|---|---|
secId code name market exchange currency instrumentClass url | as quotes | Instrument identity (no exchange for currency pairs). | 90–100 |
period periodCn adjustment adjustmentCn | klt, fqt | Bar size and adjustment, English and Chinese (日K, 不复权, 前复权, 后复权). | 100 |
date datetime | f51 | ISO date; datetime (+08:00) on minute bars only. | 100 |
open high low close | f52 开盘 · f54 最高 · f55 最低 · f53 收盘 | In priceUnit. | 100 |
previousClose change changePercent amplitudePercent | f60 涨跌额 · f59 涨跌幅 · f58 振幅 | For an instrument's first bar these are empty, not 0. | 100 |
volume amount turnoverRatePercent | f56 成交量 · f57 成交额 · f61 换手率 | Absent for currency pairs. | 90 |
volumeUnit priceUnit baseCurrency dailyBarsTotal scrapedAt rowId | — | dailyBarsTotal = daily bars Eastmoney holds; rowId = secId:period:adjustment:date. | 10–100 |
Funds
Fill % from the 24,699-row run of all open-end funds (2026-10-25).
| Fields | Source | Meaning | Fill % |
|---|---|---|---|
fundCode fundName pinyinAbbr fundCategory fundType fundTypeCn | ranking, fundcode_search | Code, name, pinyin (拼音缩写), category (混合型-偏股 …), ranking of origin. | 100 |
navDate nav accumulatedNav dayGrowthPercent | 单位净值 · 累计净值 · 日增长率 | Unit NAV, accumulated NAV, daily growth (open-end). | 96.7–99.9 |
week1Percent month1Percent month3Percent month6Percent year1Percent year2Percent year3Percent year5Percent ytdPercent sinceInceptionPercent | 近1周 … 近5年 · 今年来 · 成立来 | Return over 1 week, 1, 3, 6 months, 1, 2, 3, 5 years, year to date, since inception, percent. | 44–100 |
inceptionDate | 成立日 | Inception date. | 100 |
originalFeePercent feePercent feeDiscount feeViaCashAccountPercent | 原费率 · 现费率 · 折扣 | Subscription fee before and after discount, discount in 折 (1 = 10 %), fee via the broker cash account. | 49.4–99.7 |
purchaseStatus purchaseStatusCn | 申购状态 | open, subscription period, redemption stopped, purchase stopped, closed period, trading stopped … | 92.2 |
currency fundsInList rank url scrapedAt rowId | — | CNY; size of and position in the ranking; fund page; rowId = fundType:fundCode. | 100 |
Money-market funds (957 rows) add yieldPer10kUnits (万份收益), annualised7dPercent (七日年化), annualised14dPercent, annualised28dPercent; with fromDate or toDate every fund gets rangeReturnPercent, rangeFrom, rangeTo.
Fund NAV history
One row per NAV date; fill % from the 2,000-point run of 5 funds (one a money fund).
| Fields | Source | Meaning | Fill % |
|---|---|---|---|
fundCode fundName fundCategory navDate | pingzhongdata | Fund and NAV date (Beijing day). | 100 |
nav accumulatedNav dailyReturnPercent | Data_netWorthTrend, Data_ACWorthTrend | Unit NAV, accumulated NAV, daily return in percent. | 80 |
yieldPer10kUnits annualised7dPercent | Data_millionCopiesIncome, Data_sevenDaysYearIncome | Money funds only: income per 10,000 units, 7-day annualised yield. | 20 |
navEvent navEventCn dividendPerUnit dividendText dividendRecordDate dividendPayDate splitType splitRatio | NAV markers + 分红送配 page | dividend, split or other on event dates; cash per unit, Eastmoney's wording, record and payment dates; split type and ratio. | 0.1 |
fundManagers feePercent originalFeePercent minPurchaseAmount | fund_Rate, fund_sourceRate, fund_minsg | Managers, fees, minimum purchase. | 80–100 |
currency url scrapedAt rowId | — | CNY; fund page; rowId = fundCode:navDate. | 100 |
Financial reports
Seven report kinds of Eastmoney's financial data centre, one row per company and period, amounts in CNY. Every row carries code, name, reportKind, reportDate, noticeDate, currency, url, reportPeriod (the period you asked for) and rowId; lines a company type does not have (bank lines on an industrial) are left out. Fill % from 2,000 results-summary rows and 11 to 300 rows of the other kinds, 2026-10-25.
Results summary (业绩报表), report RPT_LICO_FN_CPD:
| Fields | Eastmoney columns | Meaning | Fill % |
|---|---|---|---|
code secuCode name market securityType industry industryBoard | SECURITY_CODE, SECUCODE, TRADE_MARKET, PUBLISHNAME | Code (600519.SH), name, board, A股, industry. | 100 |
reportDate reportPeriod reportType reportQuarter reportYear reportPeriodName noticeDate updatedAt | REPORTDATE, DATATYPE, QDATE, NOTICE_DATE | Period end; period you asked for; labels (2026年 半年报, 2026Q2); notice and update dates. | 100 |
basicEps basicEpsExclNonRecurring bookValuePerShare operatingCashFlowPerShare | BASIC_EPS, DEDUCT_BASIC_EPS, BPS, MGJYXJJE | Per share, CNY (扣非 excludes non-recurring items). | 99.8–100 |
revenue netProfitToParent | TOTAL_OPERATE_INCOME, PARENT_NETPROFIT | CNY, cumulative for the fiscal year. | 100 |
revenueYoyPercent netProfitYoyPercent revenueQoqPercent netProfitQoqPercent | YSTZ, SJLTZ, YSHZ, SJLHZ | Growth vs a year ago and vs the previous quarter, percent. | 100 |
roeWeightedPercent grossMarginPercent | WEIGHTAVG_ROE, XSMLL | Weighted ROE; gross margin (none for banks). | 97–98.8 |
dividendPlan dividendYieldPercent dividendYear | ASSIGNDSCRPT, ZXGXL, PAYYEAR | Proposed distribution (Eastmoney's wording), dividend yield, year. | 14.8–99.3 |
reportKind reportKindCn currency url scrapedAt rowId | — | Report name, CNY, quote link, rowId = kind:code:date. | 100 |
The other six kinds (fields filled on at least 95 % of rows; each line x also has xYoyPercent, its change against the same period a year earlier, in percent; fill rates from the 2026-10-25 runs):
Results forecast (业绩预告) (RPT_PUBLIC_OP_NEWPREDICT, 172 rows): forecastMetric, forecastAmountLower, forecastAmountUpper, forecastText, forecastReason, forecastType, priorYearSamePeriodAmount, forecastMidpointAmount, forecastDirection, forecastNetProfitChangeLowerPercent, forecastNetProfitChangeUpperPercent, forecastQoqMeanPercent. Less filled: forecastChangeLowerPercent 68 %, forecastChangeUpperPercent 68 %, forecastMidpointChangePercent 68 %.
Results express (业绩快报) (RPT_FCI_PERFORMANCEE, 11 rows): basicEps, revenue, revenuePriorYear, netProfitToParent, netProfitToParentPriorYear, bookValuePerShare, roeWeightedPercent, netProfitYoyPercent, revenueQoqPercent, netProfitQoqPercent, reportQuarter, reportType.
Balance sheet (资产负债表) (RPT_DMSK_FN_BALANCE, 300 rows): totalAssets, fixedAssets, cashAndEquivalents, cashYoyPercent, accountsReceivable, inventory, totalLiabilities, accountsPayable, totalEquity, currentRatioPercent, debtToAssetsPercent. Less filled: advancesFromCustomers 31.7 %. Plus 8 bank, insurer and broker lines on under 5 % of rows.
Income statement (利润表) (RPT_DMSK_FN_INCOME, 300 rows): netProfitToParent, revenue, totalOperatingCost, costOfSales, operatingExpenses, sellingExpenses, adminExpenses, financeExpenses, operatingProfit, profitBeforeTax, incomeTax, taxesAndSurcharges, netProfitYoyPercent, netProfitExclNonRecurring. Plus 6 bank, insurer and broker lines on under 5 % of rows.
Cash-flow statement (现金流量表) (RPT_DMSK_FN_CASHFLOW, 300 rows): netCashFromOperations, cashFromSales, cashPaidToEmployees, netCashFromInvesting, capitalExpenditure, netCashFromFinancing, netIncreaseInCash. Less filled: investmentIncomeReceived 76 %. Plus 6 bank, insurer and broker lines on under 5 % of rows.
Daily valuation of every A-share (估值分析) (RPT_VALUEANALYSIS_DET, 300 rows): marketCap, freeFloatMarketCap, closePrice, changePercent, totalShares, freeFloatShares, peTtm, peLatestAnnual, pbMrq, pcfLatestAnnual, pcfTtm, psTtm, peg.
Announcements
One row per notice. Fill % from the 2,889-row run of one trading day (A-shares and US stocks); titleEn exists on US filings only and announcementsInScope only with a date range.
| Fields | Eastmoney field | Meaning | Fill % |
|---|---|---|---|
announcementId rowId | art_code | Notice id (AN2026…), unique. | 100 |
title titleEn language | title_ch, title_en, language | Chinese title (US filings: form name such as 8-K); English title on US filings; Chinese/English. | 37.5–100 |
noticeDate publishedAt | notice_date, display_time | Filing date (after the close = next trading day); publication time +08:00. | 100 |
category categories annTypes | columns, ann_type | First and all categories (三季度报告全文, 董事会决议公告 …), type codes. | 100 |
code name companies companyCount quoteUrl | codes | First company, all companies, their count, quote page. | 100 |
url scope scopeCn announcementsInScope scrapedAt | total_hits | Notice page; scope you asked for; with a date range, notices in the scope that day. | 100 |
Sample output
Real rows from platform runs of build 1.0.7 on 2026-10-25 (last trading day: Friday 2026-10-23). Nothing is masked or edited; rows are wrapped.
Quotes, a mainland A-share (selected columns of 110)
{"secId": "1.600519", "code": "600519", "marketNum": 1, "name": "贵州茅台", "nameTraditional": "貴州茅台", "nameEn": "KWEICHOW MOUTAI","quoteTime": "2026-10-23T08:11:58.000Z", "tradeDate": "2026-10-23", "price": 1335, "changePercent": 1.25, "change": 16.51,"open": 1311.84, "high": 1343.88, "low": 1310, "previousClose": 1318.49, "amplitudePercent": 2.57, "change60dPercent": 3.33,"volume": 57686, "amount": 7677216283, "turnoverRatePercent": 0.46, "marketCap": 1668858937335,"floatMarketCap": 1668858937335, "peDynamic": 18.74, "peStatic": 20.27, "peTtm": 20.49, "pb": 6.64, "revenue": 92278072083.21,"revenueYoyPercent": 1.300099, "netProfit": 44516880421.86, "netProfitYoyPercent": -1.951595, "roePercent": 16.75,"bookValuePerShare": 200.989755, "grossMarginPercent": 89.555213, "debtRatioPercent": 15.193112, "reportDate": "2026-06-30","mainNetInflow": 283257760, "mainNetInflowPercent": 3.69, "industryBoard": "白酒Ⅱ", "regionBoard": "贵州板块","conceptBoards": ["酿酒概念", "西部大开发", "电商概念", "央国企改革", "超级品牌", "乡村振兴", "白酒", "味蕾经济"], "listingDate": "2001-08-27","market": "Shanghai", "exchange": "SSE", "currency": "CNY", "instrumentClass": "equity", "priceUnit": "CNY per share","volumeUnit": "lot (100 shares)", "tradingStatus": "market holiday", "quotesDelayed": false, "listTotal": 5580,"url": "https://quote.eastmoney.com/unify/r/1.600519", "scrapedAt": "2026-10-25T00:19:16.612Z"}
Price history, one daily bar
{"secId": "1.600519", "name": "贵州茅台", "currency": "CNY", "period": "daily", "adjustment": "raw prices as traded","date": "2026-10-23", "open": 1311.84, "high": 1343.88, "low": 1310, "close": 1335, "previousClose": 1318.49, "change": 16.51,"changePercent": 1.25, "volume": 57686, "amount": 7677216283, "turnoverRatePercent": 0.46, "volumeUnit": "lot (100 shares)","priceUnit": "CNY per share", "dailyBarsTotal": 6027, "rowId": "1.600519:daily:none:2026-10-23"}
Funds, one catalogue row
{"fundCode": "110011", "fundName": "易方达优质精选混合(QDII)", "fundCategory": "QDII-混合偏股", "navDate": "2026-10-23", "nav": 3.9095,"accumulatedNav": 5.6995, "dayGrowthPercent": 1.28, "week1Percent": -2.49, "month1Percent": -3.29, "month3Percent": -4.79,"month6Percent": -20.39, "year1Percent": -30.88, "year5Percent": -48.74, "ytdPercent": -26.36, "sinceInceptionPercent": 444.46,"inceptionDate": "2008-06-19", "originalFeePercent": 1.5, "feePercent": 0.15, "purchaseStatus": "open", "rank": 21096}
Fund NAV history, a dividend day of an ETF (selected columns)
{"fundCode": "510300", "fundName": "沪深300ETF华泰柏瑞", "navDate": "2025-06-18", "nav": 3.9043, "accumulatedNav": 1.7291,"dailyReturnPercent": 0.13, "navEvent": "dividend", "dividendPerUnit": 0.088, "dividendText": "每10份派现金0.8800元","dividendRecordDate": "2025-06-17", "dividendPayDate": "2025-06-27"}
Announcement (selected columns)
{"announcementId": "AN202610221830798278", "title": "兴发集团:湖北兴发化工集团股份有限公司关于董事、高级管理人员增持股份进展公告", "language": "Chinese","noticeDate": "2026-10-23", "publishedAt": "2026-10-22T16:07:40+08:00", "categories": ["高管人员持股变动", "股东/实际控制人股份增持"],"code": "600141", "name": "兴发集团", "url": "https://data.eastmoney.com/notices/detail/600141/AN202610221830798278.html","scope": "Shanghai + Shenzhen + Beijing A-shares", "announcementsInScope": 1808}
CSV columns. Exports contain every column of the mode; the Quotes view of the Output tab (code, name, nameEn, market, exchange, currency, price, changePercent, volume, amount, turnoverRatePercent, marketCap, peTtm, pb, revenue, netProfit, roePercent, mainNetInflow, industryBoard, tradingStatus, list, url) is a good spreadsheet header. Arrays are comma-joined in CSV.
Scale and speed
Measured on the Apify platform on 2026-10-25, build 1.0.7, 2,048 MB, default settings; duration is the run's own. Eastmoney answers differently by hour, so read these as typical.
| Mode | Input | Rows | Seconds |
|---|---|---|---|
| Quotes, the prefilled input | 100 A-shares | 100 | 8.0 |
| Quotes | 1,000 A-shares, default settings | 1,000 | 19.8 |
| Quotes | all A-shares + all Hong Kong, no limit | 10,322 | 103.7 |
| Quotes, 8 lists in one run | A+H, US-listed Chinese, convertible bonds, boards, forex, indices, REITs, B-shares | 2,046 | 73.4 |
| Funds | all open-end funds | 24,699 | 34.0 |
| Price history | whole daily history of Kweichow Moutai (2001-08-27 to 2026-10-23) | 6,027 | 7.7 |
| Price history | 10 instruments x 250 daily bars (shares, index, board, ETF, bond, currency pair, US) | 2,500 | 34.4 |
| Price history | 5-minute bars of Kweichow Moutai (31 trading days) | 1,488 | 14.6 |
| Fund NAV history | 5 funds, newest 400 points each | 2,000 | 5.7 |
| Financial reports | results summary 2026-06-30, capped at 2,000 | 2,000 | 9.4 |
| Financial reports | forecast and express 2026-09-30; balance, income, cash flow 2026-06-30 (300 each); valuation 2026-10-23 (300) | 172 / 11 / 300 | 3.6 to 10.5 each |
| Announcements | one trading day, A-shares + US stocks | 2,889 | 21.4 |
The largest proofs: 10,322 unique quote rows in one run with 0 duplicates (5,580 A-shares and 4,742 Hong Kong rows) and 24,699 unique funds in one run with 0 duplicates, both on build 1.0.7. Page counts and totals change every day as stocks list and funds launch.
- The market-list endpoint is the slow part: 100 rows a page, and an exit address is refused after a handful of requests. The Actor gives each address a strict budget, rotates through fresh datacenter sessions and then a small capped residential rescue route, and hedges the first request so first rows arrive in seconds. In the 10,322-row run 100 of the 104 list pages came through the rescue route.
- Everything else is fast: history, the fund ranking, NAV files, the data centre and announcements tolerate bursts from one address; one request returns a stock's whole daily history or the whole open-end fund ranking.
- Time limit: the Actor keeps a reserve of 12 % of the timeout (8 to 30 s) and stops cleanly before it.
Data quality checks
The numbers were checked against Eastmoney's own pages on 2026-10-25, using data from the same runs as the samples.
Quote rows against the K-line chart. For 24 instruments in 14 kinds of market (Shanghai, Shenzhen, STAR, ChiNext, Beijing, Hong Kong x4, both B-share markets, 2 convertible bonds, a REIT, an index, a board, 2 currency pairs, 5 US-listed names) price, volume, turnover and percentage change equal the daily bar of Eastmoney's chart API for the same day: 24 of 24 (Kweichow Moutai: close 1,335, 57,686 lots, +1.25 % in both).
Valuation and fundamentals. For Kweichow Moutai, Ping An Bank, CATL and SMIC, price and market cap equal (TTM PE and PB match to Eastmoney's rounding) the data centre's 估值分析 row, and revenue and net profit equal its 业绩报表 row (4 of 4). Funds and notices. The 20 newest NAV points of three funds equal the fund page's list (60 of 60); catalogue returns of four funds and the yields of two money funds equal the fund pages; five announcements equal Eastmoney's notice API.
What the checks found:
- Hong Kong amounts carry one conversion rate. For eight Hong Kong companies with a 2026-06-30 report (Tencent, CCB, Xiaomi, Meituan, HSBC, AIA, CK Hutchison, Ping An) revenue and book value per share in the quote row are exactly 1.1513 times the figures on Eastmoney's Hong Kong F10 page, whatever currency the company reports in (China Mobile, 2026-09-30: 1.1649); ROE and debt ratio are identical. Eastmoney's two sources thus use different currencies with one rate per report date. The Actor passes the quote feed through and labels the row
currency: HKD; compare Hong Kong companies with each other, not with a filing. Alibaba, with a March fiscal year, does not follow the pattern (its quote-feed revenue is about 30 % of the F10 fiscal-year figure). - Eastmoney writes 0 where it has no figure (net profit and gross margin of Hong Kong and US listings, a bank's gross margin, a currency pair's volume). These become missing values, never numbers.
- A third of the Hong Kong list has no price. Of 4,742 rows, 1,595 had no last price: 1,318 Hong Kong bonds and notes (names like
PRC B2710), 229 main-board and 22 GEM shares that were suspended, not yet listed or had not traded, and 26 others. They are in Eastmoney's list and are kept, withtradingStatus; filter onpricefor live quotes. - Forward-adjusted prices can be negative: Kweichow Moutai's 2001 bars come out near -312 (raw 35.55). The default is raw; backward stays positive.
What you pay
Pay per result: one dataset row is one result; you pay for rows saved, not for requests or run time. The price per result falls with your Apify subscription tier.
| Results | Free | Bronze | Silver | Gold, Platinum, Diamond |
|---|---|---|---|---|
| 1,000 | $1.50 | $1.33 | $1.17 | $1.00 |
| 10,000 | $15.00 | $13.33 | $11.67 | $10.00 |
| 100,000 | $150.00 | $133.33 | $116.67 | $100.00 |
At the Free price: all 5,580 A-shares is $8.37, the 24,699-fund catalogue $37.05, the 6,027 daily bars of Kweichow Moutai $9.04, one trading day of filings (2,889 notices) $4.33; at the lowest tier two thirds of that.
Maximum cost per run. Apify lets you cap what one run may spend (Console: Run options; API: maxTotalChargeUsd). The Actor reads the cap at start, works out how many results fit, never writes a row it cannot charge for and stops cleanly with a message such as "Saved 33 quotes — this run's maximum cost ($0.05) covers 33 results at the current price. Raise "Maximum cost per run" to collect more." The run still succeeds and keeps what it saved. A cap below one result ends the run with Saved 0 rows. (The 33 in the example is the Free price; the figure rises with your tier.)
Integrations
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")run = client.actor("logiover/eastmoney-scraper").call(run_input={"mode": "quotes", "markets": ["cn-a-shares"], "sortBy": "amount", "sortDescending": True, "maxItems": 100})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row["code"], row["name"], row["price"], row["changePercent"], row["volumeUnit"])
- Google Sheets:
=IMPORTDATA("https://api.apify.com/v2/acts/logiover~eastmoney-scraper/runs/last/dataset/items?format=csv&clean=true&token=<APIFY_TOKEN>")after a scheduled run (use a read-only token). - Make, Zapier, n8n: the Apify app of each tool: Run Actor with a recipe's JSON, then Get dataset items; trigger by schedule or webhook.
- Airtable and warehouses (BigQuery, Snowflake, Postgres): export CSV or JSON Lines;
secId+tradeDate,rowIdorannouncementIdare stable upsert keys. - Webhooks and schedules: an
ACTOR.RUN.SUCCEEDEDwebhook in the Integrations tab; schedule e.g. 16:30 Beijing time on weekdays (a weekend run returns the last close). - AI agents: add the Actor to the Apify MCP server; a code or Chinese name returns one labelled row.
Performance tips
- Switch off blocks you do not need (
orderBook,moneyFlow,classification,fundamentals,valuation): smaller rows, lighter exports. - "Top N": use
maxItemswith a sort order; Eastmoney sorts on the server, so one page is fetched. - In history mode give explicit codes for many symbols; a market list first needs the slow list pages.
Troubleshooting
Every message the Actor can write (status line, log or SUMMARY):
| Message or outcome | Meaning and action |
|---|---|
Saved N <things> (everything requested was read) in S s. | COMPLETED. Nothing to do. |
… (max results reached) … | Stopped at maxItems. Raise it (0 = no limit). |
… (stopped at the run time limit) … | Timeout reserve reached; rows so far are saved. Narrow the input or raise the timeout. |
… N request(s) could not be read. / PARTIAL | Some pages failed on every route; the rest is saved. Run again for the missing part. |
Eastmoney answered but nothing matched — 0 <things>. | EMPTY_RESULT. The notes after it name the list, fund type, period or dates that matched nothing. |
Saved N … — this run's maximum cost ($X) covers M results … / Saved 0 rows — … does not cover a single result … | The cost cap ended the run cleanly (or is below one result). Raise the cap or lower maxItems. |
Nothing to scrape: choose at least one market list … / … give codes in "Codes / names" … / … give fund codes … | INVALID_INPUT (Quotes, Price history, Fund NAV): no list, board, code or fund. |
No <things> collected: Eastmoney refused every route (…) | BLOCKED. Try later; report with the run link if it persists. |
No <things> collected: not one request succeeded (…) after N attempt(s). | FETCH_FAILED: network or timeouts on every route. Try again; see SUMMARY.lastError. |
No <things> collected and N request(s) could not be read, so an empty result cannot be confirmed. | Nothing saved and pages failed, so "empty" is not proven. Run again. |
Crashed after saving N <things>: … | Unexpected error; saved rows are kept. Report with the run link. |
Ignored the unknown market list "x". (also fund type, report, scope) / Ignored "x" — a board code looks like BK0475. / Ignored the start date "x" — use YYYY-MM-DD. | A value is not an allowed key or date; use the keys of the input reference. |
Could not read the list "…" / Could not read the … ranking | That list failed on every route; other lists of the run are unaffected. |
Could not look up "x". / Eastmoney has no instrument matching "x". | Search failed or knows no such name; use 1.600519 or a link. |
<report> covers Shanghai and Shenzhen A-shares only — not <market>. | The daily valuation report has no Beijing, B-share or NEEQ rows. |
Eastmoney refused the <report> query for <period>: … / <report>: Eastmoney has no rows for <date> yet. / no rows for <date>. | The data centre rejected the filter, or the period is not published; pick an earlier one or leave periods empty. |
Without a date range Eastmoney serves at most the newest 50,000 announcements per scope … / No announcements found for <scope>. | Set fromDate and toDate; windows are read day by day. |
<route>: every address it offered is used up on this endpoint — stepping aside for now. | Normal: the list endpoint's per-address limit; the Actor moves down the ladder. |
Log warnings: cost cap below maxItems; Proxy configuration failed …; Skipped a row the dataset refused …; missing fund categories | Informational: the Actor continued (default proxy, one dropped row, no category column). Report a dropped row. |
Honest limits
- Snapshots, not ticks; Hong Kong is 15 minutes delayed (
quotesDelayed: true). - The list endpoint is rate limited per address. Large multi-list quote runs take minutes (10,322 rows: 103.7 s) and use the residential rescue route.
- Minute-bar depth is Eastmoney's: 1-minute bars cover the latest trading day, 5- to 60-minute bars 31 trading days.
- Hong Kong and US fundamentals are thin: revenue, ROE, book value, debt ratio, but no net profit or gross margin, and Hong Kong amounts use Eastmoney's rate.
- Funds: catalogue and NAV history are complete; holdings and manager biographies are not collected. 1,306 of 24,699 open-end rows have purchase status trading stopped and 1,933 none.
- Announcements are metadata: the text and PDF are not downloaded.
- Not covered: futures, options, commodities, the dragon-tiger list (龙虎榜), shareholder lists, research reports, news, the 股吧 forum.
Comparison with other options
| This Actor | Copying from the website | Own script on the site's JSON | Licensed terminal or vendor | |
|---|---|---|---|---|
| Setup | press Start | none | write and maintain code | account and licence |
| Units, placeholder zeros | normalised, zeros that mean "no data" become empty | as displayed | raw, with - and fake zeros | vendor-defined |
| Volume | tens of thousands of rows per run | a page at a time | yours, incl. the per-address limit | high, licensed |
| Cost | per result, with a cap | your time | your time and servers | subscription |
A licensed vendor is the choice for a data licence, redistribution rights, tick or derivatives data.
FAQ
Is there an official Eastmoney API?
The numbers on eastmoney.com load from JSON endpoints that are not a documented public API. This Actor calls them and names every fNN code.
How do I scrape Eastmoney stock data to Excel or CSV?
Run Quotes mode with a list such as cn-a-shares and press Export on the Output tab: CSV and Excel are built in, JSON, XML and HTML come through the API.
Do I need a login, cookies or an API key for Eastmoney?
No. The Actor reads only what Eastmoney shows anonymous visitors.
Which markets and instruments are covered?
A-shares (Shanghai, Shenzhen, Beijing, STAR, ChiNext, ST), B-shares, NEEQ, Hong Kong, US stocks, ETFs, LOFs, REITs, bonds, repos, indices, boards and forex (51 lists). No futures or options.
Are the quotes real time?
They are the quote centre's figures when the list page is read. Eastmoney names the markets it delays for visitors outside mainland China (financial futures, Shanghai options, Hong Kong), so only Hong Kong rows are 15 minutes late and carry quotesDelayed: true.
Why do some Hong Kong rows have no price?
The "all Hong Kong stocks" list also holds Hong Kong bonds and notes and shares that are suspended, not yet listed or did not trade: 1,595 of 4,742 rows on 2026-10-25. Filter on price; tradingStatus says why.
What do the f2, f3, f62 and f184 codes mean?
f2 last price, f3 percentage change, f62 main-force net inflow, f184 its share of turnover. The data dictionary maps every code to its English column and Chinese label.
What unit is the volume column in?
volumeUnit says: lot (100 shares) for mainland shares, B-shares, ETFs and REITs (Eastmoney counts mainland volume in 手; turnover over price times volume comes out near 100), share for Hong Kong and US, lot (10 bonds of 100 CNY face) for bonds.
What currency are prices and market caps in?
The row's currency: CNY for mainland shares, funds and bonds, HKD for Hong Kong, USD for US stocks; Shenzhen B-shares HKD, Shanghai B-shares USD.
Why do Hong Kong revenue figures differ from the company's report?
Eastmoney's quote feed and its Hong Kong F10 page use different currencies with one rate per report date (1.1513 for 2026-06-30). The Actor passes the quote feed through and labels the row HKD; see Data quality checks.
Why is net profit empty for Hong Kong and US stocks?
Eastmoney's quote feed writes 0 there, meaning "not available", so the column is left out instead of showing a fake zero. For A-shares see the financial reports mode.
How do I get the full price history of a stock?
Price history mode, symbols = the code, barsPerSymbol 0: Kweichow Moutai's 6,027 daily bars since 2001-08-27 took 7.7 seconds.
Which price adjustment should I use?
Raw (default) is what traded. Forward adjusted is Eastmoney's chart default but can go negative. Backward adjusted stays positive and suits long-run returns.
How far back do minute bars go?
Measured 2026-10-25: 1-minute bars cover the latest trading day (240 bars for a mainland share, 330 for a Hong Kong share), 5- to 60-minute bars the latest 31 trading days, daily and longer bars the listing date.
How do I download the whole fund catalogue?
Funds mode, fundTypes: ["open-end"], maxItems: 0: 24,699 funds on 2026-10-25. Add exchange-traded and money-market for ETFs, LOFs and money funds.
What is the difference between unit NAV and accumulated NAV?
Unit NAV (单位净值, nav) is the price of one unit. Accumulated NAV (累计净值) adds back dividends paid since inception, so it shows total return.
What do the money-market fund columns mean?
yieldPer10kUnits is the income of 10,000 units on navDate (万份收益); annualised7dPercent the 7-day annualised yield (七日年化).
How do I find a board code like BK0475?
Take a row's code from board-industry, board-concept or board-region, or industryBoardCode from a stock row, and put it into boards.
How do I look up a stock by its Chinese name?
Put the name into symbols or searchTerms (贵州茅台, 茅台, Apple): Eastmoney's search resolves it and the first match wins. Exact codes are safer for scripts.
Why did my code lookup return thousands of rows?
A market list was still selected: the Console prefills cn-a-shares, so clear Market lists. API calls without markets that name codes read only those codes.
What is the A+H premium?
Companies listed in Shanghai or Shenzhen (A) and Hong Kong (H): ahPriceRatio is A price over H price in one currency, ahPremiumPercent the A-share's premium. The hk-ah list holds 210 pairs.
How do I read the convertible bond columns?
conversionValue is what the shares you would get are worth, conversionPremiumPercent how far the bond trades above it, pureBondValue its worth without the option; trigger prices are the underlying prices for put and call rights.
How are announcements dated?
noticeDate is the date Eastmoney files the notice under (after the close it counts for the next trading day), publishedAt the publication time in Beijing time. Date ranges are read day by day on noticeDate.
Can I get the text or PDF of an announcement?
No: rows carry title, categories, companies, dates and the notice-page link, where the PDF is attached.
How much does it cost and how does the maximum cost work?
$1.50 per 1,000 results on the Free plan, down to $1.00 on higher tiers. With Maximum cost per run set, the Actor stops cleanly when the budget is used and keeps what it saved.
Why does a multi-list quote run take minutes?
Eastmoney's list endpoint refuses an address after a handful of requests, so pages go through many addresses (10,322 rows: 103.7 s). Other modes are faster per row.
How are duplicates handled?
Every row has a stable rowId and the Actor keeps an id set per run, so one instrument, bar, NAV date, report row or notice is saved once.
What time zone do the timestamps use?
quoteTime and scrapedAt are ISO 8601 UTC; minute-bar datetime and publishedAt carry +08:00 (Beijing). Dates are calendar days of the exchange.
Is it legal to scrape Eastmoney?
The Actor reads public data without logging in. What you may do with market data depends on Eastmoney's terms, exchange rules and your jurisdiction; see Legality and data protection.
What happens if Eastmoney changes its website?
The Actor reads JSON endpoints, not layouts, and every run writes a SUMMARY. Report problems on the Issues tab; we reply within 24 hours.
Glossary
- 沪深京A股 / 科创板 / 创业板 / 北交所: A-shares of Shanghai, Shenzhen and Beijing; STAR Market, ChiNext, Beijing Stock Exchange.
- 新三板 / B股: NEEQ over-the-counter market; B-shares (Shanghai USD, Shenzhen HKD).
- 中概股 / AH股: US-listed Chinese companies; A+H dual listings (溢价 = A-share premium).
- 可转债: Convertible bond; 转股价 / 转股价值 / 转股溢价率 conversion price, value, premium; 纯债价值 pure-bond value; 回售 / 强赎 put and forced call.
- 板块: Board or sector: industry (行业), concept (概念), region (地域).
- 涨跌幅 / 振幅 / 换手率 / 量比 / 委比 / 手: Change %, amplitude, turnover rate, volume ratio, order imbalance, lot (100 shares, 10 bonds); 外盘 / 内盘 = buyer- / seller-initiated volume.
- 主力资金 / 超大单 / 大单 / 中单 / 小单: Main-force money and the order-size classes of money flow.
- 市盈率 (动态 / 静态 / TTM) / 市净率: P/E on annualised latest, last full-year and trailing-12-month earnings; price to book.
- 不复权 / 前复权 / 后复权 / K线: Raw, forward- and backward-adjusted prices; candlestick bar.
- 单位净值 / 累计净值 / 万份收益 / 七日年化: Unit and accumulated NAV; money-fund income per 10,000 units and 7-day annualised yield.
- 业绩报表 / 业绩预告 / 业绩快报: Results summary, forecast, express report.
- 资产负债表 / 利润表 / 现金流量表 / 估值分析: Balance sheet, income statement, cash-flow statement, daily valuation table.
- 港股通 / 公告 / ST股: Southbound Stock Connect; announcement; shares under special treatment.
Legality and data protection
The Actor reads public market data that Eastmoney shows to every anonymous visitor; it does not log in or bypass access controls. The only personal data in the output are the names of fund managers on public fund pages (fundManagers); if you process them, China's PIPL, the GDPR and local law apply and you are the controller. Market data is also subject to Eastmoney's terms, exchange rules and, in some places, database rights: use it for your own analysis, and take legal advice before redistributing or reselling it. The Actor keeps to per-address request budgets so it does not load Eastmoney beyond what a run needs. This is general information, not legal advice.
Changelog
1.0 (2026-10-25), first release. Six modes over 51 market lists, board constituents and code or name lookups; every fNN code mapped to an English column; explicit units; placeholder zeros turned into missing values; route ladder (direct, datacenter, capped residential rescue) for the list endpoint's per-address limit; outcomes COMPLETED, PARTIAL, EMPTY_RESULT succeed, BLOCKED, FETCH_FAILED, INVALID_INPUT fail with the reason; a SUMMARY record in every run; clean stop at the maximum cost. In the latest build markets has no schema default, so API lookups of codes and boards read only what they name.
Support
Questions, a missing field or a problem? Open an issue on the Actor's page (the Issues tab) with the run link. We reply within 24 hours. Requests for more lists, report tables or columns are welcome.