关键词:OKCoin API、数字货币行情、RESTful 接口、比特币交易、量化投资、API 调用示例、合约接口
OKCoin 的 REST API 提供了稳定且高频限放宽的数字资产数据通道,无论你是做量化回测、价格监控,还是自己搭建资产看板,都能通过简洁的 HTTP 请求完成。以下内容覆盖行情、交易、借贷及资金流水全部常用端点,并给出可直接落地的调用示例。
行情类接口(无需登录)
1. 实时行情 Ticker
请求方式:HTTP GET
URL:https://okxdog.com/api/v1/ticker.do
- symbol(可选):
btc_cny,ltc_cny,eth_cny,etc_cny,bch_cny 返回示例:
{ "date": "1410431279", "ticker": { "buy": "33.15", "high": "34.15", "last": "33.15", "low": "32.05", "sell": "33.16", "vol": "10532696.39199642" } }- 关键字段:
last最新成交价、vol24h 成交量、buy/sell买一卖一价。
2. 市场深度 Depth
请求方式:HTTP GET
URL:https://okxdog.com/api/v1/depth.do
参数
symbol(必填)size(可选,1-200,默认 200)merge(可选,0.01 深度合并精度)
返回示例:
{ "asks": [[792, 5], [789.68, 0.018]], "bids": [[787.1, 0.35], [787, 12.071]] }- 用途:抓取买卖十档挂单,组建盘口矩阵或做市机器人。
3. 实时成交 Trades
请求方式:HTTP GET
URL:https://okxdog.com/api/v1/trades.do
- 参数:
symbol、since(返回大于此 tid 的 60 条最新成交) - 字段解释:
tid交易 ID、typebuy/sell、date_ms毫秒时间戳,非常适合高频监控系统。 - 小技巧:第一次抓全量,
since留空;之后轮询时将上一次最大tid作为参数,即可获得增量成交数据。
4. K 线数据 Kline
请求方式:HTTP GET
URL:https://okxdog.com/api/v1/kline.do
参数
symbol(必填)type(必选, 1min/5min/1hour/1day 等)size(最多 2000 条)since(只在时间戳之后)
返回示例:
[ [1417536000000, 2370.16, 2380, 2352, 2367.37, 17259.83] ]- OHLCV 序列,直接喂给量化回测框架,开发效率翻倍。
用户私有接口(需要 API Key & 签名)
统一鉴权方式
所有私有接口使用 POST,要求以下公共参数:
api_key:在 OKCoin “API 管理”页生成。sign:将api_key之外的所有参数按字典顺序拼接成字符串,再末尾追加&secret_key=YOUR_SECRET进行 MD5 摘要,32 位小写。
调用频率:不同接口有限制,典型如 userinfo 6 次/2 秒,trade 系 20 次/2 秒。
1. 账户信息 userinfo
URL:https://okxdog.com/api/v1/userinfo.do
核心字段:
funds.free:可用余额funds.freezed:冻结余额asset.net:净资产(不含借款)
2. 下单交易 trade
URL:https://okxdog.com/api/v1/trade.do
限价单:提供
price+amount,示例{"symbol":"btc_cny","type":"buy","price":30000,"amount":0.01}- 市价单:市价买单传
price(买入金额),市价卖单传amount,无需提供对方字段。 - 成功返回
{"result":true,"order_id":123456},用cancel_order可撤单。
3. 批量下单 batch_trade
一次可上传多条订单减小延迟,最多 5 笔:orders_data=[{price:..., amount:..., type:'buy'}, ...]
返回按顺序给出各单结果,成功单返回 order_id,失败单返回 error_code。
4. 撤单 cancel_order
- 单订单:
order_id=123456 - 多订单:
order_id=123,124,125
返回不保证即刻撤单,仅表示请求已提交;稍后可用order_info再次确认状态。
5. 订单查询 order_info / orders_info / order_history
order_id=-1时查询所有未完成订单;分页/批量/单条皆支持。- 状态码速查:
-1已撤销,0未成交,1部分成交,2完全成交,4撤单处理中。
资金与借贷系统
提币 & 记录
withdraw:申请提币,包含withdraw_address、withdraw_amount、trade_pwd、chargefee(网络手续费)。withdraw_info与cancel_withdraw:随时查询或撤回未执行提币申请。account_records:同时抓充值、提现双向流水;分页 50 条。
杠杆借贷
borrows_info:查看已借、待还、今日利息。borrow_money:申请 BTC/LTC/CNY 借款,需设定days与rate:区间 0.01%–1%/日。repayment:一键清偿对应借款单。unrepayments_info:待还款列表,方便脚本每日自动计息并提醒补仓。
高频开发示例(Python)
import time, requests, hashlib
API = 'YOUR_KEY'
SECRET = 'YOUR_SECRET'
BASE = 'https://okxdog.com/api/v1/{}'
def sign(params):
query = '&'.join([f"{k}={v}" for k, v in sorted(params.items())]) + f"&secret_key={SECRET}"
return hashlib.md5(query.encode()).hexdigest()
def ticker(symbol='btc_cny'):
return requests.get(BASE.format('ticker.do'), params={'symbol': symbol}).json()
def place_order(symbol, type_, price, amount):
params = {'api_key': API, 'symbol': symbol, 'type': type_, 'price': price, 'amount': amount}
params['sign'] = sign(params)
return requests.post(BASE.format('trade.do'), data=params).json()
if __name__ == '__main__':
print(ticker()['ticker']['last'])常见问题 FAQ
- Q:返回 10011 错误码怎么办?
A:10011 表示余额不足。调用userinfo确认账户冻结或负债,调整下单金额即可。 - Q:如何优雅地避免 429 被限频?
A:实测各接口限制宽松,若出现 429 可在循环末尾使用time.sleep(0.1)降速;也可用漏桶算法本地限速。 - Q:提币手续费最低能设多少?
A:BTC 建议 ≥0.002,网络拥堵时手续费低会被长时间卡住;节点确认快则更划算。 - Q:批量下单失败但返回
true,如何定位失败单?
A:检查order_info数组中的-1error_code,再匹配orders_data的索引即可。 - Q:Kline 的 2000 条数据完整吗?
A:默认返回 2000 条,若使用since时间戳则会截断,因而建议先全量后增量更新。
下一步行动
将上述接口组合即可覆盖 90% 的量化场景:
- 看盘模块:定时获取
ticker+depth,监测深度与价差。 - 策略模块:接收回推信号,通过
trade/batch_trade快速打单。 - 风控模块:用
userinfo+borrows_info监控保证金水平,withdraw_info跟踪资产流出。
即刻开始编写属于你的高频脚本,市场下一波动或许就来自于你的算法判断——立即访问 👉 官方示例、费率及深度数据一次看全