OKEx为用户提供了一整套简单而又强大的开发工具,旨在帮助用户快速、高效地将OKEx交易功能整合到自己的应用当中。
OKEx接口是提供服务的基础,开发者在OKEx网站创建账号后,可以根据自身需求建立不同权限的API,并利用API进行自动交易或者提现。
通过API可以快速实现以下功能:
- 获取市场最新行情
- 获取买卖深度信息
- 查询可用和冻结金额
- 查询自己当前尚未成交的挂单
- 快速买进卖出
- 批量撤单
- 快速提现到您的认证地址
获取接口权限后,可以通过阅读本接口文档来帮助开发。
OKEx为用户提供了三种调用接口的方式,开发者可根据自己的使用场景和偏好选择适合自己的方式来查询行情、进行交易或提现。
REST,即Representational State Transfer的缩写,是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,正得到越来越多网站的采用。其优点如下:
- 在RESTful架构中,每一个URL代表一种资源;
- 客户端和服务器之间,传递这种资源的某种表现层;
- 客户端通过四个HTTP指令,对服务器端资源进行操作,实现“表现层状态转化”。
建议开发者使用REST API进行币币交易或者资产提现等操作。
WebSocket是HTML5一种新的协议(Protocol)。它实现了客户端与服务器全双工通信,使得数据可以快速地双向传播。通过一次简单的握手就可以建立客户端和服务器连接,服务器根据业务规则可以主动推送信息给客户端。其优点如下:
- 客户端和服务器进行数据传输时,请求头信息比较小,大概2个字节;
- 客户端和服务器皆可以主动地发送数据给对方;
- 不需要多次创建TCP请求和销毁,节约宽带和服务器的资源。
强烈建议开发者使用WebSocket API获取市场行情和买卖深度等信息。
用户的API权限在网站的基本设置->我的API内获取。点击申请API即可获得,其中apiKey是OKEx提供给API用户的访问密钥,secretKey用于对请求参数签名的私钥。
注意: 请勿向任何人泄露这两个参数,这两个参数关乎您账号的安全。
用户提交的参数除sign外,都要参与签名。
首先,将待签名字符串要求按照参数名进行排序(首先比较所有参数名的第一个字母,按abcd顺序排列,若遇到相同首字母,则看第二个字母,以此类推)。
例如:对于如下的参数进行签名
string[] parameters={"api_key=c821db84-6fbd-11e4-a9e3-c86000d26d7c","symbol=btc_cny","type=buy","price=680","amount=1.0"};
生成待签名的字符串
amount=1.0&api_key=c821db84-6fbd-11e4-a9e3-c86000d26d7c&price=680&symbol=btc_cny&type=buy
然后,将待签名字符串添加私钥参数生成最终待签名字符串。例如:
amount=1.0&api_key=c821db84-6fbd-11e4-a9e3-c86000d26d7c&price=680&symbol=btc_cny&type=buy&secret_key=secretKey
注意,&secret\_key=secretKey
为签名必传参数。
最后,是利用32位MD5算法,对最终待签名字符串进行签名运算,从而得到签名结果字符串(该字符串赋值于参数sign),MD5计算结果中字母全部大写。
2017年11月06日更新
- 比特币现金简写BCC变更为BCH。
2017年10月27日更新
- API支持了ETH、ETC新合约交易。
2017年10月12日更新
- API支持了USDT币币交易。
2017年9月21日更新
- 优化了REST API提币、取消提币、查询提币等接口:从合约交易迁移至币币交易API;
- 提币、取消提币、查询提币等接口支持了ETH、ETC、BCC。
2017年8月30日更新
- 优化了REST API接口返回码的部分内容,新增了部分接口返回码。
REST,即Representational State Transfer的缩写,是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,正得到越来越多网站的采用。其优点如下:
- 在RESTful架构中,每一个URL代表一种资源;
- 客户端和服务器之间,传递这种资源的某种表现层;
- 客户端通过四个HTTP指令,对服务器端资源进行操作,实现“表现层状态转化”。
建议开发者使用REST API进行币币交易或者资产提现等操作。
REST访问的根URL:https://www.okex.com/api/v1
所有请求基于Https协议,请求头信息中contentType需要统一设置为:application/x-www-form-urlencoded
请求交互说明
- 请求参数:根据接口请求参数规定进行参数封装。
- 提交请求参数:将封装好的请求参数通过POST 或GET 方式提交至服务器。
- 服务器响应:服务器首先对用户请求数据进行参数安全校验,通过校验后根据业务逻辑将响应数据以JSON格式返回给用户。
- 数据处理:对服务器响应数据进行处理。
错误代码(币币)
错误代码 | 详细描述 |
---|---|
10000 | 必选参数不能为空 |
10001 | 用户请求频率过快,超过该接口允许的限额 |
10002 | 系统错误 |
10004 | 请求失败 |
10005 | SecretKey不存在 |
10006 | Api_key不存在 |
10007 | 签名不匹配 |
10008 | 非法参数 |
10009 | 订单不存在 |
10010 | 余额不足 |
10011 | 买卖的数量小于BTC/LTC最小买卖额度 |
10012 | 当前网站暂时只支持btc_usd ltc_usd |
10013 | 此接口只支持https请求 |
10014 | 下单价格不得≤0或≥ |
10015 | 下单价格与最新成交价偏差过大 |
10016 | 币数量不足 |
10017 | API鉴权失败 |
10018 | 借入不能小于最低限额[USD:100,BTC:0.1,LTC:1] |
10019 | 页面没有同意借贷协议 |
10020 | 费率不能大于1% |
10021 | 费率不能小于0.01% |
10023 | 获取最新成交价错误 |
10024 | 可借金额不足 |
10025 | 额度已满,暂时无法借款 |
10026 | 借款(含预约借款)及保证金部分不能提出 |
10027 | 修改敏感提币验证信息,24小时内不允许提现 |
10028 | 提币金额已超过今日提币限额 |
10029 | 账户有借款,请撤消借款或者还清借款后提币 |
10031 | 存在BTC/LTC充值,该部分等值金额需6个网络确认后方能提出 |
10032 | 未绑定手机或谷歌验证 |
10033 | 服务费大于最大网络手续费 |
10034 | 服务费小于最低网络手续费 |
10035 | 可用BTC/LTC不足 |
10036 | 提币数量小于最小提币数量 |
10037 | 交易密码未设置 |
10040 | 取消提币失败 |
10041 | 提币地址不存在或未认证 |
10042 | 交易密码错误 |
10043 | 合约权益错误,提币失败 |
10044 | 取消借款失败 |
10047 | 当前为子账户,此功能未开放 |
10048 | 提币信息不存在 |
10049 | 小额委托(<0.15BTC)的未成交委托数量不得大于50个 |
10050 | 重复撤单 |
10052 | 提币受限 |
10064 | 美元充值后的48小时内,该部分资产不能提出 |
10100 | 账户被冻结 |
10101 | 订单类型错误 |
10102 | 不是本用户的订单 |
10103 | 私密订单密钥错误 |
10216 | 非开放API |
1002 | 交易金额大于余额 |
1003 | 交易金额小于最小交易值 |
1004 | 交易金额小于0 |
1007 | 没有交易市场信息 |
1008 | 没有最新行情信息 |
1009 | 没有订单 |
1010 | 撤销订单与原订单用户不一致 |
1011 | 没有查询到该用户 |
1013 | 没有订单类型 |
1014 | 没有登录 |
1015 | 没有获取到行情深度信息 |
1017 | 日期参数错误 |
1018 | 下单失败 |
1019 | 撤销订单失败 |
1024 | 币种不存在 |
1025 | 没有K线类型 |
1026 | 没有基准币数量 |
1027 | 参数不合法可能超出限制 |
1028 | 保留小数位失败 |
1029 | 正在准备中 |
1030 | 有融资融币无法进行交易 |
1031 | 转账余额不足 |
1032 | 该币种不能转账 |
1035 | 密码不合法 |
1036 | 谷歌验证码不合法 |
1037 | 谷歌验证码不正确 |
1038 | 谷歌验证码重复使用 |
1039 | 短信验证码输错限制 |
1040 | 短信验证码不合法 |
1041 | 短信验证码不正确 |
1042 | 谷歌验证码输错限制 |
1043 | 登陆密码不允许与交易密码一致 |
1044 | 原密码错误 |
1045 | 未设置二次验证 |
1046 | 原密码未输入 |
1048 | 用户被冻结 |
1050 | 订单已撤销或者撤单中 |
1051 | 订单已完成交易 |
1201 | 账号零时删除 |
1202 | 账号不存在 |
1203 | 转账金额大于余额 |
1204 | 不同种币种不能转账 |
1205 | 账号不存在主从关系 |
1206 | 提现用户被冻结 |
1207 | 不支持转账 |
1208 | 没有该转账用户 |
1209 | 当前api不可用 |
1216 | 市价交易暂停,请选择限价交易 |
1217 | 您的委托价格超过最新成交价的±5%,存在风险,请重新下单 |
1218 | 下单失败,请稍后再试 |
HTTP错误码403 | 用户请求过快,IP被屏蔽 |
Ping不通 | 用户请求过快,IP被屏蔽 |
错误代码(合约)
错误代码 | 详细描述 |
---|---|
20001 | 用户不存在 |
20002 | 用户被冻结 |
20003 | 用户被爆仓冻结 |
20004 | 合约账户被冻结 |
20005 | 用户合约账户不存在 |
20006 | 必填参数为空 |
20007 | 参数错误 |
20008 | 合约账户余额为空 |
20009 | 虚拟合约状态错误 |
20010 | 合约风险率信息不存在 |
20011 | 10倍/20倍杠杆开BTC前保证金率低于90%/80%,10倍/20倍杠杆开LTC前保证金率低于80%/60% |
20012 | 10倍/20倍杠杆开BTC后保证金率低于90%/80%,10倍/20倍杠杆开LTC后保证金率低于80%/60% |
20013 | 暂无对手价 |
20014 | 系统错误 |
20015 | 订单信息不存在 |
20016 | 平仓数量是否大于同方向可用持仓数量 |
20017 | 非本人操作 |
20018 | 下单价格高于前一分钟的103%或低于97% |
20019 | 该IP限制不能请求该资源 |
20020 | 密钥不存在 |
20021 | 指数信息不存在 |
20022 | 接口调用错误(全仓模式调用全仓接口,逐仓模式调用逐仓接口) |
20023 | 逐仓用户 |
20024 | sign签名不匹配 |
20025 | 杠杆比率错误 |
20026 | API鉴权错误 |
20027 | 无交易记录 |
20028 | 合约不存在 |
20029 | 转出金额大于可转金额 |
20030 | 账户存在借款 |
20038 | 根据相关法律,您所在的国家或地区不能使用该功能。 |
20049 | 用户请求接口过于频繁 |
HTTP错误码403 | 用户请求过快,IP被屏蔽 |
Ping不通 | 用户请求过快,IP被屏蔽 |