付费端点 · 付费

异动 / 偏离值(监管异动体系) API

短线监管异动 / 偏离值:触发「严重异动」、「10日100% 偏离」、异动盯盘名单、严重异动提醒。这是短线风控的关键信号(个股因连续大涨/大跌被交易所或数据方标记异动)。 `mode` 取值: · `deviation` 偏离值热门榜(今日实时)—— 触发偏离阈值的个股,含 `reason` 规则 / `pct` 涨幅 / `turnover` 换手 / `board_desc` 连板 / `concepts` 概念 / `window` 窗口 · `deviation_hist` 偏离值热门榜(历史)—— 需 `date`(YYYY-MM-DD,真实交易日) · `deviation_plan` 偏离值(今日 + 明日两组)—— 返回行数组,每行含 `group`(`today`/`tomorrow`)区分 · `abnormal` 异动频率(含异动原因)—— 需 `date`;⭐ 每日全量(常见 500+ 条),含 `reason` 规则 / `status` 异动状态 / `abn_start` 异动起始日;顶层附 `total` 当日总条数 · `watch` 异动盯盘名单(今日)—— 监控中的个股 + `watch_start`/`watch_end` · `watch_hist` 异动盯盘名单(历史)—— 需 `date` · `alert` 严重异动提醒(今日)—— ⭐ 短线重点:`reason` 为人读提醒原因(如「10日内3次异动个股」「10日内偏离值临近100%」)+ `price` 现价 字段口径(各 mode 按需返回下列子集): `code` 代码 · `name` 名称 · `reason` 触发/提醒原因 · `pct` 涨跌幅% · `board_desc` 连板描述 · `concepts` 概念(顿号分隔)· `turnover` 换手%(偏离榜)· `window` 偏离窗口(如 `10日`)· `rule2` 第二条规则 · `trigger_pct` 触发严重异动阈值% · `limit_price` 参考价 · `status` 异动状态(如「未触发异动」)· `date` 数据日期 · `price` 现价 · `abn_start` 异动起始日(未触发为 `0000-00-00`)· `group` 分组(仅 plan)· `watch_start`/`watch_end` 监控起止(仅 watch)。 ⚠️ 历史类 mode(`deviation_hist`/`abnormal`/`watch_hist`)的 `date` 须为真实交易日(非交易日返回空);缺省用今天。 ⚠️ `abnormal` 默认返回当日全量(`limit` 可调,默认 600,足以覆盖)。 ⚠️ `data` 恒为行数组(可直接落 DataFrame);`abnormal` 的当日总条数在顶层 `total`。

付费GET /v1/abnormal
接口签名
GET /v1/abnormal?mode=list
一行可跑
curl "https://api.ashareapi.com/v1/abnormal?mode=list&key=YOUR_KEY"
参数:mode · date · limit带 * 为必填

快速开始

把下面的代码里的 Key 换成你的(免费端点无需 Key,直接调):

curl
# 推荐:Authorization 头(密钥不进日志)
curl -H "Authorization: Bearer YOUR_KEY" \
  "https://api.ashareapi.com/v1/abnormal?mode=list"

# 快速测试:直接浏览器打开(?key= 会留在日志/历史里,别用于生产)
curl "https://api.ashareapi.com/v1/abnormal?mode=list&key=YOUR_KEY"
Python
import requests

r = requests.get(
    "https://api.ashareapi.com/v1/abnormal",
    headers={"Authorization": "Bearer YOUR_KEY"},
    params={},
    timeout=30,
)
print(r.json())
JavaScript
const r = await fetch("https://api.ashareapi.com/v1/abnormal?mode=list", {
  headers: { Authorization: "Bearer YOUR_KEY" },
});
console.log(await r.json());

参数

modestring
deviation / deviation_hist / deviation_plan / abnormal / watch / watch_hist / alert
datestring
历史类 mode 需要的日期(YYYY-MM-DD);空=今天
limitinteger
仅 mode=abnormal/alert 生效:单次返回上限(默认 600)
返回

统一返回信封: { ok, endpoint, tier, elapsed_ms, source, data }

数据在 `data` 字段;上游为空时 `ok:false` 且不扣次数。

限流与额度

免费端点无需 Key(匿名 5 次/分,解一次 PoW 可到 15 次/分;每次最多 250 根 K 线、每天最多 10 万条)。付费端点按档位限流:体验 30 · 标准 120 · 专业 300 · 不限量 600 次/分;买断档按总量计(不用完不过期)。

看错误码对照表 →

常见问题

通用问题(所有端点通用)

这些端点需要 API Key 吗?

免费端点不需要:health、challenge、quote、kline、hot、market-overview、changedist 匿名即可调用。付费端点需要:在请求头带 `Authorization: Bearer <你的 Key>`。⚠️ 匿名额度按调用者类型分级:浏览器(真人)5 次/分;脚本 / SDK / AI Agent(curl、requests、axios、openai 等 UA)2 次/分 —— 自动化流量更易被滥用。解一次 PoW 挑战(`GET /v1/challenge`,再带 `X-PoW` 头)可提到 15 次/分,与类型无关。⚠️ 另外,匿名调用单次最多取 250 根 K 线、每天最多 10 万条 —— 要一次拿满 1212 根或不限日量,请用 API Key。

返回为空或上游报错时,会扣我的调用次数吗?

不会。上游失败或空结果时返回 `ok:false`,并自动退回本次计费(total_calls / usage_log / ep_log 三处同时回滚)。只有真正取到数据的请求才计入用量。

数据多久更新一次?

行情类(quote / kline / orderbook / changedist)为实时或当日;财务、股东、分红、事件等为上游披露后 T+1 内。响应里的 `source` 字段标明本次实际命中的数据通道。

一次请求能批量拿多只股票吗?

不能。`code` 是单值参数,一次一只;批量请并发调用(注意各自档位的每分钟限流)。

怎么在 Claude / Cursor / ChatGPT 里直接调用?

配一次 MCP 即可,之后直接问 AI「查一下……」它会自己调。MCP 暴露 36 个工具,覆盖行情 / 财务 / 选股 / 板块 / 宏观。

要把它接进 AI Agent?

配一次 MCP,之后问 AI「查一下……」它自己调。

← 返回完整端点清单