选择合适的股票API是进行量化分析、策略回测或开发金融应用的第一步。下面我将各类实用的股票数据接口进行了整理,并用表格直观展示它们的特点,方便你快速比较和选择。
服务商/工具 | 类型 | 主要数据覆盖 | 核心特点 / 免费限制 |
---|---|---|---|
必盈数据 | 第三方数据API | 沪深A股、港股(部分)、科创板、北交所、基金 | 数据全面(实时、历史、技术指标、资金流),可免费使用,通常需要申请免费证书。 |
Yahoo Finance API | 国际数据API | 全球市场(以美股、加股为主) | 免费、支持批量请求,但国内访问可能不稳定。 |
Alpha Vantage | 国际数据API | 全球股票、外汇、加密货币 | 功能丰富,支持多种技术指标,免费版有调用频率限制。 |
聚合数据 | 综合数据平台 | A股实时行情 | 每日50次免费调用,仅提供实时数据,无历史数据和技术指标。 |
AkShare | Python开源库 | 沪深及全球多市场 | 免费开源,数据源丰富(集成新浪、东方财富等),无需注册,是个人开发者的首选。 |
Tushare | Python开源库 | A股市场 | 数据质量高,需注册获取Token,免费版有每日调用次数限制。 |
Baostock | Python开源库 | A股市场 | 免费开源,无需注册,支持复权因子计算。 |
一、如何选择适合你的API?
面对这些选项,你可以根据自身需求来做决定:
-
如果你是初学者或个人开发者,进行学习、测试或小型项目
推荐从 必盈数据 这类免费且功能全面的工具开始。AkShare作为Python库集成方便;智兔数服等提供的API接口返回的数据结构清晰,预计算的技术指标能节省你的开发时间。
-
如果你的主要目标是美股或全球市场
Yahoo Finance API 和 Alpha Vantage 是经典选择。
-
如果是商业项目或对稳定性有极高要求
对于正式、长期的商业项目,建议考虑 Tushare Pro 等付费服务,或联系 同花顺 等专业数据商。付费服务能提供更稳定的服务保障和数据合规性。
二、动手试一试:API调用示例和api文档说明
【特别提示】:下方验证接口的licence证书(biyinglicence)为官方提供的验证证书,该证书只能验证股票代码000001的股票,因此,下方的接口连接中,即使换掉代码实际返回的也是000001的数据,在实际应用中,需要自己去申请一个免费证书更换掉就可以随意请求数据了,证书是免费申请的:必盈API官网。
本文中所有接口均可直接在浏览器打开获取数据,为了便于大家验证有效性,已经做好了超链接,直接点击即可!
股票列表
API接口链接(可点击验证):api.biyingapi.com/hslt/list/biyinglicence
【实时数据接口】
实时数据
API接口链接(可点击验证):api.biyingapi.com/hsstock/real/time/000001/biyinglicence
1、python
import requests
url = "https://api.biyingapi.com/hsstock/real/time/000001/biyinglicence"
response = requests.get(url)
data = response.json()
print(data)
2、JavaScript (Node.js)
const axios = require('axios');
const url = "https://api.biyingapi.com/hsstock/real/time/000001/biyinglicence";
axios.get(url)
.then(response => {
console.log(response.data);
})
.catch(error => {
console.log(error);
});
3、Java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.biyingapi.com/hsstock/real/time/000001/biyinglicence"))
.build();
try {
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
返回的数据:
{"pe":4.42,"ud":-0.03,"pc":-0.2639,"zf":0.7036,"tr":0.43,"pb_ratio":0.5,"p":11.34,"o":11.37,"h":11.37,"l":11.29,"yc":11.37,"cje":942224100,"v":832479,"pv":83247947,"tv":19906,"t":"2025-09-30 15:00:00"}
沪深A股指数实时交易
API接口链接(可点击验证):api.biyingapi.com/hsindex/real/time/000001/biyinglicence
京股实时数据
API接口链接(可点击验证):api.biyingapi.com/bj/stock/real/time/430017/biyinglicence
港股【部分】实时数据
API接口链接(可点击验证):http://api.biyingapi.com/hk/stock/real/time/00001/biyinglicence
基金实时数据
API接口链接(可点击验证):api.biyingapi.com/fd/real/time/159001/biyinglicence
买卖五档盘口
API接口链接(可点击验证):api.biyingapi.com/hsstock/real/five/000001/biyinglicence
最新分时交易
API接口链接(可点击验证):api.biyingapi.com/hsstock/latest/000001.SZ/d/n/biyinglicence?lt=1
【历史数据接口】
历史分时交易
API接口链接(可点击验证):api.biyingapi.com/hsstock/history/000001.SZ/d/n/biyinglicence?st=20250101&et=20250430<=100
历史分时MACD
API接口链接(可点击验证):api.biyingapi.com/hsstock/history/macd/000001.SZ/d/n/biyinglicence
历史分时MA
API接口链接(可点击验证):api.biyingapi.com/hsstock/history/ma/000001.SZ/d/n/biyinglicence
历史分时BOLL
API接口链接(可点击验证):api.biyingapi.com/hsstock/history/boll/000001.SZ/d/n/biyinglicence
历史分时KDJ
API接口链接(可点击验证):api.biyingapi.com/hsstock/history/kdj/000001.SZ/d/n/biyinglicence
API说明文档
股票基础信息
API接口:http://api.biyingapi.com/hsstock/instrument/000001.SZ/biyinglicence
接口说明:依据《股票列表》中的股票代码获取股票的基础信息
数据更新:每日1点
返回格式:标准Json格式 [{},…{}]
字段名称 | 数据类型 | 字段说明 |
---|---|---|
ei | string | 市场代码 |
ii | string | 股票代码 |
name | string | 股票名称 |
od | string | 上市日期(股票IPO日期) |
pc | float | 前收盘价格 |
up | float | 当日涨停价 |
dp | float | 当日跌停价 |
fv | float | 流通股本 |
tv | float | 总股本 |
pk | float | 最小价格变动单位 |
is | int | 股票停牌状态(<=0:正常交易(-1:复牌);>=1停牌天数;) |
实时交易数据
API接口:https://api.biyingapi.com/hsstock/real/time/000001/biyinglicence
接口说明:根据《股票列表》得到的股票代码获取实时交易数据(您可以理解为日线的最新数据)。
数据更新:实时
返回格式:标准Json格式 [{},…{}]
字段名称 | 数据类型 | 字段说明 |
---|---|---|
p | number | 最新价 |
o | number | 开盘价 |
h | number | 最高价 |
l | number | 最低价 |
yc | number | 前收盘价 |
cje | number | 成交总额 |
v | number | 成交总量 |
pv | number | 原始成交总量 |
t | string | 更新时间 |
ud | float | 涨跌额 |
pc | float | 涨跌幅 |
zf | float | 振幅 |
t | string | 更新时间 |
pe | number | 市盈率 |
tr | number | 换手率 |
pb_ratio | number | 市净率 |
tv | number | 成交量 |
实时交易(公开数据)
API接口:http://api.biyingapi.com/hsrl/ssjy/000001/biyinglicence
接口说明:根据《股票列表》得到的股票代码获取实时交易数据(您可以理解为日线的最新数据)。
数据更新:交易时间段每1分钟
返回格式:标准Json格式 [{},…{}]
字段名称 | 数据类型 | 字段说明 |
---|---|---|
fm | number | 五分钟涨跌幅(%) |
h | number | 最高价(元) |
hs | number | 换手(%) |
lb | number | 量比(%) |
l | number | 最低价(元) |
lt | number | 流通市值(元) |
o | number | 开盘价(元) |
pe | number | 市盈率(动态,总市值除以预估全年净利润,例如当前公布一季度净利润1000万,则预估全年净利润4000万) |
pc | number | 涨跌幅(%) |
p | number | 当前价格(元) |
sz | number | 总市值(元) |
cje | number | 成交额(元) |
ud | number | 涨跌额(元) |
v | number | 成交量(手) |
yc | number | 昨日收盘价(元) |
zf | number | 振幅(%) |
zs | number | 涨速(%) |
sjl | number | 市净率 |
zdf60 | number | 60日涨跌幅(%) |
zdfnc | number | 年初至今涨跌幅(%) |
t | string | 更新时间yyyy-MM-ddHH:mm:ss |
最新分时交易
API接口链接(可点击验证):api.biyingapi.com/hsstock/latest/000001.SZ/d/n/biyinglicence?lt=1
接口说明:根据《股票列表》得到的股票代码和分时级别获取最新交易数据,交易时间升序。目前分时级别支持5分钟、15分钟、30分钟、60分钟、日线、周线、月线、年线,对应的请求参数分别为5、15、30、60、d、w、m、y,除权方式有不复权、前复权、后复权、等比前复权、等比后复权,对应的参数分别为n、f、b、fr、br,分钟级无除权数据,对应的参数为n。
数据更新:实时
字段名称 | 数据类型 | 字段说明 |
---|---|---|
t | string | 交易时间 |
o | float | 开盘价 |
h | float | 最高价 |
l | float | 最低价 |
c | float | 收盘价 |
v | float | 成交量 |
a | float | 成交额 |
pc | float | 前收盘价 |
sf | int | 停牌 1停牌,0 不停牌 |
历史分时交易
API接口链接(可点击验证):api.biyingapi.com/hsstock/history/000001.SZ/d/n/biyinglicence?st=20250101&et=20250430<=100
接口说明:根据《股票列表》得到的股票代码和分时级别获取历史交易数据,交易时间升序。目前分时级别支持5分钟、15分钟、30分钟、60分钟、日线、周线、月线、年线,对应的请求参数分别为5、15、30、60、d、w、m、y,除权方式有不复权、前复权、后复权、等比前复权、等比后复权,对应的参数分别为n、f、b、fr、br,分钟级无除权数据,对应的参数为n。开始时间以及结束时间的格式均为 YYYYMMDD 或 YYYYMMDDhhmmss,例如:‘20240101’ 或’20241231235959’。不设置开始时间和结束时间则为全部历史数据。
数据更新:分钟级别数据盘中更新,分时越小越优先更新,如5分钟级别会每5分钟更新,15分钟级别会每15分钟更新,以此类推,日线及以上级别每日15:30开始更新,预计17:10完成
字段名称 | 数据类型 | 字段说明 |
---|---|---|
t | string | 交易时间 |
o | float | 开盘价 |
h | float | 最高价 |
l | float | 最低价 |
c | float | 收盘价 |
v | float | 成交量 |
a | float | 成交额 |
pc | float | 前收盘价 |
sf | int | 停牌 1停牌,0 不停牌 |
历史分时MACD
API接口链接(可点击验证):api.biyingapi.com/hsstock/history/macd/000001.SZ/d/n/biyinglicence
接口说明:根据《股票列表》得到的股票代码和分时级别获取历史MACD数据,交易时间升序。目前分时级别支持5分钟、15分钟、30分钟、60分钟、日线、周线、月线、年线,对应的请求参数分别为5、15、30、60、d、w、m、y,日线以上除权方式有不复权、前复权、后复权、等比前复权、等比后复权,对应的参数分别为n、f、b、fr、br,分钟级仅限请求不复权数据,对应的参数为n。开始时间以及结束时间的格式均为 YYYYMMDD 或 YYYYMMDDhhmmss,例如:‘20240101’ 或’20241231235959’。不设置开始时间和结束时间则为全部历史数据。同时可以指定获取数据条数,例如指定lt=10,则获取最新的10条数据。
数据更新:分钟级别数据盘中更新,分时越小越优先更新,如5分钟级别会每5分钟更新,15分钟级别会每15分钟更新,以此类推,日线及以上级别每日15:35更新
字段名称 | 数据类型 | 字段说明 |
---|---|---|
t | string | 交易时间,短分时级别格式为yyyy-MM-ddHH:mm:ss,日线级别为yyyy-MM-dd |
diff | number | DIFF值 |
dea | number | DEA值 |
macd | number | MACD值 |
ema12 | number | EMA(12)值 |
ema26 | number | EMA(26)值 |
历史分时MA
API接口链接(可点击验证):api.biyingapi.com/hsstock/history/ma/000001.SZ/d/n/biyinglicence
接口说明:根据《股票列表》得到的股票代码和分时级别获取历史MA数据,交易时间升序。目前分时级别支持5分钟、15分钟、30分钟、60分钟、日线、周线、月线、年线,对应的请求参数分别为5、15、30、60、d、w、m、y,日线以上除权方式有不复权、前复权、后复权、等比前复权、等比后复权,对应的参数分别为n、f、b、fr、br,分钟级仅限请求不复权数据,对应的参数为n。开始时间以及结束时间的格式均为 YYYYMMDD 或 YYYYMMDDhhmmss,例如:‘20240101’ 或’20241231235959’。不设置开始时间和结束时间则为全部历史数据。同时可以指定获取数据条数,例如指定lt=10,则获取最新的10条数据。
数据更新:分钟级别数据盘中更新,分时越小越优先更新,如5分钟级别会每5分钟更新,15分钟级别会每15分钟更新,以此类推,日线及以上级别每日15:35更新
字段名称 | 数据类型 | 字段说明 |
---|---|---|
t | string | 交易时间,短分时级别格式为yyyy-MM-ddHH:mm:ss,日线级别为yyyy-MM-dd |
ma3 | number | MA3,没有则为null |
ma5 | number | MA5,没有则为null |
ma10 | number | MA10,没有则为null |
ma15 | number | MA15,没有则为null |
ma20 | number | MA20,没有则为null |
ma30 | number | MA30,没有则为null |
ma60 | number | MA60,没有则为null |
ma120 | number | MA120,没有则为null |
ma200 | number | MA200,没有则为null |
ma250 | number | MA250,没有则为null |
历史分时BOLL
API接口链接(可点击验证):api.biyingapi.com/hsstock/history/boll/000001.SZ/d/n/biyinglicence
接口说明:根据《股票列表》得到的股票代码和分时级别获取历史BOLL数据,交易时间升序。目前分时级别支持5分钟、15分钟、30分钟、60分钟、日线、周线、月线、年线,对应的请求参数分别为5、15、30、60、d、w、m、y,日线以上除权方式有不复权、前复权、后复权、等比前复权、等比后复权,对应的参数分别为n、f、b、fr、br,分钟级仅限请求不复权数据,对应的参数为n。开始时间以及结束时间的格式均为 YYYYMMDD 或 YYYYMMDDhhmmss,例如:‘20240101’ 或’20241231235959’。不设置开始时间和结束时间则为全部历史数据。同时可以指定获取数据条数,例如指定lt=10,则获取最新的10条数据。
数据更新:分钟级别数据盘中更新,分时越小越优先更新,如5分钟级别会每5分钟更新,15分钟级别会每15分钟更新,以此类推,日线及以上级别每日15:35更新
字段名称 | 数据类型 | 字段说明 |
---|---|---|
t | string | 交易时间,短分时级别格式为yyyy-MM-ddHH:mm:ss,日线级别为yyyy-MM-dd |
u | number | 上轨 |
d | number | 下轨 |
m | number | 中轨 |
历史分时KDJ
API接口:http://api.biyingapi.com/hsstock/history/kdj/000001.SZ/d/n/biyinglicence
接口说明:根据《股票列表》得到的股票代码和分时级别获取历史KDJ数据,交易时间升序。目前分时级别支持5分钟、15分钟、30分钟、60分钟、日线、周线、月线、年线,对应的请求参数分别为5、15、30、60、d、w、m、y,日线以上除权方式有不复权、前复权、后复权、等比前复权、等比后复权,对应的参数分别为n、f、b、fr、br,分钟级仅限请求不复权数据,对应的参数为n。开始时间以及结束时间的格式均为 YYYYMMDD 或 YYYYMMDDhhmmss,例如:‘20240101’ 或’20241231235959’。不设置开始时间和结束时间则为全部历史数据。同时可以指定获取数据条数,例如指定lt=10,则获取最新的10条数据。
数据更新:分钟级别数据盘中更新,分时越小越优先更新,如5分钟级别会每5分钟更新,15分钟级别会每15分钟更新,以此类推,日线及以上级别每日15:35更新
字段名称 | 数据类型 | 字段说明 |
---|---|---|
t | string | 交易时间,短分时级别格式为yyyy-MM-ddHH:mm:ss,日线级别为yyyy-MM-dd |
k | number | K值 |
d | number | D值 |
j | number | J值 |
三、使用注意事项
在开始使用这些API时,有几点需要特别注意:
- 遵守频率限制:所有免费API都对请求频率有限制。例如,新浪历史数据接口建议每分钟不超过10次请求,实时数据每5秒不超过1次。高频请求可能导致IP被暂时封锁。
- 准备备用方案:免费API的服务稳定性可能变化,对于重要项目,最好有备用数据源(如同时配置AkShare和另一个API)。
- 理解数据含义:在使用前,务必查阅相关文档,准确理解每个返回字段的含义,比如“前复权”和“不复权”的区别,以确保分析结果的准确性。
希望这份梳理能帮助你顺利找到合适的股票数据接口,或者具体的使用场景,或许我可以提供更具体的建议。