关键词: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
最新成交价、vol
24h 成交量、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、type
buy/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
数组中的-1
error_code
,再匹配orders_data
的索引即可。 - Q:Kline 的 2000 条数据完整吗?
A:默认返回 2000 条,若使用since
时间戳则会截断,因而建议先全量后增量更新。
下一步行动
将上述接口组合即可覆盖 90% 的量化场景:
- 看盘模块:定时获取
ticker
+depth
,监测深度与价差。 - 策略模块:接收回推信号,通过
trade
/batch_trade
快速打单。 - 风控模块:用
userinfo
+borrows_info
监控保证金水平,withdraw_info
跟踪资产流出。
即刻开始编写属于你的高频脚本,市场下一波动或许就来自于你的算法判断——立即访问 👉 官方示例、费率及深度数据一次看全