stockapi 使用手册

A 股 / 港股 / 美股行情数据 API · Cloudflare 边缘节点 · 东方财富 + Yahoo Finance 双源自动切换

股票代码格式

接口接受宽松写法,自动归一化为 代码.市场:

输入示例归一化规则
600519 / 600519.SH / sh600519600519.SH沪市;六位数字 6/9 开头默认沪市
000001 / sz000001000001.SZ深市;六位数字 0/2/3 开头默认深市
430047 / bj430047430047.BJ北交所;六位数字 4/8 开头默认北交所
700 / 00700.HK / hk0070000700.HK港股;1–5 位纯数字默认港股,自动补足 5 位
AAPL / AAPL.US / usAAPL / brk.bAAPL.US美股;纯字母默认美股,支持点号与连字符

GET /v1/quote — 实时行情

一次最多 20 个代码,可混合市场:

curl 'https://stockapi.hinsyeow.org/v1/quote?symbols=600519.SH,00700.HK,AAPL'
{
  "data": [
    {
      "symbol": "600519.SH", "name": "贵州茅台",
      "price": 1728.0, "pre_close": 1712.0, "open": 1700.0,
      "high": 1730.0, "low": 1699.0,
      "volume": 2500000, "amount": 4300000000,
      "change": 16.0, "change_pct": 0.93,
      "currency": "CNY", "ts": "2026-10-04T07:00:00.000Z",
      "source": "eastmoney"
    }
  ]
}

个别代码失败时该项内嵌错误、其余正常返回(HTTP 200):

{ "symbol": "XXXXXX.SH", "error": "ALL_PROVIDERS_FAILED",
  "detail": [ { "provider": "eastmoney", "ok": false, "ms": 3012, "reason": "timeout after 3000ms" } ] }

全部代码失败时返回 HTTP 502。

GET /v1/kline/:symbol — K 线

参数取值默认
period1m / 5m / 15m / 30m / 60m / daily / weekly / monthlydaily
adjustnone / qfq / hfq(仅 A 股有效,其余市场忽略并在响应中标注 none)qfq
limit1–1000250
curl 'https://stockapi.hinsyeow.org/v1/kline/600519.SH?period=daily&limit=2'
{
  "data": {
    "symbol": "600519.SH", "period": "daily", "adjust": "qfq", "source": "eastmoney",
    "candles": [
      { "date": "2026-10-02", "open": 1712.0, "close": 1728.0, "high": 1730.0,
        "low": 1699.0, "volume": 2500000, "amount": 4300000000 }
    ]
  }
}

candles 按时间升序,最后一条为最新;成交量单位为股(A 股上游为「手」,已换算);adjust 为本次数据实际采用的复权方式(仅 A 股且由东财提供时生效,否则恒为 none);date 格式随数据源略有差异(东财为本市场时间字符串,Yahoo 为 ISO 8601 UTC)。

GET /v1/search — 股票联想搜索

按代码或名称(支持中文名)搜索全球股票,Yahoo + 东方财富双上游并行,单路失败自动用另一路:

curl 'https://stockapi.hinsyeow.org/v1/search?q=%E8%8C%85%E5%8F%B0'
{
  "data": [
    { "symbol": "600519.SS", "name": "贵州茅台", "market": "CN" }
  ]
}

返回符号为 Yahoo 风格(AAPL / 600519.SS / 0700.HK / 7203.T),最多 10 条;market 取值 US/CN/HK/JP/KR/TW/EU 或 null(无法确定)。q 必填且不超过 32 字符,否则 400;无匹配返回空数组而非错误;双上游全失败返回 502。

GET /v1/fundamentals/:symbol — 基本面指标

Yahoo v10/quoteSummary 的服务端代理(自动处理 cookie + crumb),接受 Yahoo 风格代码,覆盖全球市场:

curl 'https://stockapi.hinsyeow.org/v1/fundamentals/600519.SS'
{
  "data": {
    "symbol": "600519.SS", "name": "Kweichow Moutai Co., Ltd.",
    "pe": 20.1, "forward_pe": 19.2, "pb": 7.3, "ps": 10.4,
    "ev_ebitda": 14.2, "peg": 1.8, "div_yield": 0.031,
    "roe": 0.34, "margin": 0.49, "fcf": 65000000000, "fcf_yield": 0.041,
    "market_cap": 1580000000000, "earnings_growth": 0.15,
    "revenue_growth": 0.16, "debt_to_equity": 25.4, "currency": "CNY"
  }
}

比率类字段为小数形式(0.031 = 3.1%);debt_to_equity 为 Yahoo 的百分比数值(25.4 = 25.4%);负估值比率按缺失处理(字段省略)。代码不存在返回 404,上游失败返回 502。

GET /health — 健康检查

curl 'https://stockapi.hinsyeow.org/health'   →   { "status": "ok", "version": "0.1.0", "ts": "..." }

错误码

HTTPcode含义
400INVALID_SYMBOL代码无法解析
400INVALID_PARAMETER参数缺失或非法(symbols 为空/超过 20 个、period 或 adjust 取值错误等)
404NOT_FOUND未知路由
502ALL_PROVIDERS_FAILED所有数据源均失败,detail 中带每个源的失败原因
500INTERNAL_ERROR服务内部错误

错误响应统一为 { "error": { "code": "...", "message": "...", "detail"?: ... } }。

数据源与切换策略

市场行情 / K 线优先级
沪 / 深 / 港东方财富 → Yahoo Finance
美Yahoo Finance → 东方财富
北交所东方财富

单次上游请求超时 3 秒,失败自动切换下一源;响应中的 source 标明本次实际生效的数据源。个别字段可能因数据源而缺失。

免责声明:数据来自公开行情接口,仅供学习研究,不构成投资建议。