概览
欢迎查看 V5 API文档。我们提供完整的REST和WebSocket API以满足您的交易需求。
API学习资源与技术支持
教程
- 学习使用V5 API交易: V5 API使用指南
- 学习使用Python交易现货: Python 现货交易教程
- 学习使用Python交易衍生品: Python 衍生品交易教程
Python包
- 使用Python SDK更简单地上手: Python SDK
- 轻松上手Python做市商代码 Python 做市商代码示例
客户服务
- 官方Telegram社群: https://t.me/OKXAPI
- 订阅API更新: https://t.me/OKExAPIChannel
- 请花1分钟时间帮助我们提升我们的服务: V5 API 满意度调研
- 如有问题请咨询线上客服
创建我的APIKey
点击跳转至官网创建V5APIKey的页面 创建我的APIKey
生成APIKey
在对任何请求进行签名之前,您必须通过交易网站创建一个APIKey。创建APIKey后,您将获得3个必须记住的信息:
- APIKey
- SecretKey
- Passphrase
APIKey和SecretKey将由平台随机生成和提供,Passphrase将由您提供以确保API访问的安全性。平台将存储Passphrase加密后的哈希值进行验证,但如果您忘记Passphrase,则无法恢复,请您通过交易网站重新生成新的APIKey。
API key 有如下3种权限,一个 API key 可以有一个或多个权限。
- 读取 :查询账单和历史记录等 读权限
- 提现 :可以进行提币
- 交易 :可以下单和撤单,转账,调整配置 等写权限
REST 请求验证
发起请求
所有REST私有请求头都必须包含以下内容:
OK-ACCESS-KEY
字符串类型的APIKey。OK-ACCESS-SIGN
使用HMAC SHA256哈希函数获得哈希值,再使用Base-64编码(请参阅签名)。OK-ACCESS-TIMESTAMP
发起请求的时间(UTC),如:2020-12-08T09:08:57.715ZOK-ACCESS-PASSPHRASE
您在创建API密钥时指定的Passphrase。
所有请求都应该含有application/json类型内容,并且是有效的JSON。
签名
生成签名
OK-ACCESS-SIGN
的请求头是对timestamp + method + requestPath + body
字符串(+表示字符串连接),以及SecretKey,使用HMAC SHA256方法加密,通过Base-64编码输出而得到的。
如:sign=CryptoJS.enc.Base64.stringify(CryptoJS.HmacSHA256(timestamp + 'GET' + '/api/v5/account/balance?ccy=BTC', SecretKey))
其中,timestamp
的值与OK-ACCESS-TIMESTAMP
请求头相同,为ISO格式,如2020-12-08T09:08:57.715Z
。
method是请求方法,字母全部大写:GET/POST
。
requestPath是请求接口路径。如:/api/v5/account/balance
body是指请求主体的字符串,如果请求没有主体(通常为GET请求)则body可省略。如:{"instId":"BTC-USDT","lever":"5","mgnMode":"isolated"}
SecretKey为用户申请APIKey时所生成。如:22582BD0CFF14C41EDBF1AB98506286D
WebSocket
概述
WebSocket是HTML5一种新的协议(Protocol)。它实现了用户端与服务器全双工通信, 使得数据可以快速地双向传播。通过一次简单的握手就可以建立用户端和服务器连接, 服务器根据业务规则可以主动推送信息给用户端。其优点如下:
- 用户端和服务器进行数据传输时,请求头信息比较小,大概2个字节。
- 用户端和服务器皆可以主动地发送数据给对方。
- 不需要多次创建TCP请求和销毁,节约宽带和服务器的资源。
连接
连接限制:3 次/秒 (基于IP)
当订阅公有频道时,使用公有服务的地址;当订阅私有频道时,使用私有服务的地址
请求限制:
每个连接 对于 订阅
/取消订阅
/登录
请求的总次数限制为 480 次/小时
连接限制
子账户维度,订阅每个 WebSocket 频道的最大连接数为 20 个。每个 WebSocket 连接都由唯一的 connId 标识。
受此限制的 WebSocket 频道如下:
若用户通过不同的请求参数在同一个 WebSocket 连接下订阅同一个频道,例如使用 {"channel": "orders", "instType": "ANY"}
和 {"channel": "orders", "instType": "SWAP"}
,只算为一次连接。若用户使用相同或不同的 WebSocket 连接订阅上述频道,例如订单频道和账户频道。在该两个频道之间,计数不会累计,因为它们被视作不同的频道。简言之,系统计算每个频道对应的 WebSocket 连接数量。
新链接订阅频道时,平台将对该订阅返回channel-conn-count
的消息同步链接数量。
链接数量更新
{
"event":"channel-conn-count",
"channel":"orders",
"connCount": "2",
"connId":"abcd1234"
}
当超出限制时,一般最新订阅的链接会收到拒绝。用户会先收到平时的订阅成功信息然后收到channel-conn-count-error
消息,代表平台终止了这个链接的订阅。在异常场景下平台会终止已订阅的现有链接。
链接数量限制报错
{
"event": "channel-conn-count-error",
"channel": "orders",
"connCount": "20",
"connId":"a4d3ae55"
}
通过 WebSocket 进行的订单操作,例如下单、修改和取消订单,不会受到此改动影响。
登录
请求示例
{
"op": "login",
"args":
[
{
"apiKey": "985d5b66-57ce-40fb-b714-afc0b9787083",
"passphrase": "123456",
"timestamp": "1538054050",
"sign": "7L+zFQ+CEgGu5rzCj4+BdV2/uUHGqddA9pI6ztsRRPs="
}
]
}
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
op | String | 是 | 操作,login |
args | Array | 是 | 账户列表 |
> apiKey | String | 是 | APIKey |
> passphrase | String | 是 | APIKey 的密码 |
> timestamp | String | 是 | 时间戳,Unix Epoch时间,单位是秒 |
> sign | String | 是 | 签名字符串 |
全部成功返回示例
{
"event": "login",
"code": "0",
"msg": "",
"connId": "a4d3ae55"
}
全部失败返回示例
{
"event": "error",
"code": "60009",
"msg": "Login failed.",
"connId": "a4d3ae55"
}
返回参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
event | String | 是 | 操作,login error |
code | String | 否 | 错误码 |
msg | String | 否 | 错误消息 |
connId | String | 是 | WebSocket连接ID |
apiKey:调用API的唯一标识。需要用户手动设置一个 passphrase:APIKey的密码 timestamp:Unix Epoch 时间戳,单位为秒,如 1704876947 sign:签名字符串,签名算法如下:
先将timestamp
、 method
、requestPath
进行字符串拼接,再使用HMAC SHA256方法将拼接后的字符串和SecretKey加密,然后进行Base64编码
SecretKey:用户申请APIKey时所生成的安全密钥,如:22582BD0CFF14C41EDBF1AB98506286D
其中 timestamp 示例:const timestamp = '' + Date.now() / 1,000
其中 sign 示例: sign=CryptoJS.enc.Base64.stringify(CryptoJS.HmacSHA256(timestamp +'GET'+ '/users/self/verify', secret))
method 总是 'GET'
requestPath 总是 '/users/self/verify'
订阅
订阅说明
请求格式说明
{
"op": "subscribe",
"args": ["<SubscriptionTopic> "]
}
WebSocket 频道分成两类: 公共频道
和 私有频道
公共频道
无需登录,包括行情频道,K线频道,交易数据频道,资金费率频道,限价范围频道,深度数据频道,标记价格频道等。
私有频道
需登录,包括用户账户频道,用户交易频道,用户持仓频道等。
用户可以选择订阅一个或者多个频道,多个频道总长度不能超过 64 KB。
以下是一个请求参数的例子。每一个频道的请求参数的要求都不一样。请根据每一个频道的需求来订阅频道。
请求示例
{
"op":"subscribe",
"args":[
{
"channel":"tickers",
"instId":"LTC-USD-200327"
},
{
"channel":"candle1m",
"instId":"LTC-USD-200327"
}
]
}
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
op | String | 是 | 操作,subscribe |
args | Array | 是 | 请求订阅的频道列表 |
> channel | String | 是 | 频道名 |
> instType | String | 否 | 产品类型SPOT :币币 MARGIN :币币杠杆SWAP :永续合约FUTURES :交割合约OPTION :期权ANY :全部 |
> instFamily | String | 否 | 交易品种 适用于 交割/永续/期权 |
> instId | String | 否 | 产品ID |
返回示例
{
"event": "subscribe",
"arg": {
"channel": "tickers",
"instId": "LTC-USD-200327"
},
"connId": "a4d3ae55"
}
返回参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
event | String | 是 | 事件,subscribe error |
arg | Object | 否 | 订阅的频道 |
> channel | String | 是 | 频道名 |
> instType | String | 否 | 产品类型SPOT :币币MARGIN :币币杠杆SWAP :永续合约FUTURES :交割合约OPTION : 期权ANY :全部 |
> instFamily | String | 否 | 交易品种 适用于 交割/永续/期权 |
> instId | String | 否 | 产品ID |
code | String | 否 | 错误码 |
msg | String | 否 | 错误消息 |
connId | String | 是 | WebSocket连接ID |
取消订阅
可以取消一个或者多个频道
请求格式说明
{
"op": "unsubscribe",
"args": ["< SubscriptionTopic > "]
}
请求示例
{
"op": "unsubscribe",
"args":
[
{
"channel" : "tickers",
"instId":"LTC-USD-200327"
},
{
"channel" : "candle1m",
"instId":"LTC-USD-200327"
}
]
}
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
op | String | 是 | 操作,unsubscribe |
args | Array | 是 | 取消订阅的频道列表 |
> channel | String | 是 | 频道名 |
> instType | String | 否 | 产品类型SPOT :币币MARGIN :币币杠杆SWAP :永续合约FUTURES :交割合约OPTION :期权ANY :全部 |
> instFamily | String | 否 | 交易品种 适用于 交割/永续/期权 |
> instId | String | 否 | 产品ID |
返回示例
{
"event": "unsubscribe",
"arg": {
"channel": "tickers",
"instId": "LTC-USD-200327"
},
"connId": "a4d3ae55"
}
返回参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
event | String | 是 | 事件,unsubscribe error |
arg | Object | 否 | 取消订阅的频道 |
> channel | String | 是 | 频道名 |
> instType | String | 否 | 产品类型SPOT :币币MARGIN :币币杠杆SWAP :永续合约FUTURES :交割合约OPTION :期权ANY :全部 |
> instFamily | String | 否 | 交易品种 适用于 交割/永续/期权 |
> instId | String | 否 | 产品ID |
code | String | 否 | 错误码 |
msg | String | 否 | 错误消息 |
connId | String | 是 | WebSocket连接ID |
账户模式
为了方便您的交易体验,请在开始交易前设置适当的账户模式。
交易账户交易系统提供四个账户模式,分别为现货模式
、现货和合约模式
、跨币种保证金模式
以及组合保证金模式
。
账户模式的首次设置,需要在网页或手机app上进行。
实盘交易
实盘API交易地址如下:
- REST:
https://eea.okx.com
- WebSocket公共频道:
wss://wseea.okx.com:8443/ws/v5/public
- WebSocket私有频道:
wss://wseea.okx.com:8443/ws/v5/private
- WebSocket业务频道:
wss://wseea.okx.com:8443/ws/v5/business
交易时效性
由于网络延时或者OKX服务器繁忙会导致订单无法及时处理。如果您对交易时效性有较高的要求,可以灵活设置请求有效截止时间expTime
以达到你的要求。
(批量)下单,(批量)改单接口请求中如果包含expTime
,如果服务器当前系统时间超过expTime
,则该请求不会被服务器处理。
你应跟我们服务器系统时间同步。请用获取系统时间来获取系统时间。
REST API
请求头中设置如下参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
expTime | String | 否 | 请求有效截止时间。Unix时间戳的毫秒数格式,如 1597026383085 |
目前支持如下接口:
请求示例
curl -X 'POST' \
'https://www.okx.com/api/v5/trade/order' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'OK-ACCESS-KEY: *****' \
-H 'OK-ACCESS-SIGN: *****'' \
-H 'OK-ACCESS-TIMESTAMP: *****'' \
-H 'OK-ACCESS-PASSPHRASE: *****'' \
-H 'expTime: 1597026383085' \ // 有效截止时间
-d '{
"instId": "BTC-USDT",
"tdMode": "cash",
"side": "buy",
"ordType": "limit",
"px": "1000",
"sz": "0.01"
}'
WebSocket
请求中设置如下参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
expTime | String | 否 | 请求有效截止时间。Unix时间戳的毫秒数格式,如 1597026383085 |
目前支持如下接口:
请求示例
{
"id": "1512",
"op": "order",
"expTime":"1597026383085", // 有效截止时间
"args": [{
"side": "buy",
"instId": "BTC-USDT",
"tdMode": "isolated",
"ordType": "market",
"sz": "100"
}]
}
限速
我们的 REST 和 WebSocket API 使用限速来保护我们的 API 免受恶意使用,因此我们的交易平台可以可靠和公平地运行。
当请求因限速而被我们的系统拒绝时,系统会返回错误代码 50011(用户请求频率过快,超过该接口允许的限额。请参考 API 文档并限制请求)。
每个接口的限速都不同。 您可以从接口详细信息中找到每个接口的限制。 限速定义详述如下:
WebSocket 登录和订阅限速基于连接。
公共未经身份验证的 REST 限速基于 IP 地址。
私有 REST 限速基于 User ID(子帐户具有单独的 User ID)。
WebSocket 订单管理限速基于 User ID(子账户具有单独的 User ID)。
交易相关API
对于与交易相关的 API(下订单、取消订单和修改订单),以下条件适用:
限速在 REST 和 WebSocket 通道之间共享。
下单、修改订单、取消订单的限速相互独立。
限速在 Instrument ID 级别定义(期权除外)
期权的限速是根据 Instrument Family 级别定义的。 请参阅 获取交易产品基础信息 接口以查看交易品种信息。
批量订单接口和单订单接口的限速也是独立的,除了只有一个订单发送到批量订单接口时,该订单将被视为一个订单并采用单订单限速。
子账户限速
子账户维度,每2秒最多允许1000个订单相关请求。仅有新订单及修改订单请求会被计入此限制。此限制涵盖以下所列的所有接口。对于包含多个订单的批量请求,每个订单将被单独计数。如果请求频率超过限制,系统会返回50061错误码。产品ID维度的限速规则保持不变,现有的限速规则与新增的子账户维度限速将并行运行。若用户需要更高的速率限制,可以通过多个子账户进行交易。
基于成交比率的子账户限速
仅适用于用户等级 >= VIP5的用户。
为了激励更高效的交易,交易所将为交易成交比率高的用户提供更高的子账户限速。
交易所将在每天 00:00 UTC,根据过去七天的交易数据计算两个比率。
- 子账户成交比率:该比率为(子账户的USDT对应交易量)/(每个交易产品的新增和修改请求数 * 交易产品乘数之和)。请注意,在这种情况下,母账户自身也被视为一个“子账户”。
- 母账户合计成交比率:该比率为(母账户层面的USDT对应交易量)/(所有子账户各个交易产品的新增和修改请求数 * 交易产品乘数之和)。
交易产品乘数允许我们微调每个交易产品对成交比率的影响权重。较小的交易产品乘数(<1)适用于小币对及合约,在交易这些币对、合约时,为达到相同交易量往往需要更多的订单。所有的交易产品都有默认乘数,部分交易产品有独立的乘数。详情请见下表。
业务线 | 覆盖规则 | 独立乘数 | 默认乘数 |
---|---|---|---|
永续 | 产品ID | 1 产品ID: BTC-USDT-SWAP BTC-USD-SWAP ETH-USDT-SWAP ETH-USD-SWAP |
0.2 |
交割 | 交易品种 | 0.3 交易品种: BTC-USDT BTC-USD ETH-USDT ETH-USD |
0.1 |
币币 | 产品ID | 0.5 产品ID: BTC-USDT ETH-USDT |
0.1 |
期权 | 交易品种 | 0.1 |
成交比率计算不包括大宗交易,价差交易,做市商保护(MMP),以及法币类型订单对应的订单数量;并且不包括大宗交易,价差交易对应的交易量。仅考虑 sCode = 0
的成功请求。
每日 08:00 UTC,系统将根据UTC时间 00:00 的数据快照,选取子账户成交比率及母账户合计成交比率中的较大值决定子账户的未来限速。详情请见下表。对于独立经纪商,系统只会取子账户的成交比率。
成交比率[x<=比率<y) | 子账户每2秒限速(新订单及修改订单请求) | |
---|---|---|
Tier 1 | [0,1) | 1,000 |
Tier 2 | [1,2) | 1,250 |
Tier 3 | [2,3) | 1,500 |
Tier 4 | [3,5) | 1,750 |
Tier 5 | [5,10) | 2,000 |
Tier 6 | [10,20) | 2,500 |
Tier 7 | [20,50) | 3,000 |
Tier 8 | >= 50 | 10,000 |
若成交比率和预期限速有所改善,则提升将于 08:00 (UTC) 立即生效。但若成交比率下降,需要降低未来限速,系统将给予一天的宽限期,降低后的速率限制将在 T+1 08:00 (UTC) 实施。在 T+1 时,若成交比率提高,则将立即授予更高的限速。若用户的交易手续费等级降级为 VIP4,其限速将降低为最低档位,并有一天的宽限期。
若子账户7日交易量低于1,000,000 USDT,则按照母账户的合计成交比率实施限速。
对于新创建的子账户,创建时将应用最低档位限速,在 T+1 08:00 (UTC)时,将开始应用上述限速规则。
大宗交易、价差交易、做市商保护(MMP)以及币币、币币杠杆订单不受子账户限速限制。
交易所提供 GET / 获取账户限速 接口以便用户查询成交比率以及限速数据,数据将于每天 08:00 (UTC) 更新。该接口将返回子账户成交比率,母账户合计成交比率,子账户当前限速以及 T+1 时的预期子账户限速(适用于限速降级)。
成交比率、限速计算样例如下。用户有三个账户,交易产品 BTC-USDT-SWAP 及 XRP-USDT 的乘数分别为1,0.1。
- 账户 A(母账户):
- BTC-USDT-SWAP 交易量为100 USDT,订单数量为10;
- XRP-USDT 交易量为20 USDT,订单数量为15;
- 子账户成交比率 = (100+20) / (10 * 1 + 15 * 0.1) = 10.4
- 账户 B (子账户):
- BTC-USDT-SWAP 交易量为200 USDT,订单数量为100;
- XRP-USDT 交易量为20 USDT,订单数量为30;
- 子账户成交比率 = (200+20) / (100 * 1 + 30 * 0.1) = 2.13
- 账户 C (子账户):
- BTC-USDT-SWAP 交易量为300 USDT,订单数量为100;
- XRP-USDT 交易量为20 USDT,订单数量为45;
- 子账户成交比率 = (300+20) / (100 * 1 + 45 * 0.1) = 3.06
- 母账户合计成交比率 = (100+20+200+20+300+20) / (10 * 1 + 15 * 0.1 + 100 * 1 + 30 * 0.1 + 100 * 1 + 45 * 0.1) = 3.01
- 账户限速
- 账户 A = max(10.4, 3.01) = 10.4 -> 2500订单请求/2秒
- 账户 B = max(2.13, 3.01) = 3.01 -> 1750订单请求/2秒
- 账户 C = max(3.06, 3.01) = 3.06 -> 1750订单请求/2秒
最佳实践
如果您需要的请求速率高于我们的限速,您可以设置不同的子账户来批量请求限速。 我们建议使用此方法来限制或间隔请求,以最大化每个帐户的限速并避免断开连接或拒绝请求。
交易账户
账户
功能模块下的API接口需要身份验证。
REST API
获取交易产品基础信息
获取当前账户可交易产品的信息列表。
限速:20次/2s
限速规则:UserID + InstType
HTTP请求
GET /api/v5/account/instruments
请求示例
GET /api/v5/account/instruments?instType=SPOT
import okx.Account as Account
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘:0 , 模拟盘:1
accountAPI = Account.AccountAPI(apikey, secretkey, passphrase, False, flag)
result = accountAPI.get_instruments(instType="SPOT")
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instType | String | 是 | 产品类型SPOT :币币MARGIN :币币杠杆SWAP :永续合约FUTURES :交割合约OPTION :期权 |
uly | String | 可选 | 标的指数,仅适用于交割/永续/期权 ,期权必填 |
instFamily | String | 否 | 交易品种,仅适用于交割/永续/期权 |
instId | String | 否 | 产品ID |
返回结果
{
"code": "0",
"data": [
{
"baseCcy": "BTC",
"ctMult": "",
"ctType": "",
"ctVal": "",
"ctValCcy": "",
"expTime": "",
"instFamily": "",
"instId": "BTC-EUR",
"instType": "SPOT",
"lever": "",
"listTime": "1704876947000",
"lotSz": "0.00000001",
"maxIcebergSz": "9999999999.0000000000000000",
"maxLmtAmt": "1000000",
"maxLmtSz": "9999999999",
"maxMktAmt": "1000000",
"maxMktSz": "1000000",
"maxStopSz": "1000000",
"maxTriggerSz": "9999999999.0000000000000000",
"maxTwapSz": "9999999999.0000000000000000",
"minSz": "0.00001",
"optType": "",
"quoteCcy": "EUR",
"settleCcy": "",
"state": "live",
"ruleType": "normal",
"stk": "",
"tickSz": "1",
"uly": ""
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
instType | String | 产品类型 |
instId | String | 产品id, 如 BTC-USDT |
uly | String | 标的指数,如 BTC-USD ,仅适用于杠杆/交割/永续/期权 |
instFamily | String | 交易品种,如 BTC-USD ,仅适用于杠杆/交割/永续/期权 |
baseCcy | String | 交易货币币种,如 BTC-USDT 中的 BTC ,仅适用于币币/币币杠杆 |
quoteCcy | String | 计价货币币种,如 BTC-USDT 中的USDT ,仅适用于币币/币币杠杆 |
settleCcy | String | 盈亏结算和保证金币种,如 BTC 仅适用于交割/永续/期权 |
ctVal | String | 合约面值,仅适用于交割/永续/期权 |
ctMult | String | 合约乘数,仅适用于交割/永续/期权 |
ctValCcy | String | 合约面值计价币种,仅适用于交割/永续/期权 |
optType | String | 期权类型,C 或P 仅适用于期权 |
stk | String | 行权价格,仅适用于期权 |
listTime | String | 上线时间 Unix时间戳的毫秒数格式,如 1597026383085 |
expTime | String | 产品下线时间 适用于 币币/杠杆/交割/永续/期权 ,对于 交割/期权 ,为交割/行权日期;亦可以为产品下线时间,有变动就会推送。 |
lever | String | 该instId 支持的最大杠杆倍数,不适用于币币 、期权 |
tickSz | String | 下单价格精度,如 0.0001 对于期权来说,是梯度中的最小下单价格精度,如果想要获取期权价格梯度,请使用"获取期权价格梯度"接口 |
lotSz | String | 下单数量精度 合约的数量单位是 张 ,现货的数量单位是交易货币 |
minSz | String | 最小下单数量 合约的数量单位是 张 ,现货的数量单位是交易货币 |
ctType | String | 合约类型linear :正向合约inverse :反向合约仅适用于 交割/永续 |
state | String | 产品状态live :交易中 suspend :暂停中preopen :预上线,如:交割和期权的新合约在 live 之前,会有 preopen 状态test :测试中(测试产品,不可交易) |
ruleType | String | 交易规则类型normal :普通交易pre_market :盘前交易 |
maxLmtSz | String | 限价单的单笔最大委托数量 合约的数量单位是 张 ,现货的数量单位是交易货币 |
maxMktSz | String | 市价单的单笔最大委托数量 合约的数量单位是 张 ,现货的数量单位是USDT |
maxLmtAmt | String | 限价单的单笔最大美元价值 |
maxMktAmt | String | 市价单的单笔最大美元价值 仅适用于 币币/币币杠杆 |
maxTwapSz | String | 时间加权单的单笔最大委托数量 合约的数量单位是 张 ,现货的数量单位是交易货币 单笔最小委托数量为 minSz*2 |
maxIcebergSz | String | 冰山委托的单笔最大委托数量 合约的数量单位是 张 ,现货的数量单位是交易货币 |
maxTriggerSz | String | 计划委托委托的单笔最大委托数量 合约的数量单位是 张 ,现货的数量单位是交易货币 |
maxStopSz | String | 止盈止损市价委托的单笔最大委托数量 合约的数量单位是 张 ,现货的数量单位是USDT |
查看账户余额
获取交易账户中资金余额信息。
限速:10次/2s
限速规则:UserID
HTTP请求
GET /api/v5/account/balance
请求示例
# 获取账户中所有资产余额
GET /api/v5/account/balance
# 获取账户中BTC、ETH两种资产余额
GET /api/v5/account/balance?ccy=BTC,ETH
import okx.Account as Account
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘:0 , 模拟盘:1
accountAPI = Account.AccountAPI(apikey, secretkey, passphrase, False, flag)
# 查看账户余额
result = accountAPI.get_account_balance()
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
ccy | String | 否 | 币种,如 BTC 支持多币种查询(不超过20个),币种之间半角逗号分隔 |
返回结果
{
"code": "0",
"data": [
{
"adjEq": "55415.624719833286",
"borrowFroz": "0",
"details": [
{
"availBal": "4834.317093622894",
"availEq": "4834.3170936228935",
"borrowFroz": "0",
"cashBal": "4850.435693622894",
"ccy": "USDT",
"crossLiab": "0",
"disEq": "4991.542013297616",
"eq": "4992.890093622894",
"eqUsd": "4991.542013297616",
"fixedBal": "0",
"frozenBal": "158.573",
"imr": "",
"interest": "0",
"isoEq": "0",
"isoLiab": "0",
"isoUpl": "0",
"liab": "0",
"maxLoan": "0",
"mgnRatio": "",
"mmr": "",
"notionalLever": "",
"ordFrozen": "0",
"spotInUseAmt": "",
"spotIsoBal": "0",
"stgyEq": "150",
"twap": "0",
"uTime": "1705449605015",
"upl": "-7.545600000000006",
"uplLiab": "0",
"spotBal": "",
"openAvgPx": "",
"accAvgPx": "",
"spotUpl": "",
"spotUplRatio": "",
"totalPnl": "",
"totalPnlRatio": ""
}
],
"imr": "8.57068529",
"isoEq": "0",
"mgnRatio": "143682.59776662575",
"mmr": "0.3428274116",
"notionalUsd": "85.7068529",
"ordFroz": "0",
"totalEq": "55837.43556134779",
"uTime": "1705474164160",
"upl": "-7.543562688000006"
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
uTime | String | 账户信息的更新时间,Unix时间戳的毫秒数格式,如 1597026383085 |
totalEq | String | 美金层面权益 |
isoEq | String | 美金层面逐仓仓位权益 适用于 现货和合约模式 /跨币种保证金模式 /组合保证金模式 |
adjEq | String | 美金层面有效保证金 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
ordFroz | String | 美金层面全仓挂单占用保证金 仅适用于 现货模式 /跨币种保证金模式 |
imr | String | 美金层面占用保证金 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
mmr | String | 美金层面维持保证金 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
borrowFroz | String | 账户美金层面潜在借币占用保证金 仅适用于 现货模式 /跨币种保证金模式 /组合保证金模式 。在其他账户模式下为""。 |
mgnRatio | String | 美金层面保证金率 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
notionalUsd | String | 以美金价值为单位的持仓数量,即仓位美金价值 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
upl | String | 账户层面全仓未实现盈亏(美元单位) 适用于 跨币种保证金模式 /组合保证金模式 |
details | Array | 各币种资产详细信息 |
> ccy | String | 币种 |
> eq | String | 币种总权益 |
> cashBal | String | 币种余额 |
> uTime | String | 币种余额信息的更新时间,Unix时间戳的毫秒数格式,如 1597026383085 |
> isoEq | String | 币种逐仓仓位权益 适用于 现货和合约模式 /跨币种保证金模式 /组合保证金模式 |
> availEq | String | 可用保证金 适用于 现货和合约模式 /跨币种保证金模式 /组合保证金模式 |
> disEq | String | 美金层面币种折算权益 |
> fixedBal | String | 抄底宝、逃顶宝功能的币种冻结金额 |
> availBal | String | 可用余额 |
> frozenBal | String | 币种占用金额 |
> ordFrozen | String | 挂单冻结数量 适用于 现货模式 /现货和合约模式 /跨币种保证金模式 |
> liab | String | 币种负债额 值为正数,如 "21625.64" 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
> upl | String | 未实现盈亏 适用于 现货和合约模式 /跨币种保证金模式 /组合保证金模式 |
> uplLiab | String | 由于仓位未实现亏损导致的负债 适用于 跨币种保证金模式 /组合保证金模式 |
> crossLiab | String | 币种全仓负债额 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
> isoLiab | String | 币种逐仓负债额 适用于 跨币种保证金模式 /组合保证金模式 |
> mgnRatio | String | 币种全仓保证金率,衡量账户内某项资产风险的指标 适用于 现货和合约模式 且有全仓仓位时 |
> imr | String | 币种维度全仓占用保证金 适用于 现货和合约模式 且有全仓仓位时 |
> mmr | String | 币种维度全仓维持保证金 适用于 现货和合约模式 且有全仓仓位时 |
> interest | String | 计息,应扣未扣利息 值为正数,如 9.01 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
> twap | String | 当前负债币种触发系统自动换币的风险 0、1、2、3、4、5其中之一,数字越大代表您的负债币种触发自动换币概率越高 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
> maxLoan | String | 币种最大可借 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 的全仓 |
> eqUsd | String | 币种权益美金价值 |
> borrowFroz | String | 币种美金层面潜在借币占用保证金 仅适用于 现货模式 /跨币种保证金模式 /组合保证金模式 。在其他账户模式下为""。 |
> notionalLever | String | 币种杠杆倍数 适用于 现货和合约模式 |
> stgyEq | String | 策略权益 |
> isoUpl | String | 逐仓未实现盈亏 适用于 现货和合约模式 /跨币种保证金模式 /组合保证金模式 |
> spotInUseAmt | String | 现货对冲占用数量 适用于 组合保证金模式 |
> spotIsoBal | String | 现货逐仓余额 仅适用于现货带单/跟单 适用于 现货模式 /现货和合约模式 |
> spotBal | String | 现货余额 ,单位为 币种,比如 BTC。点击了解更多 |
> openAvgPx | Array | 现货开仓成本价 单位 USD。 点击了解更多 |
> accAvgPx | Array | 现货累计成本价 单位 USD。 点击了解更多 |
> spotUpl | String | 现货未实现收益,单位 USD。 点击了解更多 |
> spotUplRatio | String | 现货未实现收益率。点击了解更多 |
> totalPnl | String | 现货累计收益,单位 USD。 点击了解更多 |
> totalPnlRatio | String | 现货累计收益率。点击了解更多 |
各账户等级下有效字段分布
参数 | 现货模式 | 现货和合约模式 | 跨币种保证金模式 | 组合保证金模式 |
---|---|---|---|---|
uTime | 是 | 是 | 是 | 是 |
totalEq | 是 | 是 | 是 | 是 |
isoEq | 是 | 是 | 是 | |
adjEq | 是 | 是 | 是 | |
ordFroz | 是 | 是 | 是 | |
imr | 是 | 是 | 是 | |
mmr | 是 | 是 | 是 | |
borrowFroz | 是 | 是 | 是 | |
mgnRatio | 是 | 是 | 是 | |
notionalUsd | 是 | 是 | 是 | |
upl | 是 | 是 | ||
details | ||||
> ccy | 是 | 是 | 是 | 是 |
> eq | 是 | 是 | 是 | 是 |
> cashBal | 是 | 是 | 是 | 是 |
> uTime | 是 | 是 | 是 | 是 |
> isoEq | 是 | 是 | 是 | |
> availEq | 是 | 是 | 是 | |
> disEq | 是 | 是 | 是 | 是 |
> availBal | 是 | 是 | 是 | 是 |
> frozenBal | 是 | 是 | 是 | 是 |
> ordFrozen | 是 | 是 | 是 | 是 |
> liab | 是 | 是 | 是 | |
> upl | 是 | 是 | 是 | |
> uplLiab | 是 | 是 | ||
> crossLiab | 是 | 是 | 是 | |
> isoLiab | 是 | 是 | ||
> mgnRatio | 是 | |||
> interest | 是 | 是 | 是 | |
> twap | 是 | 是 | 是 | |
> maxLoan | 是 | 是 | 是 | |
> eqUsd | 是 | 是 | 是 | 是 |
> borrowFroz | 是 | 是 | 是 | |
> notionalLever | 是 | |||
> stgyEq | 是 | 是 | 是 | 是 |
> isoUpl | 是 | 是 | 是 | |
> spotInUseAmt | 是 | |||
> spotIsoBal | 是 | 是 | ||
> imr | 是 | |||
> mmr | 是 | |||
> spotBal | 是 | 是 | 是 | 是 |
> openAvgPx | 是 | 是 | 是 | 是 |
> accAvgPx | 是 | 是 | 是 | 是 |
> spotUpl | 是 | 是 | 是 | 是 |
> spotUplRatio | 是 | 是 | 是 | 是 |
> totalPnl | 是 | 是 | 是 | 是 |
> totalPnlRatio | 是 | 是 | 是 | 是 |
账单流水查询(近七天)
帐户资产流水是指导致帐户余额增加或减少的行为。本接口可以查询最近7天的账单数据。
限速:5次/s
限速规则:UserID
HTTP请求
GET /api/v5/account/bills
请求示例
GET /api/v5/account/bills
GET /api/v5/account/bills?instType=SPOT
import okx.Account as Account
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘:0 , 模拟盘:1
accountAPI = Account.AccountAPI(apikey, secretkey, passphrase, False, flag)
# 查看账户账单详情 (近七日内)
result = accountAPI.get_account_bills()
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instType | String | 否 | 产品类型SPOT :币币 |
ccy | String | 否 | 账单币种 |
type | String | 否 | 账单类型1 :划转2 :交易 |
subType | String | 否 | 账单子类型1 :买入2 :卖出11 :转入12 :转出 |
after | String | 否 | 请求此id之前(更旧的数据)的分页内容,传的值为对应接口的billId |
before | String | 否 | 请求此id之后(更新的数据)的分页内容,传的值为对应接口的billId |
begin | String | 否 | 筛选的开始时间戳,Unix 时间戳为毫秒数格式,如 1597026383085 |
end | String | 否 | 筛选的结束时间戳,Unix 时间戳为毫秒数格式,如 1597027383085 |
limit | String | 否 | 分页返回的结果集数量,最大为100,不填默认返回100条 |
返回结果
{
"code": "0",
"msg": "",
"data": [{
"bal": "8694.2179403378290202",
"balChg": "0.0219338232210000",
"billId": "623950854533513219",
"ccy": "USDT",
"clOrdId": "",
"execType": "T",
"fee": "-0.000021955779",
"fillFwdPx": "",
"fillIdxPx": "27104.1",
"fillMarkPx": "",
"fillMarkVol": "",
"fillPxUsd": "",
"fillPxVol": "",
"fillTime": "1695033476166",
"from": "",
"instId": "BTC-USDT",
"instType": "SPOT",
"interest": "0",
"mgnMode": "isolated",
"notes": "",
"ordId": "623950854525124608",
"pnl": "0",
"posBal": "0",
"posBalChg": "0",
"px": "27105.9",
"subType": "1",
"sz": "0.021955779",
"tag": "",
"to": "",
"tradeId": "586760148",
"ts": "1695033476167",
"type": "2"
}]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
instType | String | 产品类型 |
billId | String | 账单ID |
type | String | 账单类型 |
subType | String | 账单子类型 |
ts | String | 余额更新完成的时间,Unix时间戳的毫秒数格式,如 1597026383085 |
balChg | String | 账户层面的余额变动数量 |
posBalChg | String | 仓位层面的余额变动数量 |
bal | String | 账户层面的余额数量 |
posBal | String | 仓位层面的余额数量 |
sz | String | 数量 |
px | String | 价格,与 subType 相关1 :买入 2 :卖出 |
ccy | String | 账户余额币种 |
pnl | String | 收益 |
fee | String | 手续费 正数代表平台返佣 ,负数代表平台扣除 |
mgnMode | String | 保证金模式isolated :逐仓cross :全仓账单不是由仓位变化产生的,该字段返回 "" |
instId | String | 产品ID,如 BTC-USDT |
ordId | String | 订单ID 当type为 2 :交易 时,返回相应订单id 无订单时,该字段返回 "" |
execType | String | 流动性方向T :takerM :maker |
from | String | 转出账户6 :资金账户18 :交易账户仅适用于 资金划转 ,不是资金划转 时,返回 "" |
to | String | 转入账户6 :资金账户18 :交易账户仅适用于 资金划转 ,不是资金划转 时,返回 "" |
notes | String | 备注 |
interest | String | 利息 |
tag | String | 订单标签 字母(区分大小写)与数字的组合,可以是纯字母、纯数字,且长度在1-16位之间。 |
fillTime | String | 最新成交时间 |
tradeId | String | 最新成交ID |
clOrdId | String | 客户自定义订单ID |
fillIdxPx | String | 交易执行时的指数价格 对于交叉现货币对,返回 baseCcy-USDT 的指数价格。 例如LTC-ETH,该字段返回LTC-USDT的指数价格。 |
fillMarkPx | String | 成交时的标记价格,仅适用于交割 /永续 /期权 |
fillPxVol | String | 成交时的隐含波动率,仅适用于期权,其他业务线返回空字符串"" |
fillPxUsd | String | 成交时的期权价格,以USD为单位,仅适用于期权,其他业务线返回空字符串"" |
fillMarkVol | String | 成交时的标记波动率,仅适用于期权,其他业务线返回空字符串"" |
fillFwdPx | String | 成交时的远期价格,仅适用于期权,其他业务线返回空字符串"" |
账单流水查询(近三月)
帐户资产流水是指导致帐户余额增加或减少的行为。本接口可以查询最近3个月的账单数据。
限速:5次/2s
限速规则:UserID
HTTP请求
GET /api/v5/account/bills-archive
请求示例
GET /api/v5/account/bills-archive
GET /api/v5/account/bills-archive?instType=SPOT
import okx.Account as Account
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘:0 , 模拟盘:1
accountAPI = Account.AccountAPI(apikey, secretkey, passphrase, False, flag)
# 查看账户账单详情 (近三个月内)
result = accountAPI.get_account_bills_archive()
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instType | String | 否 | 产品类型SPOT :币币 |
ccy | String | 否 | 账单币种 |
type | String | 否 | 账单类型1 :划转2 :交易6 :保证金划转 |
subType | String | 否 | 账单子类型1 :买入2 :卖出11 :转入12 :转出236 :兑换主流币用户账户转入237 :兑换主流币用户账户转出 |
after | String | 否 | 请求此id之前(更旧的数据)的分页内容,传的值为对应接口的billId |
before | String | 否 | 请求此id之后(更新的数据)的分页内容,传的值为对应接口的billId |
begin | String | 否 | 筛选的开始时间戳,Unix 时间戳为毫秒数格式,如 1597026383085 |
end | String | 否 | 筛选的结束时间戳,Unix 时间戳为毫秒数格式,如 1597027383085 |
limit | String | 否 | 分页返回的结果集数量,最大为100,不填默认返回100条 |
返回结果
{
"code": "0",
"msg": "",
"data": [{
"bal": "8694.2179403378290202",
"balChg": "0.0219338232210000",
"billId": "623950854533513219",
"ccy": "USDT",
"clOrdId": "",
"execType": "T",
"fee": "-0.000021955779",
"fillFwdPx": "",
"fillIdxPx": "27104.1",
"fillMarkPx": "",
"fillMarkVol": "",
"fillPxUsd": "",
"fillPxVol": "",
"fillTime": "1695033476166",
"from": "",
"instId": "BTC-USDT",
"instType": "SPOT",
"interest": "0",
"mgnMode": "isolated",
"notes": "",
"ordId": "623950854525124608",
"pnl": "0",
"posBal": "0",
"posBalChg": "0",
"px": "27105.9",
"subType": "1",
"sz": "0.021955779",
"tag": "",
"to": "",
"tradeId": "586760148",
"ts": "1695033476167",
"type": "2"
}]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
instType | String | 产品类型 |
billId | String | 账单ID |
type | String | 账单类型 |
subType | String | 账单子类型 |
ts | String | 余额更新完成的时间,Unix时间戳的毫秒数格式,如 1597026383085 |
balChg | String | 账户层面的余额变动数量 |
posBalChg | String | 仓位层面的余额变动数量 |
bal | String | 账户层面的余额数量 |
posBal | String | 仓位层面的余额数量 |
sz | String | 数量 |
px | String | 价格,与 subType 相关1 :买入 2 :卖出 |
ccy | String | 账户余额币种 |
pnl | String | 收益 |
fee | String | 手续费 正数代表平台返佣 ,负数代表平台扣除 |
mgnMode | String | 保证金模式isolated :逐仓 cross :全仓无仓位类型字段,该字段返回 "" |
instId | String | 产品ID,如 BTC-USDT |
ordId | String | 订单ID 当type为 2 :交易时,返回相应订单id。无订单时,该字段返回 "" |
execType | String | 流动性方向T :takerM :maker |
from | String | 转出账户6 :资金账户18 :交易账户仅适用于 资金划转 ,不是资金划转 时,返回 "" |
to | String | 转入账户6 :资金账户18 :交易账户仅适用于 资金划转 ,不是资金划转 时,返回 "" |
notes | String | 备注 |
interest | String | 利息 |
tag | String | 订单标签 字母(区分大小写)与数字的组合,可以是纯字母、纯数字,且长度在1-16位之间。 |
fillTime | String | 最新成交时间 |
tradeId | String | 最新成交ID |
clOrdId | String | 客户自定义订单ID |
fillIdxPx | String | 交易执行时的指数价格 对于交叉现货币对,返回 baseCcy-USDT 的指数价格。 例如LTC-ETH,该字段返回LTC-USDT的指数价格。 |
fillMarkPx | String | 成交时的标记价格,仅适用于 交割 /永续 /期权 |
fillPxVol | String | 成交时的隐含波动率,仅适用于期权 ,其他业务线返回空字符串"" |
fillPxUsd | String | 成交时的期权价格,以USD为单位,仅适用于期权 ,其他业务线返回空字符串"" |
fillMarkVol | String | 成交时的标记波动率,仅适用于期权 ,其他业务线返回空字符串"" |
fillFwdPx | String | 成交时的远期价格,仅适用于期权 ,其他业务线返回空字符串"" |
查看账户配置
查看当前账户的配置信息。
限速:5次/2s
限速规则:UserID
HTTP请求
GET /api/v5/account/config
请求示例
GET /api/v5/account/config
import okx.Account as Account
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘:0 , 模拟盘:1
accountAPI = Account.AccountAPI(apikey, secretkey, passphrase, False, flag)
# 查看账户配置
result = accountAPI.get_account_config()
print(result)
请求参数
无
返回结果
{
"code": "0",
"data": [
{
"acctLv": "2",
"acctStpMode": "cancel_maker",
"autoLoan": false,
"ctIsoMode": "automatic",
"discountType": "1",
"enableSpotBorrow": false,
"greeksType": "PA",
"ip": "",
"kycLv": "3",
"label": "v5 test",
"level": "Lv1",
"levelTmp": "",
"liquidationGear": "-1",
"mainUid": "44705892343619584",
"mgnIsoMode": "automatic",
"opAuth": "1",
"perm": "read_only,withdraw,trade",
"posMode": "long_short_mode",
"roleType": "0",
"spotBorrowAutoRepay": false,
"spotOffsetType": "",
"spotRoleType": "0",
"spotTraderInsts": [],
"traderInsts": [],
"uid": "44705892343619584"
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
uid | String | 当前请求的账户ID,账户uid和app上的一致 |
mainUid | String | 当前请求的母账户ID 如果 uid = mainUid,代表当前账号为母账户;如果 uid != mainUid,代表当前账户为子账户。 |
acctLv | String | 账户模式1 :现货模式2 :现货和合约模式3 :跨币种保证金模式4 :组合保证金模式 |
acctStpMode | String | 账户自成交保护模式 cancel_maker :撤销挂单 cancel_taker :撤销吃单 cancel_both :撤销挂单和吃单 用户可通过母账户登录网页修改该配置 |
posMode | String | 持仓方式long_short_mode :开平仓模式net_mode :买卖模式仅适用 交割/永续 |
autoLoan | Boolean | 是否自动借币true :自动借币 false :非自动借币 |
greeksType | String | 当前希腊字母展示方式PA :币本位 BS :美元本位 |
level | String | 当前在平台上真实交易量的用户等级,例如 Lv1 |
levelTmp | String | 特约用户的临时体验用户等级,例如 Lv3 |
ctIsoMode | String | 衍生品的逐仓保证金划转模式automatic :开仓划转autonomy :自主划转 |
mgnIsoMode | String | 币币杠杆的逐仓保证金划转模式automatic :开仓划转quick_margin :一键借币(对于新的账户,包括新的子账户,有些默认是开仓划转,另外的默认是一键借币) |
spotOffsetType | String | 现货对冲类型1 :现货对冲模式U模式2 :现货对冲模式币模式3 :非现货对冲模式适用于 组合保证金模式 |
roleType | String | 用户角色0 :普通用户1 :带单者2 :跟单者 |
traderInsts | Array | 当前账号已经设置的带单合约,仅适用于带单者 |
spotRoleType | String | 现货跟单角色。0 :普通用户;1 :带单者;2 :跟单者 |
spotTraderInsts | String | 当前账号已经设置的带单币对,仅适用于带单者 |
opAuth | String | 是否开通期权交易0 :未开通1 :已经开通 |
kycLv | String | 母账户KYC等级0 : 未认证1 : 已完成 level 1 认证2 : 已完成 level 2 认证3 : 已完成 level 3认证如果请求来自子账户, kycLv 为其母账户的等级 如果请求来自母账户, kycLv 为当前请求的母账户等级 |
label | String | 当前请求API key的备注名,不超过50位字母(区分大小写)或数字,可以是纯字母或纯数字。 |
ip | String | 当前请求API key绑定的ip地址,多个ip用半角逗号隔开,如:117.37.203.58,117.37.203.57 。如果没有绑定ip,会返回空字符串"" |
perm | String | 当前请求的 API key 或 Access token 的权限read_only :读取trade :交易withdraw :提币 |
discountType | String | 当前账户所在的币种折扣率类型0 : 原先的币种折算率规则,默认值1 : 新的币种折算率规则用来确认当前账户所在的币种折扣率类型。当新的币种折算率规则全面生效后,接口将不再返回该字段,建议提前做好兼容。 |
liquidationGear | String | 强平提醒的保证金率水平3 代表,保证金率达到 300% 时,每隔 1 小时 app 和 ”爆仓风险预警推送频道“会推送通知0 代表不提醒 |
enableSpotBorrow | Boolean | 现货模式 下是否支持借币true :支持false :不支持 |
spotBorrowAutoRepay | Boolean | 现货模式 下是否支持自动还币true :支持false :不支持 |
获取最大可下单数量
获取最大可下单数量,可对应下单时的 "sz" 字段
限速:20次/2s
限速规则:UserID
HTTP请求
GET /api/v5/account/max-size
请求示例
GET /api/v5/account/max-size?instId=BTC-USDT&tdMode=cash
import okx.Account as Account
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘:0 , 模拟盘:1
accountAPI = Account.AccountAPI(apikey, secretkey, passphrase, False, flag)
# 获取最大可买卖/开仓数量
result = accountAPI.get_max_order_size(
instId="BTC-USDT",
tdMode="cash"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instId | String | 是 | 产品ID,如 BTC-USDT 支持同一业务线下的多产品ID查询(不超过5个),半角逗号分隔 |
tdMode | String | 是 | 交易模式cash :非保证金 |
px | String | 否 | 委托价格 当指定多个产品ID查询时,忽略该参数,当未填写处理 |
返回结果
{
"code": "0",
"msg": "",
"data": [{
"ccy": "BTC",
"instId": "BTC-USDT",
"maxBuy": "0.0500695098559788",
"maxSell": "64.4798671570072269"
}]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
instId | String | 产品ID |
ccy | String | 保证金币种 |
maxBuy | String | 币币 :最大可买的交易币数量 |
maxSell | String | 币币 :最大可卖的计价币数量 |
获取最大可用余额/保证金
限速:20次/2s
限速规则:UserID
HTTP请求
GET /api/v5/account/max-avail-size
请求示例
# 获取BTC-USDT币币最大可用数量
GET /api/v5/account/max-avail-size?instId=BTC-USDT&tdMode=cash
import okx.Account as Account
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘:0 , 模拟盘:1
accountAPI = Account.AccountAPI(apikey, secretkey, passphrase, False, flag)
# 获取BTC-USDT币币最大可用数量
result = accountAPI.get_max_avail_size(
instId="BTC-USDT",
tdMode="cash"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instId | String | 是 | 产品ID,如 BTC-USDT 支持多产品ID查询(不超过5个),半角逗号分隔 |
tdMode | String | 是 | 交易模式cash :非保证金 |
返回结果
{
"code": "0",
"msg": "",
"data": [{
"instId": "BTC-USDT",
"availBuy": "100",
"availSell": "1"
}]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
instId | String | 产品ID |
availBuy | String | 最大买入可用数量 |
availSell | String | 最大卖出可用数量 |
获取当前账户交易手续费费率
限速:5次/2s
限速规则:UserID
HTTP请求
GET /api/v5/account/trade-fee
请求示例
# 获取币币BTC-USDT交易手续费率
GET /api/v5/account/trade-fee?instType=SPOT&instId=BTC-USDT
import okx.Account as Account
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘:0 , 模拟盘:1
accountAPI = Account.AccountAPI(apikey, secretkey, passphrase, False, flag)
# 获取当前账户交易手续费费率
result = accountAPI.get_fee_rates(
instType="SPOT",
instId="BTC-USDT"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instType | String | 是 | 产品类型SPOT :币币 |
instId | String | 否 | 产品ID,如 BTC-USDT 仅适用于instType为 币币 |
返回结果
{
"code": "0",
"msg": "",
"data": [{
"category": "1", //已废弃
"delivery": "",
"exercise": "",
"instType": "SPOT",
"level": "lv1",
"maker": "-0.0008",
"makerU": "",
"makerUSDC": "",
"taker": "-0.001",
"takerU": "",
"takerUSDC": "",
"ts": "1608623351857",
"fiat": []
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
level | String | 手续费等级 |
taker | String | 对于币币 ,为 USDT 交易区的吃单手续费率 |
maker | String | 对于币币 ,为 USDT 交易区的挂单手续费率 |
takerU | String | USDT 合约吃单手续费率,仅适用于交割/永续 |
makerU | String | USDT 合约挂单手续费率,仅适用于交割/永续 |
delivery | String | 交割手续费率 |
exercise | String | 行权手续费率 |
instType | String | 产品类型 |
takerUSDC | String | 对于币币,为 USDⓈ&Crypto 交易区的吃单手续费率 |
makerUSDC | String | 对于币币,为 USDⓈ&Crypto 交易区的挂单手续费率 |
ts | String | 数据返回时间,Unix时间戳的毫秒数格式,如 1597026383085 |
category | String | |
fiat | Array | 法币费率 |
> ccy | String | 法币币种 |
> taker | String | 吃单手续费率 |
> maker | String | 挂单手续费率 |
WebSocket
账户频道
获取账户信息,首次订阅按照订阅维度推送数据,此外,当下单、撤单、成交等事件触发时,推送数据以及按照订阅维度定时推送数据
该频道的并发连接受到如下规则限制:WebSocket 连接限制
服务地址
/ws/v5/private (需要登录)
请求示例:单个
{
"op": "subscribe",
"args": [{
"channel": "account",
"ccy": "BTC"
}]
}
请求示例
{
"op": "subscribe",
"args": [
{
"channel": "account",
"extraParams": "
{
\"updateInterval\": \"0\"
}
"
}
]
}
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
op | String | 是 | 操作subscribe unsubscribe |
args | Array | 是 | 请求订阅的频道列表 |
> channel | String | 是 | 频道名account |
> ccy | String | 否 | 币种 |
> extraParams | String | 否 | 额外配置 |
>> updateInterval | int | 否 | 0 : 仅根据账户事件推送数据 若不添加该字段或将其设置为除0外的其他值,数据将根据事件推送并定时推送。 使用该字段需严格遵守以下格式。 "extraParams": " { \"updateInterval\": \"0\" } " |
成功返回示例:单个
{
"event": "subscribe",
"arg": {
"channel": "account",
"ccy": "BTC"
},
"connId": "a4d3ae55"
}
成功返回示例
{
"event": "subscribe",
"arg": {
"channel": "account"
},
"connId": "a4d3ae55"
}
失败返回示例
{
"event": "error",
"code": "60012",
"msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{ \"channel\" : \"account\", \"ccy\" : \"BTC\"}]}",
"connId": "a4d3ae55"
}
返回参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
event | String | 是 | 事件subscribe unsubscribe error |
arg | Object | 否 | 订阅的频道 |
> channel | String | 是 | 频道名account |
> ccy | String | 否 | 币种 |
code | String | 否 | 错误码 |
msg | String | 否 | 错误消息 |
connId | String | 是 | WebSocket连接ID |
推送示例
{
"arg": {
"channel": "account",
"uid": "44*********584"
},
"data": [{
"adjEq": "55444.12216906034",
"borrowFroz": "0",
"details": [{
"availBal": "4734.371190691436",
"availEq": "4734.371190691435",
"borrowFroz": "0",
"cashBal": "4750.426970691436",
"ccy": "USDT",
"coinUsdPrice": "0.99927",
"crossLiab": "0",
"disEq": "4889.379316336831",
"eq": "4892.951170691435",
"eqUsd": "4889.379316336831",
"smtSyncEq": "0",
"fixedBal": "0",
"frozenBal": "158.57998",
"imr": "",
"interest": "0",
"isoEq": "0",
"isoLiab": "0",
"isoUpl": "0",
"liab": "0",
"maxLoan": "0",
"mgnRatio": "",
"mmr": "",
"notionalLever": "",
"ordFrozen": "0",
"rewardBal": "0",
"spotInUseAmt": "",
"clSpotInUseAmt": "",
"maxSpotInUseAmt": "",
"spotIsoBal": "0",
"stgyEq": "150",
"twap": "0",
"uTime": "1705564213903",
"upl": "-7.475800000000003",
"uplLiab": "0",
"spotBal": "",
"openAvgPx": "",
"accAvgPx": "",
"spotUpl": "",
"spotUplRatio": "",
"totalPnl": "",
"totalPnlRatio": ""
}],
"imr": "8.5737166146",
"isoEq": "0",
"mgnRatio": "143705.65988369548",
"mmr": "0.342948664584",
"notionalUsd": "85.737166146",
"ordFroz": "0",
"totalEq": "55868.06403501676",
"uTime": "1705564223311",
"upl": "-7.470342666000003"
}]
}
推送数据参数
参数名 | 类型 | 描述 |
---|---|---|
arg | Object | 请求订阅的频道 |
> channel | String | 频道名 |
> uid | String | 用户标识 |
data | Array | 订阅的数据 |
> uTime | String | 获取账户信息的最新时间,Unix时间戳的毫秒数格式,如 1597026383085 |
> totalEq | String | 美金层面权益 |
> isoEq | String | 美金层面逐仓仓位权益 适用于 现货和合约模式 /跨币种保证金模式 /组合保证金模式 |
> adjEq | String | 美金层面有效保证金 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
> ordFroz | String | 美金层面全仓挂单占用保证金 仅适用于 现货模式 /跨币种保证金模式 |
> imr | String | 美金层面占用保证金 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
> mmr | String | 美金层面维持保证金 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
> borrowFroz | String | 账户美金层面潜在借币占用保证金 仅适用于 现货模式 /跨币种保证金模式 /组合保证金模式 。在其他账户模式下为""。 |
> mgnRatio | String | 美金层面保证金率 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
> notionalUsd | String | 以美金价值为单位的持仓数量,即仓位美金价值 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
> upl | String | 账户层面全仓未实现盈亏(美元单位) 适用于 跨币种保证金模式 /组合保证金模式 |
> details | Array | 各币种资产详细信息 |
>> ccy | String | 币种 |
>> eq | String | 币种总权益 |
>> cashBal | String | 币种余额 |
>> uTime | String | 币种余额信息的更新时间,Unix时间戳的毫秒数格式,如 1597026383085 |
>> isoEq | String | 币种逐仓仓位权益 适用于 现货和合约模式 /跨币种保证金模式 /组合保证金模式 |
>> availEq | String | 可用保证金 适用于 现货和合约模式 /跨币种保证金模式 /组合保证金模式 |
>> disEq | String | 美金层面币种折算权益 |
>> fixedBal | String | 抄底宝、逃顶宝功能的币种冻结金额 |
>> availBal | String | 可用余额 |
>> frozenBal | String | 币种占用金额 |
>> ordFrozen | String | 挂单冻结数量 适用于 现货模式 /现货和合约模式 /跨币种保证金模式 |
>> liab | String | 币种负债额 值为正数,如 21625.64 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
>> upl | String | 未实现盈亏 适用于 现货和合约模式 /跨币种保证金模式 /组合保证金模式 |
>> uplLiab | String | 由于仓位未实现亏损导致的负债 适用于 跨币种保证金模式 /组合保证金模式 |
>> crossLiab | String | 币种全仓负债额 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
>> isoLiab | String | 币种逐仓负债额 适用于 跨币种保证金模式 /组合保证金模式 |
>> rewardBal | String | 体验金余额 |
>> mgnRatio | String | 币种全仓保证金率,衡量账户内某项资产风险的指标 适用于 现货和合约模式 且有全仓仓位时 |
>> imr | String | 币种维度全仓占用保证金 适用于 现货和合约模式 且有全仓仓位时 |
>> mmr | String | 币种维度全仓维持保证金 适用于 现货和合约模式 且有全仓仓位时 |
>> interest | String | 计息 值为正数,如 9.01 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
>> twap | String | 当前负债币种触发系统自动换币的风险 0、1、2、3、4、5其中之一,数字越大代表您的负债币种触发自动换币概率越高 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
>> maxLoan | String | 币种最大可借 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 的全仓 |
>> eqUsd | String | 币种权益美金价值 |
>> notionalLever | String | 币种杠杆倍数 适用于 现货和合约模式 |
>> coinUsdPrice | String | 币种美元指数 |
>> stgyEq | String | 策略权益 |
>> isoUpl | String | 逐仓未实现盈亏 适用于 现货和合约模式 /跨币种保证金模式 /组合保证金模式 |
>> borrowFroz | String | 币种美金层面潜在借币占用保证金 仅适用于 现货模式 /跨币种保证金模式 /组合保证金模式 。在其他账户模式下为""。 |
>> spotInUseAmt | String | 现货对冲占用数量 适用于 组合保证金模式 |
>> clSpotInUseAmt | String | 用户自定义现货占用数量 适用于 组合保证金模式 |
>> maxSpotInUseAmt | String | 系统计算得到的最大可能现货占用数量 适用于 组合保证金模式 |
>> smtSyncEq | String | 智能跟单权益 默认为0,仅适用于跟单人 |
>> spotBal | String | 现货余额 ,单位为 币种,比如 BTC。点击了解更多 |
>> openAvgPx | Array | 现货开仓成本价 单位 USD。 点击了解更多 |
>> accAvgPx | Array | 现货累计成本价 单位 USD。 点击了解更多 |
>> spotUpl | String | 现货未实现收益,单位 USD。 点击了解更多 |
>> spotUplRatio | String | 现货未实现收益率。点击了解更多 |
>> totalPnl | String | 现货累计收益,单位 USD。 点击了解更多 |
>> totalPnlRatio | String | 现货累计收益率。点击了解更多 |
撮合交易
交易
交易
功能模块下的API接口需要身份验证。
POST / 下单
只有当您的账户有足够的资金才能下单。
限速:60次/2s
限速规则:UserID + Instrument ID
HTTP请求
POST /api/v5/trade/order
请求示例
# 币币下单
POST /api/v5/trade/order
body
{
"instId":"BTC-USDT",
"tdMode":"cash",
"clOrdId":"b15",
"side":"buy",
"ordType":"limit",
"px":"2.15",
"sz":"2"
}
import okx.Trade as Trade
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘: 0, 模拟盘: 1
tradeAPI = Trade.TradeAPI(apikey, secretkey, passphrase, False, flag)
# 现货模式限价单
result = tradeAPI.place_order(
instId="BTC-USDT",
tdMode="cash",
clOrdId="b15",
side="buy",
ordType="limit",
px="2.15",
sz="2"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instId | String | 是 | 产品ID,如 BTC-USDT |
tdMode | String | 是 | 交易模式cash :非保证金 |
clOrdId | String | 否 | 客户自定义订单ID 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 |
tag | String | 否 | 订单标签 字母(区分大小写)与数字的组合,可以是纯字母、纯数字,且长度在1-16位之间。 |
side | String | 是 | 订单方向buy :买sell :卖 |
ordType | String | 是 | 订单类型market :市价单limit :限价单 post_only :只做maker单 fok :全部成交或立即取消 ioc :立即成交并取消剩余 |
sz | String | 是 | 委托数量 |
px | String | 可选 | 委托价格,仅适用于limit 、post_only 、fok 、ioc 类型的订单 |
tgtCcy | String | 否 | 市价单委托数量sz 的单位,仅适用于币币 市价订单base_ccy : 交易货币quote_ccy :计价货币买单默认 quote_ccy , 卖单默认base_ccy |
banAmend | Boolean | 否 | 是否禁止币币市价改单,true 或 false,默认false 为true时,余额不足时,系统不会改单,下单会失败,仅适用于币币市价单 |
stpId | String | 否 | 用户自定义1<=x<=999999999的整数 |
stpMode | String | 否 | 自成交保护模式 默认为 cancel maker cancel_maker ,cancel_taker ,cancel_both Cancel both不支持FOK |
attachAlgoOrds | Array of object | 否 | 下单附带止盈止损信息 |
> attachAlgoClOrdId | String | 否 | 下单附带止盈止损时,客户自定义的策略订单ID 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 订单完全成交,下止盈止损委托单时,该值会传给 algoClOrdId |
> tpTriggerPx | String | 可选 | 止盈触发价,如果填写此参数,必须填写 止盈委托价 |
> tpOrdPx | String | 可选 | 止盈委托价,如果填写此参数,必须填写 止盈触发价 委托价格为-1时,执行市价止盈 |
> slTriggerPx | String | 可选 | 止损触发价,如果填写此参数,必须填写 止损委托价 |
> slOrdPx | String | 可选 | 止损委托价,如果填写此参数,必须填写 止损触发价 委托价格为-1时,执行市价止损 |
> tpTriggerPxType | String | 否 | 止盈触发价类型last :最新价格默认为 last |
> slTriggerPxType | String | 否 | 止损触发价类型last :最新价格格默认为 last |
> sz | String | 可选 | 数量。仅适用于“多笔止盈”的止盈订单,且对于“多笔止盈”的止盈订单必填 |
> amendPxOnTriggerType | String | 否 | 是否启用开仓价止损,仅适用于分批止盈的止损订单,第一笔止盈触发时,止损触发价格是否移动到开仓均价止损0 :不开启,默认值 1 :开启,且止损触发价不能为空 |
返回结果
{
"code":"0",
"msg":"",
"data":[
{
"clOrdId":"oktswap6",
"ordId":"12345689",
"tag":"",
"sCode":"0",
"sMsg":""
}
],
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
code | String | 结果代码,0 表示成功 |
msg | String | 错误信息,代码为0时,该字段为空 |
data | String | 包含结果的对象数组 |
> ordId | String | 订单ID |
> clOrdId | String | 客户自定义订单ID |
> tag | String | 订单标签 |
> sCode | String | 事件执行结果的code,0代表成功 |
> sMsg | String | 事件执行失败或成功时的msg |
inTime | String | REST网关接收请求时的时间戳,Unix时间戳的微秒数格式,如 1597026383085123 返回的时间是请求验证后的时间。 |
outTime | String | REST网关发送响应时的时间戳,Unix时间戳的微秒数格式,如 1597026383085123 |
POST / 批量下单
每次最多可以批量提交20个新订单。请求参数应该按数组格式传递,会依次委托订单。
限速:300个/2s
限速规则:UserID + Instrument ID
HTTP请求
POST /api/v5/trade/batch-orders
请求示例
#币币批量下单
POST /api/v5/trade/batch-orders
body
[
{
"instId":"BTC-USDT",
"tdMode":"cash",
"clOrdId":"b15",
"side":"buy",
"ordType":"limit",
"px":"2.15",
"sz":"2"
},
{
"instId":"BTC-USDT",
"tdMode":"cash",
"clOrdId":"b16",
"side":"buy",
"ordType":"limit",
"px":"2.15",
"sz":"2"
}
]
import okx.Trade as Trade
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘: 0, 模拟盘: 1
tradeAPI = Trade.TradeAPI(apikey, secretkey, passphrase, False, flag)
# 批量下单
place_orders_without_clOrdId = [
{"instId": "BTC-USDT", "tdMode": "cash", "clOrdId": "b15", "side": "buy", "ordType": "limit", "px": "2.15", "sz": "2"},
{"instId": "BTC-USDT", "tdMode": "cash", "clOrdId": "b16", "side": "buy", "ordType": "limit", "px": "2.15", "sz": "2"}
]
result = tradeAPI.place_multiple_orders(place_orders_without_clOrdId)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instId | String | 是 | 产品ID,如 BTC-USDT |
tdMode | String | 是 | 交易模式cash :非保证金 |
clOrdId | String | 否 | 客户自定义订单ID 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 |
tag | String | 否 | 订单标签 字母(区分大小写)与数字的组合,可以是纯字母、纯数字,且长度在1-16位之间。 |
side | String | 是 | 订单方向buy :买sell :卖 |
ordType | String | 是 | 订单类型market :市价单limit :限价单 post_only :只做maker单 fok :全部成交或立即取消 ioc :立即成交并取消剩余 |
sz | String | 是 | 委托数量 |
px | String | 可选 | 委托价格,仅适用于limit 、post_only 、fok 、ioc 类型的订单 |
tgtCcy | String | 否 | 市价单委托数量sz 的单位,仅适用于币币 市价订单base_ccy : 交易货币 ;quote_ccy :计价货币买单默认 quote_ccy , 卖单默认base_ccy |
banAmend | Boolean | 否 | 是否禁止币币市价改单,true 或 false,默认false 为true时,余额不足时,系统不会改单,下单会失败,仅适用于币币市价单 |
stpId | String | 否 | 用户自定义1<=x<=999999999的整数 |
stpMode | String | 否 | 自成交保护模式 默认为 cancel maker cancel_maker ,cancel_taker ,cancel_both Cancel both不支持FOK |
attachAlgoOrds | Array of object | 否 | 下单附带止盈止损信息 |
> attachAlgoClOrdId | String | 否 | 下单附带止盈止损时,客户自定义的策略订单ID 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 订单完全成交,下止盈止损委托单时,该值会传给 algoClOrdId |
> tpTriggerPx | String | 可选 | 止盈触发价,如果填写此参数,必须填写 止盈委托价 |
> tpOrdPx | String | 可选 | 止盈委托价,如果填写此参数,必须填写 止盈触发价 委托价格为-1时,执行市价止盈 |
> slTriggerPx | String | 可选 | 止损触发价,如果填写此参数,必须填写 止损委托价 |
> slOrdPx | String | 可选 | 止损委托价,如果填写此参数,必须填写 止损触发价 委托价格为-1时,执行市价止损 |
> tpTriggerPxType | String | 否 | 止盈触发价类型last :最新价格默认为 last |
> slTriggerPxType | String | 否 | 止损触发价类型last :最新价格默认为 last |
> sz | String | 可选 | 数量。仅适用于“多笔止盈”的止盈订单,且对于“多笔止盈”的止盈订单必填 |
> amendPxOnTriggerType | String | 否 | 是否启用开仓价止损,仅适用于分批止盈的止损订单,第一笔止盈触发时,止损触发价格是否移动到开仓均价止损0 :不开启,默认值 1 :开启,且止损触发价不能为空 |
返回结果
{
"code":"0",
"msg":"",
"data":[
{
"clOrdId":"oktswap6",
"ordId":"12345689",
"tag":"",
"sCode":"0",
"sMsg":""
},
{
"clOrdId":"oktswap7",
"ordId":"12344",
"tag":"",
"sCode":"0",
"sMsg":""
}
],
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
code | String | 结果代码,0 表示成功 |
msg | String | 错误信息,代码为0时,该字段为空 |
data | String | 包含结果的对象数组 |
> ordId | String | 订单ID |
> clOrdId | String | 客户自定义订单ID |
> tag | String | 订单标签 |
> sCode | String | 事件执行结果的code,0代表成功 |
> sMsg | String | 事件执行失败或成功时的msg |
inTime | String | REST网关接收请求时的时间戳,Unix时间戳的微秒数格式,如 1597026383085123 返回的时间是请求验证后的时间。 |
outTime | String | REST网关发送响应时的时间戳,Unix时间戳的微秒数格式,如 1597026383085123 |
POST / 撤单
撤销之前下的未完成订单。
限速:60次/2s
限速规则:UserID + Instrument ID
HTTP请求
POST /api/v5/trade/cancel-order
请求示例
POST /api/v5/trade/cancel-order
body
{
"ordId":"590908157585625111",
"instId":"BTC-USDT"
}
import okx.Trade as Trade
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘: 0, 模拟盘: 1
tradeAPI = Trade.TradeAPI(apikey, secretkey, passphrase, False, flag)
# 撤单
result = tradeAPI.cancel_order(instId="BTC-USDT", ordId = "590908157585625111")
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instId | String | 是 | 产品ID,如 BTC-USDT |
ordId | String | 可选 | 订单ID, ordId 和clOrdId 必须传一个,若传两个,以ordId 为主 |
clOrdId | String | 可选 | 用户自定义ID |
返回结果
{
"code":"0",
"msg":"",
"data":[
{
"clOrdId":"oktswap6",
"ordId":"12345689",
"sCode":"0",
"sMsg":""
}
],
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
code | String | 结果代码,0 表示成功 |
msg | String | 错误信息,代码为0时,该字段为空 |
data | String | 包含结果的对象数组 |
> ordId | String | 订单ID |
> clOrdId | String | 客户自定义订单ID |
> sCode | String | 事件执行结果的code,0代表成功 |
> sMsg | String | 事件执行失败时的msg |
inTime | String | REST网关接收请求时的时间戳,Unix时间戳的微秒数格式,如 1597026383085123 返回的时间是请求验证后的时间。 |
outTime | String | REST网关发送响应时的时间戳,Unix时间戳的微秒数格式,如 1597026383085123 |
POST / 批量撤单
撤销未完成的订单,每次最多可以撤销20个订单。请求参数应该按数组格式传递。
限速:300个/2s
限速规则:UserID + instrumentID
HTTP请求
POST /api/v5/trade/cancel-batch-orders
请求示例
POST /api/v5/trade/cancel-batch-orders
body
[
{
"instId":"BTC-USDT",
"ordId":"12312"
},
{
"instId":"BTC-USDT",
"ordId":"1212"
}
]
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instId | String | 是 | 产品ID,如 BTC-USDT |
ordId | String | 可选 | 订单ID, ordId 和clOrdId 必须传一个,若传两个,以ordId 为主 |
clOrdId | String | 可选 | 用户自定义ID |
返回结果
{
"code":"0",
"msg":"",
"data":[
{
"clOrdId":"okt6",
"ordId":"12345689",
"sCode":"0",
"sMsg":""
},
{
"clOrdId":"okt7",
"ordId":"12344",
"sCode":"0",
"sMsg":""
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
ordId | String | 订单ID |
clOrdId | String | 客户自定义订单ID |
sCode | String | 事件执行结果的code,0代表成功 |
sMsg | String | 事件执行失败时的msg |
POST / 修改订单
修改当前未成交的挂单
限速:60次/2s
限速规则:UserID + Instrument ID
HTTP请求
POST /api/v5/trade/amend-order
请求示例
POST /api/v5/trade/amend-order
body
{
"ordId":"590909145319051111",
"newSz":"2",
"instId":"BTC-USDT"
}
import okx.Trade as Trade
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘: 0, 模拟盘: 1
tradeAPI = Trade.TradeAPI(apikey, secretkey, passphrase, False, flag)
# 修改订单
result = tradeAPI.amend_order(
instId="BTC-USDT",
ordId="590909145319051111",
newSz="2"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instId | String | 是 | 产品ID |
cxlOnFail | Boolean | 否 | 当订单修改失败时,该订单是否需要自动撤销。默认为false false :不自动撤单true :自动撤单 |
ordId | String | 可选 | 订单IDordId 和clOrdId 必须传一个,若传两个,以ordId 为主 |
clOrdId | String | 可选 | 用户自定义order ID |
reqId | String | 否 | 用户自定义修改事件ID 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 |
newSz | String | 可选 | 修改的新数量,对于部分成交订单,该数量应包含已成交数量。 |
newPx | String | 可选 | 修改后的新价格 |
attachAlgoOrds | Array of object | 否 | 下单附带止盈止损信息 |
> attachAlgoId | String | 可选 | 附带止盈止损的订单ID,由系统生成,改单时,可用来标识该笔附带止盈止损订单。下止盈止损委托单时,该值不会传给 algoId |
> attachAlgoClOrdId | String | 可选 | 下单附带止盈止损时,客户自定义的策略订单ID |
> newTpTriggerPx | String | 可选 | 止盈触发价 如果止盈触发价或者委托价为0,那代表删除止盈。只适用于交割和永续合约。 |
> newTpOrdPx | String | 可选 | 止盈委托价 委托价格为-1时,执行市价止盈。只适用于交割和永续合约。 |
> newSlTriggerPx | String | 可选 | 止损触发价 如果止损触发价或者委托价为0,那代表删除止损。只适用于交割和永续合约。 |
> newSlOrdPx | String | 可选 | 止损委托价 委托价格为-1时,执行市价止损。 只适用于交割和永续合约。 |
> newTpTriggerPxType | String | 可选 | 止盈触发价类型last :最新价格index :指数价格mark :标记价格只适用于 交割 /永续 如果要新增止盈,该参数必填 |
> newSlTriggerPxType | String | 可选 | 止损触发价类型last :最新价格index :指数价格mark :标记价格只适用于 交割 /永续 如果要新增止损,该参数必填 |
> sz | String | 可选 | 新的张数。仅适用于“多笔止盈”的止盈订单且必填 |
> amendPxOnTriggerType | String | 否 | 是否启用开仓价止损,仅适用于分批止盈的止损订单0 :不开启,默认值1 :开启 |
返回结果
{
"code":"0",
"msg":"",
"data":[
{
"clOrdId":"",
"ordId":"12344",
"reqId":"b12344",
"sCode":"0",
"sMsg":""
}
],
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
code | String | 结果代码,0 表示成功 |
msg | String | 错误信息,代码为0时,该字段为空 |
data | String | 包含结果的对象数组 |
> ordId | String | 订单ID |
> clOrdId | String | 用户自定义ID |
> reqId | String | 用户自定义修改事件ID |
> sCode | String | 事件执行结果的code,0代表成功 |
> sMsg | String | 事件执行失败时的msg |
inTime | String | REST网关接收请求时的时间戳,Unix时间戳的微秒数格式,如 1597026383085123 返回的时间是请求验证后的时间。 |
outTime | String | REST网关发送响应时的时间戳,Unix时间戳的微秒数格式,如 1597026383085123 |
POST / 批量修改订单
修改未完成的订单,一次最多可批量修改20个订单。请求参数应该按数组格式传递。
限速:300个/2s
限速规则:UserID + Instrument ID
HTTP请求
POST /api/v5/trade/amend-batch-orders
请求示例
POST /api/v5/trade/amend-batch-orders
body
[
{
"ordId":"590909308792049444",
"newSz":"2",
"instId":"BTC-USDT"
},
{
"ordId":"590909308792049555",
"newSz":"2",
"instId":"BTC-USDT"
}
]
import okx.Trade as Trade
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘: 0, 模拟盘: 1
tradeAPI = Trade.TradeAPI(apikey, secretkey, passphrase, False, flag)
# 按ordId修改未完成的订单
amend_orders_with_orderId = [
{"instId": "BTC-USDT", "ordId": "590909308792049444","newSz":"2"},
{"instId": "BTC-USDT", "ordId": "590909308792049555","newSz":"2"}
]
result = tradeAPI.amend_multiple_orders(amend_orders_with_orderId)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instId | String | 是 | 产品ID |
cxlOnFail | Boolean | 否 | 当订单修改失败时,该订单是否需要自动撤销。默认为false false :不自动撤单true :自动撤单 |
ordId | String | 可选 | 订单ID, ordId 和clOrdId 必须传一个,若传两个,以ordId 为主 |
clOrdId | String | 可选 | 用户自定义order ID |
reqId | String | 否 | 用户自定义修改事件ID 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 |
newSz | String | 可选 | 修改的新数量,对于部分成交订单,该数量应包含已成交数量。 |
newPx | String | 可选 | 修改后的新价格 |
attachAlgoOrds | Array of object | 否 | 下单附带止盈止损信息 |
> attachAlgoId | String | 可选 | 附带止盈止损的订单ID,由系统生成,改单时,可用来标识该笔附带止盈止损订单。下止盈止损委托单时,该值不会传给 algoId |
> attachAlgoClOrdId | String | 可选 | 下单附带止盈止损时,客户自定义的策略订单ID |
> newTpTriggerPx | String | 可选 | 止盈触发价 如果止盈触发价或者委托价为0,那代表删除止盈。只适用于交割和永续合约。 |
> newTpOrdPx | String | 可选 | 止盈委托价 委托价格为-1时,执行市价止盈。只适用于交割和永续合约。 |
> newSlTriggerPx | String | 可选 | 止损触发价 如果止损触发价或者委托价为0,那代表删除止损。只适用于交割和永续合约。 |
> newSlOrdPx | String | 可选 | 止损委托价 委托价格为-1时,执行市价止损。 只适用于交割和永续合约。 |
> newTpTriggerPxType | String | 可选 | 止盈触发价类型last :最新价格index :指数价格mark :标记价格只适用于 交割 /永续 如果要新增止盈,该参数必填 |
> newSlTriggerPxType | String | 可选 | 止损触发价类型last :最新价格index :指数价格mark :标记价格只适用于 交割 /永续 如果要新增止损,该参数必填 |
> sz | String | 可选 | 新的张数。仅适用于“多笔止盈”的止盈订单且必填 |
> amendPxOnTriggerType | String | 否 | 是否启用开仓价止损,仅适用于分批止盈的止损订单0 :不开启,默认值1 :开启“开仓价止损” |
返回结果
{
"code":"0",
"msg":"",
"data":[
{
"clOrdId":"oktswap6",
"ordId":"12345689",
"reqId":"b12344",
"sCode":"0",
"sMsg":""
},
{
"clOrdId":"oktswap7",
"ordId":"12344",
"reqId":"b12344",
"sCode":"0",
"sMsg":""
}
],
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
code | String | 结果代码,0 表示成功 |
msg | String | 错误信息,代码为0时,该字段为空 |
data | String | 包含结果的对象数组 |
> ordId | String | 订单ID |
> clOrdId | String | 用户自定义ID |
> reqId | String | 用户自定义修改事件ID |
> sCode | String | 事件执行结果的code,0代表成功 |
> sMsg | String | 事件执行失败时的msg |
inTime | String | REST网关接收请求时的时间戳,Unix时间戳的微秒数格式,如 1597026383085123 返回的时间是请求验证后的时间。 |
outTime | String | REST网关发送响应时的时间戳,Unix时间戳的微秒数格式,如 1597026383085123 |
GET / 获取订单信息
查订单信息
限速:60次/2s
限速规则:UserID + Instrument ID
HTTP请求
GET /api/v5/trade/order
请求示例
GET /api/v5/trade/order?ordId=1753197687182819328&instId=BTC-USDT
import okx.Trade as Trade
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘: 0, 模拟盘: 1
tradeAPI = Trade.TradeAPI(apikey, secretkey, passphrase, False, flag)
# 通过 ordId 查询订单
result = tradeAPI.get_order(
instId="BTC-USDT",
ordId="680800019749904384"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instId | String | 是 | 产品ID,如 BTC-USDT 只适用于交易中的产品 |
ordId | String | 可选 | 订单ID,ordId 和clOrdId 必须传一个,若传两个,以ordId 为主 |
clOrdId | String | 可选 | 用户自定义ID 如果 clOrdId 关联了多个订单,只会返回最近的那笔订单 |
返回结果
{
"code": "0",
"data": [
{
"accFillSz": "0.00192834",
"algoClOrdId": "",
"algoId": "",
"attachAlgoClOrdId": "",
"attachAlgoOrds": [],
"avgPx": "51858",
"cTime": "1708587373361",
"cancelSource": "",
"cancelSourceReason": "",
"category": "normal",
"ccy": "",
"clOrdId": "",
"fee": "-0.00000192834",
"feeCcy": "BTC",
"fillPx": "51858",
"fillSz": "0.00192834",
"fillTime": "1708587373361",
"instId": "BTC-USDT",
"instType": "SPOT",
"isTpLimit": "false",
"lever": "",
"linkedAlgoOrd": {
"algoId": ""
},
"ordId": "680800019749904384",
"ordType": "market",
"pnl": "0",
"posSide": "net",
"px": "",
"pxType": "",
"pxUsd": "",
"pxVol": "",
"quickMgnType": "",
"rebate": "0",
"rebateCcy": "USDT",
"reduceOnly": "false",
"side": "buy",
"slOrdPx": "",
"slTriggerPx": "",
"slTriggerPxType": "",
"source": "",
"state": "filled",
"stpId": "",
"stpMode": "",
"sz": "100",
"tag": "",
"tdMode": "cash",
"tgtCcy": "quote_ccy",
"tpOrdPx": "",
"tpTriggerPx": "",
"tpTriggerPxType": "",
"tradeId": "744876980",
"uTime": "1708587373362"
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
instType | String | 产品类型SPOT :币币 |
instId | String | 产品ID |
tgtCcy | String | 币币市价单委托数量sz 的单位base_ccy : 交易货币 ;quote_ccy :计价货币仅适用于 币币 市价订单默认买单为 quote_ccy ,卖单为base_ccy |
ccy | String | 保证金币种,仅适用于现货和合约模式 下的全仓币币杠杆 订单 |
ordId | String | 订单ID |
clOrdId | String | 客户自定义订单ID |
tag | String | 订单标签 |
px | String | 委托价格,对于期权,以币(如BTC, ETH)为单位 |
pxUsd | String | 期权价格,以USD为单位 仅适用于期权,其他业务线返回空字符串"" |
pxVol | String | 期权订单的隐含波动率 仅适用于期权,其他业务线返回空字符串"" |
pxType | String | 期权的价格类型 px :代表按价格下单,单位为币 (请求参数 px 的数值单位是BTC或ETH) pxVol :代表按pxVol下单 pxUsd :代表按照pxUsd下单,单位为USD (请求参数px 的数值单位是USD) |
sz | String | 委托数量 |
pnl | String | 收益,适用于有成交的平仓订单,其他情况均为0 |
ordType | String | 订单类型 market :市价单limit :限价单 post_only :只做maker单 fok :全部成交或立即取消 ioc :立即成交并取消剩余 optimal_limit_ioc :市价委托立即成交并取消剩余(仅适用交割、永续)mmp :做市商保护(仅适用于组合保证金账户模式下的期权订单)mmp_and_post_only :做市商保护且只做maker单(仅适用于组合保证金账户模式下的期权订单) op_fok :期权简选(全部成交或立即取消) |
side | String | 订单方向 |
posSide | String | 持仓方向 |
tdMode | String | 交易模式 |
accFillSz | String | 累计成交数量 对于 币币 和杠杆 ,单位为交易货币,如 BTC-USDT, 单位为 BTC;对于市价单,无论tgtCcy 是base_ccy ,还是quote_ccy ,单位均为交易货币;对于交割、永续以及期权,单位为张。 |
fillPx | String | 最新成交价格,如果成交数量为0,该字段为"" |
tradeId | String | 最新成交ID |
fillSz | String | 最新成交数量 对于 币币 和杠杆 ,单位为交易货币,如 BTC-USDT, 单位为 BTC;对于市价单,无论tgtCcy 是base_ccy ,还是quote_ccy ,单位均为交易货币;对于交割、永续以及期权,单位为张。 |
fillTime | String | 最新成交时间 |
avgPx | String | 成交均价,如果成交数量为0,该字段也为"" |
state | String | 订单状态 canceled :撤单成功live :等待成交 partially_filled :部分成交filled :完全成交mmp_canceled :做市商保护机制导致的自动撤单 |
lever | String | 杠杆倍数,0.01到125之间的数值,仅适用于 币币杠杆/交割/永续 |
attachAlgoClOrdId | String | 下单附带止盈止损时,客户自定义的策略订单ID |
tpTriggerPx | String | 止盈触发价 |
tpTriggerPxType | String | 止盈触发价类型last :最新价格index :指数价格mark :标记价格 |
tpOrdPx | String | 止盈委托价 |
slTriggerPx | String | 止损触发价 |
slTriggerPxType | String | 止损触发价类型last :最新价格index :指数价格mark :标记价格 |
slOrdPx | String | 止损委托价 |
attachAlgoOrds | Array of object | 下单附带止盈止损信息 |
> attachAlgoId | String | 附带止盈止损的订单ID,改单时,可用来标识该笔附带止盈止损订单。下止盈止损委托单时,该值不会传给 algoId |
> attachAlgoClOrdId | String | 下单附带止盈止损时,客户自定义的策略订单ID |
> tpTriggerPx | String | 止盈触发价 |
> tpTriggerPxType | String | 止盈触发价类型last :最新价格index :指数价格mark :标记价格 |
> tpOrdPx | String | 止盈委托价 |
> slTriggerPx | String | 止损触发价 |
> slTriggerPx | String | 止损触发价类型last :最新价格index :指数价格mark :标记价格 |
> slOrdPx | String | 止损委托价 |
> sz | String | 张数。仅适用于“多笔止盈”的止盈订单 |
> amendPxOnTriggerType | String | 是否启用开仓价止损,仅适用于分批止盈的止损订单0 :不开启,默认值 1 :开启 |
linkedAlgoOrd | Object | 止损订单信息,仅适用于包含限价止盈单的双向止盈止损订单,触发后生成的普通订单 |
> algoId | Object | 策略订单唯一标识 |
stpId | String | 如果自成交保护不适用则返回"" |
stpMode | String | 自成交保护模式 |
feeCcy | String | 交易手续费币种 |
fee | String | 手续费与返佣 对于币币和杠杆,为订单交易累计的手续费,平台向用户收取的交易手续费,为负数。如: -0.01 对于交割、永续和期权,为订单交易累计的手续费和返佣 |
rebateCcy | String | 返佣金币种 |
source | String | 订单来源6 :计划委托策略触发后的生成的普通单7 :止盈止损策略触发后的生成的普通单13 :策略委托单触发后的生成的普通单25 :移动止盈止损策略触发后的生成的普通单 |
rebate | String | 返佣金额,仅适用于币币和杠杆,平台向达到指定lv交易等级的用户支付的挂单奖励(返佣),如果没有返佣金,该字段为“”。手续费返佣为正数,如:0.01 |
category | String | 订单种类normal :普通委托twap :TWAP自动换币 adl :ADL自动减仓full_liquidation :强制平仓partial_liquidation :强制减仓 delivery :交割ddh :对冲减仓类型订单 |
reduceOnly | String | 是否只减仓,true 或 false |
cancelSource | String | 订单取消来源的原因枚举值代码 |
cancelSourceReason | String | 订单取消来源的对应具体原因 |
quickMgnType | String | 一键借币类型,仅适用于杠杆逐仓的一键借币模式manual :手动auto_borrow :自动借币auto_repay :自动还币 |
algoClOrdId | String | 客户自定义策略订单ID。策略订单触发,且策略单有algoClOrdId 时有值,否则为"" |
algoId | String | 策略委托单ID,策略订单触发时有值,否则为"" |
uTime | String | 订单状态更新时间,Unix时间戳的毫秒数格式,如 1597026383085 |
cTime | String | 订单创建时间,Unix时间戳的毫秒数格式,如 1597026383085 |
GET / 获取未成交订单列表
获取当前账户下所有未成交订单信息
限速:60次/2s
限速规则:UserID
HTTP请求
GET /api/v5/trade/orders-pending
请求示例
GET /api/v5/trade/orders-pending?ordType=post_only,fok,ioc&instType=SPOT
import okx.Trade as Trade
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘: 0, 模拟盘: 1
tradeAPI = Trade.TradeAPI(apikey, secretkey, passphrase, False, flag)
# 查询所有未成交订单
result = tradeAPI.get_order_list(
instType="SPOT",
ordType="post_only,fok,ioc"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instType | String | 否 | 产品类型SPOT :币币 |
instId | String | 否 | 产品ID,如 BTC-USDT |
ordType | String | 否 | 订单类型market :市价单limit :限价单post_only :只做maker单fok :全部成交或立即取消ioc :立即成交并取消剩余 |
state | String | 否 | 订单状态live :等待成交partially_filled :部分成交 |
after | String | 否 | 请求此ID之前(更旧的数据)的分页内容,传的值为对应接口的ordId |
before | String | 否 | 请求此ID之后(更新的数据)的分页内容,传的值为对应接口的ordId |
limit | String | 否 | 返回结果的数量,最大为100,默认100条 |
返回结果
{
"code": "0",
"data": [
{
"accFillSz": "0",
"algoClOrdId": "",
"algoId": "",
"attachAlgoClOrdId": "",
"attachAlgoOrds": [],
"avgPx": "",
"cTime": "1724733617998",
"cancelSource": "",
"cancelSourceReason": "",
"category": "normal",
"ccy": "",
"clOrdId": "",
"fee": "0",
"feeCcy": "BTC",
"fillPx": "",
"fillSz": "0",
"fillTime": "",
"instId": "BTC-USDT",
"instType": "SPOT",
"isTpLimit": "false",
"lever": "",
"linkedAlgoOrd": {
"algoId": ""
},
"ordId": "1752588852617379840",
"ordType": "post_only",
"pnl": "0",
"posSide": "net",
"px": "13013.5",
"pxType": "",
"pxUsd": "",
"pxVol": "",
"quickMgnType": "",
"rebate": "0",
"rebateCcy": "USDT",
"reduceOnly": "false",
"side": "buy",
"slOrdPx": "",
"slTriggerPx": "",
"slTriggerPxType": "",
"source": "",
"state": "live",
"stpId": "",
"stpMode": "cancel_maker",
"sz": "0.001",
"tag": "",
"tdMode": "cash",
"tgtCcy": "",
"tpOrdPx": "",
"tpTriggerPx": "",
"tpTriggerPxType": "",
"tradeId": "",
"uTime": "1724733617998"
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
instType | String | 产品类型 |
instId | String | 产品ID |
tgtCcy | String | 币币市价单委托数量sz 的单位base_ccy :交易货币quote_ccy :计价货币仅适用于 币币 市价订单默认买单为 quote_ccy ,卖单为base_ccy |
ccy | String | 保证金币种,仅适用于现货和合约模式 下的全仓币币杠杆 订单 |
ordId | String | 订单ID |
clOrdId | String | 客户自定义订单ID |
tag | String | 订单标签 |
px | String | 委托价格,对于期权,以币(如BTC, ETH)为单位 |
pxUsd | String | 期权价格,以USD为单位 仅适用于期权,其他业务线返回空字符串"" |
pxVol | String | 期权订单的隐含波动率 仅适用于期权,其他业务线返回空字符串"" |
pxType | String | 期权的价格类型 px :代表按价格下单,单位为币 (请求参数 px 的数值单位是BTC或ETH) pxVol :代表按pxVol下单 pxUsd :代表按照pxUsd下单,单位为USD (请求参数px 的数值单位是USD) |
sz | String | 委托数量 |
pnl | String | 收益,适用于有成交的平仓订单,其他情况均为0 |
ordType | String | 订单类型market :市价单limit :限价单 post_only :只做maker单 fok :全部成交或立即取消 ioc :立即成交并取消剩余 optimal_limit_ioc :市价委托立即成交并取消剩余(仅适用交割、永续)mmp :做市商保护(仅适用于组合保证金账户模式下的期权订单)mmp_and_post_only :做市商保护且只做maker单(仅适用于组合保证金账户模式下的期权订单) op_fok :期权简选(全部成交或立即取消) |
side | String | 订单方向 |
posSide | String | 持仓方向 |
tdMode | String | 交易模式 |
accFillSz | String | 累计成交数量 |
fillPx | String | 最新成交价格。如果还没成交,系统返回""。 |
tradeId | String | 最新成交ID |
fillSz | String | 最新成交数量 |
fillTime | String | 最新成交时间 |
avgPx | String | 成交均价。如果还没成交,系统返回0 。 |
state | String | 订单状态live :等待成交 partially_filled :部分成交 |
lever | String | 杠杆倍数,0.01到125之间的数值,仅适用于 币币杠杆/交割/永续 |
attachAlgoClOrdId | String | 下单附带止盈止损时,客户自定义的策略订单ID |
tpTriggerPx | String | 止盈触发价 |
tpTriggerPxType | String | 止盈触发价类型last :最新价格index :指数价格mark :标记价格 |
slTriggerPx | String | 止损触发价 |
slTriggerPxType | String | 止损触发价类型last :最新价格index :指数价格mark :标记价格 |
slOrdPx | String | 止损委托价 |
tpOrdPx | String | 止盈委托价 |
attachAlgoOrds | Array of object | 下单附带止盈止损信息 |
> attachAlgoId | String | 附带止盈止损的订单ID,改单时,可用来标识该笔附带止盈止损订单。下止盈止损委托单时,该值不会传给 algoId |
> attachAlgoClOrdId | String | 下单附带止盈止损时,客户自定义的策略订单ID |
> tpTriggerPx | String | 止盈触发价 |
> tpTriggerPxType | String | 止盈触发价类型last :最新价格index :指数价格mark :标记价格 |
> tpOrdPx | String | 止盈委托价 |
> slTriggerPx | String | 止损触发价 |
> slTriggerPxType | String | 止损触发价类型last :最新价格index :指数价格mark :标记价格 |
> slOrdPx | String | 止损委托价 |
> sz | String | 张数。仅适用于“多笔止盈”的止盈订单 |
> amendPxOnTriggerType | String | 是否启用开仓价止损,仅适用于分批止盈的止损订单0 :不开启,默认值 1 :开启 |
stpId | String | 如果自成交保护不适用则返回"" |
stpMode | String | 自成交保护模式 |
feeCcy | String | 交易手续费币种 |
fee | String | 手续费与返佣 对于币币和杠杆,为订单交易累计的手续费,平台向用户收取的交易手续费,为负数。如: -0.01 对于交割、永续和期权,为订单交易累计的手续费和返佣 |
rebateCcy | String | 返佣金币种 |
source | String | 订单来源6 :计划委托策略触发后的生成的普通单7 :止盈止损策略触发后的生成的普通单13 :策略委托单触发后的生成的普通单25 :移动止盈止损策略触发后的生成的普通单 |
rebate | String | 返佣金额,仅适用于币币和杠杆,平台向达到指定lv交易等级的用户支付的挂单奖励(返佣),如果没有返佣金,该字段为“”。手续费返佣为正数 ,如:0.01 |
category | String | 订单种类normal :普通委托 |
reduceOnly | String | 是否只减仓,true 或 false |
quickMgnType | String | 一键借币类型,仅适用于杠杆逐仓的一键借币模式manual :手动auto_borrow :自动借币auto_repay :自动还币 |
algoClOrdId | String | 客户自定义策略订单ID。策略订单触发,且策略单有algoClOrdId 是有值,否则为"", |
algoId | String | 策略委托单ID,策略订单触发时有值,否则为"" |
uTime | String | 订单状态更新时间,Unix时间戳的毫秒数格式,如 1597026383085 |
cTime | String | 订单创建时间,Unix时间戳的毫秒数格式,如 1597026383085 |
cancelSource | String | 订单取消来源的原因枚举值代码 |
cancelSourceReason | String | 订单取消来源的对应具体原因 |
GET / 获取历史订单记录(近七天)
获取最近7天挂单,且完成的订单数据,包括7天以前挂单,但近7天才成交的订单数据。按照订单创建时间倒序排序。
已经撤销的未成交单 只保留2小时
限速:40次/2s
限速规则:UserID
HTTP请求
GET /api/v5/trade/orders-history
请求示例
GET /api/v5/trade/orders-history?ordType=post_only,fok,ioc&instType=SPOT
import okx.Trade as Trade
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘: 0, 模拟盘: 1
tradeAPI = Trade.TradeAPI(apikey, secretkey, passphrase, False, flag)
# 查询币币历史订单(7天内)
# 已经撤销的未成交单 只保留2小时
result = tradeAPI.get_orders_history(
instType="SPOT",
ordType="post_only,fok,ioc"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instType | String | 是 | 产品类型SPOT :币币 |
instId | String | 否 | 产品ID,如 BTC-USDT |
ordType | String | 否 | 订单类型market :市价单limit :限价单 post_only :只做maker单fok :全部成交或立即取消ioc :立即成交并取消剩余 |
state | String | 否 | 订单状态canceled :撤单成功filled :完全成交mmp_canceled :做市商保护机制导致的自动撤单 |
after | String | 否 | 请求此ID之前(更旧的数据)的分页内容,传的值为对应接口的ordId |
before | String | 否 | 请求此ID之后(更新的数据)的分页内容,传的值为对应接口的ordId |
begin | String | 否 | 筛选的开始时间戳,Unix 时间戳为毫秒数格式,如 1597026383085 |
end | String | 否 | 筛选的结束时间戳,Unix 时间戳为毫秒数格式,如 1597027383085 |
limit | String | 否 | 返回结果的数量,最大为100,默认100条 |
返回结果
{
"code": "0",
"data": [
{
"accFillSz": "0.00192834",
"algoClOrdId": "",
"algoId": "",
"attachAlgoClOrdId": "",
"attachAlgoOrds": [],
"avgPx": "51858",
"cTime": "1708587373361",
"cancelSource": "",
"cancelSourceReason": "",
"category": "normal",
"ccy": "",
"clOrdId": "",
"fee": "-0.00000192834",
"feeCcy": "BTC",
"fillPx": "51858",
"fillSz": "0.00192834",
"fillTime": "1708587373361",
"instId": "BTC-USDT",
"instType": "SPOT",
"isTpLimit": "false",
"lever": "",
"linkedAlgoOrd": {
"algoId": ""
},
"ordId": "680800019749904384",
"ordType": "market",
"pnl": "0",
"posSide": "",
"px": "",
"pxType": "",
"pxUsd": "",
"pxVol": "",
"quickMgnType": "",
"rebate": "0",
"rebateCcy": "USDT",
"reduceOnly": "false",
"side": "buy",
"slOrdPx": "",
"slTriggerPx": "",
"slTriggerPxType": "",
"source": "",
"state": "filled",
"stpId": "",
"stpMode": "",
"sz": "100",
"tag": "",
"tdMode": "cash",
"tgtCcy": "quote_ccy",
"tpOrdPx": "",
"tpTriggerPx": "",
"tpTriggerPxType": "",
"tradeId": "744876980",
"uTime": "1708587373362"
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
instType | String | 产品类型 |
instId | String | 产品ID |
tgtCcy | String | 币币市价单委托数量sz 的单位base_ccy : 交易货币 ;quote_ccy :计价货币仅适用于 币币 市价订单默认买单为 quote_ccy ,卖单为base_ccy |
ccy | String | 保证金币种,仅适用于现货和合约模式 下的全仓币币杠杆 订单 |
ordId | String | 订单ID |
clOrdId | String | 客户自定义订单ID |
tag | String | 订单标签 |
px | String | 委托价格,对于期权,以币(如BTC, ETH)为单位 |
pxUsd | String | 期权价格,以USD为单位 仅适用于期权,其他业务线返回空字符串"" |
pxVol | String | 期权订单的隐含波动率 仅适用于期权,其他业务线返回空字符串"" |
pxType | String | 期权的价格类型 px :代表按价格下单,单位为币 (请求参数 px 的数值单位是BTC或ETH) pxVol :代表按pxVol下单 pxUsd :代表按照pxUsd下单,单位为USD (请求参数px 的数值单位是USD) |
sz | String | 委托数量 |
ordType | String | 订单类型market :市价单limit :限价单 post_only :只做maker单 fok :全部成交或立即取消 ioc :立即成交并取消剩余optimal_limit_ioc :市价委托立即成交并取消剩余(仅适用交割、永续)mmp :做市商保护(仅适用于组合保证金账户模式下的期权订单)mmp_and_post_only :做市商保护且只做maker单(仅适用于组合保证金账户模式下的期权订单) op_fok :期权简选(全部成交或立即取消) |
side | String | 订单方向 |
posSide | String | 持仓方向 |
tdMode | String | 交易模式 |
accFillSz | String | 累计成交数量 |
fillPx | String | 最新成交价格,如果成交数量为0,该字段为"" |
tradeId | String | 最新成交ID |
fillSz | String | 最新成交数量 |
fillTime | String | 最新成交时间 |
avgPx | String | 成交均价,如果成交数量为0,该字段也为"" |
state | String | 订单状态canceled :撤单成功 filled :完全成交mmp_canceled :做市商保护机制导致的自动撤单 |
lever | String | 杠杆倍数,0.01到125之间的数值,仅适用于 币币杠杆/交割/永续 |
attachAlgoClOrdId | String | 下单附带止盈止损时,客户自定义的策略订单ID |
tpTriggerPx | String | 止盈触发价 |
tpTriggerPxType | String | 止盈触发价类型last :最新价格index :指数价格mark :标记价格 |
tpOrdPx | String | 止盈委托价 |
slTriggerPx | String | 止损触发价 |
slTriggerPxType | String | 止损触发价类型last :最新价格index :指数价格mark :标记价格 |
slOrdPx | String | 止损委托价 |
attachAlgoOrds | Array of object | 下单附带止盈止损信息 |
> attachAlgoId | String | 附带止盈止损的订单ID,改单时,可用来标识该笔附带止盈止损订单。下止盈止损委托单时,该值不会传给 algoId |
> attachAlgoClOrdId | String | 下单附带止盈止损时,客户自定义的策略订单ID |
> tpTriggerPx | String | 止盈触发价 |
> tpTriggerPxType | String | 止盈触发价类型last :最新价格index :指数价格mark :标记价格 |
> tpOrdPx | String | 止盈委托价 |
> slTriggerPx | String | 止损触发价 |
> slTriggerPxType | String | 止损触发价类型last :最新价格index :指数价格mark :标记价格 |
> slOrdPx | String | 止损委托价 |
> sz | String | 张数。仅适用于“多笔止盈”的止盈订单 |
> amendPxOnTriggerType | String | 是否启用开仓价止损,仅适用于分批止盈的止损订单0 :不开启,默认值 1 :开启 |
linkedAlgoOrd | Object | 止损订单信息,仅适用于包含限价止盈单的双向止盈止损订单,触发后生成的普通订单 |
> algoId | Object | 策略订单唯一标识 |
stpId | String | 如果自成交保护不适用则返回"" |
stpMode | String | 自成交保护模式 |
feeCcy | String | 交易手续费币种 |
fee | String | 手续费与返佣 对于币币和杠杆,为订单交易累计的手续费,平台向用户收取的交易手续费,为负数。如: -0.01 对于交割、永续和期权,为订单交易累计的手续费和返佣 |
rebateCcy | String | 返佣金币种 |
source | String | 订单来源6 :计划委托策略触发后的生成的普通单7 :止盈止损策略触发后的生成的普通单13 :策略委托单触发后的生成的普通单25 :移动止盈止损策略触发后的生成的普通单 |
rebate | String | 返佣金额,仅适用于币币和杠杆,平台向达到指定lv交易等级的用户支付的挂单奖励(返佣),如果没有返佣金,该字段为“”。手续费返佣为正数 ,如:0.01 |
pnl | String | 收益,适用于有成交的平仓订单,其他情况均为0 |
category | String | 订单种类normal :普通委托twap :TWAP自动换币 adl :ADL自动减仓full_liquidation :强制平仓partial_liquidation :强制减仓delivery :交割ddh :对冲减仓类型订单 |
reduceOnly | String | 是否只减仓,true 或 false |
cancelSource | String | 订单取消来源的原因枚举值代码 |
cancelSourceReason | String | 订单取消来源的对应具体原因 |
algoClOrdId | String | 客户自定义策略订单ID。策略订单触发,且策略单有algoClOrdId 时有值,否则为"", |
algoId | String | 策略委托单ID,策略订单触发时有值,否则为"" |
uTime | String | 订单状态更新时间,Unix时间戳的毫秒数格式,如 1597026383085 |
cTime | String | 订单创建时间,Unix时间戳的毫秒数格式,如 1597026383085 |
GET / 获取历史订单记录(近三个月)
获取最近3个月挂单,且完成的订单数据,包括3个月以前挂单,但近3个月才成交的订单数据。按照订单创建时间倒序排序。
限速:20次/2s
限速规则:UserID
HTTP请求
GET /api/v5/trade/orders-history-archive
请求示例
GET /api/v5/trade/orders-history-archive?ordType=post_only,fok,ioc&instType=SPOT
import okx.Trade as Trade
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘: 0, 模拟盘: 1
tradeAPI = Trade.TradeAPI(apikey, secretkey, passphrase, False, flag)
# 查询币币历史订单(3月内)
result = tradeAPI.get_orders_history_archive(
instType="SPOT",
ordType="post_only,fok,ioc"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instType | String | 是 | 产品类型SPOT :币币MARGIN :币币杠杆SWAP :永续合约FUTURES :交割合约OPTION :期权 |
instId | String | 否 | 产品ID,如BTC-USDT |
ordType | String | 否 | 订单类型market :市价单limit :限价单 post_only :只做maker单 fok :全部成交或立即取消ioc :立即成交并取消剩余 |
state | String | 否 | 订单状态canceled :撤单成功filled :完全成交mmp_canceled :做市商保护机制导致的自动撤单 |
after | String | 否 | 请求此ID之前(更旧的数据)的分页内容,传的值为对应接口的ordId |
before | String | 否 | 请求此ID之后(更新的数据)的分页内容,传的值为对应接口的ordId |
begin | String | 否 | 筛选的开始时间戳,Unix 时间戳为毫秒数格式,如 1597026383085 |
end | String | 否 | 筛选的结束时间戳,Unix 时间戳为毫秒数格式,如 1597027383085 |
limit | String | 否 | 返回结果的数量,最大为100,默认100条 |
返回结果
{
"code": "0",
"data": [
{
"accFillSz": "0.00192834",
"algoClOrdId": "",
"algoId": "",
"attachAlgoClOrdId": "",
"attachAlgoOrds": [],
"avgPx": "51858",
"cTime": "1708587373361",
"cancelSource": "",
"cancelSourceReason": "",
"category": "normal",
"ccy": "",
"clOrdId": "",
"fee": "-0.00000192834",
"feeCcy": "BTC",
"fillPx": "51858",
"fillSz": "0.00192834",
"fillTime": "1708587373361",
"instId": "BTC-USDT",
"instType": "SPOT",
"isTpLimit": "false",
"lever": "",
"ordId": "680800019749904384",
"ordType": "market",
"pnl": "0",
"posSide": "",
"px": "",
"pxType": "",
"pxUsd": "",
"pxVol": "",
"quickMgnType": "",
"rebate": "0",
"rebateCcy": "USDT",
"reduceOnly": "false",
"side": "buy",
"slOrdPx": "",
"slTriggerPx": "",
"slTriggerPxType": "",
"source": "",
"state": "filled",
"stpId": "",
"stpMode": "",
"sz": "100",
"tag": "",
"tdMode": "cash",
"tgtCcy": "quote_ccy",
"tpOrdPx": "",
"tpTriggerPx": "",
"tpTriggerPxType": "",
"tradeId": "744876980",
"uTime": "1708587373362"
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
instType | String | 产品类型 |
instId | String | 产品ID |
tgtCcy | String | 币币市价单委托数量sz 的单位base_ccy : 交易货币 ;quote_ccy :计价货币仅适用于 币币 市价订单默认买单为 quote_ccy ,卖单为base_ccy |
ccy | String | 保证金币种,仅适用于现货和合约模式 下的全仓币币杠杆 订单 |
ordId | String | 订单ID |
clOrdId | String | 客户自定义订单ID |
tag | String | 订单标签 |
px | String | 委托价格,对于期权,以币(如BTC, ETH)为单位 |
pxUsd | String | 期权价格,以USD为单位 仅适用于期权,其他业务线返回空字符串"" |
pxVol | String | 期权订单的隐含波动率 仅适用于期权,其他业务线返回空字符串"" |
pxType | String | 期权的价格类型px :代表按价格下单,单位为币 (请求参数 px 的数值单位是BTC或ETH) pxVol :代表按pxVol下单 pxUsd :代表按照pxUsd下单,单位为USD (请求参数px 的数值单位是USD) |
sz | String | 委托数量 |
ordType | String | 订单类型market :市价单limit :限价单 post_only :只做maker单 fok :全部成交或立即取消 ioc :立即成交并取消剩余 optimal_limit_ioc :市价委托立即成交并取消剩余(仅适用交割、永续)mmp :做市商保护(仅适用于组合保证金账户模式下的期权订单)mmp_and_post_only :做市商保护且只做maker单(仅适用于组合保证金账户模式下的期权订单) op_fok :期权简选(全部成交或立即取消) |
side | String | 订单方向 |
posSide | String | 持仓方向 |
tdMode | String | 交易模式 |
accFillSz | String | 累计成交数量 |
fillPx | String | 最新成交价格,如果成交数量为0,该字段为"" |
tradeId | String | 最新成交ID |
fillSz | String | 最新成交数量 |
fillTime | String | 最新成交时间 |
avgPx | String | 成交均价,如果成交数量为0,该字段也为"" |
state | String | 订单状态 canceled :撤单成功 filled :完全成交mmp_canceled :做市商保护机制导致的自动撤单 |
lever | String | 杠杆倍数,0.01到125之间的数值,仅适用于 币币杠杆/交割/永续 |
attachAlgoClOrdId | String | 下单附带止盈止损时,客户自定义的策略订单ID |
tpTriggerPx | String | 止盈触发价 |
tpTriggerPxType | String | 止盈触发价类型last :最新价格index :指数价格mark :标记价格 |
tpOrdPx | String | 止盈委托价 |
slTriggerPx | String | 止损触发价 |
slTriggerPxType | String | 止损触发价类型last :最新价格index :指数价格mark :标记价格 |
slOrdPx | String | 止损委托价 |
stpId | String | 如果自成交保护不适用则返回"" |
attachAlgoOrds | Array of object | 下单附带止盈止损信息 |
> attachAlgoId | String | 附带止盈止损的订单ID,改单时,可用来标识该笔附带止盈止损订单。下止盈止损委托单时,该值不会传给 algoId |
> attachAlgoClOrdId | String | 下单附带止盈止损时,客户自定义的策略订单ID |
> tpTriggerPx | String | 止盈触发价 |
> tpTriggerPxType | String | 止盈触发价类型last :最新价格index :指数价格mark :标记价格 |
> tpOrdPx | String | 止盈委托价 |
> slTriggerPx | String | 止损触发价 |
> slTriggerPxType | String | 止损触发价类型last :最新价格index :指数价格mark :标记价格 |
> slOrdPx | String | 止损委托价 |
> sz | String | 张数。仅适用于“多笔止盈”的止盈订单 |
> amendPxOnTriggerType | String | 是否启用开仓价止损,仅适用于分批止盈的止损订单0 :不开启,默认值 1 :开启 |
stpMode | String | 自成交保护模式 |
feeCcy | String | 交易手续费币种 |
fee | String | 手续费与返佣 对于币币和杠杆,为订单交易累计的手续费,平台向用户收取的交易手续费,为负数。如: -0.01 对于交割、永续和期权,为订单交易累计的手续费和返佣 |
rebateCcy | String | 返佣金币种 |
rebate | String | 返佣金额,仅适用于币币和杠杆,平台向达到指定lv交易等级的用户支付的挂单奖励(返佣),如果没有返佣金,该字段为“”。手续费返佣为正数 ,如:0.01 |
pnl | String | 收益,适用于有成交的平仓订单,其他情况均为0 |
source | String | 订单来源6 :计划委托策略触发后的生成的普通单7 :止盈止损策略触发后的生成的普通单13 :策略委托单触发后的生成的普通单25 :移动止盈止损策略触发后的生成的普通单 |
category | String | 订单种类normal :普通委托twap :TWAP自动换币 adl :ADL自动减仓full_liquidation :强制平仓partial_liquidation :强制减仓 delivery :交割ddh :对冲减仓类型订单 |
reduceOnly | String | 是否只减仓,true 或 false |
cancelSource | String | 订单取消来源的原因枚举值代码 |
cancelSourceReason | String | 订单取消来源的对应具体原因 |
algoClOrdId | String | 客户自定义策略订单ID。策略订单触发,且策略单有algoClOrdId 是有值,否则为"", |
algoId | String | 策略委托单ID,策略订单触发时有值,否则为"" |
uTime | String | 订单状态更新时间,Unix时间戳的毫秒数格式,如 1597026383085 |
cTime | String | 订单创建时间,Unix时间戳的毫秒数格式,如 1597026383085 |
GET / 获取成交明细(近三天)
获取近3天的订单成交明细信息
限速:60次/2s
限速规则:UserID
HTTP 请求
GET /api/v5/trade/fills
请求示例
GET /api/v5/trade/fills
import okx.Trade as Trade
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘: 0, 模拟盘: 1
tradeAPI = Trade.TradeAPI(apikey, secretkey, passphrase, False, flag)
# 获取成交明细
result = tradeAPI.get_fills()
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instType | String | 否 | 产品类型SPOT :币币 |
instId | String | 否 | 产品 ID,如BTC-USDT |
ordId | String | 否 | 订单 ID |
after | String | 否 | 请求此 ID 之前(更旧的数据)的分页内容,传的值为对应接口的 billId |
before | String | 否 | 请求此 ID 之后(更新的数据)的分页内容,传的值为对应接口的 billId |
begin | String | 否 | 筛选的开始时间戳,Unix 时间戳为毫秒数格式,如 1597026383085 |
end | String | 否 | 筛选的结束时间戳,Unix 时间戳为毫秒数格式,如 1597027383085 |
limit | String | 否 | 返回结果的数量,最大为100,默认100条 |
返回结果
{
"code": "0",
"data": [
{
"side": "buy",
"fillSz": "0.00192834",
"fillPx": "51858",
"fillPxVol": "",
"fillFwdPx": "",
"fee": "-0.00000192834",
"fillPnl": "0",
"ordId": "680800019749904384",
"feeRate": "-0.001",
"instType": "SPOT",
"fillPxUsd": "",
"instId": "BTC-USDT",
"clOrdId": "",
"posSide": "net",
"billId": "680800019754098688",
"fillMarkVol": "",
"tag": "",
"fillTime": "1708587373361",
"execType": "T",
"fillIdxPx": "",
"tradeId": "744876980",
"fillMarkPx": "",
"feeCcy": "BTC",
"ts": "1708587373362"
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
instType | String | 产品类型 |
instId | String | 产品 ID |
tradeId | String | 最新成交 ID |
ordId | String | 订单 ID |
clOrdId | String | 用户自定义订单ID |
billId | String | 账单 ID |
tag | String | 订单标签 |
fillPx | String | 最新成交价格 |
fillSz | String | 最新成交数量 |
fillIdxPx | String | 交易执行时的指数价格 对于交叉现货币对,返回 baseCcy-USDT 的指数价格。 例如LTC-ETH,该字段返回 LTC-USDT 的指数价格。 |
fillPnl | String | 最新成交收益,适用于有成交的平仓订单。其他情况均为0。 |
fillPxVol | String | 成交时的隐含波动率,仅适用于期权,其他业务线返回空字符串"" |
fillPxUsd | String | 成交时的期权价格,以USD为单位,仅适用于期权,其他业务线返回空字符串"" |
fillMarkVol | String | 成交时的标记波动率,仅适用于期权,其他业务线返回空字符串"" |
fillFwdPx | String | 成交时的远期价格,仅适用于期权,其他业务线返回空字符串"" |
fillMarkPx | String | 成交时的标记价格,仅适用于 交割 /永续 /期权 |
side | String | 订单方向 buy :买 sell :卖 |
posSide | String | 持仓方向 long :多 short :空 买卖模式返回 net |
execType | String | 流动性方向 T :taker M :maker不适用于系统订单比如强平和ADL |
feeCcy | String | 交易手续费币种或者返佣金币种 |
fee | String | 手续费金额或者返佣金额,手续费扣除为‘负数’,如-0.01;手续费返佣为‘正数’,如 0.01 |
ts | String | 成交明细产生时间,Unix时间戳的毫秒数格式,如1597026383085 |
fillTime | String | 成交时间,与订单频道的fillTime 相同 |
feeRate | String | 手续费费率。 该字段仅对 币币 和杠杆 返回 |
GET / 获取成交明细(近三个月)
获取近3个月订单成交明细信息
限速:10 次/2s
限速规则:UserID
HTTP 请求
GET /api/v5/trade/fills-history
请求示例
GET /api/v5/trade/fills-history?instType=SPOT
import okx.Trade as Trade
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘: 0, 模拟盘: 1
tradeAPI = Trade.TradeAPI(apikey, secretkey, passphrase, False, flag)
# 查询 币币 成交明细(3月内)
result = tradeAPI.get_fills_history(
instType="SPOT"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instType | String | 是 | 产品类型SPOT :币币 |
instId | String | 否 | 产品 ID,如BTC-USDT |
ordId | String | 否 | 订单 ID |
after | String | 否 | 请求此 ID 之前(更旧的数据)的分页内容,传的值为对应接口的billId |
before | String | 否 | 请求此 ID 之后(更新的数据)的分页内容,传的值为对应接口的billId |
begin | String | 否 | 筛选的开始时间戳,Unix 时间戳为毫秒数格式,如 1597026383085 |
end | String | 否 | 筛选的结束时间戳,Unix 时间戳为毫秒数格式,如 1597027383085 |
limit | String | 否 | 返回结果的数量,最大为100,默认100条 |
返回结果
{
"code": "0",
"data": [
{
"side": "buy",
"fillSz": "0.00192834",
"fillPx": "51858",
"fillPxVol": "",
"fillFwdPx": "",
"fee": "-0.00000192834",
"fillPnl": "0",
"ordId": "680800019749904384",
"feeRate": "-0.001",
"instType": "SPOT",
"fillPxUsd": "",
"instId": "BTC-USDT",
"clOrdId": "",
"posSide": "net",
"billId": "680800019754098688",
"fillMarkVol": "",
"tag": "",
"fillTime": "1708587373361",
"execType": "T",
"fillIdxPx": "",
"tradeId": "744876980",
"fillMarkPx": "",
"feeCcy": "BTC",
"ts": "1708587373362"
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
instType | String | 产品类型 |
instId | String | 产品 ID |
tradeId | String | 最新成交 ID |
ordId | String | 订单 ID |
clOrdId | String | 用户自定义订单ID |
billId | String | 账单 ID |
tag | String | 订单标签 |
fillPx | String | 最新成交价格 |
fillSz | String | 最新成交数量 |
fillIdxPx | String | 交易执行时的指数价格 对于交叉现货币对,返回 baseCcy-USDT 的指数价格。 例如LTC-ETH,该字段返回LTC-USDT的指数价格。 |
fillPnl | String | 最新成交收益,适用于有成交的平仓订单。其他情况均为0。 |
fillPxVol | String | 成交时的隐含波动率,仅适用于期权,其他业务线返回空字符串"" |
fillPxUsd | String | 成交时的期权价格,以USD为单位,仅适用于期权,其他业务线返回空字符串"" |
fillMarkVol | String | 成交时的标记波动率,仅适用于期权,其他业务线返回空字符串"" |
fillFwdPx | String | 成交时的远期价格,仅适用于期权,其他业务线返回空字符串"" |
fillMarkPx | String | 成交时的标记价格,仅适用于 交割 /永续 /期权 |
side | String | 订单方向buy :买sell :卖 |
posSide | String | 持仓方向long :多short :空买卖模式返回 net |
execType | String | 流动性方向T :takerM :maker不适用于系统订单比如强平和ADL |
feeCcy | String | 交易手续费币种或者返佣金币种 |
fee | String | 手续费金额或者返佣金额 手续费扣除为‘负数’,如 -0.01 手续费返佣为‘正数’,如 0.01 |
ts | String | 成交明细产生时间,Unix时间戳的毫秒数格式,如1597026383085 |
fillTime | String | 成交时间,与订单频道的fillTime 相同 |
feeRate | String | 手续费费率。 该字段仅对 币币 和杠杆 返回 |
POST / 倒计时全部撤单
在倒计时结束后,取消所有挂单。适用于所有撮合交易产品(不包括价差交易)。
限速:1次/s
限速规则:UserID
HTTP请求
POST /api/v5/trade/cancel-all-after
请求示例
POST /api/v5/trade/cancel-all-after
{
"timeOut":"60"
}
import okx.Trade as Trade
# API initialization
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘: 0, 模拟盘: 1
tradeAPI = Trade.TradeAPI(apikey, secretkey, passphrase, False, flag)
# 设置倒计时全部撤单
result = tradeAPI.cancel_all_after(
timeOut="10"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
timeOut | String | 是 | 取消挂单的倒计时,单位为秒 取值范围为 0, [10, 120] 0 代表不使用该功能 |
tag | String | No | CAA订单标签 字母(区分大小写)与数字的组合,可以是纯字母、纯数字,且长度在1-16位之间 |
返回结果
{
"code":"0",
"msg":"",
"data":[
{
"triggerTime":"1587971460",
"tag":"",
"ts":"1587971400"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
triggerTime | String | 触发撤单的时间 triggerTime=0 代表未使用该功能 |
tag | String | CAA订单标签 |
ts | String | 请求时间被接收到的时间 |
GET / 获取账户限速
获取账户限速相关信息
仅有新订单及修改订单请求会被计入此限制。对于包含多个订单的批量请求,每个订单将被单独计数。
更多细节,请见 基于成交比率的子账户限速
限速:1次/s
限速规则:UserID
HTTP请求
GET /api/v5/trade/account-rate-limit
请求示例
# 获取账户限速相关信息
GET /api/v5/trade/account-rate-limit
请求参数
None
返回结果
{
"code":"0",
"data":[
{
"accRateLimit":"2000",
"fillRatio":"0.1234",
"mainFillRatio":"0.1234",
"nextAccRateLimit":"2000",
"ts":"123456789000"
}
],
"msg":""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
fillRatio | String | 监测期内子账户的成交比率 适用于交易费等级 >= VIP 5的用户,其余用户返回"" 对于监测期内没有交易量的账户,返回"0"。对于监测期内有交易量,但没有订单操作数的用户,返回"9999"。 |
mainFillRatio | String | 监测期内母账户合计成交比率 适用于交易费等级 >= VIP 5的用户,其余用户返回"" 对于监测期内没有交易量的账户,返回"0" |
accRateLimit | String | 当前子账户交易限速(每两秒) |
nextAccRateLimit | String | 预计下一周期子账户交易限速(每两秒) 适用于交易费等级 >= VIP 5的用户,其余用户返回"" |
ts | String | 数据更新时间 对于交易费等级>= VIP 5的用户,数据将于每日16:00(UTC+8)生成 对于交易费等级 < VIP 5的用户,返回当前时间戳 |
WS / 订单频道
获取订单信息,首次订阅不推送,只有当下单、撤单等事件触发时,推送数据
服务地址
/ws/v5/private (需要登录)
请求示例:
{
"op": "subscribe",
"args": [{
"channel": "orders",
"instType": "ANY"
}]
}
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
op | String | 是 | 操作subscribe unsubscribe |
args | Array | 是 | 请求订阅的频道列表 |
> channel | String | 是 | 频道名orders |
> instType | String | 是 | 产品类型ANY :全部 |
> instId | String | 否 | 产品ID |
成功返回示例:
{
"event": "subscribe",
"arg": {
"channel": "orders",
"instType": "ANY"
},
"connId": "a4d3ae55"
}
失败返回示例
{
"event": "error",
"code": "60012",
"msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{ \"channel\" : \"orders\", \"instType\" : \"FUTURES\"}]}",
"connId": "a4d3ae55"
}
返回参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
event | String | 是 | 事件subscribe unsubscribe error |
arg | Object | 否 | 订阅的频道 |
> channel | String | 是 | 频道名 |
> instType | String | 是 | 产品类型ANY :全部 |
> instId | String | 否 | 产品ID |
code | String | 否 | 错误码 |
msg | String | 否 | 错误消息 |
connId | String | 是 | WebSocket连接ID |
推送示例:单个
{
"arg": {
"channel": "orders",
"instType": "ANY",
"uid": "614488474791936"
},
"data": [
{
"accFillSz": "0.001",
"amendResult": "",
"avgPx": "31527.1",
"cTime": "1654084334977",
"category": "normal",
"ccy": "",
"clOrdId": "",
"code": "0",
"execType": "M",
"fee": "-0.02522168",
"feeCcy": "USDT",
"fillFee": "-0.02522168",
"fillFeeCcy": "USDT",
"fillNotionalUsd": "31.50818374",
"fillPx": "31527.1",
"fillSz": "0.001",
"fillPnl": "0.01",
"fillTime": "1654084353263",
"fillPxVol": "",
"fillPxUsd": "",
"fillMarkVol": "",
"fillFwdPx": "",
"fillMarkPx": "",
"instId": "BTC-USDT",
"instType": "SPOT",
"lever": "0",
"msg": "",
"notionalUsd": "31.50818374",
"ordId": "452197707845865472",
"ordType": "limit",
"pnl": "0",
"posSide": "",
"px": "31527.1",
"pxUsd":"",
"pxVol":"",
"pxType":"",
"rebate": "0",
"rebateCcy": "BTC",
"reduceOnly": "false",
"reqId": "",
"side": "sell",
"attachAlgoClOrdId": "",
"slOrdPx": "",
"slTriggerPx": "",
"slTriggerPxType": "last",
"source": "",
"state": "filled",
"stpId": "",
"stpMode": "",
"sz": "0.001",
"tag": "",
"tdMode": "cash",
"tgtCcy": "",
"tpOrdPx": "",
"tpTriggerPx": "",
"tpTriggerPxType": "last",
"tradeId": "242589207",
"lastPx": "38892.2",
"quickMgnType": "",
"algoClOrdId": "",
"attachAlgoOrds": [],
"algoId": "",
"amendSource": "",
"cancelSource": "",
"uTime": "1654084353264"
}
]
}
推送数据参数
参数名 | 类型 | 描述 |
---|---|---|
arg | Object | 订阅成功的频道 |
> channel | String | 频道名 |
> uid | String | 用户标识 |
> instType | String | 产品类型 |
> instFamily | String | 交易品种 |
> instId | String | 产品ID |
data | Array | 订阅的数据 |
> instType | String | 产品类型 |
> instId | String | 产品ID |
> ccy | String | 保证金币种,仅适用于现货和合约模式 下的全仓币币杠杆 订单 |
> ordId | String | 订单ID |
> clOrdId | String | 由用户设置的订单ID来识别您的订单 |
> tag | String | 订单标签 |
> px | String | 委托价格,对于期权,以币(如BTC, ETH)为单位 |
> pxUsd | String | 期权价格,以USD为单位 仅适用于期权,其他业务线返回空字符串"" |
> pxVol | String | 期权订单的隐含波动率 仅适用于期权,其他业务线返回空字符串"" |
> pxType | String | 期权的价格类型 px :代表按价格下单,单位为币 (请求参数 px 的数值单位是BTC或ETH) pxVol :代表按pxVol下单 pxUsd :代表按照pxUsd下单,单位为USD (请求参数px 的数值单位是USD) |
> sz | String | 原始委托数量,币币/币币杠杆 ,以币为单位;交割/永续/期权 ,以张为单位 |
> notionalUsd | String | 委托单预估美元价值 |
> fillNotionalUsd | String | 委托单已成交的美元价值 |
> ordType | String | 订单类型 market :市价单 limit :限价单 post_only :只做maker单 fok :全部成交或立即取消单ioc :立即成交并取消剩余单 optimal_limit_ioc :市价委托立即成交并取消剩余(仅适用交割、永续)mmp :做市商保护(仅适用于组合保证金账户模式下的期权订单)mmp_and_post_only :做市商保护且只做maker单(仅适用于组合保证金账户模式下的期权订单) op_fok :期权简选(全部成交或立即取消) |
> side | String | 订单方向,buy sell |
> posSide | String | 持仓方向long :开平仓模式开多short :开平仓模式开空net :买卖模式 |
> tdMode | String | 交易模式 保证金模式 isolated :逐仓 cross :全仓 非保证金模式 cash :现金 |
> tgtCcy | String | 市价单委托数量sz 的单位base_ccy : 交易货币 quote_ccy :计价货币 |
> fillPx | String | 最新成交价格 |
> tradeId | String | 最新成交ID |
> fillSz | String | 最新成交数量 对于 币币 和杠杆 ,单位为交易货币,如 BTC-USDT, 单位为 BTC;对于市价单,无论tgtCcy 是base_ccy ,还是quote_ccy ,单位均为交易货币;对于交割、永续以及期权,单位为张。 |
> fillPnl | String | 最新成交收益,适用于有成交的平仓订单。其他情况均为0。 |
> fillTime | String | 最新成交时间 |
> fillFee | String | 最新一笔成交的手续费金额或者返佣金额: 手续费扣除 为 ‘负数’,如 -0.01 ; 手续费返佣 为 ‘正数’,如 0.01 |
> fillFeeCcy | String | 最新一笔成交的手续费币种或者返佣币种。 如果fillFee小于0,为手续费币种;如果fillFee大于等于0,为返佣币种 |
> fillPxVol | String | 成交时的隐含波动率仅适用于期权,其他业务线返回空字符串"" |
> fillPxUsd | String | 成交时的期权价格,以USD为单位仅适用于期权,其他业务线返回空字符串"" |
> fillMarkVol | String | 成交时的标记波动率,仅适用于期权,其他业务线返回空字符串"" |
> fillFwdPx | String | 成交时的远期价格,仅适用于期权,其他业务线返回空字符串"" |
> fillMarkPx | String | 成交时的标记价格,仅适用于 交割 /永续 /期权 |
> execType | String | 最新一笔成交的流动性方向 T:taker M:maker |
> accFillSz | String | 累计成交数量 对于 币币 和杠杆 ,单位为交易货币,如 BTC-USDT, 单位为 BTC;对于市价单,无论tgtCcy 是base_ccy ,还是quote_ccy ,单位均为交易货币;对于交割、永续以及期权,单位为张。 |
> fillNotionalUsd | String | 委托单已成交的美元价值 |
> avgPx | String | 成交均价,如果成交数量为0,该字段也为0 |
> state | String | 订单状态 canceled :撤单成功live :等待成交partially_filled :部分成交 filled :完全成交mmp_canceled :做市商保护机制导致的自动撤单 |
> lever | String | 杠杆倍数,0.01到125之间的数值,仅适用于 币币杠杆/交割/永续 |
> attachAlgoClOrdId | String | 下单附带止盈止损时,客户自定义的策略订单ID |
> tpTriggerPx | String | 止盈触发价 |
> tpTriggerPxType | String | 止盈触发价类型last :最新价格index :指数价格mark :标记价格 |
> tpOrdPx | String | 止盈委托价,止盈委托价格为-1 时,执行市价止盈 |
> slTriggerPx | String | 止损触发价 |
> slTriggerPxType | String | 止损触发价类型last :最新价格index :指数价格mark :标记价格 |
> slOrdPx | String | 止损委托价,止损委托价格为-1 时,执行市价止损 |
> attachAlgoOrds | Array of object | 下单附带止盈止损信息 |
>> attachAlgoId | String | 附带止盈止损的订单ID,改单时,可用来标识该笔附带止盈止损订单。下止盈止损委托单时,该值不会传给 algoId |
>> attachAlgoClOrdId | String | 下单附带止盈止损时,客户自定义的策略订单ID |
>> tpTriggerPx | String | 止盈触发价 |
>> tpTriggerPxType | String | 止盈触发价类型last :最新价格index :指数价格mark :标记价格 |
>> tpOrdPx | String | 止盈委托价 |
>> slTriggerPx | String | 止损触发价 |
>> slTriggerPxType | String | 止损触发价类型last :最新价格index :指数价格mark :标记价格 |
>> slOrdPx | String | 止损委托价 |
>> sz | String | 张数。仅适用于“多笔止盈”的止盈订单 |
>> amendPxOnTriggerType | String | 是否启用开仓价止损,仅适用于分批止盈的止损订单0 :不开启,默认值 1 :开启 |
> stpId | String | 如果自成交保护不适用则返回"" |
> stpMode | String | 自成交保护模式 |
> feeCcy | String | 交易手续费币种 币币/币币杠杆 :如果是买的话,收取的就是交易币;如果是卖的话,收取的就是计价币。交割/永续/期权 收取的就是保证金 |
> fee | String | 订单交易累计的手续费与返佣 对于币币和杠杆,为订单交易累计的手续费,平台向用户收取的交易手续费,为负数。如: -0.01 对于交割、永续和期权,为订单交易累计的手续费和返佣 |
> rebateCcy | String | 返佣金币种 ,如果没有返佣金,该字段为“” |
> rebate | String | 返佣累计金额,仅适用于币币和杠杆,平台向达到指定lv交易等级的用户支付的挂单奖励(返佣),如果没有返佣金,该字段为“” |
> pnl | String | 收益,适用于有成交的平仓订单,其他情况均为0 对于合约全仓爆仓,将包含相应强平惩罚金 |
> source | String | 订单来源6 :计划委托策略触发后的生成的普通单7 :止盈止损策略触发后的生成的普通单13 :策略委托单触发后的生成的普通单25 :移动止盈止损策略触发后的生成的普通单 |
> cancelSource | String | 订单取消的来源 有效值及对应的含义是: 0 : 已撤单:系统撤单1 : 用户主动撤单2 : 已撤单:预减仓撤单,用户保证金不足导致挂单被撤回3 : 已撤单:风控撤单,用户保证金不足有爆仓风险,导致挂单被撤回4 : 已撤单:币种借币量达到平台硬顶,系统已撤回该订单6 : 已撤单:触发 ADL 撤单,用户保证金率较低且有爆仓风险,导致挂单被撤回7 : 已撤单:交割合约到期9 : 已撤单:扣除资金费用后可用余额不足,系统已撤回该订单 13 : 已撤单:FOK 委托订单未完全成交,导致挂单被完全撤回14 : 已撤单:IOC 委托订单未完全成交,仅部分成交,导致部分挂单被撤回15 : 已撤单:该订单委托价不在限价范围内17 : 已撤单:平仓单被撤单,由于仓位已被市价全平20 : 系统倒计时撤单21 : 已撤单:相关仓位被完全平仓,系统已撤销该止盈止损订单22 , 23 : 已撤单:只减仓订单仅允许减少仓位数量,系统已撤销该订单27 : 成交滑点超过5%,触发成交差价保护导致系统撤单 31 : 当前只挂单订单 (Post only) 将会吃掉挂单深度 32 : 自成交保护 33 : 当前 taker 订单匹配的订单数量超过最大限制 |
> amendSource | String | 订单修改的来源1 : 用户主动改单,改单成功2 : 用户主动改单,并且当前这笔订单被只减仓修改,改单成功3 : 用户主动下单,并且当前这笔订单被只减仓修改,改单成功4 : 用户当前已存在的挂单(非当前操作的订单),被只减仓修改,改单成功5 :期权 px, pxVol 或 pxUsd 的跟随变动导致的改单,比如 iv=60,USD,px 锚定iv=60 时,USD, px 产生变动时的改单 |
> category | String | 订单种类分类normal :普通委托订单种类 twap :TWAP订单种类adl :ADL订单种类full_liquidation :爆仓订单种类partial_liquidation :减仓订单种类delivery :交割ddh :对冲减仓类型订单 |
> uTime | String | 订单更新时间,Unix时间戳的毫秒数格式,如 1597026383085 |
> cTime | String | 订单创建时间,Unix时间戳的毫秒数格式,如 1597026383085 |
> reqId | String | 修改订单时使用的request ID,如果没有修改,该字段为"" |
> amendResult | String | 修改订单的结果-1 :失败0 :成功1 :自动撤单(修改请求返回成功但最终改单失败导致自动撤销)2 : 自动改单成功,仅适用于期权pxUsd和pxVol订单的自动改单 通过API修改订单时,如果 cxlOnFail 设置为true 且修改返回结果为失败时,则返回 ""通过API修改订单时,如果修改返回结果为成功但修改最终失败后,当 cxlOnFail 设置为false 时返回 -1 ;当cxlOnFail 设置为true 时则返回1 通过Web/APP修改订单时,如果修改失败后,则返回 -1 |
> reduceOnly | String | 是否只减仓,true 或 false |
> quickMgnType | String | 一键借币类型,仅适用于杠杆逐仓的一键借币模式manual :手动,auto_borrow :自动借币,auto_repay :自动还币 |
> algoClOrdId | String | 客户自定义策略订单ID。策略订单触发,且策略单有algoClOrdId 时有值,否则为"", |
> algoId | String | 策略委托单ID,策略订单触发时有值,否则为"" |
> lastPx | String | 最新成交价 |
> code | String | 错误码,默认为0 |
> msg | String | 错误消息,默认为"" |
WS / 下单
只有当您的账户有足够的资金才能下单。一旦下单,您的账户资金将在订单生命周期内被冻结。被冻结的资金以及数量取决于订单指定的类型和参数
限速:60次/2s
限速规则:UserID + Instrument ID
请求示例
{
"id": "1512",
"op": "order",
"args": [{
"side": "buy",
"instId": "BTC-USDT",
"tdMode": "cash",
"ordType": "market",
"sz": "100"
}]
}
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
id | String | 是 | 消息的唯一标识 用户提供,返回参数中会返回以便于找到相应的请求。 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度必须要在1-32位之间。 |
op | String | 是 | 支持的业务操作order |
args | Array | 是 | 请求参数 |
> instId | String | 是 | 产品ID,如 BTC-USDT |
> tdMode | String | 是 | 交易模式cash :现金 |
> clOrdId | String | 否 | 由用户设置的订单ID 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 |
> tag | String | 否 | 订单标签 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-16位之间。 |
> side | String | 是 | 订单方向buy sell |
> ordType | String | 是 | 订单类型market :市价单limit :限价单 post_only :只做maker单fok :全部成交或立即取消ioc :立即成交并取消剩余 |
> sz | String | 是 | 委托数量 |
> px | String | 可选 | 委托价格,仅适用于limit 、post_only 、fok 、ioc 类型的订单 |
> tgtCcy | String | 否 | 币币市价单委托数量sz 的单位base_ccy : 交易货币quote_ccy :计价货币仅适用于 币币 市价订单默认买单为 quote_ccy ,卖单为base_ccy |
> banAmend | Boolean | 否 | 是否禁止币币市价改单,true 或 false,默认false 为true时,余额不足时,系统不会改单,下单会失败,仅适用于币币市价单 |
> stpId | String | 否 | 用户自定义1<=x<=999999999的整数 |
> stpMode | String | 否 | 自成交保护模式 默认为 cancel maker cancel_maker ,cancel_taker ,cancel_both Cancel both不支持FOK |
expTime | String | 否 | 请求有效截止时间。Unix时间戳的毫秒数格式,如 1597026383085 |
成功返回示例
{
"id": "1512",
"op": "order",
"data": [{
"clOrdId": "",
"ordId": "12345689",
"tag": "",
"sCode": "0",
"sMsg": ""
}],
"code": "0",
"msg": "",
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
失败返回示例
{
"id": "1512",
"op": "order",
"data": [{
"clOrdId": "",
"ordId": "",
"tag": "",
"sCode": "5XXXX",
"sMsg": "not exist"
}],
"code": "1",
"msg": "",
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
格式错误返回示例
{
"id": "1512",
"op": "order",
"data": [],
"code": "60013",
"msg": "Invalid args",
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
id | String | 消息的唯一标识 |
op | String | 业务操作 |
code | String | 代码 |
msg | String | 消息 |
data | Array | 请求成功后返回的数据 |
> ordId | String | 订单ID |
> clOrdId | String | 由用户设置的订单ID |
> tag | String | 订单标签 |
> sCode | String | 订单状态码,0 代表成功 |
> sMsg | String | 订单状态消息 |
inTime | String | WebSocket 网关接收请求时的时间戳,Unix时间戳的微秒数格式,如 1597026383085123 |
outTime | String | WebSocket 网关发送响应时的时间戳,Unix时间戳的微秒数格式,如 1597026383085123 |
WS / 批量下单
批量进行下单操作,每次可批量交易不同类型的产品,最多可下单20个
限速:300个/2s
限速规则:UserID + Instrument ID
请求示例
{
"id": "1513",
"op": "batch-orders",
"args": [{
"side": "buy",
"instId": "BTC-USDT",
"tdMode": "cash",
"ordType": "market",
"sz": "100"
}, {
"side": "buy",
"instId": "BTC-USD-200925",
"tdMode": "cash",
"ordType": "limit",
"sz": "1"
}]
}
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
id | String | 是 | 消息的唯一标识 用户提供,返回参数中会返回以便于找到相应的请求。 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度必须要在1-32位之间。 |
op | String | 是 | 支持的业务操作batch-orders |
args | Array | 是 | 请求参数 |
> instId | String | 是 | 产品ID,如 BTC-USDT |
> tdMode | String | 否 | 交易模式cash :现金 |
> clOrdId | String | 否 | 用户提供的订单ID 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 |
> tag | String | 否 | 订单标签 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-16位之间。 |
> side | String | 是 | 订单方向buy sell |
> ordType | String | 是 | 订单类型market :市价单 limit :限价单post_only :只做maker单 fok :全部成交或立即取消单 ioc :立即成交并取消剩余单 |
> sz | String | 是 | 委托数量 |
> px | String | 可选 | 委托价格,仅适用于limit 、post_only 、fok 、ioc 类型的订单 |
> tgtCcy | String | 否 | 币币市价单委托数量sz 的单位base_ccy : 交易货币 ;quote_ccy :计价货币仅适用于 币币 市价订单默认买单为 quote_ccy ,卖单为base_ccy |
> banAmend | Boolean | 否 | 是否禁止币币市价改单,true 或 false,默认false 为true时,余额不足时,系统不会改单,下单会失败,仅适用于币币市价单 |
> stpId | String | 否 | 用户自定义1<=x<=999999999的整数 |
> stpMode | String | 否 | 自成交保护模式 默认为 cancel maker cancel_maker ,cancel_taker , cancel_both Cancel both不支持FOK |
expTime | String | 否 | 请求有效截止时间。Unix时间戳的毫秒数格式,如 1597026383085 |
全部成功返回示例
{
"id": "1513",
"op": "batch-orders",
"data": [{
"clOrdId": "",
"ordId": "12345689",
"tag": "",
"sCode": "0",
"sMsg": ""
}, {
"clOrdId": "",
"ordId": "12344",
"tag": "",
"sCode": "0",
"sMsg": ""
}],
"code": "0",
"msg": "",
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
部分成功返回示例
{
"id": "1513",
"op": "batch-orders",
"data": [{
"clOrdId": "",
"ordId": "12345689",
"tag": "",
"sCode": "0",
"sMsg": ""
}, {
"clOrdId": "",
"ordId": "",
"tag": "",
"sCode": "5XXXX",
"sMsg": "Insufficient margin"
}],
"code": "2",
"msg": "",
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
全部失败返回示例
{
"id": "1513",
"op": "batch-orders",
"data": [{
"clOrdId": "oktswap6",
"ordId": "",
"tag": "",
"sCode": "5XXXX",
"sMsg": "Insufficient margin"
}, {
"clOrdId": "oktswap7",
"ordId": "",
"tag": "",
"sCode": "5XXXX",
"sMsg": "Insufficient margin"
}],
"code": "1",
"msg": "",
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
格式错误返回示例
{
"id": "1513",
"op": "batch-orders",
"data": [],
"code": "60013",
"msg": "Invalid args",
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
返回参数
参数 | 类型 | 描述 |
---|---|---|
id | String | 消息的唯一标识 |
op | String | 业务操作 |
code | String | 代码 |
msg | String | 消息 |
data | Array | 请求成功后返回的数据 |
> ordId | String | 订单ID |
> clOrdId | String | 由用户设置的订单ID |
> tag | String | 订单标签 |
> sCode | String | 订单状态码,0 代表成功 |
> sMsg | String | 事件执行失败或成功时的msg |
inTime | String | WebSocket 网关接收请求时的时间戳,Unix时间戳的微秒数格式,如 1597026383085123 |
outTime | String | WebSocket 网关发送响应时的时间戳,Unix时间戳的微秒数格式,如 1597026383085123 |
WS / 撤单
撤销当前未完成订单
限速:60次/2s
限速规则:UserID + Instrument ID
请求示例
{
"id": "1514",
"op": "cancel-order",
"args": [{
"instId": "BTC-USDT",
"ordId": "2510789768709120"
}]
}
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
id | String | 是 | 消息的唯一标识 用户提供,返回参数中会返回以便于找到相应的请求。 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度必须要在1-32位之间。 |
op | String | 是 | 支持的业务操作cancel-order |
args | Array | 是 | 请求参数 |
> instId | String | 是 | 产品ID |
> ordId | String | 可选 | 订单IDordId 和clOrdId 必须传一个,若传两个,以ordId 为主 |
> clOrdId | String | 可选 | 用户提供的订单ID 字母(区分大小写)与数字的组合,可以是纯字母、纯数字,且长度要在1-32位之间。 |
成功返回示例
{
"id": "1514",
"op": "cancel-order",
"data": [{
"clOrdId": "",
"ordId": "2510789768709120",
"sCode": "0",
"sMsg": ""
}],
"code": "0",
"msg": "",
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
失败返回示例
{
"id": "1514",
"op": "cancel-order",
"data": [{
"clOrdId": "",
"ordId": "2510789768709120",
"sCode": "5XXXX",
"sMsg": "Order not exist"
}],
"code": "1",
"msg": "",
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
格式错误返回示例
{
"id": "1514",
"op": "cancel-order",
"data": [],
"code": "60013",
"msg": "Invalid args",
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
返回参数
参数 | 类型 | 描述 |
---|---|---|
id | String | 消息的唯一标识 |
op | String | 业务操作 |
code | String | 代码 |
msg | String | 消息 |
data | Array | 请求成功后返回的数据 |
> ordId | String | 订单ID |
> clOrdId | String | 由用户设置的订单ID |
> sCode | String | 订单状态码,0 代表成功 |
> sMsg | String | 订单状态消息 |
inTime | String | WebSocket 网关接收请求时的时间戳,Unix时间戳的微秒数格式,如 1597026383085123 |
outTime | String | WebSocket 网关发送响应时的时间戳,Unix时间戳的微秒数格式,如 1597026383085123 |
WS / 批量撤单
批量进行撤单操作,每次可批量撤销不同类型的产品,最多撤销20个
限速:300个/2s
限速规则:UserID + Instrument ID
请求示例
{
"id": "1515",
"op": "batch-cancel-orders",
"args": [{
"instId": "BTC-USDT",
"ordId": "2517748157541376"
}, {
"instId": "LTC-USDT",
"ordId": "2517748155771904"
}]
}
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
id | String | 是 | 消息的唯一标识 用户提供,返回参数中会返回以便于找到相应的请求。 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度必须要在1-32位之间。 |
op | String | 是 | 支持的业务操作batch-cancel-orders |
args | Array | 是 | 请求参数 |
> instId | String | 是 | 产品ID |
> ordId | String | 可选 | 订单IDordId 和clOrdId 必须传一个,若传两个,以ordId 为主 |
> clOrdId | String | 可选 | 用户提供的订单ID 字母(区分大小写)与数字的组合,可以是纯字母、纯数字,且长度要在1-32位之间。 |
全部成功返回示例
{
"id": "1515",
"op": "batch-cancel-orders",
"data": [{
"clOrdId": "oktswap6",
"ordId": "2517748157541376",
"sCode": "0",
"sMsg": ""
}, {
"clOrdId": "oktswap7",
"ordId": "2517748155771904",
"sCode": "0",
"sMsg": ""
}],
"code": "0",
"msg": "",
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
部分成功的返回示例
{
"id": "1515",
"op": "batch-cancel-orders",
"data": [{
"clOrdId": "oktswap6",
"ordId": "2517748157541376",
"sCode": "0",
"sMsg": ""
}, {
"clOrdId": "oktswap7",
"ordId": "2517748155771904",
"sCode": "5XXXX",
"sMsg": "order not exist"
}],
"code": "2",
"msg": "",
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
全部失败的返回示例
{
"id": "1515",
"op": "batch-cancel-orders",
"data": [{
"clOrdId": "oktswap6",
"ordId": "2517748157541376",
"sCode": "5XXXX",
"sMsg": "order not exist"
}, {
"clOrdId": "oktswap7",
"ordId": "2517748155771904",
"sCode": "5XXXX",
"sMsg": "order not exist"
}],
"code": "1",
"msg": "",
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
格式错误示例
{
"id": "1515",
"op": "batch-cancel-orders",
"data": [],
"code": "60013",
"msg": "Invalid args",
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
返回参数
参数 | 类型 | 描述 |
---|---|---|
id | String | 消息的唯一标识 |
op | String | 业务操作 |
code | String | 代码 |
msg | String | 消息 |
data | Array | 请求成功后返回的数据 |
> ordId | String | 订单ID |
> clOrdId | String | 由用户设置的订单ID |
> sCode | String | 订单状态码,0 代表成功 |
> sMsg | String | 订单状态消息 |
inTime | String | WebSocket 网关接收请求时的时间戳,Unix时间戳的微秒数格式,如 1597026383085123 |
outTime | String | WebSocket 网关发送响应时的时间戳,Unix时间戳的微秒数格式,如 1597026383085123 |
WS / 改单
修改当前未成交的订单
限速:60次/2s
限速规则:UserID + Instrument ID
请求示例
{
"id": "1512",
"op": "amend-order",
"args": [{
"instId": "BTC-USDT",
"ordId": "2510789768709120",
"newSz": "2"
}]
}
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
id | String | 是 | 消息的唯一标识 用户提供,返回参数中会返回以便于找到相应的请求。 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度必须要在1-32位之间。 |
op | String | 是 | 支持的业务操作amend-order |
args | Array | 是 | 请求参数 |
> instId | String | 是 | 产品ID |
> cxlOnFail | Boolean | 否 | 当订单修改失败时,该订单是否需要自动撤销。默认为false false :不自动撤单true :自动撤单 |
> ordId | String | 可选 | 订单ID ordId和clOrdId必须传一个,若传两个,以 ordId 为主 |
> clOrdId | String | 可选 | 用户提供的订单ID |
> reqId | String | 否 | 用户提供的reqId 如果提供,那在返回参数中返回reqId,方便找到相应的修改请求。 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 |
> newSz | String | 可选 | 请求修改的新数量newSz 和newPx 不可同时为空。对于部分成交订单,该数量应包含已成交数量。 |
> newPx | String | 可选 | 修改后的新价格 |
expTime | String | 否 | 请求有效截止时间。Unix时间戳的毫秒数格式,如 1597026383085 |
成功返回示例
{
"id": "1512",
"op": "amend-order",
"data": [{
"clOrdId": "",
"ordId": "2510789768709120",
"reqId": "b12344",
"sCode": "0",
"sMsg": ""
}],
"code": "0",
"msg": "",
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
失败返回示例
{
"id": "1512",
"op": "amend-order",
"data": [{
"clOrdId": "",
"ordId": "2510789768709120",
"reqId": "b12344",
"sCode": "5XXXX",
"sMsg": "order not exist"
}],
"code": "1",
"msg": "",
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
格式错误返回示例
{
"id": "1512",
"op": "amend-order",
"data": [],
"code": "60013",
"msg": "Invalid args",
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
返回参数
参数 | 类型 | 描述 |
---|---|---|
id | String | 消息的唯一标识 |
op | String | 业务操作 |
code | String | 代码 |
msg | String | 消息 |
data | Array | 请求成功后返回的数据 |
> ordId | String | 订单ID |
> clOrdId | String | 用户提供的订单ID |
> reqId | String | 用户提供的reqId 如果用户在请求中提供reqId,则返回相应reqId |
> sCode | String | 订单状态码,0 代表成功 |
> sMsg | String | 订单状态消息 |
inTime | String | WebSocket 网关接收请求时的时间戳,Unix时间戳的微秒数格式,如 1597026383085123 |
outTime | String | WebSocket 网关发送响应时的时间戳,Unix时间戳的微秒数格式,如 1597026383085123 |
WS / 批量改单
批量进行改单操作,每次可批量修改不同类型的产品,最多改20个
限速:300个/2s
限速规则:UserID + Instrument ID
请求示例
{
"id": "1513",
"op": "batch-amend-orders",
"args": [{
"instId": "BTC-USDT",
"ordId": "12345689",
"newSz": "2"
}, {
"instId": "BTC-USDT",
"ordId": "12344",
"newSz": "2"
}]
}
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
id | String | 是 | 消息的唯一标识 用户提供,返回参数中会返回以便于找到相应的请求。 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度必须要在1-32位之间。 |
op | String | 是 | 支持的业务操作batch-amend-orders |
args | Array | 是 | 请求参数 |
> instId | String | 是 | 产品ID |
> cxlOnFail | Boolean | 否 | 当订单修改失败时,该订单是否需要自动撤销。默认为false false :不自动撤单true :自动撤单 |
> ordId | String | 可选 | 订单IDordId 和clOrdId 必须传一个,若传两个,以ordId 为主 |
> clOrdId | String | 可选 | 用户提供的订单ID |
> reqId | String | 否 | 用户提供的请求ID 如果提供,那在返回参数中返回reqId,方便找到相应的修改请求。 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 |
> newSz | String | 可选 | 修改后的新数量newSz 和newPx 不可同时为空。对于部分成交订单,该数量应包含已成交数量。 |
> newPx | String | 可选 | 修改后的新价格 |
expTime | String | 否 | 请求有效截止时间。Unix时间戳的毫秒数格式,如 1597026383085 |
全部成功返回示例
{
"id": "1513",
"op": "batch-amend-orders",
"data": [{
"clOrdId": "oktswap6",
"ordId": "12345689",
"reqId": "b12344",
"sCode": "0",
"sMsg": ""
}, {
"clOrdId": "oktswap7",
"ordId": "12344",
"reqId": "b12344",
"sCode": "0",
"sMsg": ""
}],
"code": "0",
"msg": "",
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
全部失败返回示例
{
"id": "1513",
"op": "batch-amend-orders",
"data": [{
"clOrdId": "",
"ordId": "12345689",
"reqId": "b12344",
"sCode": "5XXXX",
"sMsg": "order not exist"
}, {
"clOrdId": "oktswap7",
"ordId": "",
"reqId": "b12344",
"sCode": "5XXXX",
"sMsg": "order not exist"
}],
"code": "1",
"msg": "",
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
部分成功返回示例
{
"id": "1513",
"op": "batch-amend-orders",
"data": [{
"clOrdId": "",
"ordId": "12345689",
"reqId": "b12344",
"sCode": "0",
"sMsg": ""
}, {
"clOrdId": "oktswap7",
"ordId": "",
"reqId": "b12344",
"sCode": "5XXXX",
"sMsg": "order not exist"
}],
"code": "2",
"msg": "",
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
格式错误返回示例
{
"id": "1513",
"op": "batch-amend-orders",
"data": [],
"code": "60013",
"msg": "Invalid args",
"inTime": "1695190491421339",
"outTime": "1695190491423240"
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
id | String | 消息的唯一标识 |
op | String | 业务操作 |
code | String | 代码 |
msg | String | 消息 |
data | Array | 请求成功后返回的数据 |
> ordId | String | 订单ID |
> clOrdId | String | 由用户设置的订单ID |
> reqId | String | 用户提供的请求ID 如果用户在请求中提供reqId,则返回相应reqId |
> sCode | String | 订单状态码,0 代表成功 |
> sMsg | String | 订单状态消息 |
inTime | String | WebSocket 网关接收请求时的时间戳,Unix时间戳的微秒数格式,如 1597026383085123 |
outTime | String | WebSocket 网关发送响应时的时间戳,Unix时间戳的微秒数格式,如 1597026383085123 |
策略交易
POST / 策略委托下单
提供单向止盈止损委托、双向止盈止损委托、计划委托、移动止盈止损委托
限速:20次/2s
限速规则:UserID + Instrument ID
HTTP请求
POST /api/v5/trade/order-algo
请求示例
# 止盈止损策略下单
POST /api/v5/trade/order-algo
body
{
"instId":"BTC-USDT",
"tdMode":"cash",
"side":"buy",
"ordType":"conditional",
"sz":"2",
"tpTriggerPx":"15",
"tpOrdPx":"18"
}
# 计划委托策略下单
POST /api/v5/trade/order-algo
body
{
"instId": "BTC-USDT",
"tdMode": "cash",
"side": "buy",
"ordType": "trigger",
"sz": "10",
"triggerPx": "100",
"orderPx": "-1"
}
# 移动止盈止损策略下单
POST /api/v5/trade/order-algo
body
{
"instId": "BTC-USDT",
"tdMode": "cash",
"side": "buy",
"ordType": "move_order_stop",
"sz": "10",
"callbackRatio": "0.05"
}
import okx.Trade as Trade
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘: 0, 模拟盘: 1
tradeAPI = Trade.TradeAPI(apikey, secretkey, passphrase, False, flag)
# 单向止盈止损
result = tradeAPI.place_algo_order(
instId="BTC-USDT",
tdMode="cross",
side="buy",
ordType="conditional",
sz="2",
tpTriggerPx="15",
tpOrdPx="18"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instId | String | 是 | 产品ID,如 BTC-USDT |
tdMode | String | 是 | 交易模式cash :非保证金 |
side | String | 是 | 订单方向buy :买sell :卖 |
ordType | String | 是 | 订单类型conditional :单向止盈止损oco :双向止盈止损trigger :计划委托move_order_stop :移动止盈止损 |
sz | String | 是 | 委托数量 |
tgtCcy | String | 否 | 委托数量的类型base_ccy : 交易货币 ;quote_ccy :计价货币仅适用于 币币 单向止盈止损市价买单默认买为 计价货币 ,卖为交易货币 |
algoClOrdId | String | 否 | 客户自定义策略订单ID 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 |
tag | String | 否 | 订单标签 字母(区分大小写)与数字的组合,可以是纯字母、纯数字,且长度在1-16位之间 |
止盈止损
了解更多 止盈止损
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
tpTriggerPx | String | 否 | 止盈触发价,如果填写此参数,必须填写止盈委托价 |
tpTriggerPxType | String | 否 | 止盈触发价类型last :最新价格默认为 last |
tpOrdPx | String | 否 | 止盈委托价,如果填写此参数,必须填写止盈触发价 委托价格为-1时,执行市价止盈 |
slTriggerPx | String | 否 | 止损触发价,如果填写此参数,必须填写止损委托价 |
slTriggerPxType | String | 否 | 止损触发价类型last :最新价格默认为 last |
slOrdPx | String | 否 | 止损委托价,如果填写此参数,必须填写止损触发价 委托价格为 -1 时,执行市价止损 |
计划委托
了解更多 计划委托
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
triggerPx | String | 是 | 计划委托触发价格 |
orderPx | String | 是 | 委托价格 委托价格为 -1 时,执行市价委托 |
triggerPxType | String | 否 | 计划委托触发价格类型last :最新价格默认为 last |
移动止盈止损
了解更多 移动止盈止损
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
callbackRatio | String | 可选 | 回调幅度的比例,如 "0.05"代表"5%"callbackRatio 和callbackSpread 只能传入一个 |
callbackSpread | String | 可选 | 回调幅度的价距 |
activePx | String | 否 | 激活价格 激活价格是移动止盈止损的激活条件,当市场最新成交价达到或超过激活价格,委托被激活。激活后系统开始计算止盈止损的实际触发价格。如果不填写激活价格,即下单后就被激活。 |
返回结果
{
"code":"0",
"msg":"",
"data":[
{
"algoId":"12345689",
"clOrdId": "",
"algoClOrdId": "",
"sCode":"0",
"sMsg":"",
"tag":""
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
algoId | String | 策略委托单ID |
clOrdId | String | |
algoClOrdId | String | 客户自定义策略订单ID |
sCode | String | 事件执行结果的code,0代表成功 |
sMsg | String | 事件执行失败时的msg |
tag | String | 订单标签 |
POST / 撤销策略委托订单
撤销除了策略委托订单,每次最多可以撤销10个策略委托单
限速:20次/2s
限速规则:UserID + Instrument ID
HTTP请求
POST /api/v5/trade/cancel-algos
请求示例
POST /api/v5/trade/cancel-algos
body
[
{
"algoId":"590919993110396111",
"instId":"BTC-USDT"
},
{
"algoId":"590920138287841222",
"instId":"BTC-USDT"
}
]
import okx.Trade as Trade
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘: 0, 模拟盘: 1
tradeAPI = Trade.TradeAPI(apikey, secretkey, passphrase, False, flag)
# 支持止盈止损,计划委托 类型的策略撤单
algo_orders = [
{"instId": "BTC-USDT", "algoId": "590919993110396111"},
{"instId": "BTC-USDT", "algoId": "590920138287841222"}
]
result = tradeAPI.cancel_algo_order(algo_orders)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
algoId | String | 是 | 策略委托单ID |
instId | String | 是 | 产品ID 如 BTC-USDT |
返回结果
{
"code":"0",
"msg":"",
"data":[
{
"algoId":"1234",
"sCode":"0",
"sMsg":""
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
algoId | String | 订单ID |
sCode | String | 事件执行结果的code,0代表成功 |
sMsg | String | 事件执行失败时的msg |
POST / 修改策略委托订单
修改策略委托订单(仅支持止盈止损和计划委托订单,不包含、冰山委托、时间加权、移动止盈止损等订单)
限速:20次/2s
限速规则:UserID + Instrument ID
HTTP请求
POST /api/v5/trade/amend-algos
请求示例
POST /api/v5/trade/amend-algos
body
{
"algoId":"2510789768709120",
"newSz":"2",
"instId":"BTC-USDT"
}
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instId | String | 是 | 产品ID |
algoId | String | 可选 | 策略委托单IDalgoId 和algoClOrdId 必须传一个,若传两个,以algoId 为主 |
algoClOrdId | String | 可选 | 客户自定义策略订单IDalgoId 和algoClOrdId 必须传一个,若传两个,以algoId 为主 |
cxlOnFail | Boolean | 否 | 当订单修改失败时,该订单是否需要自动撤销。默认为false false :不自动撤单true :自动撤单 |
reqId | String | 否 | 用户自定义修改事件ID,字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间 |
newSz | String | 可选 | 修改的新数量,必须大于0。 |
止盈止损
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
newTpTriggerPx | String | 可选 | 止盈触发价 如果止盈触发价或者委托价为0,那代表删除止盈 |
newTpOrdPx | String | 可选 | 止盈委托价 委托价格为-1时,执行市价止盈 |
newSlTriggerPx | String | 可选 | 止损触发价 如果止损触发价或者委托价为0,那代表删除止损 |
newSlOrdPx | String | 可选 | 止损委托价 委托价格为-1时,执行市价止损 |
newTpTriggerPxType | String | 可选 | 止盈触发价类型last :最新价格index :指数价格mark :标记价格 |
newSlTriggerPxType | String | 可选 | 止损触发价类型last :最新价格index :指数价格mark :标记价格 |
返回结果
{
"code":"0",
"msg":"",
"data":[
{
"algoClOrdId":"algo_01",
"algoId":"2510789768709120",
"reqId":"po103ux",
"sCode":"0",
"sMsg":""
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
algoId | String | 订单ID |
algoClOrdId | String | 客户自定义策略订单ID |
reqId | String | 用户自定义修改事件ID,字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间 |
sCode | String | 事件执行结果的code,0代表成功 |
sMsg | String | 事件执行失败时的msg |
GET / 获取策略委托单信息
限速:20次/2s
限速规则:UserID
HTTP请求
GET /api/v5/trade/order-algo
请求示例
GET /api/v5/trade/order-algo?algoId=1753184812254216192
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
algoId | String | 可选 | 策略委托单IDalgoId 和algoClOrdId 必须传一个,若传两个,以algoId 为主 |
algoClOrdId | String | 可选 | 客户自定义策略订单ID 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 |
返回结果
{
"code": "0",
"data": [
{
"activePx": "",
"actualPx": "",
"actualSide": "",
"actualSz": "",
"algoClOrdId": "",
"algoId": "681187161907138560",
"amendPxOnTriggerType": "",
"attachAlgoOrds": [],
"cTime": "1708679675244",
"uTime": "1708679675245",
"callbackRatio": "0.05",
"callbackSpread": "",
"ccy": "",
"clOrdId": "",
"closeFraction": "",
"failCode": "",
"instId": "BTC-USDT",
"instType": "SPOT",
"last": "50962.7",
"lever": "",
"linkedOrd": {
"ordId": ""
},
"moveTriggerPx": "53423.160",
"ordId": "",
"ordIdList": [],
"ordPx": "",
"ordType": "move_order_stop",
"posSide": "net",
"pxLimit": "",
"pxSpread": "",
"pxVar": "",
"quickMgnType": "",
"reduceOnly": "false",
"side": "buy",
"slOrdPx": "",
"slTriggerPx": "",
"slTriggerPxType": "",
"state": "live",
"sz": "10",
"szLimit": "",
"tag": "",
"tdMode": "cash",
"tgtCcy": "",
"timeInterval": "",
"tpOrdPx": "",
"tpTriggerPx": "",
"tpTriggerPxType": "",
"triggerPx": "",
"triggerPxType": "",
"triggerTime": "",
"isTradeBorrowMode": "true"
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
instType | String | 产品类型 |
instId | String | 产品ID |
ccy | String | 保证金币种,仅适用于现货和合约模式 下的全仓杠杆订单 |
ordId | String | 最新一笔订单ID,即将废弃。 |
ordIdList | Array | 订单ID列表,当止盈止损存在市价拆单时,会有多个。 |
algoId | String | 策略委托单ID |
clOrdId | String | 客户自定义订单ID |
sz | String | 委托数量 |
closeFraction | String | 策略委托触发时,平仓的百分比。1 代表100% |
ordType | String | 订单类型 |
side | String | 订单方向 |
posSide | String | 持仓方向 |
tdMode | String | 交易模式 |
tgtCcy | String | 币币市价单委托数量sz 的单位base_ccy : 交易货币 ;quote_ccy :计价货币仅适用于 币币 市价订单默认买单为 quote_ccy ,卖单为base_ccy |
state | String | 订单状态live :待生效pause :暂停生效 partially_effective :部分生效effective :已生效canceled :已撤销 order_failed :委托失败 partially_failed :部分委托失败 |
lever | String | 杠杆倍数,0.01到125之间的数值,仅适用于 币币杠杆/交割/永续 |
tpTriggerPx | String | 止盈触发价 |
tpTriggerPxType | String | 止盈触发价类型last :最新价格index :指数价格mark :标记价格 |
tpOrdPx | String | 止盈委托价 |
slTriggerPx | String | 止损触发价 |
slTriggerPxType | String | 止损触发价类型last :最新价格index :指数价格mark :标记价格 |
slOrdPx | String | 止损委托价 |
triggerPx | String | 计划委托触发价格 |
triggerPxType | String | 计划委托触发价格类型last :最新价格index :指数价格mark :标记价格 |
ordPx | String | 计划委托单的委托价格 |
actualSz | String | 实际委托量 |
actualPx | String | 实际委托价 |
actualSide | String | 实际触发方向tp :止盈sl :止损仅适用于 单向止盈止损委托 和双向止盈止损委托 |
triggerTime | String | 策略委托触发时间,Unix时间戳的毫秒数格式,如 1597026383085 |
pxVar | String | 价格比例 仅适用于 冰山委托 和时间加权委托 |
pxSpread | String | 价距 仅适用于 冰山委托 和时间加权委托 |
szLimit | String | 单笔数量 仅适用于 冰山委托 和时间加权委托 |
pxLimit | String | 挂单限制价 仅适用于 冰山委托 和时间加权委托 |
tag | String | 订单标签 |
timeInterval | String | 下单间隔 仅适用于 时间加权委托 |
callbackRatio | String | 回调幅度的比例 仅适用于 移动止盈止损 |
callbackSpread | String | 回调幅度的价距 仅适用于 移动止盈止损 |
activePx | String | 移动止盈止损激活价格 仅适用于 移动止盈止损 |
moveTriggerPx | String | 移动止盈止损触发价格 仅适用于 移动止盈止损 |
reduceOnly | String | 是否只减仓true 或false |
quickMgnType | String | 一键借币类型,仅适用于杠杆逐仓的一键借币模式manual :手动,auto_borrow :自动借币,auto_repay :自动还币 |
last | String | 下单时的最新成交价 |
failCode | String | 代表策略触发失败的原因,已撤销和已生效时为"",委托失败时有值,如 51008; 仅适用于单向止盈止损委托、双向止盈止损委托、移动止盈止损委托、计划委托。 |
algoClOrdId | String | 客户自定义策略订单ID |
amendPxOnTriggerType | String | 是否启用开仓价止损 仅适用于分批止盈的止损订单 0 :不开启,默认值 1 :开启 |
attachAlgoOrds | Array of object | 附带止盈止损信息 适用于 现货和合约模式/跨币种保证金模式/组合保证金模式 |
> attachAlgoClOrdId | String | 下单附带止盈止损时,客户自定义的策略订单ID,字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 订单完全成交,下止盈止损委托单时,该值会传给algoClOrdId。 |
> tpTriggerPx | String | 止盈触发价,如果填写此参数,必须填写止盈委托价 |
> tpTriggerPxType | String | 止盈触发价类型last :最新价格index :指数价格mark :标记价格 |
> tpOrdPx | String | 止盈委托价,如果填写此参数,必须填写止盈触发价 委托价格为 -1 时,执行市价止盈 |
> slTriggerPx | String | 止损触发价,如果填写此参数,必须填写止损委托价 |
> slTriggerPxType | String | 止损触发价类型last :最新价格index :指数价格mark :标记价格 |
> slOrdPx | String | 止损委托价,如果填写此参数,必须填写止损触发价 委托价格为 -1 时,执行市价止损 |
linkedOrd | Object | 止盈订单信息,仅适用于止损单,且该止损订单来自包含限价止盈单的双向止盈止损订单 |
> ordId | String | 订单 ID |
cTime | String | 订单创建时间,Unix时间戳的毫秒数格式,如 1597026383085 |
uTime | String | 订单更新时间,Unix时间戳的毫秒数格式,如 1597026383085 |
isTradeBorrowMode | String | 是否自动借币 true:自动借币 false:不自动借币 仅适用于计划委托、移动止盈止损和 时间加权策略 |
GET / 获取未完成策略委托单列表
获取当前账户下未触发的策略委托单列表
限速:20次/2s
限速规则:UserID
HTTP请求
GET /api/v5/trade/orders-algo-pending
请求示例
GET /api/v5/trade/orders-algo-pending?ordType=conditional
import okx.Trade as Trade
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘: 0, 模拟盘: 1
tradeAPI = Trade.TradeAPI(apikey, secretkey, passphrase, False, flag)
# 查询所有未触发的单向止盈止损策略订单
result = tradeAPI.order_algos_list(
ordType="conditional"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
algoId | String | 否 | 策略委托单ID |
instType | String | 否 | 产品类型SPOT :币币 |
instId | String | 否 | 产品ID,BTC-USDT |
ordType | String | 是 | 订单类型conditional :单向止盈止损oco :双向止盈止损 trigger :计划委托move_order_stop :移动止盈止损 |
after | String | 否 | 请求此ID之前(更旧的数据)的分页内容,传的值为对应接口的algoId |
before | String | 否 | 请求此ID之后(更新的数据)的分页内容,传的值为对应接口的algoId |
limit | String | 否 | 返回结果的数量,最大为100,默认100条 |
algoClOrdId | String | 否 | 客户自定义策略订单ID 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 |
返回结果
{
"code": "0",
"data": [
{
"activePx": "",
"actualPx": "",
"actualSide": "buy",
"actualSz": "0",
"algoClOrdId": "",
"algoId": "681096944655273984",
"amendPxOnTriggerType": "",
"attachAlgoOrds": [],
"cTime": "1708658165774",
"callbackRatio": "",
"callbackSpread": "",
"ccy": "",
"clOrdId": "",
"closeFraction": "",
"failCode": "",
"instId": "BTC-USDT",
"instType": "SPOT",
"last": "51014.6",
"lever": "",
"moveTriggerPx": "",
"ordId": "",
"ordIdList": [],
"ordPx": "-1",
"ordType": "trigger",
"posSide": "net",
"pxLimit": "",
"pxSpread": "",
"pxVar": "",
"quickMgnType": "",
"reduceOnly": "false",
"side": "buy",
"slOrdPx": "",
"slTriggerPx": "",
"slTriggerPxType": "",
"state": "live",
"sz": "10",
"szLimit": "",
"tag": "",
"tdMode": "cash",
"tgtCcy": "",
"timeInterval": "",
"tpOrdPx": "",
"tpTriggerPx": "",
"tpTriggerPxType": "",
"triggerPx": "100",
"triggerPxType": "last",
"triggerTime": "0"
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
instType | String | 产品类型 |
instId | String | 产品ID |
ccy | String | 保证金币种,仅适用于现货和合约模式下的全仓杠杆订单 |
ordId | String | 最新一笔订单ID |
ordIdList | Array | 订单ID列表,当止盈止损存在市价拆单时,会有多个。 |
algoId | String | 策略委托单ID |
clOrdId | String | 客户自定义订单ID |
sz | String | 委托数量 |
closeFraction | String | 策略委托触发时,平仓的百分比。1 代表100% |
ordType | String | 订单类型 |
side | String | 订单方向 |
posSide | String | 持仓方向 |
tdMode | String | 交易模式 |
tgtCcy | String | 币币市价单委托数量sz 的单位base_ccy :交易货币quote_ccy :计价货币仅适用于 币币 市价订单默认买单为 quote_ccy ,卖单为base_ccy |
state | String | 订单状态live :待生效pause :暂停生效 |
lever | String | 杠杆倍数,0.01到125之间的数值 仅适用于 币币杠杆 /交割 /永续 |
tpTriggerPx | String | 止盈触发价 |
tpTriggerPxType | String | 止盈触发价类型last :最新价格index :指数价格mark :标记价格 |
tpOrdPx | String | 止盈委托价 |
slTriggerPx | String | 止损触发价 |
slTriggerPxType | String | 止损触发价类型last :最新价格index :指数价格mark :标记价格 |
slOrdPx | String | 止损委托价 |
triggerPx | String | 计划委托触发价格 |
triggerPxType | String | 计划委托触发价类型last :最新价格index :指数价格mark :标记价格 |
ordPx | String | 计划委托单的委托价格 |
actualSz | String | 实际委托量 |
actualPx | String | 实际委托价 |
actualSide | String | 实际触发方向tp :止盈sl :止损仅适用于 单向止盈止损委托 和双向止盈止损委托 |
triggerTime | String | 策略委托触发时间,Unix时间戳的毫秒数格式,如 1597026383085 |
pxVar | String | 价格比例 仅适用于 冰山委托 和时间加权委托 |
pxSpread | String | 价距 仅适用于 冰山委托 和时间加权委托 |
szLimit | String | 单笔数量 仅适用于 冰山委托 和时间加权委托 |
tag | String | 订单标签 |
pxLimit | String | 挂单限制价 仅适用于 冰山委托 和时间加权委托 |
timeInterval | String | 下单间隔 仅适用于 时间加权委托 |
callbackRatio | String | 回调幅度的比例 仅适用于 移动止盈止损 |
callbackSpread | String | 回调幅度的价距 仅适用于 移动止盈止损 |
activePx | String | 移动止盈止损激活价格 仅适用于 移动止盈止损 |
moveTriggerPx | String | 移动止盈止损触发价格 仅适用于 移动止盈止损 |
reduceOnly | String | 是否只减仓true 或 false |
quickMgnType | String | 一键借币类型,仅适用于杠杆逐仓的一键借币模式manual :手动auto_borrow :自动借币auto_repay :自动还币 |
last | String | 下单时的最新成交价 |
failCode | String | 代表策略触发失败的原因,委托失败时有值,如 51008,对于该接口一直为""。 |
algoClOrdId | String | 客户自定义策略订单ID |
amendPxOnTriggerType | String | 是否启用开仓价止损,仅适用于分批止盈的止损订单0 :不开启,默认值1 :开启 |
attachAlgoOrds | Array of object | 附带止盈止损信息 适用于 现货和合约模式/跨币种保证金模式/组合保证金模式 |
> attachAlgoClOrdId | String | 下单附带止盈止损时,客户自定义的策略订单ID,字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 订单完全成交,下止盈止损委托单时,该值会传给algoClOrdId。 |
> tpTriggerPx | String | 止盈触发价,如果填写此参数,必须填写止盈委托价 |
> tpTriggerPxType | String | 止盈触发价类型last :最新价格index :指数价格mark :标记价格默认为 last |
> tpOrdPx | String | 止盈委托价,如果填写此参数,必须填写止盈触发价 委托价格为 -1 时,执行市价止盈 |
> slTriggerPx | String | 止损触发价,如果填写此参数,必须填写止损委托价 |
> slTriggerPxType | String | 止损触发价类型last :最新价格index :指数价格mark :标记价格默认为 last |
> slOrdPx | String | 止损委托价,如果填写此参数,必须填写止损触发价 委托价格为 -1 时,执行市价止损 |
cTime | String | 订单创建时间,Unix时间戳的毫秒数格式,如 1597026383085 |
GET / 获取历史策略委托单列表
获取最近3个月当前账户下所有策略委托单列表
限速:20次/2s
限速规则:UserID
HTTP请求
GET /api/v5/trade/orders-algo-history
请求示例
GET /api/v5/trade/orders-algo-history?ordType=conditional&state=effective
import okx.Trade as Trade
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘: 0, 模拟盘: 1
tradeAPI = Trade.TradeAPI(apikey, secretkey, passphrase, False, flag)
# 查询 单向止盈止损 历史订单
result = tradeAPI.order_algos_history(
state="effective",
ordType="conditional"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
ordType | String | 是 | 订单类型conditional :单向止盈止损oco :双向止盈止损trigger :计划委托move_order_stop :移动止盈止损 |
state | String | 可选 | 订单状态effective :已生效canceled :已经撤销order_failed :委托失败state 和algoId 必填且只能填其一 |
algoId | String | 可选 | 策略委托单ID |
instType | String | 否 | 产品类型SPOT :币币 |
instId | String | 否 | 产品ID,BTC-USDT |
after | String | 否 | 请求此ID之前(更旧的数据)的分页内容,传的值为对应接口的algoId |
before | String | 否 | 请求此ID之后(更新的数据)的分页内容,传的值为对应接口的algoId |
limit | String | 否 | 返回结果的数量,最大为100,默认100条 |
返回结果
{
"code": "0",
"data": [
{
"activePx": "",
"actualPx": "",
"actualSide": "buy",
"actualSz": "0",
"algoClOrdId": "",
"algoId": "681096944655273984",
"amendPxOnTriggerType": "",
"attachAlgoOrds": [],
"cTime": "1708658165774",
"callbackRatio": "",
"callbackSpread": "",
"ccy": "",
"clOrdId": "",
"closeFraction": "",
"failCode": "",
"instId": "BTC-USDT",
"instType": "SPOT",
"last": "51014.6",
"lever": "",
"moveTriggerPx": "",
"ordId": "",
"ordIdList": [],
"ordPx": "-1",
"ordType": "trigger",
"posSide": "net",
"pxLimit": "",
"pxSpread": "",
"pxVar": "",
"quickMgnType": "",
"reduceOnly": "false",
"side": "buy",
"slOrdPx": "",
"slTriggerPx": "",
"slTriggerPxType": "",
"state": "canceled",
"sz": "10",
"szLimit": "",
"tag": "",
"tdMode": "cash",
"tgtCcy": "",
"timeInterval": "",
"tpOrdPx": "",
"tpTriggerPx": "",
"tpTriggerPxType": "",
"triggerPx": "100",
"triggerPxType": "last",
"triggerTime": ""
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
instType | String | 产品类型 |
instId | String | 产品ID |
ccy | String | 保证金币种,仅适用于现货和合约模式下的全仓杠杆订单 |
ordId | String | 最新一笔订单ID |
ordIdList | Array | 订单ID列表,当止盈止损存在市价拆单时,会有多个。 |
algoId | String | 策略委托单ID |
clOrdId | String | 客户自定义订单ID |
sz | String | 委托数量 |
closeFraction | String | 策略委托触发时,平仓的百分比。1 代表100% |
ordType | String | 订单类型 |
side | String | 订单方向 |
posSide | String | 持仓方向 |
tdMode | String | 交易模式 |
tgtCcy | String | 币币市价单委托数量sz 的单位base_ccy :交易货币quote_ccy :计价货币仅适用于 币币 市价订单默认买单为 quote_ccy ,卖单为base_ccy |
state | String | 订单状态 effective :已生效canceled :已撤销 order_failed :委托失败 partially_failed :部分委托失败 |
lever | String | 杠杆倍数,0.01到125之间的数值 仅适用于 币币杠杆 /交割 /永续 |
tpTriggerPx | String | 止盈触发价 |
tpTriggerPxType | String | 止盈触发价类型last :最新价格index :指数价格mark :标记价格 |
tpOrdPx | String | 止盈委托价 |
slTriggerPx | String | 止损触发价 |
slTriggerPxType | String | 止损触发价类型last :最新价格index :指数价格mark :标记价格 |
slOrdPx | String | 止损委托价 |
triggerPx | String | 计划委托触发价格 |
triggerPxType | String | 计划委托委托价格类型last :最新价格index :指数价格mark :标记价格 |
ordPx | String | 计划委托委托价格 |
actualSz | String | 实际委托量 |
actualPx | String | 实际委托价 |
actualSide | String | 实际触发方向tp :止盈sl :止损仅适用于 单向止盈止损委托 和双向止盈止损委托 |
triggerTime | String | 策略委托触发时间,Unix时间戳的毫秒数格式,如 1597026383085 |
pxVar | String | 价格比例 仅适用于 冰山委托 和时间加权委托 |
pxSpread | String | 价距 仅适用于 冰山委托 和时间加权委托 |
szLimit | String | 单笔数量 仅适用于 冰山委托 和时间加权委托 |
pxLimit | String | 挂单限制价 仅适用于 冰山委托 和时间加权委托 |
tag | String | 订单标签 |
timeInterval | String | 下单间隔 仅适用于 时间加权委托 |
callbackRatio | String | 回调幅度的比例 仅适用于 移动止盈止损 |
callbackSpread | String | 回调幅度的价距 仅适用于 移动止盈止损 |
activePx | String | 移动止盈止损激活价格 仅适用于 移动止盈止损 |
moveTriggerPx | String | 移动止盈止损触发价格 仅适用于 移动止盈止损 |
reduceOnly | String | 是否只减仓true 或false |
quickMgnType | String | 一键借币类型,仅适用于杠杆逐仓的一键借币模式manual :手动,auto_borrow :自动借币,auto_repay :自动还币 |
last | String | 下单时的最新成交价 |
failCode | String | 代表策略触发失败的原因,已撤销和已生效时为"",委托失败时有值,如 51008; 仅适用于单向止盈止损委托、双向止盈止损委托、移动止盈止损委托、计划委托。 |
algoClOrdId | String | 客户自定义策略订单ID |
amendPxOnTriggerType | String | 是否启用开仓价止损,仅适用于分批止盈的止损订单0 :不开启,默认值 1 :开启 |
attachAlgoOrds | Array of object | 附带止盈止损信息 适用于 现货和合约模式/跨币种保证金模式/组合保证金模式 |
> attachAlgoClOrdId | String | 下单附带止盈止损时,客户自定义的策略订单ID,字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 订单完全成交,下止盈止损委托单时,该值会传给algoClOrdId。 |
> tpTriggerPx | String | 止盈触发价,如果填写此参数,必须填写止盈委托价 |
> tpTriggerPxType | String | 止盈触发价类型last :最新价格index :指数价格mark :标记价格默认为 last |
> tpOrdPx | String | 止盈委托价,如果填写此参数,必须填写止盈触发价 委托价格为 -1 时,执行市价止盈 |
> slTriggerPx | String | 止损触发价,如果填写此参数,必须填写止损委托价 |
> slTriggerPxType | String | 止损触发价类型last :最新价格index :指数价格mark :标记价格默认为 last |
> slOrdPx | String | 止损委托价,如果填写此参数,必须填写止损触发价 委托价格为 -1 时,执行市价止损 |
cTime | String | 订单创建时间,Unix时间戳的毫秒数格式,如 1597026383085 |
WS / 策略委托订单频道
获取策略委托订单,首次订阅不推送,只有当下单、撤单等事件触发时,推送数据
服务地址
/ws/v5/business (需要登录)
请求示例:单个
{
"op": "subscribe",
"args": [{
"channel": "orders-algo",
"instType": "SPOT"
}]
}
请求示例
{
"op": "subscribe",
"args": [{
"channel": "orders-algo",
"instType": "SPOT"
}]
}
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
op | String | 是 | 操作subscribe unsubscribe |
args | Array | 是 | 请求订阅的频道列表 |
> channel | String | 是 | 频道名orders-algo |
> instType | String | 是 | 产品类型SPOT :币币ANY :全部 |
> instId | String | 否 | 产品ID |
成功返回示例:单个
{
"event": "subscribe",
"arg": {
"channel": "orders-algo",
"instType": "SPOT"
},
"connId": "a4d3ae55"
}
成功返回示例
{
"event": "subscribe",
"arg": {
"channel": "orders-algo",
"instType": "SPOT"
},
"connId": "a4d3ae55"
}
失败返回示例
{
"event": "error",
"code": "60012",
"msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{ \"channel\" : \"orders-algo\", \"instType\" : \"FUTURES\"}]}",
"connId": "a4d3ae55"
}
返回参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
event | String | 是 | 事件subscribe unsubscribe error |
arg | Object | 否 | 订阅的频道 |
> channel | String | 是 | 频道名 |
> instType | String | 是 | 产品类型SPOT :币币ANY :全部 |
> instId | String | 否 | 产品ID |
code | String | 否 | 错误码 |
msg | String | 否 | 错误消息 |
connId | String | 是 | WebSocket连接ID |
推送示例:单个
{
"arg": {
"channel": "orders-algo",
"uid": "77982378738415879",
"instType": "SPOT"
},
"data": [{
"actualPx": "0",
"actualSide": "",
"actualSz": "0",
"algoClOrdId": "",
"algoId": "581878926302093312",
"attachAlgoOrds": [],
"amendResult": "",
"cTime": "1685002746818",
"ccy": "",
"clOrdId": "",
"closeFraction": "",
"failCode": "",
"instId": "BTC-USDC",
"instType": "SPOT",
"last": "26174.8",
"lever": "0",
"notionalUsd": "11.0",
"ordId": "",
"ordIdList": [],
"ordPx": "",
"ordType": "conditional",
"posSide": "",
"quickMgnType": "",
"reduceOnly": "false",
"reqId": "",
"side": "buy",
"slOrdPx": "",
"slTriggerPx": "",
"slTriggerPxType": "",
"state": "live",
"sz": "11",
"tag": "",
"tdMode": "cross",
"tgtCcy": "quote_ccy",
"tpOrdPx": "-1",
"tpTriggerPx": "1",
"tpTriggerPxType": "last",
"triggerPx": "",
"triggerTime": "",
"amendPxOnTriggerType": "0"
}]
}
推送数据参数
参数名 | 类型 | 描述 |
---|---|---|
arg | Object | 订阅成功的频道 |
> channel | String | 频道名 |
> uid | String | 用户标识 |
> instType | String | 产品类型 |
> instFamily | String | 交易品种 适用于 交割 /永续 /期权 |
> instId | String | 产品ID |
data | Array | 订阅的数据 |
> instType | String | 产品类型 |
> instId | String | 产品ID |
> ccy | String | 保证金币种,仅现货和合约模式账户下的全仓币币杠杆需要选择保证金币种 |
> ordId | String | 最新一笔订单ID,与策略委托订单关联的订单ID |
> ordIdList | Array | 订单ID列表,当止盈止损存在市价拆单时,会有多个。 |
> algoId | String | 策略委托单ID |
> clOrdId | String | 客户自定义订单ID |
> sz | String | 委托数量币币 /币币杠杆 以币为单位交割 /永续 /期权 以张为单位 |
> ordType | String | 订单类型conditional :单向止盈止损 oco :双向止盈止损trigger :计划委托 |
> side | String | 订单方向buy sell |
> posSide | String | 持仓方向long :开平仓模式开多short :开平仓模式开空net :买卖模式 |
> tdMode | String | 交易模式 保证金模式 cross :全仓 isolated :逐仓 非保证金模式 cash :现金 |
> tgtCcy | String | 币币市价单委托数量sz 的单位base_ccy :交易货币quote_ccy :计价货币仅适用于 币币 市价订单默认买单为 quote_ccy ,卖单为base_ccy |
> lever | String | 杠杆倍数,0.01到125之间的数值,仅适用于 币币杠杆/交割/永续 |
> state | String | 订单状态live :待生效effective :已生效canceled :已撤销order_failed :委托失败partially_failed :部分委托失败 |
> tpTriggerPx | String | 止盈触发价 |
> tpTriggerPxType | String | 止盈触发价类型last :最新价格index :指数价格mark :标记价格 |
> tpOrdPx | String | 止盈委托价,委托价格为-1 时,执行市价止盈 |
> slTriggerPx | String | 止损触发价 |
> slTriggerPxType | String | 止损触发价类型last :最新价格index :指数价格mark :标记价格 |
> slOrdPx | String | 止损委托价委托价格为-1 时,执行市价止损 |
> triggerPx | String | 计划委托单的触发价格 |
> triggerPxType | String | 计划委托单的触发价类型last :最新价格index :指数价格mark :标记价格 |
> ordPx | String | 计划委托单的委托价格 |
> last | String | 下单时的最新成交价 |
> actualSz | String | 实际委托量 |
> actualPx | String | 实际委价 |
> tag | String | 订单标签 |
> notionalUsd | String | 委托单预估美元价值 |
> actualSide | String | 实际触发方向sl :止损tp :止盈仅适用于 单向止盈止损委托 和双向止盈止损委托 |
> triggerTime | String | 策略委托触发时间,Unix时间戳的毫秒数格式,如 1597026383085 |
> reduceOnly | String | 是否只减仓true 或 false |
> failCode | String | 代表策略触发失败的原因,已撤销和已生效时为"",委托失败时有值,如 51008; 仅适用于单向止盈止损委托、双向止盈止损委托、移动止盈止损委托、计划委托。 |
> algoClOrdId | String | 客户自定义策略订单ID |
> cTime | String | 订单创建时间,Unix时间戳的毫秒数格式,如 1597026383085 |
> reqId | String | 修改订单时使用的request ID,如果没有修改,该字段为"" |
> amendResult | String | 修改订单的结果-1 :失败0 :成功 |
> amendPxOnTriggerType | String | 是否启用开仓价止损,仅适用于分批止盈的止损订单0 :不开启,默认值 1 :开启 |
> attachAlgoOrds | Array of object | 附带止盈止损信息 适用于 现货和合约模式/跨币种保证金模式/组合保证金模式 |
>> attachAlgoClOrdId | String | 下单附带止盈止损时,客户自定义的策略订单ID,字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 订单完全成交,下止盈止损委托单时,该值会传给algoClOrdId。 |
>> tpTriggerPx | String | 止盈触发价,如果填写此参数,必须填写止盈委托价 |
>> tpTriggerPxType | String | 止盈触发价类型last :最新价格index :指数价格mark :标记价格默认为 last |
>> tpOrdPx | String | 止盈委托价,如果填写此参数,必须填写止盈触发价 委托价格为 -1 时,执行市价止盈 |
>> slTriggerPx | String | 止损触发价,如果填写此参数,必须填写止损委托价 |
>> slTriggerPxType | String | 止损触发价类型last :最新价格index :指数价格mark :标记价格默认为 last |
>> slOrdPx | String | 止损委托价,如果填写此参数,必须填写止损触发价 委托价格为 -1 时,执行市价止损 |
WS / 高级策略委托订单频道
获取高级策略委托订单(冰山、时间加权、移动止盈止损),首次订阅推送,当下单、撤单等事件触发时,推送数据
服务地址
/ws/v5/business (需要登录)
请求示例:单个
{
"op": "subscribe",
"args": [{
"channel": "algo-advance",
"instType": "SPOT",
"instId": "BTC-USDT"
}]
}
请求示例
{
"op": "subscribe",
"args": [{
"channel": "algo-advance",
"instType": "SPOT",
}]
}
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
op | String | 是 | 操作,subscribe unsubscribe |
args | Array | 是 | 请求订阅的频道列表 |
> channel | String | 是 | 频道名algo-advance |
> instType | String | 是 | 产品类型SPOT :币币MARGIN :币币杠杆SWAP :永续合约FUTURES :交割合约ANY :全部 |
> instId | String | 否 | 产品ID |
> algoId | String | 否 | 策略ID |
成功返回示例:单个
{
"event": "subscribe",
"arg": {
"channel": "algo-advance",
"instType": "SPOT",
"instId": "BTC-USDT"
},
"connId": "a4d3ae55"
}
成功返回示例
{
"event": "subscribe",
"arg": {
"channel": "algo-advance",
"instType": "SPOT"
},
"connId": "a4d3ae55"
}
失败返回示例
{
"event": "error",
"code": "60012",
"msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{ \"channel\" : \"algo-advance\", \"instType\" : \"FUTURES\"}]}",
"connId": "a4d3ae55"
}
返回参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
event | String | 是 | 事件subscribe unsubscribe error |
arg | Object | 否 | 订阅的频道 |
> channel | String | 是 | 频道名 |
> instType | String | 是 | 产品类型SPOT :币币MARGIN :币币杠杆SWAP :永续合约FUTURES :交割合约ANY :全部 |
> instId | String | 否 | 产品ID |
> algoId | String | 否 | 策略ID |
code | String | 否 | 错误码 |
msg | String | 否 | 错误消息 |
connId | String | 是 | WebSocket连接ID |
推送示例:单个
{
"arg":{
"channel":"algo-advance",
"uid": "77982378738415879",
"instType":"SPOT",
"instId":"BTC-USDT"
},
"data":[
{
"actualPx":"",
"actualSide":"",
"actualSz":"0",
"algoId":"355056228680335360",
"cTime":"1630924001545",
"ccy":"",
"clOrdId": "",
"count":"1",
"instId":"BTC-USDT",
"instType":"SPOT",
"lever":"0",
"notionalUsd":"",
"ordPx":"",
"ordType":"iceberg",
"pTime":"1630924295204",
"posSide":"net",
"pxLimit":"10",
"pxSpread":"1",
"pxVar":"",
"side":"buy",
"slOrdPx":"",
"slTriggerPx":"",
"state":"pause",
"sz":"0.1",
"szLimit":"0.1",
"tag": "adadadadad",
"tdMode":"cash",
"timeInterval":"",
"tpOrdPx":"",
"tpTriggerPx":"",
"triggerPx":"",
"triggerTime":"",
"callbackRatio":"",
"callbackSpread":"",
"activePx":"",
"moveTriggerPx":"",
"failCode": "",
"algoClOrdId": "",
"reduceOnly": "",
"isTradeBorrowMode": true
}
]
}
推送数据参数
参数名 | 类型 | 描述 |
---|---|---|
arg | Object | 订阅成功的频道 |
> channel | String | 频道名 |
> uid | String | 用户标识 |
> instType | String | 产品类型 |
> instId | String | 产品ID |
> algoId | String | 策略ID |
data | Array | 订阅的数据 |
> instType | String | 产品类型 |
> instId | String | 产品ID |
> ccy | String | 保证金币种,仅现货和合约模式 下的全仓币币杠杆需要选择保证金币种 |
> ordId | String | 订单ID,与策略委托订单关联的订单ID |
> algoId | String | 策略委托单ID |
> clOrdId | String | 客户自定义订单ID |
> sz | String | 委托数量,币币/币币杠杆 以币为单位;交割/永续/期权 以张为单位 |
> ordType | String | 订单类型iceberg :冰山委托twap :时间加权委托move_order_stop :移动止盈止损 |
> side | String | 订单方向,buy sell |
> posSide | String | 持仓方向 long :开平仓模式开多short :开平仓模式开空net :买卖模式 |
> tdMode | String | 交易模式 保证金模式 cross :全仓 isolated :逐仓 非保证金模式 cash :现金 |
> tgtCcy | String | 币币市价单委托数量sz 的单位base_ccy : 交易货币 ;quote_ccy :计价货币仅适用于 币币 市价订单默认买单为 quote_ccy ,卖单为base_ccy |
> lever | String | 杠杆倍数,0.01到125之间的数值,仅适用于 币币杠杆/交割/永续 |
> state | String | 订单状态live :待生效effective :已生效partially_effective :部分生效canceled :已撤销order_failed :委托失败 |
> tpTriggerPx | String | 止盈触发价 |
> tpOrdPx | String | 止盈委托价,委托价格为-1 时,执行市价止盈 |
> slTriggerPx | String | 止损触发价 |
> slOrdPx | String | 止损委托价委托价格为-1 时,执行市价止损 |
> triggerPx | String | 计划委托单的触发价格 |
> ordPx | String | 计划委托单的委托价格 |
> actualSz | String | 实际委托量 |
> actualPx | String | 实际委价 |
> tag | String | 订单标签 字母(区分大小写)与数字的组合,可以是纯字母、纯数字,且长度在1-16位之间。 |
> notionalUsd | String | 委托单预估美元价值 |
> actualSide | String | 实际触发方向,sl :止损 tp :止盈 |
> triggerTime | String | 策略委托触发时间,Unix时间戳的毫秒数格式,如 1597026383085 |
> cTime | String | 订单创建时间,Unix时间戳的毫秒数格式,如 1597026383085 |
> pxVar | String | 价格比例 仅适用于 冰山委托 和时间加权委托 |
> pxSpread | String | 价距 仅适用于 冰山委托 和时间加权委托 |
> szLimit | String | 单笔数量 仅适用于 冰山委托 和时间加权委托 |
> pxLimit | String | 挂单限制价 仅适用于 冰山委托 和时间加权委托 |
> timeInterval | String | 下单间隔 仅适用于 时间加权委托 |
> count | String | 策略订单计数 仅适用于 冰山委托 和时间加权委托 |
> callbackRatio | String | 回调幅度的比例 仅适用于 移动止盈止损 |
> callbackSpread | String | 回调幅度的价距 仅适用于 移动止盈止损 |
> activePx | String | 移动止盈止损激活价格 仅适用于 移动止盈止损 |
> failCode | String | 代表策略触发失败的原因,已撤销和已生效时为"",委托失败时有值,如 51008; 仅适用于单向止盈止损委托、双向止盈止损委托、移动止盈止损委托、计划委托。 |
> algoClOrdId | String | 客户自定义策略订单ID |
> moveTriggerPx | String | 移动止盈止损触发价格 仅适用于 移动止盈止损 |
> reduceOnly | String | 是否只减仓,true 或 false |
> pTime | String | 订单信息的推送时间,Unix时间戳的毫秒数格式,如 1597026383085 |
> isTradeBorrowMode | Boolean | 是否自动借币 true:自动借币 false:不自动借币 仅适用于计划委托、移动止盈止损和 时间加权策略 |
行情数据
行情数据
功能模块下的API接口不需要身份验证。
GET / 获取所有产品行情信息
获取产品行情信息
限速:20次/2s
限速规则:IP
HTTP请求
GET /api/v5/market/tickers
请求示例
GET /api/v5/market/tickers?instType=SPOT
import okx.MarketData as MarketData
flag = "0" # 实盘:0 , 模拟盘:1
marketDataAPI = MarketData.MarketAPI(flag=flag)
# 获取所有产品行情信息
result = marketDataAPI.get_tickers(
instType="SPOT"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instType | String | 是 | 产品类型SPOT :币币 |
返回结果
{
"code":"0",
"msg":"",
"data":[
{
"instType": "SPOT",
"instId": "BTC-USDT",
"last": "51230",
"lastSz": "0.18531491",
"askPx": "51229.4",
"askSz": "2.1683067",
"bidPx": "51229.3",
"bidSz": "0.28249897",
"open24h": "51635.7",
"high24h": "52080",
"low24h": "50936",
"volCcy24h": "539658490.410419122",
"vol24h": "10476.2229261",
"ts": "1708669508505",
"sodUtc0": "51290.1",
"sodUtc8": "51602.4"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
instType | String | 产品类型 |
instId | String | 产品ID |
last | String | 最新成交价 |
lastSz | String | 最新成交的数量 |
askPx | String | 卖一价 |
askSz | String | 卖一价的挂单数数量 |
bidPx | String | 买一价 |
bidSz | String | 买一价的挂单数量 |
open24h | String | 24小时开盘价 |
high24h | String | 24小时最高价 |
low24h | String | 24小时最低价 |
volCcy24h | String | 24小时成交量 如果是 币币 ,数值为计价货币的数量。 |
vol24h | String | 24小时成交量 如果是 币币 ,数值为交易货币的数量。 |
sodUtc0 | String | UTC 0 时开盘价 |
sodUtc8 | String | UTC+8 时开盘价 |
ts | String | ticker数据产生时间,Unix时间戳的毫秒数格式,如 1597026383085 |
GET / 获取单个产品行情信息
获取产品行情信息
限速:20次/2s
限速规则:IP
HTTP请求
GET /api/v5/market/ticker
请求示例
GET /api/v5/market/ticker?instId=BTC-USDT
import okx.MarketData as MarketData
flag = "0" # 实盘:0 , 模拟盘:1
marketDataAPI = MarketData.MarketAPI(flag=flag)
# 获取单个产品行情信息
result = marketDataAPI.get_ticker(
instId="BTC-USDT"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instId | String | 是 | 产品ID,如 BTC-USDT |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"instType": "SPOT",
"instId": "BTC-USDT",
"last": "51240",
"lastSz": "0.49011124",
"askPx": "51240",
"askSz": "0.64278176",
"bidPx": "51239.9",
"bidSz": "1.68139044",
"open24h": "51695.6",
"high24h": "52080",
"low24h": "50936",
"volCcy24h": "539533972.680195094",
"vol24h": "10474.12353007",
"ts": "1708669925904",
"sodUtc0": "51290.1",
"sodUtc8": "51602.4"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
instType | String | 产品类型 |
instId | String | 产品ID |
last | String | 最新成交价 |
lastSz | String | 最新成交的数量 |
askPx | String | 卖一价 |
askSz | String | 卖一价对应的数量 |
bidPx | String | 买一价 |
bidSz | String | 买一价对应的数量 |
open24h | String | 24小时开盘价 |
high24h | String | 24小时最高价 |
low24h | String | 24小时最低价 |
volCcy24h | String | 24小时成交量 如果是 币币 ,数值为计价货币的数量。 |
vol24h | String | 24小时成交量 如果是 币币 ,数值为交易货币的数量。 |
sodUtc0 | String | UTC+0 时开盘价 |
sodUtc8 | String | UTC+8 时开盘价 |
ts | String | ticker数据产生时间,Unix时间戳的毫秒数格式,如 1597026383085 |
GET / 获取产品深度
获取产品深度列表
限速:40次/2s
限速规则:IP
HTTP请求
GET /api/v5/market/books
请求示例
GET /api/v5/market/books?instId=BTC-USDT
import okx.MarketData as MarketData
flag = "0" # 实盘:0 , 模拟盘:1
marketDataAPI = MarketData.MarketAPI(flag=flag)
# 获取产品深度
result = marketDataAPI.get_orderbook(
instId="BTC-USDT"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instId | String | 是 | 产品ID,如 BTC-USDT |
sz | String | 否 | 深度档位数量,最大值可传400,即买卖深度共800条 不填写此参数,默认返回 1 档深度数据 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"asks": [
[
"41006.8",
"0.60038921",
"0",
"1"
]
],
"bids": [
[
"41006.3",
"0.30178218",
"0",
"2"
]
],
"ts": "1629966436396"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
asks | Array |
卖方深度 |
bids | Array |
买方深度 |
ts | String | 深度产生的时间 |
GET / 获取产品完整深度
获取产品深度列表。数据每秒更新一次。
限速:10次/2s
限速规则:IP
HTTP请求
GET /api/v5/market/books-full
请求示例
GET /api/v5/market/books-full?instId=BTC-USDT&sz=20
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instId | String | 是 | 产品ID,如 BTC-USDT |
sz | String | 否 | 深度档位数量,最大值可传5000,即买卖深度共10000条 不填写此参数,默认返回 1 档深度数据 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"asks": [
[
"41006.8",
"0.60038921",
"1"
]
],
"bids": [
[
"41006.3",
"0.30178218",
"2"
]
],
"ts": "1629966436396"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
asks | Array |
卖方深度 |
bids | Array |
买方深度 |
ts | String | 深度产生的时间 |
GET / 获取交易产品K线数据
获取K线数据。K线数据按请求的粒度分组返回,K线数据每个粒度最多可获取最近1,440条。
限速:40次/2s
限速规则:IP
HTTP请求
GET /api/v5/market/candles
请求示例
GET /api/v5/market/candles?instId=BTC-USDT
import okx.MarketData as MarketData
flag = "0" # 实盘:0 , 模拟盘:1
marketDataAPI = MarketData.MarketAPI(flag=flag)
# 获取交易产品K线数据
result = marketDataAPI.get_candlesticks(
instId="BTC-USDT"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instId | String | 是 | 产品ID,如BTC-USDT |
bar | String | 否 | 时间粒度,默认值1m 如 [1m/3m/5m/15m/30m/1H/2H/4H] 香港时间开盘价k线:[6H/12H/1D/2D/3D/1W/1M/3M] UTC时间开盘价k线:[/6Hutc/12Hutc/1Dutc/2Dutc/3Dutc/1Wutc/1Mutc/3Mutc] |
after | String | 否 | 请求此时间戳之前(更旧的数据)的分页内容,传的值为对应接口的ts |
before | String | 否 | 请求此时间戳之后(更新的数据)的分页内容,传的值为对应接口的ts , 单独使用时,会返回最新的数据。 |
limit | String | 否 | 分页返回的结果集数量,最大为300,不填默认返回100条 |
返回结果
{
"code":"0",
"msg":"",
"data":[
[
"1597026383085",
"3.721",
"3.743",
"3.677",
"3.708",
"8422410",
"22698348.04828491",
"12698348.04828491",
"0"
],
[
"1597026383085",
"3.731",
"3.799",
"3.494",
"3.72",
"24912403",
"67632347.24399722",
"37632347.24399722",
"1"
]
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
ts | String | 开始时间,Unix时间戳的毫秒数格式,如 1597026383085 |
o | String | 开盘价格 |
h | String | 最高价格 |
l | String | 最低价格 |
c | String | 收盘价格 |
vol | String | 交易量 如果是 币币 ,数值为交易货币的数量。 |
volCcy | String | 交易量 如果是 币币 ,数值为计价货币的数量。 |
volCcyQuote | String | 交易量,以计价货币为单位 如 BTC-USDT 单位是USDT |
confirm | String | K线状态0 :代表 K 线未完结1 :代表 K 线已完结 |
GET / 获取交易产品历史K线数据
获取最近几年的历史k线数据(1s k线支持查询最近3个月的数据)
限速:20次/2s
限速规则:IP
HTTP请求
GET /api/v5/market/history-candles
请求示例
GET /api/v5/market/history-candles?instId=BTC-USDT
import okx.MarketData as MarketData
flag = "0" # 实盘:0 , 模拟盘:1
marketDataAPI = MarketData.MarketAPI(flag=flag)
# 获取交易产品历史K线数据
result = marketDataAPI.get_history_candlesticks(
instId="BTC-USDT"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instId | String | 是 | 产品ID,如 BTC-USDT |
after | String | 否 | 请求此时间戳之前(更旧的数据)的分页内容,传的值为对应接口的ts |
before | String | 否 | 请求此时间戳之后(更新的数据)的分页内容,传的值为对应接口的ts , 单独使用时,会返回最新的数据。 |
bar | String | 否 | 时间粒度,默认值1m 如 [1s/1m/3m/5m/15m/30m/1H/2H/4H] 香港时间开盘价k线:[6H/12H/1D/2D/3D/1W/1M/3M] UTC时间开盘价k线:[6Hutc/12Hutc/1Dutc/2Dutc/3Dutc/1Wutc/1Mutc/3Mutc] |
limit | String | 否 | 分页返回的结果集数量,最大为100,不填默认返回100条 |
返回结果
{
"code":"0",
"msg":"",
"data":[
[
"1597026383085",
"3.721",
"3.743",
"3.677",
"3.708",
"8422410",
"22698348.04828491",
"12698348.04828491",
"1"
],
[
"1597026383085",
"3.731",
"3.799",
"3.494",
"3.72",
"24912403",
"67632347.24399722",
"37632347.24399722",
"1"
]
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
ts | String | 开始时间,Unix时间戳的毫秒数格式,如 1597026383085 |
o | String | 开盘价格 |
h | String | 最高价格 |
l | String | 最低价格 |
c | String | 收盘价格 |
vol | String | 交易量 如果是 币币 ,数值为交易货币的数量。 |
volCcy | String | 交易量 如果是 币币 ,数值为计价货币的数量。 |
volCcyQuote | String | 交易量,以计价货币为单位 如 BTC-USDT 单位是USDT 。 |
confirm | String | K线状态0 :K线未完结1 :K线已完结 |
GET / 获取交易产品公共成交数据
查询市场上的成交信息数据
限速:100次/2s
限速规则:IP
HTTP请求
GET /api/v5/market/trades
请求示例
GET /api/v5/market/trades?instId=BTC-USDT
import okx.MarketData as MarketData
flag = "0" # 实盘:0 , 模拟盘:1
marketDataAPI = MarketData.MarketAPI(flag=flag)
# 获取交易产品公共成交数据
result = marketDataAPI.get_trades(
instId="BTC-USDT"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instId | String | 是 | 产品ID,如 BTC-USDT |
limit | String | 否 | 分页返回的结果集数量,最大为500,不填默认返回100条 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"instId": "BTC-USDT",
"side": "sell",
"sz": "0.00001",
"px": "29963.2",
"tradeId": "242720720",
"ts": "1654161646974"
},
{
"instId": "BTC-USDT",
"side": "sell",
"sz": "0.00001",
"px": "29964.1",
"tradeId": "242720719",
"ts": "1654161641568"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
instId | String | 产品ID |
tradeId | String | 成交ID |
px | String | 成交价格 |
sz | String | 成交数量 对于币币交易,成交数量的单位为交易货币 |
side | String | 成交方向buy :买sell :卖 |
ts | String | 成交时间,Unix时间戳的毫秒数格式, 如1597026383085 |
GET / 获取交易产品公共历史成交数据
查询市场上的成交信息数据,可以分页获取最近3个月的数据。
限速:20次/2s
限速规则:IP
HTTP请求
GET /api/v5/market/history-trades
请求示例
GET /api/v5/market/history-trades?instId=BTC-USDT
import okx.MarketData as MarketData
flag = "0" # 实盘:0 , 模拟盘:1
marketDataAPI = MarketData.MarketAPI(flag=flag)
# 获取交易产品公共历史成交数据
result = marketDataAPI.get_history_trades(
instId="BTC-USDT"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instId | String | 是 | 产品ID,如 BTC-USDT |
type | String | 否 | 分页类型1 :tradeId 分页 2 :时间戳分页默认为 1 :tradeId 分页 |
after | String | 否 | 请求此 ID 或 ts 之前的分页内容,传的值为对应接口的 tradeId 或 ts |
before | String | 否 | 请求此ID之后(更新的数据)的分页内容,传的值为对应接口的 tradeId。 不支持时间戳分页。单独使用时,会返回最新的数据。 |
limit | String | 否 | 分页返回的结果集数量,最大为100,不填默认返回100条 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"instId": "BTC-USDT",
"side": "sell",
"sz": "0.00001",
"px": "29963.2",
"tradeId": "242720720",
"ts": "1654161646974"
},
{
"instId": "BTC-USDT",
"side": "sell",
"sz": "0.00001",
"px": "29964.1",
"tradeId": "242720719",
"ts": "1654161641568"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
instId | String | 产品ID |
tradeId | String | 成交ID |
px | String | 成交价格 |
sz | String | 成交数量 |
side | String | 成交方向 buy :买 sell :卖 |
ts | String | 成交时间,Unix时间戳的毫秒数格式, 如1597026383085 |
WS / 行情频道
获取产品的最新成交价、买一价、卖一价和24小时交易量等信息。
最快100ms推送一次,没有触发事件时不推送,触发推送的事件有:成交、买一卖一发生变动。
服务地址
/ws/v5/public
请求示例
{
"op": "subscribe",
"args": [{
"channel": "tickers",
"instId": "BTC-USDT"
}]
}
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
op | String | 是 | 操作subscribe unsubscribe |
args | Array | 是 | 请求订阅的频道列表 |
> channel | String | 是 | 频道名tickers |
> instId | String | 是 | 产品ID |
成功返回示例
{
"event": "subscribe",
"arg": {
"channel": "tickers",
"instId": "BTC-USDT"
},
"connId": "a4d3ae55"
}
失败返回示例
{
"event": "error",
"code": "60012",
"msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{ \"channel\" : \"tickers\", \"instId\" : \"LTC-USD-200327\"}]}",
"connId": "a4d3ae55"
}
返回参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
event | String | 是 | 事件subscribe unsubscribe error |
arg | Object | 否 | 订阅的频道 |
> channel | String | 是 | 频道名 |
> instId | String | 是 | 产品ID |
code | String | 否 | 错误码 |
msg | String | 否 | 错误消息 |
connId | String | 是 | WebSocket连接ID |
推送示例
{
"arg": {
"channel": "tickers",
"instId": "BTC-USDT"
},
"data": [{
"instType": "SPOT",
"instId": "BTC-USDT",
"last": "9999.99",
"lastSz": "0.1",
"askPx": "9999.99",
"askSz": "11",
"bidPx": "8888.88",
"bidSz": "5",
"open24h": "9000",
"high24h": "10000",
"low24h": "8888.88",
"volCcy24h": "2222",
"vol24h": "2222",
"sodUtc0": "2222",
"sodUtc8": "2222",
"ts": "1597026383085"
}]
}
推送数据参数
参数名 | 类型 | 描述 |
---|---|---|
arg | Object | 订阅成功的频道 |
> channel | String | 频道名 |
> instId | String | 产品ID |
data | Array | 订阅的数据 |
> instType | String | 产品类型 |
> instId | String | 产品ID |
> last | String | 最新成交价 |
> lastSz | String | 最新成交的数量 |
> askPx | String | 卖一价 |
> askSz | String | 卖一价对应的量 |
> bidPx | String | 买一价 |
> bidSz | String | 买一价对应的数量 |
> open24h | String | 24小时开盘价 |
> high24h | String | 24小时最高价 |
> low24h | String | 24小时最低价 |
> volCcy24h | String | 24小时成交量 如果是 币币 ,数值为计价货币的数量。 |
> vol24h | String | 24小时成交量 如果是 币币 ,数值为交易货币的数量。 |
> sodUtc0 | String | UTC+0 时开盘价 |
> sodUtc8 | String | UTC+8 时开盘价 |
> ts | String | 数据产生时间,Unix时间戳的毫秒数格式,如 1597026383085 |
WS / K线频道
获取K线数据,推送频率最快是间隔1秒推送一次数据。
服务地址
/ws/v5/business
请求示例
{
"op": "subscribe",
"args": [{
"channel": "candle1D",
"instId": "BTC-USDT"
}]
}
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
op | String | 是 | 操作subscribe unsubscribe |
args | Array | 是 | 请求订阅的频道列表 |
> channel | String | 是 | 频道名candle3M candle1M candle1W candle1D candle2D candle3D candle5D candle12H candle6H candle4H candle2H candle1H candle30m candle15m candle5m candle3m candle1m candle1s candle3Mutc candle1Mutc candle1Wutc candle1Dutc candle2Dutc candle3Dutc candle5Dutc candle12Hutc candle6Hutc |
> instId | String | 是 | 产品ID |
成功返回示例
{
"event": "subscribe",
"arg": {
"channel": "candle1D",
"instId": "BTC-USDT"
},
"connId": "a4d3ae55"
}
失败返回示例
{
"event": "error",
"code": "60012",
"msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{ \"channel\" : \"candle1D\", \"instId\" : \"BTC-USD-191227\"}]}",
"connId": "a4d3ae55"
}
返回参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
event | String | 是 | 事件subscribe unsubscribe error |
arg | Object | 否 | 订阅的频道 |
> channel | String | 是 | 频道名 |
> instId | String | 是 | 产品ID |
code | String | 否 | 错误码 |
msg | String | 否 | 错误消息 |
connId | String | 是 | WebSocket连接ID |
推送示例
{
"arg": {
"channel": "candle1D",
"instId": "BTC-USDT"
},
"data": [
[
"1629993600000",
"42500",
"48199.9",
"41006.1",
"41006.1",
"3587.41204591",
"166741046.22583129",
"166741046.22583129",
"0"
]
]
}
推送数据参数
参数名 | 类型 | 描述 |
---|---|---|
arg | Object | 订阅成功的频道 |
> channel | String | 频道名 |
> instId | String | 产品ID |
data | Array | 订阅的数据 |
> ts | String | 开始时间,Unix时间戳的毫秒数格式,如 1597026383085 |
> o | String | 开盘价格 |
> h | String | 最高价格 |
> l | String | 最低价格 |
> c | String | 收盘价格 |
> vol | String | 交易量 如果是 币币 ,数值为交易货币的数量。 |
> volCcy | String | 交易量 如果是 币币 ,数值为计价货币的数量。 |
> volCcyQuote | String | 交易量,以计价货币为单位 如 BTC-USDT 单位是USDT 。 |
> confirm | String | K线状态0 :K线未完结1 :K线已完结 |
WS / 交易频道
获取最近的成交数据,有成交数据就推送,每次推送可能聚合多条成交数据。
根据每个taker订单的不同成交价格推送消息,并使用count字段表示聚合的订单匹配数量。
URL Path
/ws/v5/public
请求示例
{
"op": "subscribe",
"args": [{
"channel": "trades",
"instId": "BTC-USDT"
}]
}
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
op | String | 是 | 操作subscribe unsubscribe |
args | Array | 是 | 请求订阅的频道列表 |
> channel | String | 是 | 频道名trades |
> instId | String | 是 | 产品ID |
成功返回示例
{
"event": "subscribe",
"arg": {
"channel": "trades",
"instId": "BTC-USDT"
},
"connId": "a4d3ae55"
}
失败返回示例
{
"event": "error",
"code": "60012",
"msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{ \"channel\" : \"trades\", \"instId\" : \"BTC-USD-191227\"}]}",
"connId": "a4d3ae55"
}
返回参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
event | String | 是 | 事件subscribe unsubscribe error |
arg | Object | 否 | 订阅的频道 |
> channel | String | 是 | 频道名 |
> instId | String | 是 | 产品ID |
code | String | 否 | 错误码 |
msg | String | 否 | 错误消息 |
connId | String | 是 | WebSocket连接ID |
推送示例
{
"arg": {
"channel": "trades",
"instId": "BTC-USDT"
},
"data": [
{
"instId": "BTC-USDT",
"tradeId": "130639474",
"px": "42219.9",
"sz": "0.12060306",
"side": "buy",
"ts": "1630048897897",
"count": "3"
}
]
}
推送数据参数
参数名 | 类型 | 描述 |
---|---|---|
arg | Object | 订阅成功的频道 |
> channel | String | 频道名 |
> instId | String | 产品ID |
data | Array | 订阅的数据 |
> instId | String | 产品ID,如 BTC-USDT |
> tradeId | String | 聚合的多笔交易中最新一笔交易的成交ID |
> px | String | 成交价格 |
> sz | String | 成交数量 |
> side | String | 成交方向buy sell |
> ts | String | 成交时间,Unix时间戳的毫秒数格式,如 1597026383085 |
> count | String | 聚合的订单匹配数量 |
WS / 全部交易频道
获取最近的成交数据,有成交数据就推送,每次推送仅包含一条成交数据。
URL Path
/ws/v5/business
请求示例
{
"op": "subscribe",
"args": [{
"channel": "trades-all",
"instId": "BTC-USDT"
}]
}
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
op | String | 是 | 操作subscribe unsubscribe |
args | Array | 是 | 请求订阅的频道列表 |
> channel | String | 是 | 频道名trades-all |
> instId | String | 是 | 产品ID |
成功返回示例
{
"event": "subscribe",
"arg": {
"channel": "trades-all",
"instId": "BTC-USDT"
},
"connId": "a4d3ae55"
}
失败返回示例
{
"event": "error",
"code": "60012",
"msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{ \"channel\" : \"trades-all\", \"instId\" : \"BTC-USD-191227\"}]}",
"connId": "a4d3ae55"
}
返回参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
event | String | 是 | 事件subscribe unsubscribe error |
arg | Object | 否 | 订阅的频道 |
> channel | String | 是 | 频道名 |
> instId | String | 是 | 产品ID |
code | String | 否 | 错误码 |
msg | String | 否 | 错误消息 |
connId | String | 是 | WebSocket连接ID |
推送示例
{
"arg": {
"channel": "trades-all",
"instId": "BTC-USDT"
},
"data": [
{
"instId": "BTC-USDT",
"tradeId": "130639474",
"px": "42219.9",
"sz": "0.12060306",
"side": "buy",
"ts": "1630048897897"
}
]
}
推送数据参数
参数名 | 类型 | 描述 |
---|---|---|
arg | Object | 订阅成功的频道 |
> channel | String | 频道名 |
> instId | String | 产品ID |
data | Array | 订阅的数据 |
> instId | String | 产品ID,如 BTC-USDT |
> tradeId | String | 成交ID |
> px | String | 成交价格 |
> sz | String | 成交数量 |
> side | String | 成交方向buy sell |
> ts | String | 成交时间,Unix时间戳的毫秒数格式,如 1597026383085 |
WS / 深度频道
获取深度数据,books
是400档频道,books5
是5档频道, bbo-tbt
是先1档后实时推送的频道,books-l2-tbt
是先400档后实时推送的频道,books50-l2-tbt
是先50档后实时推的频道;
books
首次推400档快照数据,以后增量推送,每100毫秒推送一次变化的数据books5
首次推5档快照数据,以后定量推送,每100毫秒当5档快照数据有变化推送一次5档数据bbo-tbt
首次推1档快照数据,以后定量推送,每10毫秒当1档快照数据有变化推送一次1档数据books-l2-tbt
首次推400档快照数据,以后增量推送,每10毫秒推送一次变化的数据books50-l2-tbt
首次推50档快照数据,以后增量推送,每10毫秒推送一次变化的数据- 单个连接、交易产品维度,深度频道的推送顺序固定为:bbo-tbt -> books-l2-tbt -> books50-l2-tbt -> books -> books5。
- 在相同连接下,用户将无法为相同交易产品同时订阅
books-l2-tbt
以及books50-l2-tbt/books
频道- 更多细节,请参阅更新日志 2024-07-17
身份认证参考登录功能
服务地址
/ws/v5/public
请求示例
{
"op": "subscribe",
"args": [{
"channel": "books",
"instId": "BTC-USDT"
}]
}
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
op | String | 是 | 操作subscribe unsubscribe |
args | Array | 是 | 请求订阅的频道列表 |
> channel | String | 是 | 频道名books books5 bbo-tbt books-l2-tbt books50-l2-tbt |
> instId | String | 是 | 产品ID |
返回示例
{
"event": "subscribe",
"arg": {
"channel": "books",
"instId": "BTC-USDT"
},
"connId": "a4d3ae55"
}
失败示例
{
"event": "error",
"code": "60012",
"msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{ \"channel\" : \"books\", \"instId\" : \"BTC-USD-191227\"}]}",
"connId": "a4d3ae55"
}
返回参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
event | String | 是 | 事件subscribe unsubscribe error |
arg | Object | 否 | 订阅的频道 |
> channel | String | 是 | 频道名 |
> instId | String | 是 | 产品ID |
msg | String | 否 | 错误消息 |
code | String | 否 | 错误码 |
connId | String | 是 | WebSocket连接ID |
推送示例 :全量
{
"arg": {
"channel": "books",
"instId": "BTC-USDT"
},
"action": "snapshot",
"data": [{
"asks": [
["8476.98", "415", "0", "13"],
["8477", "7", "0", "2"],
["8477.34", "85", "0", "1"],
["8477.56", "1", "0", "1"],
["8505.84", "8", "0", "1"],
["8506.37", "85", "0", "1"],
["8506.49", "2", "0", "1"],
["8506.96", "100", "0", "2"]
],
"bids": [
["8476.97", "256", "0", "12"],
["8475.55", "101", "0", "1"],
["8475.54", "100", "0", "1"],
["8475.3", "1", "0", "1"],
["8447.32", "6", "0", "1"],
["8447.02", "246", "0", "1"],
["8446.83", "24", "0", "1"],
["8446", "95", "0", "3"]
],
"ts": "1597026383085",
"checksum": -855196043,
"prevSeqId": -1,
"seqId": 123456
}]
}
推送示例:增量
{
"arg": {
"channel": "books",
"instId": "BTC-USDT"
},
"action": "update",
"data": [{
"asks": [
["8476.98", "415", "0", "13"],
["8477", "7", "0", "2"],
["8477.34", "85", "0", "1"],
["8477.56", "1", "0", "1"],
["8505.84", "8", "0", "1"],
["8506.37", "85", "0", "1"],
["8506.49", "2", "0", "1"],
["8506.96", "100", "0", "2"]
],
"bids": [
["8476.97", "256", "0", "12"],
["8475.55", "101", "0", "1"],
["8475.54", "100", "0", "1"],
["8475.3", "1", "0", "1"],
["8447.32", "6", "0", "1"],
["8447.02", "246", "0", "1"],
["8446.83", "24", "0", "1"],
["8446", "95", "0", "3"]
],
"ts": "1597026383085",
"checksum": -855196043,
"prevSeqId": 123456,
"seqId": 123457
}]
}
推送数据参数
参数名 | 类型 | 描述 |
---|---|---|
arg | Object | 订阅成功的频道 |
> channel | String | 频道名 |
> instId | String | 产品ID |
action | String | 推送数据动作,增量推送数据还是全量推送数据snapshot :全量 update :增量 |
data | Array | 订阅的数据 |
> asks | Array | 卖方深度 |
> bids | Array | 买方深度 |
> ts | String | 数据更新时间戳,Unix时间戳的毫秒数格式,如 1597026383085 |
> checksum | Integer | 检验和 (下方注解) |
> prevSeqId | Integer | 上一个推送的序列号。仅适用 books ,books-l2-tbt ,books50-l2-tbt |
> seqId | Integer | 推送的序列号 (下方注解) |
序列号
seqId
是交易所行情的一个序号。如果用户通过多个websocket连接同一频道,收到的序列号会是相同的。每个instId
对应一套。用户可以使用在增量推送频道的prevSeqId
和seqId
来构建消息序列。这将允许用户检测数据包丢失和消息的排序。正常场景下seqId
的值大于prevSeqId
。新消息中的prevSeqId
与上一条消息的seqId
匹配。最小序列号值为0,除了快照消息的prevSeqId
为-1。
异常情况:
1. 如果一段时间内没有深度更新,OKX将发一条消息'asks': [], 'bids': []
以通知用户连接是正常的。推送的seqId
跟上一条信息的一样,prevSeqId
等于seqId
。
2. 序列号可能由于维护而重置,在这种情况下,用户将收到一条seqId
小于prevSeqId
的增量消息。随后的消息将遵循常规的排序规则。
示例
- 快照推送:
prevSeqId = -1
,seqId = 10
- 增量推送1(正常更新):
prevSeqId = 10
,seqId = 15
- 增量推送2(无更新):
prevSeqId = 15
,seqId = 15
- 增量推送3(序列重置):
prevSeqId = 15
,seqId = 3
- 增量推送4(正常更新):
prevSeqId = 3
,seqId = 5
Checksum机制
此机制可以帮助用户校验深度数据的准确性。
深度合并
用户订阅增量推送(如:books
400档)深度频道成功后,首先获取初始全量深度数据,当获取到增量推送数据后,更新本地全量深度数据。
- 如果有相同价格,则比较数量;数量为0删除此深度,数量有变化则替换此数据。
- 如果没有相同价格,则按照价格优劣排序(bid为价格降序,ask为价格升序),将深度信息插入到全量数据中
计算校验和
先用深度合并后前25档bids和asks组成一个字符串(其中ask和bid中的价格和数量以冒号连接),再计算其crc32值(32位有符号整型)。
计算校验和
1.bid和ask超过25档
合并后全量深度数据(在此仅展示2档数据,实际应截取25档数据):
{
"bids": [
["3366.1", "7", "0", "3"],
["3366", "6", "3", "4"]
],
"asks": [
["3366.8", "9", "10", "3"],
["3368", "8", "3", "4"]
]
}
校验字符串:
"3366.1:7:3366.8:9:3366:6:3368:8"
2.bid或ask不足25档
合并后全量深度数据:
{
"bids": [
["3366.1", "7", "0", "3"]
],
"asks": [
["3366.8", "9", "10", "3"],
["3368", "8", "3", "4"],
["3372", "8", "3", "4"]
]
}
校验字符串:
"3366.1:7:3366.8:9:3368:8:3372:8"
- 当bid和ask深度数据超过25档时,截取各自25档数据,要校验的字符串按照bid、ask深度数据交替方式连接。
如:bid[价格:数量]
:ask[价格:数量]
:bid[价格:数量]
:ask[价格:数量]
... - bid或ask深度数据不足25档时,直接忽略缺失的深度。
如:bid[价格:数量]
:ask[价格:数量]
:asks[价格:数量]
:asks[价格:数量]
...
bbo-tbt 频道推送示例
{
"arg": {
"channel": "bbo-tbt",
"instId": "BCH-USDT-SWAP"
},
"data": [
{
"asks": [
[
"111.06","55154","0","2"
]
],
"bids": [
[
"111.05","57745","0","2"
]
],
"ts": "1670324386802",
"seqId": 363996337
}
]
}
books5 频道推送示例
{
"arg": {
"channel": "books5",
"instId": "BCH-USDT-SWAP"
},
"data": [
{
"asks": [
["111.06","55154","0","2"],
["111.07","53276","0","2"],
["111.08","72435","0","2"],
["111.09","70312","0","2"],
["111.1","67272","0","2"]],
"bids": [
["111.05","57745","0","2"],
["111.04","57109","0","2"],
["111.03","69563","0","2"],
["111.02","71248","0","2"],
["111.01","65090","0","2"]],
"instId": "BCH-USDT-SWAP",
"ts": "1670324386802",
"seqId": 363996337
}
]
}
公共数据
公共数据
功能模块下的API接口不需要身份验证。
REST API
获取交易产品基础信息
获取所有可交易产品的信息列表。
限速:20次/2s
限速规则:IP +instType
HTTP请求
GET /api/v5/public/instruments
请求示例
GET /api/v5/public/instruments?instType=SPOT
import okx.PublicData as PublicData
flag = "0" # 实盘:0 , 模拟盘:1
publicDataAPI = PublicData.PublicAPI(flag=flag)
# 获取交易产品基础信息
result = publicDataAPI.get_instruments(
instType="SPOT"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instType | String | 是 | 产品类型SPOT :币币 |
instId | String | 否 | 产品ID |
返回结果
{
"code":"0",
"msg":"",
"data":[
{
"alias": "",
"baseCcy": "BTC",
"category": "1",
"ctMult": "",
"ctType": "",
"ctVal": "",
"ctValCcy": "",
"expTime": "",
"instFamily": "",
"instId": "BTC-USDT",
"instType": "SPOT",
"lever": "10",
"listTime": "1606468572000",
"lotSz": "0.00000001",
"maxIcebergSz": "9999999999.0000000000000000",
"maxLmtAmt": "1000000",
"maxLmtSz": "9999999999",
"maxMktAmt": "1000000",
"maxMktSz": "",
"maxStopSz": "",
"maxTriggerSz": "9999999999.0000000000000000",
"maxTwapSz": "9999999999.0000000000000000",
"minSz": "0.00001",
"optType": "",
"quoteCcy": "USDT",
"settleCcy": "",
"state": "live",
"stk": "",
"tickSz": "0.1",
"uly": ""
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
instType | String | 产品类型 |
instId | String | 产品id, 如 BTC-USDT |
uly | String | 标的指数,如 BTC-USD ,仅适用于交割/永续/期权 |
instFamily | String | 交易品种,如 BTC-USD ,仅适用于交割/永续/期权 |
category | String | |
baseCcy | String | 交易货币币种,如 BTC-USDT 中的 BTC ,仅适用于币币/币币杠杆 |
quoteCcy | String | 计价货币币种,如 BTC-USDT 中的USDT ,仅适用于币币/币币杠杆 |
settleCcy | String | 盈亏结算和保证金币种,如 BTC 仅适用于交割/永续/期权 |
ctVal | String | 合约面值,仅适用于交割/永续/期权 |
ctMult | String | 合约乘数,仅适用于交割/永续/期权 |
ctValCcy | String | 合约面值计价币种,仅适用于交割/永续/期权 |
optType | String | 期权类型,C 或P 仅适用于期权 |
stk | String | 行权价格,仅适用于期权 |
listTime | String | 上线时间 Unix时间戳的毫秒数格式,如 1597026383085 |
expTime | String | 产品下线时间 适用于 币币/杠杆/交割/永续/期权 ,对于 交割/期权 ,为交割/行权日期;亦可以为产品下线时间,有变动就会推送。 |
lever | String | 该instId 支持的最大杠杆倍数,不适用于币币 、期权 |
tickSz | String | 下单价格精度,如 0.0001 对于期权来说,是梯度中的最小下单价格精度,如果想要获取期权价格梯度,请使用"获取期权价格梯度"接口 |
lotSz | String | 下单数量精度 合约的数量单位是 张 ,现货的数量单位是交易货币 |
minSz | String | 最小下单数量 合约的数量单位是 张 ,现货的数量单位是交易货币 |
ctType | String | 合约类型linear :正向合约inverse :反向合约仅适用于 交割/永续 |
alias | String | 合约日期别名this_week :本周 next_week :次周 this_month :本月 next_month :次月quarter :季度next_quarter :次季度 仅适用于 交割 不建议使用,用户应通过 expTime 字段获取合约的交割日期 |
state | String | 产品状态live :交易中 suspend :暂停中preopen :预上线,如:交割和期权的新合约在 live 之前,会有 preopen 状态test :测试中(测试产品,不可交易) |
maxLmtSz | String | 限价单的单笔最大委托数量 合约的数量单位是 张 ,现货的数量单位是交易货币 |
maxMktSz | String | 市价单的单笔最大委托数量 合约的数量单位是 张 ,现货的数量单位是USDT |
maxLmtAmt | String | 限价单的单笔最大美元价值 |
maxMktAmt | String | 市价单的单笔最大美元价值 仅适用于 币币/币币杠杆 |
maxTwapSz | String | 时间加权单的单笔最大委托数量 合约的数量单位是 张 ,现货的数量单位是交易货币 |
maxIcebergSz | String | 冰山委托的单笔最大委托数量 合约的数量单位是 张 ,现货的数量单位是交易货币 |
maxTriggerSz | String | 计划委托委托的单笔最大委托数量 合约的数量单位是 张 ,现货的数量单位是交易货币 |
maxStopSz | String | 止盈止损市价委托的单笔最大委托数量 合约的数量单位是 张 ,现货的数量单位是USDT |
获取系统时间
获取系统时间
限速:10次/2s
限速规则:IP
HTTP请求
GET /api/v5/public/time
请求示例
GET /api/v5/public/time
import okx.PublicData as PublicData
flag = "0" # 实盘:0 , 模拟盘:1
publicDataAPI = PublicData.PublicAPI(flag=flag)
# 获取系统时间
result = publicDataAPI.get_system_time()
print(result)
返回结果
{
"code":"0",
"msg":"",
"data":[
{
"ts":"1597026383085"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
ts | String | 系统时间,Unix时间戳的毫秒数格式,如 1597026383085 |
WebSocket
产品频道
服务地址
/ws/v5/public
请求示例
{
"op": "subscribe",
"args": [
{
"channel" : "instruments",
"instType": "SPOT"
}
]
}
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
op | String | 是 | 操作subscribe unsubscribe |
args | Array | 是 | 请求订阅的频道列表 |
> channel | String | 是 | 频道名instruments |
> instType | String | 是 | 产品类型SPOT :币币 |
成功返回示例
{
"event": "subscribe",
"arg": {
"channel": "instruments",
"instType": "SPOT"
},
"connId": "a4d3ae55"
}
失败返回示例
{
"event": "error",
"code": "60012",
"msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{ \"channel\" : \"instruments\", \"instType\" : \"FUTURES\"}]}",
"connId": "a4d3ae55"
}
返回参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
event | String | 是 | 事件subscribe unsubscribe error |
arg | Object | 否 | 订阅的频道 |
> channel | String | 是 | 频道名 |
> instType | String | 是 | 产品类型SPOT :币币MARGIN :币币杠杆SWAP :永续合约FUTURES :交割合约OPTION :期权 |
code | String | 否 | 错误码 |
msg | String | 否 | 错误消息 |
connId | String | 是 | WebSocket连接ID |
推送示例
{
"arg": {
"channel": "instruments",
"instType": "SPOT"
},
"data": [
{
"alias": "",
"baseCcy": "BTC",
"category": "1",
"ctMult": "",
"ctType": "",
"ctVal": "",
"ctValCcy": "",
"expTime": "",
"instFamily": "",
"instId": "BTC-USDT",
"instType": "SPOT",
"lever": "10",
"listTime": "1606468572000",
"lotSz": "0.00000001",
"maxIcebergSz": "9999999999.0000000000000000",
"maxLmtAmt": "1000000",
"maxLmtSz": "9999999999",
"maxMktAmt": "1000000",
"maxMktSz": "",
"maxStopSz": "",
"maxTriggerSz": "9999999999.0000000000000000",
"maxTwapSz": "9999999999.0000000000000000",
"minSz": "0.00001",
"optType": "",
"quoteCcy": "USDT",
"settleCcy": "",
"state": "live",
"stk": "",
"tickSz": "0.1",
"uly": ""
}
]
}
推送数据参数
参数名 | 类型 | 描述 |
---|---|---|
arg | Object | 订阅的频道 |
> channel | String | 频道名 |
> instType | String | 产品类型 |
data | Array | 订阅的数据 |
> instType | String | 产品类型 |
> instId | String | 产品ID,如 BTC-USDT |
> category | String | |
> uly | String | 标的指数,如 BTC-USD ,仅适用于交割/永续/期权 |
> instFamily | String | 交易品种,如 BTC-USD ,仅适用于交割/永续/期权 |
> baseCcy | String | 交易货币币种,如 BTC-USDT 中BTC ,仅适用于币币/币币杠杆 |
> quoteCcy | String | 计价货币币种,如 BTC-USDT 中USDT ,仅适用于币币/币币杠杆 |
> settleCcy | String | 盈亏结算和保证金币种,如 BTC ,仅适用于 交割/永续/期权 |
> ctVal | String | 合约面值 |
> ctMult | String | 合约乘数 |
> ctValCcy | String | 合约面值计价币种 |
> optType | String | 期权类型C :看涨期权P :看跌期权仅适用于 期权 |
> stk | String | 行权价格,仅适用于期权 |
> listTime | String | 上线日期,仅适用于 交割/永续/期权 |
> expTime | String | 产品下线日期 适用于 币币/杠杆/交割/永续/期权 ,对于 交割/期权 ,为自然的交割/行权日期;如果币币/杠杆/交割/永续 产品人工下线,为产品下线日期,有变动就会推送。 |
> lever | String | 该产品支持的最大杠杆倍数 不适用于 币币 /期权 。可用来区分币币杠杆 和币币 |
> tickSz | String | 下单价格精度,如 0.0001 对于期权来说,是梯度中的最小下单价格精度。 |
> lotSz | String | 下单数量精度 合约的数量单位是 张 ,现货的数量单位是交易货币 |
> minSz | String | 最小下单数 合约的数量单位是 张 ,现货的数量单位是交易货币 |
> ctType | String | 合约类型linear :正向合约inverse :反向合约仅适用于 交割/永续 |
> alias | String | 合约日期别名this_week :本周next_week :次周this_month :本月next_month :次月quarter :季度next_quarter :次季度 仅适用于 交割 不建议使用,用户应通过 expTime 字段获取合约的交割日期 |
> state | String | 产品状态live :交易中 suspend :暂停中expired :已过期preopen :预上线,如:交割和期权的新合约在上线之前,会有 preopen 状态test :测试中(测试产品,不可交易) |
> maxLmtSz | String | 限价单的单笔最大委托数量 合约的数量单位是 张 ,现货的数量单位是交易货币 |
> maxMktSz | String | 市价单的单笔最大委托数量 合约的数量单位是 张 ,现货的数量单位是USDT |
> maxTwapSz | String | 时间加权单的单笔最大委托数量 合约的数量单位是 张 ,现货的数量单位是交易货币 |
> maxIcebergSz | String | 冰山委托的单笔最大委托数量 合约的数量单位是 张 ,现货的数量单位是交易货币 |
> maxTriggerSz | String | 计划委托委托的单笔最大委托数量 合约的数量单位是 张 ,现货的数量单位是交易货币 |
> maxStopSz | String | 止盈止损市价委托的单笔最大委托数量 合约的数量单位是 张 ,现货的数量单位是USDT |
资金账户
资金
功能模块下的API接口需要身份验证。
REST API
获取币种列表
获取当前用户KYC实体支持的币种列表。
限速:6 次/s
限速规则:UserID
HTTP 请求
GET /api/v5/asset/currencies
请求示例
GET /api/v5/asset/currencies
import okx.Funding as Funding
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "0" # 实盘: 0, 模拟盘: 1
fundingAPI = Funding.FundingAPI(apikey, secretkey, passphrase, False, flag)
# 获取币种列表
result = fundingAPI.get_currencies()
print(result)
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
ccy | String | 否 | 币种,如 BTC 支持多币种查询,币种之间半角逗号分隔 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"canDep": true,
"canInternal": true,
"canWd": true,
"ccy": "BTC",
"chain": "BTC-Bitcoin",
"depQuotaFixed": "",
"depQuoteDailyLayer2":"",
"logoLink": "https://static.coinall.ltd/cdn/oksupport/asset/currency/icon/btc.png",
"mainNet": true,
"maxFee": "0.0004",
"maxFeeForCtAddr": "0.0004",
"maxWd": "500",
"minDep": "0.00005",
"minDepArrivalConfirm": "1",
"minFee": "0.0002",
"minFeeForCtAddr": "0.0002",
"minWd": "0.001",
"minWdUnlockConfirm": "3",
"name": "Bitcoin",
"needTag": false,
"usedDepQuotaFixed": "",
"usedWdQuota": "0",
"wdQuota": "200",
"wdTickSz": "8"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
ccy | String | 币种名称,如 BTC |
name | String | 币种名称,不显示则无对应名称 |
logoLink | String | 币种Logo链接 |
chain | String | 币种链信息 有的币种下有多个链,必须要做区分,如 USDT 下有USDT-ERC20 ,USDT-TRC20 多个链 |
canDep | Boolean | 当前是否可充值false :不可链上充值true :可以链上充值 |
canWd | Boolean | 当前是否可提币false :不可链上提币true :可以链上提币 |
canInternal | Boolean | 当前是否可内部转账false :不可内部转账true :可以内部转账 |
minDep | String | 币种单笔最小充值量 |
minWd | String | 币种单笔最小链上提币 量 |
maxWd | String | 币种单笔最大链上提币 量 |
wdTickSz | String | 提币精度,表示小数点后的位数。提币手续费精度与提币精度保持一致。 内部转账提币精度为小数点后8位。 |
wdQuota | String | 过去24小时内提币额度(包含链上提币 和内部转账 ),单位为USD |
usedWdQuota | String | 过去24小时内已用提币额度,单位为USD |
minFee | String | 普通地址最小提币手续费数量 适用于 链上提币 |
maxFee | String | 普通地址最大提币手续费数量 适用于 链上提币 |
minFeeForCtAddr | String | 合约地址最小提币手续费数量 适用于 链上提币 |
maxFeeForCtAddr | String | 合约地址最大提币手续费数量 适用于 链上提币 |
mainNet | Boolean | 当前链是否为主链 |
needTag | Boolean | 当前链提币是否需要标签(tag/memo)信息,如 EOS 该字段为true |
minDepArrivalConfirm | String | 充值到账最小网络确认数。币已到账但不可提。 |
minWdUnlockConfirm | String | 提现解锁最小网络确认数 |
depQuotaFixed | String | 充币固定限额,单位为USD 没有充币限制则返回"" |
usedDepQuotaFixed | String | 已用充币固定额度,单位为USD 没有充币限制则返回"" |
depQuoteDailyLayer2 | String | Layer2网络每日充值上限 |
获取资金账户余额
获取资金账户所有资产列表,查询各币种的余额、冻结和可用等信息。
限速:6次/s
限速规则:UserID
HTTP请求
GET /api/v5/asset/balances
请求示例
GET /api/v5/asset/balances
import okx.Funding as Funding
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "0" # 实盘: 0, 模拟盘: 1
fundingAPI = Funding.FundingAPI(apikey, secretkey, passphrase, False, flag)
# 获取资金账户余额
result = fundingAPI.get_balances()
print(result)
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
ccy | String | 否 | 币种,如 BTC 支持多币种查询(不超过20个),币种之间半角逗号分隔 |
返回结果
{
"code": "0",
"msg": "",
"data": [{
"availBal": "37.11827078",
"bal": "37.11827078",
"ccy": "ETH",
"frozenBal": "0"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
ccy | String | 币种,如 BTC |
bal | String | 余额 |
frozenBal | String | 冻结余额 |
availBal | String | 可用余额 |
获取不可交易资产
限速:6 次/s
限速规则:UserID
HTTP 请求
GET /api/v5/asset/non-tradable-assets
请求示例
GET /api/v5/asset/non-tradable-assets
import okx.Funding as Funding
# API initialization
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # Production trading: 0, Demo trading: 1
fundingAPI = Funding.FundingAPI(apikey, secretkey, passphrase, False, flag)
result = fundingAPI.get_non_tradable_assets()
print(result)
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
ccy | String | 否 | 币种,如 BTC 支持多币种查询(不超过20个),币种之间半角逗号分隔 |
返回结果
{
"code": "0",
"data": [
{
"bal": "989.84719571",
"canWd": true,
"ccy": "CELT",
"chain": "CELT-OKTC",
"ctAddr": "f403fb",
"fee": "2",
"logoLink": "https://static.coinall.ltd/cdn/assets/imgs/221/460DA8A592400393.png",
"minWd": "0.1",
"name": "",
"needTag": false,
"wdAll": false,
"wdTickSz": "8"
},
{
"bal": "0.001",
"canWd": true,
"ccy": "MEME",
"chain": "MEME-ERC20",
"ctAddr": "09b760",
"fee": "5",
"logoLink": "https://static.coinall.ltd/cdn/assets/imgs/207/2E664E470103C613.png",
"minWd": "0.001",
"name": "MEME Inu",
"needTag": false,
"wdAll": false,
"wdTickSz": "8"
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
ccy | String | 币种名称,如 CELT |
name | String | 币种中文名称,不显示则无对应名称 |
logoLink | String | 币种Logo链接 |
bal | String | 可提余额 |
canWd | Boolean | 是否可提false : 不可提 true : 可提 |
chain | String | 支持提币的链 |
minWd | String | 币种单笔最小提币量 |
wdAll | Boolean | 该币种资产是否必须一次性全部提取 |
fee | String | 提币固定手续费,单位是USDT 。提币手续费精度为小数点后8位。 |
ctAddr | String | 合约地址后6位 |
wdTickSz | String | 提币精度,表示小数点后的位数 |
needTag | Boolean | 提币的链是否需要标签(tag/memo)信息 |
获取账户资产估值
查看账户资产估值
限速:1次/s
限速规则:UserID
HTTP请求
GET /api/v5/asset/asset-valuation
请求示例
GET /api/v5/asset/asset-valuation
import okx.Funding as Funding
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "0" # 实盘: 0, 模拟盘: 1
fundingAPI = Funding.FundingAPI(apikey, secretkey, passphrase, False, flag)
# 获取账户资产估值
result = fundingAPI.get_asset_valuation()
print(result)
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
ccy | String | 否 | 资产估值对应的单位 BTC 、USDT USD 、CNY 、JPY、KRW、RUB、EUR VND 、IDR 、INR、PHP、THB、TRY AUD 、SGD 、ARS、SAR、AED、IQD 默认为 BTC 为单位的估值 |
返回结果
{
"code": "0",
"data": [
{
"details": {
"classic": "124.6",
"earn": "1122.73",
"funding": "0.09",
"trading": "2544.28"
},
"totalBal": "3790.09",
"ts": "1637566660769"
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
totalBal | String | 账户总资产估值 |
ts | String | 数据更新时间,Unix时间戳的毫秒数格式,如 1597026383085 |
details | Object | 各个账户的资产估值 |
> funding | String | 资金账户 |
> trading | String | 交易账户 |
> classic | String | 经典账户 (已废弃) |
> earn | String | 金融账户 |
资金划转
调用时,API Key 需要有交易权限。
支持母账户的资金账户划转到交易账户,母账户到子账户的资金账户和交易账户划转。
子账户默认可转出至母账户,划转到同一母账户下的其他子账户,需要先调用 设置子账户主动转出权限 接口进行授权。
限速:2 次/s
限速规则:UserID + Currency
HTTP 请求
POST /api/v5/asset/transfer
请求示例
# 母账户USDT从资金账户划转1.5USDT到交易账户
POST /api/v5/asset/transfer
body
{
"ccy":"USDT",
"amt":"1.5",
"from":"6",
"to":"18"
}
# 母账户从资金账户划转1.5USDT到子账户的资金账户
POST /api/v5/asset/transfer
body
{
"ccy":"USDT",
"type":"1",
"amt":"1.5",
"from":"6",
"to":"6",
"subAcct":"mini"
}
# 子账户从资金账户划转1.5USDT到另一子账户的资金账户
POST /api/v5/asset/transfer
body
{
"ccy":"USDT",
"type":"4",
"amt":"1.5",
"from":"6",
"to":"6",
"subAcct":"mini"
}
import okx.Funding as Funding
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "0" # 实盘: 0, 模拟盘: 1
fundingAPI = Funding.FundingAPI(apikey, secretkey, passphrase, False, flag)
# 资金划转
result = fundingAPI.funds_transfer(
ccy="USDT",
amt="1.5",
from_="6",
to="18"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
type | String | 否 | 划转类型0 :账户内划转1 :母账户转子账户(仅适用于母账户APIKey)2 :子账户转母账户(仅适用于母账户APIKey)3 :子账户转母账户(仅适用于子账户APIKey)4 :子账户转子账户(仅适用于子账户APIKey,且目标账户需要是同一母账户下的其他子账户。子账户主动转出权限默认是关闭的,权限调整参考 设置子账户主动转出权限。)默认是 0 如果您希望通过母账户API Key控制子账户之间的划转,参考接口 子账户间资金划转 |
ccy | String | 是 | 划转币种,如 USDT |
amt | String | 是 | 划转数量 |
from | String | 是 | 转出账户6 :资金账户18 :交易账户 |
to | String | 是 | 转入账户6 :资金账户18 :交易账户 |
subAcct | String | 可选 | 子账户名称 当 type 为1 /2 /4 时,该字段必填 |
loanTrans | Boolean | 否 | 是否支持跨币种保证金模式 或组合保证金模式 下的借币转出true :支持借币转出false :不支持借币转出默认为 false |
omitPosRisk | String | 否 | 是否忽略仓位风险 默认为 false 仅适用于 组合保证金模式 |
clientId | String | 否 | 客户自定义ID 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"transId": "754147",
"ccy": "USDT",
"clientId": "",
"from": "6",
"amt": "0.1",
"to": "18"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
transId | String | 划转 ID |
ccy | String | 划转币种 |
from | String | 转出账户 |
amt | String | 划转量 |
to | String | 转入账户 |
clientId | String | 客户自定义ID |
获取资金划转状态
获取最近2个星期内的资金划转状态数据
限速:10 次/s
限速规则:UserID
HTTP 请求
GET /api/v5/asset/transfer-state
请求示例
GET /api/v5/asset/transfer-state?transId=1&type=1
import okx.Funding as Funding
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘: 0, 模拟盘: 1
fundingAPI = Funding.FundingAPI(apikey, secretkey, passphrase, False, flag)
# 获取资金划转状态
result = fundingAPI.transfer_state(
transId="248424899",
type="0"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
transId | String | 可选 | 划转ID transId和clientId必须传一个,若传两个,以transId为主 |
clientId | String | 可选 | 客户自定义ID |
type | String | 否 | 划转类型0 :账户内划转1 :母账户转子账户(仅适用于母账户APIKey)2 :子账户转母账户(仅适用于母账户APIKey)3 :子账户转母账户(仅适用于子账户APIKey)4 :子账户转子账户(仅适用于子账户APIKey,且目标账户需要是同一母账户下的其他子账户)默认是 0 |
返回结果
{
"code": "0",
"data": [
{
"amt": "1.5",
"ccy": "USDT",
"clientId": "",
"from": "18",
"instId": "", //已废弃
"state": "success",
"subAcct": "test",
"to": "6",
"toInstId": "", //已废弃
"transId": "1",
"type": "1"
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
transId | String | 划转 ID |
clientId | String | 客户自定义 ID |
ccy | String | 划转币种 |
amt | String | 划转量 |
type | String | 划转类型0 :账户内划转1 :母账户转子账户(仅适用于母账户APIKey)2 :子账户转母账户(仅适用于母账户APIKey)3 :子账户转母账户(仅适用于子账户APIKey)4 :子账户转子账户(仅适用于子账户APIKey,且目标账户需要是同一母账户下的其他子账户) |
from | String | 转出账户6 :资金账户18 :交易账户 |
to | String | 转入账户6 :资金账户18 :交易账户 |
subAcct | String | 子账户名称 |
instId | String | 已废弃 |
toInstId | String | 已废弃 |
state | String | 转账状态success :成功pending :处理中failed :失败 |
获取资金流水
查询最近一个月内资金账户账单流水
限速:6 次/s
限速规则:UserID
HTTP 请求
GET /api/v5/asset/bills
请求示例
GET /api/v5/asset/bills
GET /api/v5/asset/bills?type=1
import okx.Funding as Funding
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "0" # 实盘: 0, 模拟盘: 1
fundingAPI = Funding.FundingAPI(apikey, secretkey, passphrase, False, flag)
# 获取资金流水
result = fundingAPI.get_bills()
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
ccy | String | 否 | 币种 |
type | String | 否 | 账单类型1 :充值2 :提现13 :撤销提现20 :转出至子账户(主体是母账户)21 :从子账户转入(主体是母账户)22 :转出到母账户(主体是子账户)23 :母账户转入(主体是子账户)28 :领取47 :系统冲正48 :活动得到49 :活动送出61 :[闪兑] 数字货币间兑换68 :手续费返佣(通过返佣卡)72 :收币73 :送币74 :送币退还75 :申购余币宝76 :赎回余币宝77 :Jumpstart派发78 :Jumpstart锁定80 :DEFI/锁仓挖矿 产品申购82 :DEFI/锁仓挖矿 产品赎回83 :锁仓挖矿收益84 :违约金116 :法币创建订单117 :法币完成订单118 :法币取消订单124 :Jumpstart 解锁130 :从交易账户转入131 :转出至交易账户132 :[P2P] 客服冻结133 :[P2P] 客服解冻134 :[P2P] 客服转交135 :跨链兑换136 :ETH2.0质押 系统账户增加ETH(用于上链)137 :ETH2.0申购138 :ETH2.0兑换139 :ETH2.0收益146 :客户回馈150 :节点返佣151 :邀请奖励152 :经纪商返佣160 :双币赢申购161 :双币赢回款162 :双币赢收益163 :双币赢退款172 :[节点计划] 助力人返佣173 :[节点计划] 手续费返现174 :Jumpstart支付175 :锁定质押物176 :借款转入177 :添加质押物178 :减少质押物179 :还款180 :释放质押物181 :偿还空投糖果185 :[经纪商] 闪兑返佣187 :[经纪商] 闪兑划转189 :盲盒奖励195 :不可交易资产提币196 :不可交易资产提币撤销197 :不可交易资产充值198 :不可交易资产减少199 :不可交易资产增加200 :买入202 :价格锁定申购203 :价格锁定回款204 :价格锁定收益205 :价格锁定退款207 :双币赢精简版申购208 :双币赢精简版回款209 :双币赢精简版收益210 :双币赢精简版退款212 :[活期借币] 多币种借贷锁定质押物214 :[活期借币] 多币种质押物返还用户216 :[活期借币] 多币种借贷划转到用户帐户218 :[活期借币] 多币种借贷还款220 :已下架数字货币221 :提币手续费支出222 :提币手续费退款223 :合约带单分润225 :鲨鱼鳍申购226 :鲨鱼鳍回款227 :鲨鱼鳍收益228 :鲨鱼鳍退款229 :空投发放233 :经纪商佣金补偿240 :雪球申購241 :雪球回款242 :雪球收益243 :雪球交易失败249 :海鸥申购250 :海鸥回款251 :海鸥收益252 :海鸥退款263 :策略分润265 :信号收入266 :现货带单分润270 :DCD经纪商划转271 :DCD经纪商返佣272 :[闪兑] 买入数字货币/法币273 :[闪兑] 卖出数字货币/法币284 :[Custody] 转出交易子账户285 :[Custody] 转入交易子账户286 :[Custody] 转出托管资金账户287 :[Custody] 转入托管资金账户288 :[Custody] 托管资金入金289 :[Custody] 托管资金出金299 :推荐节点返佣300 :手续费折扣返现303 :雪球做市商转账304 :定期简单赚币订单提交305 :定期简单赚币订单赎回306 :定期简单赚币本金发放307 :定期简单赚币收益发放 (提前终止订单补偿) 308 :定期简单赚币收益发放309 :定期简单赚币补偿收益发放 (订单延期补偿)311 :系统转入小额资产 |
clientId | String | 否 | 转账或提币的客户自定义ID 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 |
after | String | 否 | 查询在此之前的内容,值为时间戳,Unix 时间戳为毫秒数格式,如 1597026383085 |
before | String | 否 | 查询在此之后的内容,值为时间戳,Unix 时间戳为毫秒数格式,如 1597026383085 |
limit | String | 否 | 分页返回的结果集数量,最大为 100,不填默认返回 100 条 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"billId": "12344",
"ccy": "BTC",
"clientId": "",
"balChg": "2",
"bal": "12",
"type": "1",
"ts": "1597026383085"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
billId | String | 账单 ID |
ccy | String | 账户余额币种 |
clientId | String | 转账或提币的客户自定义ID |
balChg | String | 账户层面的余额变动数量 |
bal | String | 账户层面的余额数量 |
type | String | 账单类型 |
ts | String | 账单创建时间,Unix 时间戳的毫秒数格式,如 1597026383085 |
获取充值地址信息
获取各个币种的充值地址,包括曾使用过的老地址。
限速:6次/s
限速规则:UserID
HTTP请求
GET /api/v5/asset/deposit-address
请求示例
GET /api/v5/asset/deposit-address?ccy=BTC
import okx.Funding as Funding
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "0" # 实盘: 0, 模拟盘: 1
fundingAPI = Funding.FundingAPI(apikey, secretkey, passphrase, False, flag)
# 获取充值地址信息
result = fundingAPI.get_deposit_address(
ccy="USDT"
)
print(result)
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
ccy | String | 是 | 币种,如BTC |
返回结果
{
"code": "0",
"data": [
{
"chain": "BTC-Bitcoin",
"ctAddr": "",
"ccy": "BTC",
"to": "6",
"addr": "39XNxK1Ryqgg3Bsyn6HzoqV4Xji25pNkv6",
"verifiedName":"John Corner",
"selected": true
},
{
"chain": "BTC-OKC",
"ctAddr": "",
"ccy": "BTC",
"to": "6",
"addr": "0x66d0edc2e63b6b992381ee668fbcb01f20ae0428",
"verifiedName":"John Corner",
"selected": true
},
{
"chain": "BTC-ERC20",
"ctAddr": "5807cf",
"ccy": "BTC",
"to": "6",
"addr": "0x66d0edc2e63b6b992381ee668fbcb01f20ae0428",
"verifiedName":"John Corner",
"selected": true
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
addr | String | 充值地址 |
tag | String | 部分币种充值需要标签,若不需要则不返回此字段 |
memo | String | 部分币种充值需要 memo,若不需要则不返回此字段 |
pmtId | String | 部分币种充值需要此字段(payment_id),若不需要则不返回此字段 |
addrEx | Object |
充值地址备注,部分币种充值需要,若不需要则不返回此字段 如币种 TONCOIN 的充值地址备注标签名为comment ,则该字段返回:{'comment':'123456'} |
ccy | String | 币种,如BTC |
chain | String | 币种链信息 有的币种下有多个链,必须要做区分,如 USDT 下有USDT-ERC20 ,USDT-TRC20 多个链 |
to | String | 转入账户6 :资金账户 18 :交易账户 |
verifiedName | String | (接受方)已验证姓名 |
selected | Boolean | 该地址是否为页面选中的地址 |
ctAddr | String | 合约地址后6位 |
获取充值记录
根据币种,充值状态,时间范围获取充值记录,按照时间倒序排列,默认返回 100 条数据。
支持Websocket订阅,参考 充值信息频道。
限速:6次/s
限速规则:UserID
HTTP 请求
GET /api/v5/asset/deposit-history
请求示例
# 查询最近的充值记录
GET /api/v5/asset/deposit-history
# 查询从2022年06月01日到2022年07月01日之间的BTC的充值记录
GET /api/v5/asset/deposit-history?ccy=BTC&after=1654041600000&before=1656633600000
import okx.Funding as Funding
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "0" # 实盘: 0, 模拟盘: 1
fundingAPI = Funding.FundingAPI(apikey, secretkey, passphrase, False, flag)
# 获取充值记录
result = fundingAPI.get_deposit_history()
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
ccy | String | 否 | 币种名称,如 BTC |
depId | String | 否 | 充值记录 ID |
fromWdId | String | 否 | 内部转账发起者提币申请 ID 如果该笔充值来自于内部转账,则该字段展示内部转账发起者的提币申请 ID |
txId | String | 否 | 区块转账哈希记录 |
type | String | 否 | 充值方式3 :内部转账4 :链上充值 |
state | String | 否 | 充值状态0 :等待确认1 :确认到账2 :充值成功8 :因该币种暂停充值而未到账,恢复充值后自动到账11 :命中地址黑名单12 :账户或充值被冻结13 :子账户充值拦截14 :KYC限额 |
after | String | 否 | 查询在此之前的内容,值为时间戳,Unix 时间戳为毫秒数格式,如 1654041600000 |
before | String | 否 | 查询在此之后的内容,值为时间戳,Unix 时间戳为毫秒数格式,如 1656633600000 |
limit | string | 否 | 返回的结果集数量,默认为100,最大为100,不填默认返回100条 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"actualDepBlkConfirm": "2",
"amt": "1",
"areaCodeFrom": "",
"ccy": "USDT",
"chain": "USDT-TRC20",
"depId": "88****33",
"from": "",
"fromWdId": "",
"state": "2",
"to": "TN4hGjVXMzy*********9b4N1aGizqs",
"ts": "1674038705000",
"txId": "fee235b3e812********857d36bb0426917f0df1802"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
ccy | String | 币种名称,如 BTC |
chain | String | 币种链信息 有的币种下有多个链,必须要做区分,如 USDT 下有USDT-ERC20 ,USDT-TRC20 多个链 |
amt | String | 充值数量 |
from | String | 充值账户 如果该笔充值来自于内部转账,则该字段展示内部转账发起者的账户信息,可以是手机号、邮箱、账户名称,其他情况返回"" |
areaCodeFrom | String | 如果from 为手机号,该字段为该手机号的区号 |
to | String | 到账地址 如果该笔充值来自于链上充值,则该字段展示链上地址,其他情况返回"" |
txId | String | 区块转账哈希记录 |
ts | String | 充值记录创建时间,Unix 时间戳的毫秒数格式,如 1655251200000 |
state | String | 充值状态0 :等待确认 1 :确认到账 2 :充值成功 8 :因该币种暂停充值而未到账,恢复充值后自动到账11 :命中地址黑名单12 :账户或充值被冻结13 :子账户充值拦截14 :KYC限额 |
depId | String | 充值记录 ID |
fromWdId | String | 内部转账发起者提币申请 ID 如果该笔充值来自于内部转账,则该字段展示内部转账发起者的提币申请 ID,其他情况返回"" |
actualDepBlkConfirm | String | 最新的充币网络确认数 |
提币
用户提币。普通子账户不支持提币。
限速:6次/s
限速规则:UserID
HTTP请求
POST /api/v5/asset/withdrawal
请求示例
# 链上提币
POST /api/v5/asset/withdrawal
body
{
"amt":"1",
"fee":"0.0005",
"dest":"4",
"ccy":"BTC",
"chain":"BTC-Bitcoin",
"toAddr":"17DKe3kkkkiiiiTvAKKi2vMPbm1Bz3CMKw"
}
# 内部转账
POST /api/v5/asset/withdrawal
body
{
"amt":"10",
"fee":"0",
"dest":"3",
"ccy":"USDT",
"areaCode":"86",
"toAddr":"15651000000"
}
# 特定主体用户需要提供接收方信息
POST /api/v5/asset/withdrawal
body
{
"amt":"1",
"fee":"0.0005",
"dest":"4",
"ccy":"BTC",
"chain":"BTC-Bitcoin",
"toAddr":"17DKe3kkkkiiiiTvAKKi2vMPbm1Bz3CMKw",
"rcvrInfo":{
"walletType":"exchange",
"exchId":"did:ethr:0xfeb4f99829a9acdf52979abee87e83addf22a7e1",
"rcvrFirstName":"Bruce",
"rcvrLastName":"Wayne"
}
}
import okx.Funding as Funding
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "0" # 实盘: 0, 模拟盘: 1
fundingAPI = Funding.FundingAPI(apikey, secretkey, passphrase, False, flag)
# 提币
result = fundingAPI.withdrawal(
ccy="USDT",
toAddr="TXtvfb7cdrn6VX9H49mgio8bUxZ3DGfvYF",
amt="100",
fee="0.0005",
dest="4",
chain="USDT-TRC20"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
ccy | String | 是 | 币种,如 USDT |
amt | String | 是 | 提币数量 该数量不包含手续费 |
dest | String | 是 | 提币方式3 :内部转账 4 :链上提币 |
toAddr | String | 是 | toAddr 必须是认证过的地址/账户。如果选择链上提币,某些数字货币地址格式为地址:标签 ,如 ARDOR-7JF3-8F2E-QUWZ-CAN7F:123456 如果选择内部转账, toAddr 必须是接收方地址,可以是邮箱、手机或者账户名(只有子账户才有账户名)。 |
fee | String | 是 | 提币到数字货币地址所需网络手续费可以通过接口 获取币种列表 获取 内部转账无需手续费 |
chain | String | 可选 | 币种链信息 如 USDT 下有USDT-ERC20 ,USDT-TRC20 多个链如果不填此参数,则默认为主链 对于无效资产提币,不填此参数,则默认为唯一的提币链 适用于 链上提币 ,链信息可以通过接口 获取币种列表 获取 |
areaCode | String | 可选 | 手机区号,如 86 当 toAddr 为手机号时,该参数必填适用于 内部转账 |
rcvrInfo | Object | 可选 | 接收方信息 特定主体用户做 链上提币 /闪电网络提币 需要提供此信息 |
> walletType | String | 是 | 钱包类型exchange :提币到交易所钱包private :提币到私人钱包如果提币到交易所钱包,必须提供接收方相关信息。 对于交易所钱包接收方为公司的, rcvrFirstName 可以填公司名称,rcvrLastName 可以填"N/A",地址信息可以填写公司注册地址。提币到私人钱包,则不需要提供接收方信息。 |
> exchId | String | 可选 | 交易所 ID 可以通过 获取交易所列表(公共) 接口查询支持的交易所 如果交易所不在支持的交易所列表中,该字段填 0 适用于walletType= exchange |
> rcvrFirstName | String | 可选 | 接收方名字,如 Bruce 适用于walletType= exchange |
> rcvrLastName | String | 可选 | 接收方姓氏,如 Wayne 适用于walletType= exchange |
> rcvrCountry | String | 可选 | 接收方所在国家,如 United States 必须输入英文国家名称,或者两字母国家代码(ISO 3166-1)。输入内容参考下方国家信息表中 国家名称(英) ,国家代码 适用于walletType= exchange |
> rcvrCountrySubDivision | String | 可选 | 接收方所在州/省,如 California 适用于walletType= exchange |
> rcvrTownName | String | 可选 | 接收方所在城镇,如 San Jose 适用于walletType= exchange |
> rcvrStreetName | String | 可选 | 接收方所在街道地址,如 Clementi Avenue 1 适用于walletType= exchange |
clientId | String | 否 | 客户自定义ID 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 |
返回结果
{
"code": "0",
"msg": "",
"data": [{
"amt": "0.1",
"wdId": "67485",
"ccy": "BTC",
"clientId": "",
"chain": "BTC-Bitcoin"
}]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
ccy | String | 提币币种 |
chain | String | 币种链信息 有的币种下有多个链,必须要做区分,如 USDT 下有USDT-ERC20 ,USDT-TRC20 多个链 |
amt | String | 提币数量 |
wdId | String | 提币申请ID |
clientId | String | 客户自定义ID |
国家信息表
国家名称(英) | 国家名称(中) | 国家代码 |
---|---|---|
Afghanistan | 阿富汗 | AF |
Albania | 阿尔巴尼亚 | AL |
Algeria | 阿尔及利亚 | DZ |
Andorra | 安道尔 | AD |
Angola | 安哥拉 | AO |
Anguilla | 安圭拉 | AI |
Antigua and Barbuda | 安提瓜和巴布达 | AG |
Argentina | 阿根廷 | AR |
Armenia | 亚美尼亚 | AM |
Australia | 澳大利亚 | AU |
Austria | 奥地利 | AT |
Azerbaijan | 阿塞拜疆 | AZ |
Bahamas | 巴哈马 | BS |
Bahrain | 巴林 | BH |
Bangladesh | 孟加拉国 | BD |
Barbados | 巴巴多斯 | BB |
Belarus | 白俄罗斯 | BY |
Belgium | 比利时 | BE |
Belize | 伯利兹 | BZ |
Benin | 贝宁 | BJ |
Bermuda | 百慕大 | BM |
Bhutan | 不丹 | BT |
Bolivia | 玻利维亚 | BO |
Bosnia and Herzegovina | 波斯尼亚和黑塞哥维那 (波黑) | BA |
Botswana | 博茨瓦纳 | BW |
Brazil | 巴西 | BR |
British Virgin Islands | 英属维尔京群岛 | VG |
Brunei | 文莱 | BN |
Bulgaria | 保加利亚 | BG |
Burkina Faso | 布基纳法索 | BF |
Burundi | 布隆迪 | BI |
Cambodia | 柬埔寨 | KH |
Cameroon | 喀麦隆 | CM |
Canada | 加拿大 | CA |
Cape Verde | 佛得角 | CV |
Cayman Islands | 开曼群岛 | KY |
Central African Republic | 中非共和国 | CF |
Chad | 乍得 | TD |
Chile | 智利 | CL |
Colombia | 哥伦比亚 | CO |
Comoros | 科摩罗 | KM |
Congo (Republic) | 刚果共和国 | CG |
Congo (Democratic Republic) | 刚果民主共和国 | CD |
Costa Rica | 哥斯达黎加 | CR |
Cote d´Ivoire (Ivory Coast) | 象牙海岸 | CI |
Croatia | 克罗地亚 | HR |
Cuba | 古巴 | CU |
Cyprus | 塞浦路斯 | CY |
Czech Republic | 捷克共和国 | CZ |
Denmark | 丹麦 | DK |
Djibouti | 吉布提 | DJ |
Dominica | 多米尼克 | DM |
Dominican Republic | 多明尼加共和国 | DO |
Ecuador | 厄瓜多尔 | EC |
Egypt | 埃及 | EG |
El Salvador | 萨尔瓦多 | SV |
Equatorial Guinea | 赤道几内亚 | GQ |
Eritrea | 厄立特里亚 | ER |
Estonia | 爱沙尼亚 | EE |
Ethiopia | 埃塞俄比亚 | ET |
Fiji | 斐济 | FJ |
Finland | 芬兰 | FI |
France | 法国 | FR |
Gabon | 加蓬 | GA |
Gambia | 冈比亚 | GM |
Georgia | 格鲁吉亚 | GE |
Germany | 德国 | DE |
Ghana | 加纳 | GH |
Greece | 希腊 | GR |
Grenada | 格林纳达 | GD |
Guatemala | 危地马拉 | GT |
Guinea | 几内亚 | GN |
Guinea-Bissau | 几内亚比绍 | GW |
Guyana | 圭亚那 | GY |
Haiti | 海地 | HT |
Honduras | 洪都拉斯 | HN |
Hong Kong | 香港 | HK |
Hungary | 匈牙利 | HU |
Iceland | 冰岛 | IS |
India | 印度 | IN |
Indonesia | 印度尼西亚 | ID |
Iran | 伊朗 | IR |
Iraq | 伊拉克 | IQ |
Ireland | 爱尔兰 | IE |
Israel | 以色列 | IL |
Italy | 意大利 | IT |
Jamaica | 牙买加 | JM |
Japan | 日本 | JP |
Jordan | 约旦 | JO |
Kazakhstan | 哈萨克斯坦 | KZ |
Kenya | 肯尼亚 | KE |
Kiribati | 基里巴斯 | KI |
North Korea | 朝鲜 | KP |
South Korea | 韩国 | KR |
Kuwait | 科威特 | KW |
Kyrgyzstan | 吉尔吉斯斯坦 | KG |
Laos | 老挝 | LA |
Latvia | 拉脱维亚 | LV |
Lebanon | 黎巴嫩 | LB |
Lesotho | 莱索托 | LS |
Liberia | 利比里亚 | LR |
Libya | 利比亚 | LY |
Liechtenstein | 列支敦士登 | LI |
Lithuania | 立陶宛 | LT |
Luxembourg | 卢森堡 | LU |
Macau | 澳门 | MO |
Macedonia | 马其顿 | MK |
Madagascar | 马达加斯加 | MG |
Malawi | 马拉维 | MW |
Malaysia | 马来西亚 | MY |
Maldives | 马尔代夫 | MV |
Mali | 马里 | ML |
Malta | 马耳他 | MT |
Marshall Islands | 马绍尔群岛 | MH |
Mauritania | 毛里塔尼亚 | MR |
Mauritius | 毛里求斯 | MU |
Mexico | 墨西哥 | MX |
Micronesia | 密克罗尼西亚 | FM |
Moldova | 摩尔多瓦 | MD |
Monaco | 摩纳哥 | MC |
Mongolia | 蒙古 | MN |
Montenegro | 黑山 | ME |
Morocco | 摩洛哥 | MA |
Mozambique | 莫桑比克 | MZ |
Myanmar (Burma) | 缅甸 | MM |
Namibia | 纳米比亚 | NA |
Nauru | 瑙鲁 | NR |
Nepal | 尼泊尔 | NP |
Netherlands | 荷兰 | NL |
New Zealand | 新西兰 | NZ |
Nicaragua | 尼加拉瓜 | NI |
Niger | 尼日尔 | NE |
Nigeria | 尼日利亚 | NG |
Norway | 挪威 | NO |
Oman | 阿曼 | OM |
Pakistan | 巴基斯坦 | PK |
Palau | 帕劳 | PW |
Panama | 巴拿马 | PA |
Papua New Guinea | 巴布亚新几内亚 | PG |
Paraguay | 巴拉圭 | PY |
Peru | 秘鲁 | PE |
Philippines | 菲律宾 | PH |
Poland | 波兰 | PL |
Portugal | 葡萄牙 | PT |
Qatar | 卡塔尔 | QA |
Romania | 罗马尼亚 | RO |
Russia | 俄国 | RU |
Rwanda | 卢旺达 | RW |
Saint Kitts and Nevis | 圣基茨和尼维斯 | KN |
Saint Lucia | 圣卢西亚 | LC |
Saint Vincent and the Grenadines | 圣文森特和格林纳丁斯 | VC |
Samoa | 萨摩亚 | WS |
San Marino | 圣马力诺 | SM |
Sao Tome and Principe | 圣多美和普林西比 | ST |
Saudi Arabia | 沙特阿拉伯 | SA |
Senegal | 塞内加尔 | SN |
Serbia | 塞尔维亚 | RS |
Seychelles | 塞舌尔 | SC |
Sierra Leone | 塞拉利昂 | SL |
Singapore | 新加坡 | SG |
Slovakia | 斯洛伐克 | SK |
Slovenia | 斯洛文尼亚 | SI |
Solomon Islands | 所罗门群岛 | SB |
Somalia | 索马里 | SO |
South Africa | 南非 | ZA |
Spain | 西班牙 | ES |
Sri Lanka | 斯里兰卡 | LK |
Sudan | 苏丹 | SD |
Suriname | 苏里南 | SR |
Swaziland | 斯威士兰 | SZ |
Sweden | 瑞典 | SE |
Switzerland | 瑞士 | CH |
Syria | 叙利亚 | SY |
Taiwan | 台湾 | TW |
Tajikistan | 塔吉克斯坦 | TJ |
Tanzania | 坦桑尼亚 | TZ |
Thailand | 泰国 | TH |
Timor-Leste (East Timor) | 东帝汶 | TL |
Togo | 多哥 | TG |
Tonga | 汤加 | TO |
Trinidad and Tobago | 特里尼达和多巴哥 | TT |
Tunisia | 突尼斯 | TN |
Turkey | 土耳其 | TR |
Turkmenistan | 土库曼斯坦 | TM |
Tuvalu | 图瓦卢 | TV |
U.S. Virgin Islands | 美属维尔京群岛 | VI |
Uganda | 乌干达 | UG |
Ukraine | 乌克兰 | UA |
United Arab Emirates | 阿拉伯联合酋长国 | AE |
United Kingdom | 英国 | GB |
United States | 美国 | US |
Uruguay | 乌拉圭 | UY |
Uzbekistan | 乌兹别克斯坦 | UZ |
Vanuatu | 瓦努阿图 | VU |
Vatican City | 梵蒂冈城 | VA |
Venezuela | 委内瑞拉 | VE |
Vietnam | 越南 | VN |
Yemen | 也门 | YE |
Zambia | 赞比亚 | ZM |
Zimbabwe | 津巴布韦 | ZW |
Kosovo | 科索沃 | XK |
South Sudan | 南苏丹 | SS |
China | 中国 | CN |
Palestine | 巴勒斯坦 | PS |
Curacao | 库拉索 | CW |
Dominican Republic | 多明尼加共和国 | DO |
Dominican Republic | 多明尼加共和国 | DO |
Gibraltar | 英属直布罗陀 | GI |
New Caledonia | 新喀里多尼亚 | NC |
Cook Islands | 库克群岛 | CK |
Reunion | 留尼旺 | RE |
Guernsey | 根西岛 | GG |
Guadeloupe | 瓜德罗普 | GP |
Martinique | 马提尼克 | MQ |
French Polynesia | 法属波利尼西亚 | PF |
Faroe Islands | 法罗群岛 | FO |
Greenland | 格陵兰岛 | GL |
Jersey | 泽西岛 | JE |
Aruba | 阿鲁巴 | AW |
Puerto Rico | 波多黎各 | PR |
Isle of Man | 曼岛 | IM |
Guam | 关岛 | GU |
Sint Maarten | 荷属圣马丁 | SX |
Turks and Caicos | 特克斯和凯科斯群岛 | TC |
Åland Islands | 奥兰群岛 | AX |
Caribbean Netherlands | 荷属加勒比 | BQ |
British Indian Ocean Territory | 英属印度洋领地 | IO |
Christmas as Island | 圣诞岛 | CX |
Cocos (Keeling) Islands | 科科斯 (基林) 群岛 | CC |
Falkland Islands (Islas Malvinas) | 福克兰群岛 (马尔维纳斯群岛) | FK |
Mayotte | 马约特 | YT |
Niue | 纽埃 | NU |
Norfolk Island | 诺福克岛 | NF |
Northern Mariana Islands | 北马里亚纳群岛 | MP |
Pitcairn Islands | 皮特凯恩群岛 | PN |
Saint Helena, Ascension and Tristan da Cunha | 圣赫勒拿、阿森松岛和特里斯坦-达库尼亚 | SH |
Collectivity of Saint Martin | 法属圣马丁 | MF |
Saint Pierre and Miquelon | 圣皮埃尔和密克隆 | PM |
Tokelau | 托克劳 | TK |
Wallis and Futuna | 瓦利斯和富图纳 | WF |
American Samoa | 美属萨摩亚 | AS |
撤销提币
可以撤销普通提币,但不支持撤销闪电网络上的提币。
限速:6次/s
限速规则:UserID
HTTP请求
POST /api/v5/asset/cancel-withdrawal
请求示例
POST /api/v5/asset/cancel-withdrawal
body {
"wdId":"1123456"
}
import okx.Funding as Funding
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "0" # 实盘: 0, 模拟盘: 1
fundingAPI = Funding.FundingAPI(apikey, secretkey, passphrase, False, flag)
# 撤销提币
result = fundingAPI.cancel_withdrawal(
wdId="123456"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
wdId | String | 是 | 提币申请ID |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"wdId": "1123456"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
wdId | String | 提币申请ID |
获取提币记录
根据币种,提币状态,时间范围获取提币记录,按照时间倒序排列,默认返回100条数据。
支持Websocket订阅,参考 提币信息频道。
限速:6 次/s
限速规则:UserID
HTTP 请求
GET /api/v5/asset/withdrawal-history
请求示例
# 查询最近的提币记录
GET /api/v5/asset/withdrawal-history
# 查询从2022年06月01日到2022年07月01日之间的BTC的提币记录
GET /api/v5/asset/withdrawal-history?ccy=BTC&after=1654041600000&before=1656633600000
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
ccy | String | 否 | 币种名称,如 BTC |
wdId | String | 否 | 提币申请ID |
clientId | String | 否 | 客户自定义ID 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 |
txId | String | 否 | 区块转账哈希记录 |
type | String | 否 | 提币方式3 :内部转账4 :链上提币 |
state | String | 否 | 提币状态10 :等待划转0 :等待提币4 /5 /6 /8 /9 /12 :等待客服审核7 :审核通过1 :正在将您的交易广播到链上15 :交易待确认16 :根据当地法律法规,您的提币最多可能需要 24 小时才能到账-3 :撤销中-2 :已撤销-1 :失败2 :提币成功 |
after | String | 否 | 查询在此之前的内容,值为时间戳,Unix 时间戳为毫秒数格式,如 1654041600000 |
before | String | 否 | 查询在此之后的内容,值为时间戳,Unix 时间戳为毫秒数格式,如 1656633600000 |
limit | string | 否 | 返回的结果集数量,默认为100,最大为100,不填默认返回100条 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"chain": "ETH-Ethereum",
"fee": "0.007",
"feeCcy": "ETH",
"ccy": "ETH",
"clientId": "",
"amt": "0.029809",
"txId": "0x35c******b360a174d",
"from": "156****359",
"areaCodeFrom": "86",
"to": "0xa30d1fab********7CF18C7B6C579",
"areaCodeTo": "",
"state": "2",
"ts": "1655251200000",
"nonTradableAsset": false,
"wdId": "15447421"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
ccy | String | 币种 |
chain | String | 币种链信息 有的币种下有多个链,必须要做区分,如 USDT 下有USDT-ERC20 ,USDT-TRC20 多个链 |
nonTradableAsset | Boolean | 是否为不可交易资产true :不可交易资产,false :可交易资产 |
amt | String | 数量 |
ts | String | 提币申请时间,Unix 时间戳的毫秒数格式,如 1655251200000 |
from | String | 提币账户 可以是 邮箱 /手机号 /子账户名 |
areaCodeFrom | String | 如果from 为手机号,该字段为该手机号的区号 |
to | String | 收币地址 |
areaCodeTo | String | 如果to 为手机号,该字段为该手机号的区号 |
tag | String | 部分币种提币需要标签,若不需要则不返回此字段 |
pmtId | String | 部分币种提币需要此字段(payment_id),若不需要则不返回此字段 |
memo | String | 部分币种提币需要此字段,若不需要则不返回此字段 |
addrEx | Object | 提币地址备注,部分币种提币需要,若不需要则不返回此字段。如币种TONCOIN的提币地址备注标签名为comment,则该字段返回:{'comment':'123456'} |
txId | String | 提币哈希记录 内部转账该字段返回"" |
fee | String | 提币手续费数量 |
feeCcy | String | 提币手续费币种,如 USDT |
state | String | 提币状态 |
wdId | String | 提币申请ID |
clientId | String | 客户自定义ID |
获取充值/提现的详细状态
获取充值与提现的详细状态信息与预估完成时间。
限速:1次/2s
限速规则:UserID
HTTP请求
GET /api/v5/asset/deposit-withdraw-status
请求示例
# 查询充值
GET /api/v5/asset/deposit-withdraw-status?txId=xxxxxx&to=1672734730284&ccy=USDT&chain=USDT-ERC20
# 查询提现
GET /api/v5/asset/deposit-withdraw-status?wdId=200045249
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
wdId | String | 可选 | 提币申请ID,用于查询资金提现wdId 与txId 必传其一也仅可传其一 |
txId | String | 可选 | 区块转账哈希记录ID,用于查询资金充值wdId 与txId 必传其一也仅可传其一 |
ccy | String | 可选 | 币种,如USDT 查询充值时必填,需要与 txId 一并提供 |
to | String | 可选 | 资金充值到账账户地址 查询充值时必填,需要与 txId 一并提供 |
chain | String | 可选 | 币种链信息,例如 USDT-ERC20 查询充值时必填,需要与 txId 一并提供 |
返回结果
{
"code":"0",
"data":[
{
"wdId": "200045249",
"txId": "16f3638329xxxxxx42d988f97",
"state": "Pending withdrawal: Wallet is under maintenance, please wait.",
"estCompleteTime": "01/09/2023, 8:10:48 PM"
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
estCompleteTime | String | 预估完成时间 时区为 UTC+8;格式为 MM/dd/yyyy, h:mm:ss AM/PM estCompleteTime仅为预估完成时间,仅供参考 |
state | String | 充值/提现的现处于的详细阶段提示 冒号前面代表阶段,后面代表状态 |
txId | String | 区块转账哈希记录 提币如果 txId 已经生成,则返回,否则返回"" |
wdId | String | 提币申请ID 如查询的是充值,该字段返回"" |
获取交易所列表(公共)
公共接口无须鉴权
限速:6次/s
限速规则:IP
HTTP请求
GET /api/v5/asset/exchange-list
请求示例
GET /api/v5/asset/exchange-list
请求参数
无
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"exchId": "did:ethr:0xfeb4f99829a9acdf52979abee87e83addf22a7e1",
"exchName": "1xbet"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
exchName | String | 交易所名称,如 1xbet |
exchId | String | 交易所 ID,如 did:ethr:0xfeb4f99829a9acdf52979abee87e83addf22a7e1 |
获取闪兑币种列表
限速:6次/s
限速规则:UserID
HTTP 请求
GET /api/v5/asset/convert/currencies
请求示例
GET /api/v5/asset/convert/currencies
请求参数
无
返回结果
{
"code": "0",
"data": [
{
"min": "", // 已废弃
"max": "", // 已废弃
"ccy": "BTC"
},
{
"min": "",
"max": "",
"ccy": "ETH"
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
ccy | String | 币种名称,如 BTC |
min | String | |
max | String |
获取闪兑币对信息
限速:6次/s
限速规则:UserID
HTTP 请求
GET /api/v5/asset/convert/currency-pair
请求示例
GET /api/v5/asset/convert/currency-pair?fromCcy=USDT&toCcy=BTC
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
fromCcy | String | 是 | 消耗币种,如 USDT |
toCcy | String | 是 | 获取币种,如 BTC |
返回结果
{
"code": "0",
"data": [
{
"baseCcy": "BTC",
"baseCcyMax": "0.5",
"baseCcyMin": "0.0001",
"instId": "BTC-USDT",
"quoteCcy": "USDT",
"quoteCcyMax": "10000",
"quoteCcyMin": "1"
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
instId | String | 币对,如 BTC-USDT |
baseCcy | String | 交易货币币种,如 BTC-USDT 中的BTC |
baseCcyMax | String | 交易货币支持闪兑的最大值 |
baseCcyMin | String | 交易货币支持闪兑的最小值 |
quoteCcy | String | 计价货币币种,如 BTC-USDT 中的USDT |
quoteCcyMax | String | 计价货币支持闪兑的最大值 |
quoteCcyMin | String | 计价货币支持闪兑的最小值 |
闪兑预估询价
限速:10次/s
限速规则:UserID
限速:1次/5s
限速规则:Instrument
HTTP请求
POST /api/v5/asset/convert/estimate-quote
请求示例
POST /api/v5/asset/convert/estimate-quote
body
{
"baseCcy": "ETH",
"quoteCcy": "USDT",
"side": "buy",
"rfqSz": "30",
"rfqSzCcy": "USDT"
}
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
baseCcy | String | 是 | 交易货币币种,如 BTC-USDT 中的BTC |
quoteCcy | String | 是 | 计价货币币种,如 BTC-USDT 中的USDT |
side | String | 是 | 交易方向 买: buy 卖:sell 描述的是对于baseCcy的交易方向 |
rfqSz | String | 是 | 询价数量 |
rfqSzCcy | String | 是 | 询价币种 |
clQReqId | String | 否 | 客户端自定义的订单标识 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 |
tag | String | 否 | 订单标签 适用于broker用户 |
返回结果
{
"code": "0",
"data": [
{
"baseCcy": "ETH",
"baseSz": "0.01023052",
"clQReqId": "",
"cnvtPx": "2932.40104429",
"origRfqSz": "30",
"quoteCcy": "USDT",
"quoteId": "quoterETH-USDT16461885104612381",
"quoteSz": "30",
"quoteTime": "1646188510461",
"rfqSz": "30",
"rfqSzCcy": "USDT",
"side": "buy",
"ttlMs": "10000"
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
quoteTime | String | 生成报价时间,Unix时间戳的毫秒数格式 |
ttlMs | String | 报价有效期,单位为毫秒 |
clQReqId | String | 客户端自定义的订单标识 |
quoteId | String | 报价ID |
baseCcy | String | 交易货币币种,如 BTC-USDT 中BTC |
quoteCcy | String | 计价货币币种,如 BTC-USDT 中USDT |
side | String | 交易方向 买: buy 卖:sell |
origRfqSz | String | 原始报价的数量 |
rfqSz | String | 实际报价的数量 |
rfqSzCcy | String | 报价的币种 |
cnvtPx | String | 闪兑价格,单位为计价币 |
baseSz | String | 闪兑交易币数量 |
quoteSz | String | 闪兑计价币数量 |
闪兑交易
闪兑交易前需要先 询价。
限速:10次/s
限速规则:UserID
同一方向(buy/sell) 1次/5s 交易限制
HTTP请求
POST /api/v5/asset/convert/trade
请求示例
POST /api/v5/asset/convert/trade
body
{
"baseCcy": "ETH",
"quoteCcy": "USDT",
"side": "buy",
"sz": "30",
"szCcy": "USDT",
"quoteId": "quoterETH-USDT16461885104612381"
}
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
quoteId | String | 是 | 报价ID |
baseCcy | String | 是 | 交易货币币种,如 BTC-USDT 中的BTC |
quoteCcy | String | 是 | 计价货币币种,如 BTC-USDT 中的USDT |
side | String | 是 | 交易方向buy :买sell :卖描述的是对于 baseCcy 的交易方向 |
sz | String | 是 | 用户报价数量 报价数量应不大于预估询价中的询价数量 |
szCcy | String | 是 | 用户报价币种 |
clTReqId | String | 否 | 用户自定义的订单标识 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 |
tag | String | 否 | 订单标签 适用于broker用户 |
返回结果
{
"code": "0",
"data": [
{
"baseCcy": "ETH",
"clTReqId": "",
"fillBaseSz": "0.01023052",
"fillPx": "2932.40104429",
"fillQuoteSz": "30",
"instId": "ETH-USDT",
"quoteCcy": "USDT",
"quoteId": "quoterETH-USDT16461885104612381",
"side": "buy",
"state": "fullyFilled",
"tradeId": "trader16461885203381437",
"ts": "1646188520338"
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
tradeId | String | 成交ID |
quoteId | String | 报价ID |
clTReqId | String | 用户自定义的订单标识 |
state | String | 状态fullyFilled :交易成功rejected :交易失败 |
instId | String | 币对,如 BTC-USDT |
baseCcy | String | 交易货币币种,如 BTC-USDT 中BTC |
quoteCcy | String | 计价货币币种,如 BTC-USDT 中USDT |
side | String | 交易方向 买: buy 卖:sell |
fillPx | String | 成交价格,单位为计价币 |
fillBaseSz | String | 成交的交易币数量 |
fillQuoteSz | String | 成交的计价币数量 |
ts | String | 闪兑交易时间,值为时间戳,Unix时间戳为毫秒数格式,如 1597026383085 |
获取闪兑交易历史
限速:6次/s
限速规则:UserID
HTTP 请求
GET /api/v5/asset/convert/history
请求示例
GET /api/v5/asset/convert/history
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
clTReqId | String | 否 | 用户自定义的订单标识 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 |
after | String | 否 | 查询在此之前的内容,值为时间戳,Unix时间戳为毫秒数格式,如 1597026383085 |
before | String | 否 | 查询在此之后的内容,值为时间戳,Unix时间戳为毫秒数格式,如 1597026383085 |
limit | String | 否 | 返回的结果集数量,默认为100,最大为100 |
tag | String | 否 | 订单标签 适用于broker用户 如果闪兑交易带上了 tag ,查询时必须也带上此参数 |
返回结果
{
"code": "0",
"data": [
{
"clTReqId": "",
"instId": "ETH-USDT",
"side": "buy",
"fillPx": "2932.401044",
"baseCcy": "ETH",
"quoteCcy": "USDT",
"fillBaseSz": "0.01023052",
"state": "fullyFilled",
"tradeId": "trader16461885203381437",
"fillQuoteSz": "30",
"ts": "1646188520000"
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
tradeId | String | 成交ID |
clTReqId | String | 用户自定义的订单标识 |
state | String | fullyFilled :交易成功rejected :交易失败 |
instId | String | 币对,如 BTC-USDT |
baseCcy | String | 交易货币币种,如 BTC-USDT 中的BTC |
quoteCcy | String | 计价货币币种,如 BTC-USDT 中的USDT |
side | String | 交易方向 买: buy 卖:sell |
fillPx | String | 成交价格,单位为计价币 |
fillBaseSz | String | 成交的交易币数量 |
fillQuoteSz | String | 成交的计价币数量 |
ts | String | 闪兑交易时间,值为时间戳,Unix时间戳为毫秒数格式,如 1597026383085 |
WebSocket
充值信息频道
当发起充值或者充值状态发生变化时会触发消息推送。
支持母账户或者子账户的订阅
- 如果是母账户订阅,可以同时接受母账户与子账户的充值信息的推送
- 如果是子账户订阅,则仅支持子账户充值信息的推送
服务地址
/ws/v5/business (需要登录)
请求示例
{
"op": "subscribe",
"args": [
{
"channel": "deposit-info"
}
]
}
请求参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
op | String | 是 | 操作subscribe unsubscribe |
args | Array | 是 | 请求订阅的频道列表 |
> channel | String | 是 | 频道名deposit-info |
> ccy | String | 否 | 币种名称,如 BTC |
成功返回示例
{
"event": "subscribe",
"arg": {
"channel": "deposit-info"
},
"connId": "a4d3ae55"
}
失败返回示例
{
"event": "error",
"code": "60012",
"msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{ \"channel\" : \"deposit-info\""}]}",
"connId": "a4d3ae55"
}
返回参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
event | String | 是 | 操作subscribe unsubscribe error |
arg | Object | 否 | 订阅的频道 |
> channel | String | 是 | 频道名deposit-info |
> ccy | String | 否 | 币种名称,如 BTC |
code | String | 否 | 错误码 |
msg | String | 否 | 错误消息 |
connId | String | 是 | WebSocket连接ID |
推送示例
{
"arg": {
"channel": "deposit-info",
"uid": "289320****60975104"
},
"data": [{
"actualDepBlkConfirm": "0",
"amt": "1",
"areaCodeFrom": "",
"ccy": "USDT",
"chain": "USDT-TRC20",
"depId": "88165462",
"from": "",
"fromWdId": "",
"pTime": "1674103661147",
"state": "0",
"subAcct": "test",
"to": "TEhFAqpuHa3LY*****8ByNoGnrmexeGMw",
"ts": "1674103661123",
"txId": "bc5376817*****************dbb0d729f6b",
"uid": "289320****60975104"
}]
}
推送数据参数
参数名 | 类型 | 描述 |
---|---|---|
arg | Object | 订阅成功的频道 |
> channel | String | 频道名 |
> uid | String | 用户标识 |
> ccy | String | 币种名称,如 BTC |
data | Array | 订阅的数据 |
> uid | String | (产生数据者的)用户标识 |
> subAcct | String | 子账户名称 如果是母账户产生的数据,该字段返回"" |
> pTime | String | 推送时间,Unix时间戳的毫秒数格式,如 1597026383085 |
> ccy | String | 币种名称,如 BTC |
> chain | String | 币种链信息 有的币种下有多个链,必须要做区分,如 USDT 下有USDT-ERC20 ,USDT-TRC20 多个链 |
> amt | String | 充值数量 |
> from | String | 充值账户,只显示内部账户转账地址,不显示区块链充值地址 |
> areaCodeFrom | String | 如果from 为手机号,该字段为该手机号的区号 |
> to | String | 到账地址 |
> txId | String | 区块转账哈希记录 |
> ts | String | 充值记录创建时间,Unix 时间戳的毫秒数格式,如 1655251200000 |
> state | String | 充值状态0 :等待确认 1 :确认到账 2 :充值成功 8 :因该币种暂停充值而未到账,恢复充值后自动到账11 :命中地址黑名单12 :账户或充值被冻结13 :子账户充值拦截14 :KYC限额 |
> depId | String | 充值记录 ID |
> fromWdId | String | 内部转账发起者提币申请 ID 如果该笔充值来自于内部转账,则该字段展示内部转账发起者的提币申请 ID,其他情况返回"" |
> actualDepBlkConfirm | String | 最新的充币网络确认数 |
提币信息频道
当发起提币或者提币状态发生变化时会触发消息推送。
支持母账户或者子账户的订阅
- 如果是母账户订阅,可以同时接受母账户与子账户的提币信息的推送
- 如果是子账户订阅,则仅支持子账户提币信息的推送
服务地址
/ws/v5/business (需要登录)
请求示例
{
"op": "subscribe",
"args": [
{
"channel": "withdrawal-info"
}
]
}
请求参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
op | String | 是 | 操作subscribe unsubscribe |
args | Array | 是 | 请求订阅的频道列表 |
> channel | String | 是 | 频道名withdrawal-info |
> ccy | String | 否 | 币种名称,如 BTC |
成功返回示例
{
"event": "subscribe",
"arg": {
"channel": "withdrawal-info"
},
"connId": "a4d3ae55"
}
失败返回示例
{
"event": "error",
"code": "60012",
"msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{ \"channel\" : \"withdrawal-info\"}]}",
"connId": "a4d3ae55"
}
返回参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
event | String | 是 | 操作subscribe unsubscribe error |
arg | Object | 否 | 订阅的频道 |
> channel | String | 是 | 频道名withdrawal-info |
> ccy | String | 否 | 币种名称,如 BTC |
code | String | 否 | 错误码 |
msg | String | 否 | 错误消息 |
connId | String | 是 | WebSocket连接ID |
推送示例
{
"arg": {
"channel": "withdrawal-info",
"uid": "289320*****0975104"
},
"data": [{
"addrEx": null,
"amt": "2",
"areaCodeFrom": "",
"areaCodeTo": "",
"ccy": "USDT",
"chain": "USDT-TRC20",
"clientId": "",
"fee": "0.8",
"feeCcy": "USDT",
"from": "",
"memo": "",
"nonTradableAsset": false,
"pTime": "1674103268578",
"pmtId": "",
"state": "0",
"subAcct": "test",
"tag": "",
"to": "TN8CKTQMnpWfT******8KipbJ24ErguhF",
"ts": "1674103268472",
"txId": "",
"uid": "289333*****1101696",
"wdId": "63754560"
}]
}
推送数据参数
参数名 | 类型 | 描述 |
---|---|---|
arg | Object | 订阅成功的频道 |
> channel | String | 频道名 |
> uid | String | 用户标识 |
> ccy | String | 币种名称,如 BTC |
data | Array | 订阅的数据 |
> uid | String | (产生数据者的)用户标识 |
> subAcct | String | 子账户名称 如果是母账户产生的数据,该字段返回"" |
> pTime | String | 推送时间,Unix时间戳的毫秒数格式,如 1597026383085 |
> ccy | String | 币种 |
> chain | String | 币种链信息 有的币种下有多个链,必须要做区分,如 USDT 下有USDT-ERC20 ,USDT-TRC20 多个链 |
> nonTradableAsset | String | 是否为不可交易资产true :不可交易资产,false :可交易资产 |
> amt | String | 数量 |
> ts | String | 提币申请时间,Unix 时间戳的毫秒数格式,如 1655251200000 |
> from | String | 提币账户 可以是 邮箱 /手机号 /子账户名 |
> areaCodeFrom | String | 如果from 为手机号,该字段为该手机号的区号 |
> to | String | 收币地址 |
> areaCodeTo | String | 如果to 为手机号,该字段为该手机号的区号 |
> tag | String | 部分币种提币需要标签 |
> pmtId | String | 部分币种提币需要此字段(payment_id) |
> memo | String | 部分币种提币需要此字段 |
> addrEx | Object | 提币地址备注。如币种TONCOIN的提币地址备注标签名为comment,则该字段返回:{'comment':'123456'} |
> txId | String | 提币哈希记录 内部转账该字段返回"" |
> fee | String | 提币手续费数量 |
> feeCcy | String | 提币手续费币种,如 USDT |
> state | String | 提币状态10 :等待划转0 :等待提币4 /5 /6 /8 /9 /12 :等待客服审核7 :审核通过1 :正在将您的交易广播到链上15 :交易待确认16 :根据当地法律法规,您的提币最多可能需要 24 小时才能到账-3 :撤销中-2 :已撤销-1 :失败2 :提币成功 |
> wdId | String | 提币申请ID |
> clientId | String | 客户自定义ID |
子账户
子账户
功能模块下的API接口需要身份验证。
REST API
查看子账户列表
仅适用于母账户
限速:2次/2s
限速规则:UserID
HTTP请求
GET /api/v5/users/subaccount/list
请求示例
GET /api/v5/users/subaccount/list
import okx.SubAccount as SubAccount
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘:0 , 模拟盘:1
subAccountAPI = SubAccount.SubAccountAPI(apikey, secretkey, passphrase, False, flag)
# 查看子账户列表
result = subAccountAPI.get_subaccount_list()
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
enable | String | 否 | 子账户状态 true : 正常使用 false : 冻结 |
subAcct | String | 否 | 子账户名称 |
after | String | 否 | 查询在此之前的内容,值为子账户创建时间戳,Unix时间戳为毫秒数格式 |
before | String | 否 | 查询在此之后的内容,值为子账户创建时间戳,Unix时间戳为毫秒数格式 |
limit | String | 否 | 分页返回的结果集数量,最大为100,不填默认返回100条 |
返回结果
{
"code":"0",
"msg":"",
"data":[
{
"canTransOut": false,
"enable": true,
"frozenFunc": [
],
"gAuth": false,
"label": "D456DDDLx",
"mobile": "",
"subAcct": "D456DDDL",
"ts": "1659334756000",
"type": "1",
"uid": "3400***********7413"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
type | String | 子账户类型 1 :普通子账户 2 :资管子账户 5 :托管子账户 - Copper |
enable | Boolean | 子账户状态 true :正常使用 false :冻结(全局) |
subAcct | String | 子账户名称 |
uid | String | 子账户UID |
label | String | 子账户备注 |
mobile | String | 子账户绑定手机号 |
gAuth | Boolean | 子账户是否开启的登录时的谷歌验证true :已开启false :未开启 |
frozenFunc | Array of string | 被冻结的功能trading :交易convert :闪兑transfer :母子账户间资金划转withdrawal :提币deposit :充值flexible_loan :活期借币 |
canTransOut | Boolean | 是否可以主动转出true :可以转出 false :不可转出 |
ts | String | 子账户创建时间,Unix时间戳的毫秒数格式 ,如 1597026383085 |
重置子账户的APIKey
仅适用于母账户,且母账户APIKey必须绑定IP。仅适用于有交易权限的母账户 API key。
限速:1次/s
限速规则:UserID
HTTP请求
POST /api/v5/users/subaccount/modify-apikey
请求示例
POST /api/v5/users/subaccount/modify-apikey
body
{
"subAcct":"yongxu",
"apiKey":"49e1b84b-6dee-4894-80ee-ce9eb7ad614f",
"ip":"1.1.1.1"
}
import okx.SubAccount as SubAccount
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘:0 , 模拟盘:1
subAccountAPI = SubAccount.SubAccountAPI(apikey, secretkey, passphrase, False, flag)
# 重置子账户的APIKey
result = subAccountAPI.reset_subaccount_apikey(
subAcct="hahawang1",
apiKey="",
ip=""
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
subAcct | String | 是 | 子账户名称 |
apiKey | String | 是 | 子账户API的公钥 |
label | String | 否 | 子账户APIKey的备注,如果填写该字段,则该字段会被重置 |
perm | String | 否 | 子账户APIKey权限read_only :读取trade :交易多个权限用半角逗号隔开。 如果填写该字段,则该字段会被重置。 |
ip | String | 否 | 子账户APIKey绑定ip地址,多个ip用半角逗号隔开,最多支持20个ip。 如果填写该字段,那该字段会被重置。 如果ip传"",则表示解除IP绑定。 |
返回结果
{
"code": "0",
"msg": "",
"data": [{
"subAcct": "yongxu",
"label": "v5",
"apiKey": "arg13sdfgs",
"perm": "read,trade",
"ip": "1.1.1.1",
"ts": "1597026383085"
}]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
subAcct | String | 子账户名称 |
label | String | APIKey的备注 |
apiKey | String | API公钥 |
perm | String | APIKey权限 |
ip | String | APIKey绑定的ip地址 |
ts | String | 创建时间 |
获取子账户交易账户余额
获取子账户交易账户余额(适用于母账户)
限速:6次/2s
限速规则:UserID
HTTP请求
GET /api/v5/account/subaccount/balances
请求示例
GET /api/v5/account/subaccount/balances?subAcct=test1
import okx.SubAccount as SubAccount
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘:0 , 模拟盘:1
subAccountAPI = SubAccount.SubAccountAPI(apikey, secretkey, passphrase, False, flag)
# 获取子账户交易账户余额
result = subAccountAPI.get_account_balance(
subAcct="hahawang1"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
subAcct | String | 是 | 子账户名称 |
返回结果
{
"code": "0",
"data": [
{
"adjEq": "10679688.0460531643092577",
"borrowFroz": "",
"details": [
{
"availBal": "",
"availEq": "9930359.9998",
"cashBal": "9930359.9998",
"ccy": "USDT",
"crossLiab": "0",
"disEq": "9439737.0772999514",
"eq": "9930359.9998",
"eqUsd": "9933041.196999946",
"smtSyncEq": "0",
"fixedBal": "0",
"frozenBal": "0",
"imr": "",
"interest": "0",
"isoEq": "0",
"isoLiab": "0",
"liab": "0",
"maxLoan": "10000",
"mgnRatio": "",
"mmr": "",
"notionalLever": "",
"ordFrozen": "0",
"twap": "0",
"uTime": "1620722938250",
"upl": "0",
"uplLiab": "0",
"borrowFroz": "",
"spotIsoBal": "0",
"spotBal": "",
"openAvgPx": "",
"accAvgPx": "",
"spotUpl": "",
"spotUplRatio": "",
"totalPnl": "",
"totalPnlRatio": ""
},
{
"availBal": "",
"availEq": "33.6799714158199414",
"cashBal": "33.2009985",
"ccy": "BTC",
"crossLiab": "0",
"disEq": "1239950.9687532129092577",
"eq": "33.771820625136023",
"eqUsd": "1239950.9687532129092577",
"smtSyncEq": "0",
"fixedBal": "0",
"frozenBal": "0.0918492093160816",
"imr": "",
"interest": "0",
"isoEq": "0",
"isoLiab": "0",
"liab": "0",
"maxLoan": "1453.92289531493594",
"mgnRatio": "",
"mmr": "",
"notionalLever": "",
"ordFrozen": "0",
"twap": "0",
"uTime": "1620722938250",
"upl": "0.570822125136023",
"uplLiab": "0",
"borrowFroz": "",
"spotIsoBal": "0",
"spotBal": "",
"openAvgPx": "",
"accAvgPx": "",
"spotUpl": "",
"spotUplRatio": "",
"totalPnl": "",
"totalPnlRatio": ""
}
],
"imr": "3372.2942371050594217",
"isoEq": "0",
"mgnRatio": "70375.35408747017",
"mmr": "134.8917694842024",
"notionalUsd": "33722.9423710505978888",
"ordFroz": "0",
"totalEq": "11172992.1657531589092577",
"uTime": "1623392334718",
"upl": "-7.571730042000012"
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
uTime | String | 获取账户信息的最新时间,Unix时间戳的毫秒数格式,如 1597026383085 |
totalEq | String | 美金层面权益 |
isoEq | String | 美金层面逐仓仓位权益 适用于 现货和合约模式 /跨币种保证金模式 /组合保证金模式 |
adjEq | String | 美金层面有效保证金 适用于 跨币种保证金模式 /组合保证金模式 |
ordFroz | String | 美金层面全仓挂单占用保证金 适用于 跨币种保证金模式 |
imr | String | 美金层面占用保证金 适用于 跨币种保证金模式 /组合保证金模式 |
mmr | String | 美金层面维持保证金 适用于 跨币种保证金模式 /组合保证金模式 |
borrowFroz | String | 账户美金层面潜在借币占用保证金 仅适用于 跨币种保证金模式 /组合保证金模式 。在其他账户模式下为""。 |
mgnRatio | String | 美金层面保证金率 适用于 跨币种保证金模式 /组合保证金模式 |
notionalUsd | String | 以美金价值为单位的持仓数量,即仓位美金价值 适用于 跨币种保证金模式 /组合保证金模式 |
upl | String | 账户层面全仓未实现盈亏(美元单位) 适用于 跨币种保证金模式 /组合保证金模式 |
details | Array | 各币种资产详细信息 |
> ccy | String | 币种 |
> eq | String | 币种总权益 |
> cashBal | String | 币种余额 |
> uTime | String | 币种余额信息的更新时间,Unix时间戳的毫秒数格式,如 1597026383085 |
> isoEq | String | 币种逐仓仓位权益 适用于 现货和合约模式 /跨币种保证金模式 /组合保证金模式 |
> availEq | String | 可用保证金 适用于 现货和合约模式 /跨币种保证金模式 /组合保证金模式 |
> disEq | String | 美金层面币种折算权益 |
> fixedBal | String | 抄底宝、逃顶宝功能的币种冻结金额 |
> availBal | String | 可用余额 |
> frozenBal | String | 币种占用金额 |
> ordFrozen | String | 挂单冻结数量 适用于 现货模式 /现货和合约模式 /跨币种保证金模式 |
> liab | String | 币种负债额 适用于 跨币种保证金模式 /组合保证金模式 |
> upl | String | 未实现盈亏 适用于 现货和合约模式 /跨币种保证金模式 /组合保证金模式 |
> uplLiab | String | 由于仓位未实现亏损导致的负债 适用于 跨币种保证金模式 /组合保证金模式 |
> crossLiab | String | 币种全仓负债额 适用于 跨币种保证金模式 /组合保证金模式 |
> isoLiab | String | 币种逐仓负债额 适用于 跨币种保证金模式 /组合保证金模式 |
> mgnRatio | String | 币种全仓保证金率,衡量账户内某项资产风险的指标 适用于 现货和合约模式 且有全仓仓位时 |
> imr | String | 币种维度全仓占用保证金 适用于 现货和合约模式 且有全仓仓位时 |
> mmr | String | 币种维度全仓维持保证金 适用于 现货和合约模式 且有全仓仓位时 |
> interest | String | 计息 适用于 跨币种保证金模式 /组合保证金模式 |
> twap | String | 当前负债币种触发系统自动换币的风险 0、1、2、3、4、5其中之一,数字越大代表您的负债币种触发自动换币概率越高 适用于 跨币种保证金模式 /组合保证金模式 |
> maxLoan | String | 币种最大可借 适用于 跨币种保证金模式 /组合保证金模式 的全仓 |
> eqUsd | String | 币种权益美金价值 |
> borrowFroz | String | 币种美金层面潜在借币占用保证金 仅适用于 跨币种保证金模式 /组合保证金模式 。在其他账户模式下为""。 |
> notionalLever | String | 币种杠杆倍数 适用于 现货和合约模式 |
> spotIsoBal | String | 现货逐仓余额,仅适用于现货带单/跟单 |
> smtSyncEq | String | 智能跟单权益 默认为0,仅适用于跟单人 |
> spotBal | String | 现货余额 ,单位为 币种,比如 BTC。点击了解更多 |
> openAvgPx | Array | 现货开仓成本价 单位 USD。 点击了解更多 |
> accAvgPx | Array | 现货累计成本价 单位 USD。 点击了解更多 |
> spotUpl | String | 现货未实现收益,单位 USD。 点击了解更多 |
> spotUplRatio | String | 现货未实现收益率。点击了解更多 |
> totalPnl | String | 现货累计收益,单位 USD。 点击了解更多 |
> totalPnlRatio | String | 现货累计收益率。点击了解更多 |
获取子账户资金账户余额
获取子账户资金账户余额(适用于母账户)
限速:6次/2s
限速规则:UserID
HTTP请求
GET /api/v5/asset/subaccount/balances
请求示例
GET /api/v5/asset/subaccount/balances?subAcct=test1
import okx.SubAccount as SubAccount
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘:0 , 模拟盘:1
subAccountAPI = SubAccount.SubAccountAPI(apikey, secretkey, passphrase, False, flag)
# 获取子账户资金账户余额
result = subAccountAPI.get_funding_balance(
subAcct="hahawang1"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
subAcct | String | 是 | 子账户名称 |
ccy | String | 否 | 币种,如 BTC 支持多币种查询(不超过20个),币种之间半角逗号分隔 |
返回结果
{
"code": "0",
"msg": "",
"data": [{
"availBal": "37.11827078",
"bal": "37.11827078",
"ccy": "ETH",
"frozenBal": "0"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
ccy | String | 币种,如 BTC |
bal | String | 余额 |
frozenBal | String | 冻结余额(不可用) |
availBal | String | 可用余额 |
获取子账户最大可转余额
获取子账户最大可转余额(适用于母账户)。不指定币种会返回所有拥有的币种资产可划转数量。
限速:20次/2s
限速规则:UserID
HTTP请求
GET /api/v5/account/subaccount/max-withdrawal
请求示例
GET /api/v5/account/subaccount/max-withdrawal?subAcct=test1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
subAcct | String | 是 | 子账户名称 |
ccy | String | 否 | 币种,如 BTC 支持多币种查询(不超过20个),币种之间半角逗号分隔 |
返回结果
{
"code":"0",
"data":[
{
"ccy":"BTC",
"maxWd":"3",
"maxWdEx":"",
"spotOffsetMaxWd":"3",
"spotOffsetMaxWdEx":""
},
{
"ccy":"ETH",
"maxWd":"15",
"maxWdEx":"",
"spotOffsetMaxWd":"15",
"spotOffsetMaxWdEx":""
},
{
"ccy":"USDT",
"maxWd":"10600",
"maxWdEx":"",
"spotOffsetMaxWd":"10600",
"spotOffsetMaxWdEx":""
}
],
"msg":""
}
Response Parameters
参数名 | 类型 | 描述 |
---|---|---|
ccy | String | 币种 |
maxWd | String | 最大可划转数量(不包含跨币种保证金模式 借币金额) |
maxWdEx | String | 最大可划转数量(包含跨币种保证金模式 借币金额) |
spotOffsetMaxWd | String | 现货对冲不支持借币最大可转数量 仅适用于 组合保证金模式 |
spotOffsetMaxWdEx | String | 现货对冲支持借币的最大可转数量 仅适用于 组合保证金模式 |
查询子账户转账记录
仅适用于母账户
限速:6次/s
限速规则:UserID
HTTP请求
GET /api/v5/asset/subaccount/bills
请求示例
GET /api/v5/asset/subaccount/bills
import okx.SubAccount as SubAccount
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘:0 , 模拟盘:1
subAccountAPI = SubAccount.SubAccountAPI(apikey, secretkey, passphrase, False, flag)
# 查询子账户转账记录
result = subAccountAPI.bills()
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
ccy | String | 否 | 币种,如 BTC |
type | String | 否 | 划转类型0 :母账户转子账户1 :子账户转母账户 |
subAcct | String | 否 | 子账户名称 |
after | String | 否 | 查询在billId创建时间之前(不包含)的内容,值为时间戳,Unix时间戳的毫秒数格式,如 1597026383085 |
before | String | 否 | 查询在billId创建时间之后(不包含)的内容,值为时间戳,Unix时间戳的毫秒数格式,如 1597026383085 |
limit | String | 否 | 分页返回的结果集数量,最大为100,不填默认返回100条 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"amt": "1.1",
"billId": "89887685",
"ccy": "USDT",
"subAcct": "hahatest1",
"ts": "1712560959000",
"type": "0"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
billId | String | 账单ID |
ccy | String | 划转币种 |
amt | String | 划转金额 |
type | String | 账单类型 |
subAcct | String | 子账户名称 |
ts | String | 账单ID创建时间,Unix时间戳的毫秒数格式,如 1597026383085 |
子账户间资金划转
母账户控制子账户与子账户之间划转(仅适用于母账户)
调用时,APIKey 需要有交易权限
限速:1次/s
限速规则:UserID
HTTP请求
POST /api/v5/asset/subaccount/transfer
请求示例
POST /api/v5/asset/subaccount/transfer
body
{
"ccy":"USDT",
"amt":"1.5",
"from":"6",
"to":"6",
"fromSubAccount":"test-1",
"toSubAccount":"test-2"
}
import okx.SubAccount as SubAccount
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘:0 , 模拟盘:1
subAccountAPI = SubAccount.SubAccountAPI(apikey, secretkey, passphrase, False, flag)
# 子账户间资金划转
result = subAccountAPI.subAccount_transfer(
ccy="USDT",
amt="10",
froms="6",
to="6",
fromSubAccount="test-1",
toSubAccount="test-2"
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
ccy | String | 是 | 币种 |
amt | String | 是 | 划转数量 |
from | String | 是 | 转出子账户类型6 :资金账户18 :交易账户 |
to | String | 是 | 转入子账户类型6 :资金账户18 :交易账户 |
fromSubAccount | String | 是 | 转出子账户的子账户名称 |
toSubAccount | String | 是 | 转入子账户的子账户名称 |
loanTrans | Boolean | 否 | 是否支持跨币种保证金模式 或组合保证金模式 下的借币转入/转出默认 false |
omitPosRisk | String | 否 | 是否忽略仓位风险 默认为 false 仅适用于 组合保证金模式 |
返回结果
{
"code":"0",
"msg":"",
"data":[
{
"transId":"12345",
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
transId | String | 划转ID |
设置子账户主动转出权限
设置子账户转出权限(仅适用于母账户),默认可转出至母账户。
限速:1次/s
限速规则:UserID
HTTP请求
POST /api/v5/users/subaccount/set-transfer-out
请求示例
POST /api/v5/users/subaccount/set-transfer-out
body
{
"subAcct": "Test001,Test002",
"canTransOut": true
}
import okx.SubAccount as SubAccount
# API 初始化
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
flag = "1" # 实盘:0 , 模拟盘:1
subAccountAPI = SubAccount.SubAccountAPI(apikey, secretkey, passphrase, False, flag)
# 设置子账户主动转出权限
result = subAccountAPI.set_permission_transfer_out(
subAcct="hahawang1",
canTransOut=False
)
print(result)
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
subAcct | String | 是 | 子账户名称,支持设置多个(不超过20个),子账户名称之间半角逗号分隔 |
canTransOut | Boolean | 否 | 是否可以主动转出,默认为true false :不可转出true :可以转出 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"subAcct": "Test001",
"canTransOut": true
},
{
"subAcct": "Test002",
"canTransOut": true
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
subAcct | String | 子账户名称 |
canTransOut | Boolean | 是否可以主动转出 false :不可转出true :可以转出 |
金融产品
链上赚币
仅资金账户中的资产支持申购。了解更多
GET / 查看项目
限速:3次/s
限速规则:UserID
HTTP 请求
GET /api/v5/finance/staking-defi/offers
请求示例
GET /api/v5/finance/staking-defi/offers
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
productId | String | 否 | 项目ID |
protocolType | String | 否 | 项目类型defi :链上赚币 |
ccy | String | 否 | 投资币种,如 BTC |
返回结果
{
"code": "0",
"data": [
{
"ccy": "DOT",
"productId": "101",
"protocol": "Polkadot",
"protocolType": "defi",
"term": "0",
"apy": "0.1767",
"earlyRedeem": false,
"state": "purchasable",
"investData": [
{
"bal": "0",
"ccy": "DOT",
"maxAmt": "0",
"minAmt": "2"
}
],
"earningData": [
{
"ccy": "DOT",
"earningType": "0"
}
],
"redeemPeriod": [
"28D",
"28D"
]
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
ccy | String | 币种名称,如 BTC |
productId | String | 项目ID |
protocol | String | 项目名称 |
protocolType | String | 项目类型defi :链上赚币 |
term | String | 项目期限 活期为0,其他则显示定期天数 |
apy | String | 预估年化 如果年化为7% ,则该字段为0.07 |
earlyRedeem | Boolean | 项目是否支持提前赎回 |
investData | Array | 目前用户可用来投资的目标币种信息 |
> ccy | String | 投资币种,如BTC |
> bal | String | 可投数量 |
> minAmt | String | 最小申购量 |
> maxAmt | String | 最大可申购量 |
earningData | Array | 收益信息 |
> ccy | String | 收益币种,如BTC |
> earningType | String | 收益类型0 :预估收益1 :累计发放收益 |
state | String | 项目状态purchasable :可申购sold_out :售罄stop :暂停申购 |
redeemPeriod | Array of string | 赎回期,形式为 [最小赎回时间,最大赎回时间]H :小时,D :天例 ["1H","24H"] 表示赎回期时1小时到24小时。 ["14D","14D"] 表示赎回期为14天。 |
POST / 申购项目
限速:2次/s
限速规则:UserID
HTTP 请求
POST /api/v5/finance/staking-defi/purchase
请求示例
# 投资100ZIL30天的锁仓挖矿项目
POST /api/v5/finance/staking-defi/purchase
body
{
"productId":"1234",
"investData":[
{
"ccy":"ZIL",
"amt":"100"
}
],
"term":"30"
}
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
productId | String | 是 | 项目ID |
investData | Array | 是 | 投资信息 |
> ccy | String | 是 | 投资币种,如 BTC |
> amt | String | 是 | 投资数量 |
term | String | 可选 | 投资期限 定期项目必须指定投资期限 |
tag | String | 否 | 订单标签 字母(区分大小写)与数字的组合,可以是纯字母、纯数字,且长度在1-16位之间 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"ordId": "754147",
"tag": ""
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
ordId | String | 订单ID |
tag | String | 订单标签 |
POST / 赎回项目
限速:2次/s
限速规则:UserID
HTTP 请求
POST /api/v5/finance/staking-defi/redeem
请求示例
# 提前赎回项目投资
POST /api/v5/finance/staking-defi/redeem
body
{
"ordId":"754147",
"protocolType":"defi",
"allowEarlyRedeem":true
}
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
ordId | String | 是 | 订单ID |
protocolType | String | 是 | 项目类型defi :链上赚币 |
allowEarlyRedeem | Boolean | 否 | 是否提前赎回 默认为 false |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"ordId": "754147",
"tag": ""
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
ordId | String | 订单ID |
tag | String | 订单标签 |
POST / 撤销项目申购/赎回
限速:2次/s
限速规则:UserID
HTTP 请求
POST /api/v5/finance/staking-defi/cancel
请求示例
POST /api/v5/finance/staking-defi/cancel
body
{
"ordId":"754147",
"protocolType":"defi"
}
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
ordId | String | 是 | 订单ID |
protocolType | String | 是 | 项目类型defi :链上赚币 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"ordId": "754147",
"tag": ""
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
ordId | String | 订单ID |
tag | String | 订单标签 |
GET / 查看活跃订单
限速:3次/s
限速规则:UserID
HTTP 请求
GET /api/v5/finance/staking-defi/orders-active
请求示例
GET /api/v5/finance/staking-defi/orders-active
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
productId | String | 否 | 项目ID |
protocolType | String | 否 | 项目类型defi :链上赚币 |
ccy | String | 否 | 投资币种,如 BTC |
state | String | 否 | 订单状态8 : 待上车(预约中)13 : 订单取消中9 : 上链中1 : 收益中2 : 赎回中 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"ordId":"123456",
"state":"1",
"ccy": "GLMR",
"protocol": "glimmar",
"protocolType":"staking",
"term":"15",
"apy":"0.5496",
"investData":[
{
"ccy":"GLMR",
"amt":"100"
}
],
"earningData": [
{
"ccy": "GLMR",
"earningType":"1", // 每日发放
"earnings":"3"
}
],
"purchasedTime":"1597026383085",
"estSettlementTime": "",
"cancelRedemptionDeadline": "",
"tag": ""
},
{
"ordId":"123457",
"state":"1",
"ccy": "USDT",
"protocol": "compond", //DEFI-loan
"protocolType":"defi",
"term":"0",
"apy":"0.12",
"investData":[
{
"ccy":"USDT",
"amt":"20",
"minAmt":"1",
"maxAmt":""
}
],
"earningData": [
{
"ccy": "USDT",
"earningType":"0", // 赎回发放
"earnings":"3" //预估收益
},
{
"ccy": "COMP",
"earningType":"1", // 每日发放
"earnings":"3" // 累计收益
}
],
"purchasedTime":"1597026383085",
"estSettlementTime": "",
"cancelRedemptionDeadline": "",
"tag": ""
},
{
"ordId":"123458",
"state":"1",
"ccy": "ETH",
"protocol": "sushiswap", //DEFI
"protocolType":"defi",
"term":"0",
"apy":"0.12",
"investData":[
{
"ccy":"USDT",
"amt":"100"
},
{
"ccy":"ETH",
"amt":"0.03"
}
],
"earningData": [
{
"ccy": "SUSHI",
"earningType":"1", // 每日发放
"earnings":"3" // 累计收益
}
],
"purchasedTime":"1597026383085",
"estSettlementTime": "",
"cancelRedemptionDeadline": "",
"tag": ""
},
{
"ordId":"123458",
"state":"3",
"ccy": "LON",
"protocol": "tokenlon", //DEFI-pos
"protocolType":"defi",
"earningCcy": ["LON"],
"term":"7",
"apy":"0.12",
"investData":[
{
"ccy":"LON",
"amt":"1"
}
],
"earningData": [
{
"ccy": "LON",
"earningType":"0", // 赎回发放
"earnings":"3" // 累计收益
}
],
"purchasedTime":"1597026383085",
"estSettlementTime": "",
"cancelRedemptionDeadline": "",
"tag": ""
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
ccy | String | 币种名称,如 BTC |
ordId | String | 订单ID |
productId | String | 项目ID |
state | String | 订单状态 8: 待上车(预约中) 13: 订单取消中 9: 上链中 1: 收益中 2: 赎回中 |
protocol | String | 项目名称 |
protocolType | String | 项目类型defi :链上赚币 |
term | String | 项目期限 活期为0,其他则显示定期天数 |
apy | String | 预估年化 如果年化为7% ,则该字段为0.07 保留到小数点后4位(截位) |
investData | Array | 用户投资信息 |
> ccy | String | 投资币种,如BTC |
> amt | String | 已投资数量 |
earningData | Array | 收益信息 |
> ccy | String | 收益币种,如BTC |
> earningType | String | 收益类型0 :预估收益1 :实际到账收益 |
> earnings | String | 收益数量 |
purchasedTime | String | 用户订单创建时间,值为时间戳,Unix时间戳为毫秒数格式,如 1597026383085 |
estSettlementTime | String | 预估赎回到账时间 |
cancelRedemptionDeadline | String | 撤销赎回申请截止时间 |
tag | String | 订单标签 |
GET / 查看历史订单
限速:3次/s
限速规则:UserID
HTTP 请求
GET /api/v5/finance/staking-defi/orders-history
请求示例
GET /api/v5/finance/staking-defi/orders-history
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
productId | String | 否 | 项目ID |
protocolType | String | 否 | 项目类型defi :链上赚币 |
ccy | String | 否 | 投资币种,如 BTC |
after | String | 否 | 请求此ID之前(更旧的数据)的分页内容,传的值为对应接口的ordId |
before | String | 否 | 请求此ID之后(更新的数据)的分页内容,传的值为对应接口的ordId |
limit | String | 否 | 返回结果的数量,默认100条,最大值为100条 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"ordId": "1579252",
"ccy": "DOT",
"productId": "101",
"state": "3",
"protocol": "Polkadot",
"protocolType": "defi",
"term": "0",
"apy": "0.1704",
"investData": [
{
"ccy": "DOT",
"amt": "2"
}
],
"earningData": [
{
"ccy": "DOT",
"earningType": "0",
"realizedEarnings": "0"
}
],
"purchasedTime": "1712908001000",
"redeemedTime": "1712914294000",
"tag": ""
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
ccy | String | 币种名称,如 BTC |
ordId | String | 订单ID |
productId | String | 项目ID |
state | String | 订单状态 3: 订单已完成(包含撤销和已赎回两种状态) |
protocol | String | 项目名称 |
protocolType | String | 项目类型defi :链上赚币 |
term | String | 项目期限 活期为0,其他则显示定期天数 |
apy | String | 预估年化 如果年化为7% ,则该字段为0.07 保留到小数点后4位(截位) |
investData | Array | 用户投资信息 |
> ccy | String | 投资币种,如BTC |
> amt | String | 已投资数量 |
earningData | Array | 收益信息 |
> ccy | String | 收益币种,如BTC |
> earningType | String | 收益类型0 :预估收益1 :实际到账收益 |
> realizedEarnings | String | 已赎回订单累计收益 该字段只在订单处于赎回状态时有效 |
purchasedTime | String | 用户订单创建时间,值为时间戳,Unix时间戳为毫秒数格式,如 1597026383085 |
redeemedTime | String | 用户订单赎回时间,值为时间戳,Unix时间戳为毫秒数格式,如 1597026383085 |
tag | String | 订单标签 |
Status
GET / Status
获取系统升级事件的状态。
由计划系统维护引起的短暂不可用(<5秒)和WebSocket闪断连接(用户可以立即重连)将不会公布。此类维护只会在市场波动性低的时期进行。
限速:1次/5s
HTTP请求
GET /api/v5/system/status
请求示例
GET /api/v5/system/status
GET /api/v5/system/status?state=canceled
import okx.Status as Status
flag = "0" # 实盘:0 , 模拟盘:1
statusAPI = Status.StatusAPI(
domain="https://www.okx.com",
flag=flag,
)
# 获取系统升级事件的状态
result = statusAPI.status()
print(result)
请求参数
请求示例
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
state | String | No | 系统的状态scheduled :等待中ongoing :进行中pre_open :预开放completed :已完成canceled :已取消 当维护时间过长,会存在预开放时间,一般持续10分钟左右。 不填写此参数,默认返回 等待中、进行中和预开放 的数据 |
返回结果
{
"code": "0",
"data": [
{
"begin": "1672823400000",
"end": "1672823520000",
"href": "",
"preOpenBegin": "",
"scheDesc": "",
"serviceType": "8",
"state": "completed",
"maintType": "1",
"env": "1",
"system": "unified",
"title": "Trading account system upgrade (in batches of accounts)"
}
],
"msg": ""
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
title | String | 系统维护说明的标题 |
state | String | 系统维护的状态 |
begin | String | 系统维护的开始时间,Unix时间戳的毫秒数格式 如:1617788463867 |
end | String | 交易全面开放的时间,Unix时间戳的毫秒数格式 如:1617788463867 在维护完成前,是预期结束时间;维护完成后,会变更为实际结束时间。 |
preOpenBegin | String | 预开放开始的时间,开放撤单、Post Only 下单和资金转入功能的时间 |
href | String | 系统维护详情的超级链接,若无返回值,默认值为空,如 "" |
serviceType | String | 服务类型0 :WebSocket5 :交易服务6 :大宗交易7 :策略交易8 :交易服务 (按账户分批次)9 :交易服务 (按产品分批次)10 :价差交易11 :跟单交易99 :其他(如:停止部分产品交易) |
system | String | 系统unified :交易账户 |
scheDesc | String | 改期进度说明,如 由 2021-01-26T16:30:00.000Z 改期到2021-01-28T16:30:00.000Z |
maintType | String | 维护类型1 :计划维护2 :临时维护3 :系统故障 |
env | String | 环境1 :实盘2 :模拟盘 |
WS / Status 频道
获取系统维护的状态,当系统维护状态改变,改期,以及修改结束时间时推送。首次订阅:”推送最新一条的变化数据“;后续每次有状态变化,推送变化的内容。
由计划系统维护引起的短暂不可用(<5秒)和WebSocket闪断连接(用户可以立即重连)将不会公布。此类维护只会在市场波动性低的时期进行。
URL Path
/ws/v5/public
请求示例
{
"op": "subscribe",
"args": [{
"channel": "status"
}]
}
请求参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
op | String | 是 | 操作subscribe unsubscribe |
args | Array | 是 | 请求订阅的频道列表 |
> channel | String | 是 | 频道名status |
成功返回示例
{
"event": "subscribe",
"arg": {
"channel": "status"
},
"connId": "a4d3ae55"
}
失败返回示例
{
"event": "error",
"code": "60012",
"msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{ \"channel\" : \"statuss\"}]}",
"connId": "a4d3ae55"
}
返回参数
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
event | String | 是 | 事件subscribe unsubscribe error |
arg | Object | 否 | 订阅的频道 |
> channel | String | 是 | 频道名 |
code | String | 否 | 错误码 |
msg | String | 否 | 错误消息 |
connId | String | 是 | WebSocket连接ID |
推送示例
{
"arg": {
"channel": "status"
},
"data": [
{
"begin": "1672823400000",
"end": "1672825980000",
"href": "",
"preOpenBegin": "",
"scheDesc": "",
"serviceType": "0",
"state": "completed",
"system": "unified",
"maintType": "1",
"env": "1",
"title": "Trading account WebSocket system upgrade",
"ts": "1672826038470"
}
]
}
推送数据参数
参数名 | 类型 | 描述 |
---|---|---|
arg | Object | 订阅成功的频道 |
> channel | String | 频道名 |
data | Array | 订阅的数据 |
> title | String | 系统维护说明的标题 |
> state | String | 系统的状态,scheduled :等待中 ; ongoing :进行中 ; pre_open :预开放;completed :已完成 canceled : 已取消 当维护时间过长,会存在预开放时间,一般持续10分钟左右。 |
> begin | String | 系统维护的开始时间,Unix时间戳的毫秒数格式 如:1617788463867 |
> end | String | 交易全面开放的时间,Unix时间戳的毫秒数格式 如:1617788463867 在维护完成前,是预期结束时间;维护完成后,会变更为实际结束时间。 |
> preOpenBegin | String | 预开放开始的时间,开放撤单、Post Only 下单和资金转入功能的时间 |
> href | String | 系统维护详情的超级链接,若无返回值,默认值为空,如:“” |
> serviceType | String | 服务类型, 0 :WebSocket ; 5 :交易服务;6 :大宗交易;7 :策略交易;8 :交易服务 (按账户分批次);9 :交易服务 (按产品分批次);10 :价差交易;11 :跟单交易;99 :其他(如:停止部分产品交易) |
> system | String | 系统,unified :交易账户 |
> scheDesc | String | 改期进度说明,如: 由 2021-01-26T16:30:00.000Z 改期到 2021-01-28T16:30:00.000Z |
> maintType | String | 维护类型。1 :计划维护;2 :临时维护;3 :系统故障 |
> env | String | 环境。1 :实盘,2 :模拟盘 |
> ts | String | 事件变更的推送时间,Unix时间戳的毫秒数格式,如:1617788463867 |
错误码
REST API
REST API 错误码从 50000 到 59999
公共
错误码从 50000 到 53999
通用类
错误码 | HTTP 状态码 | 错误提示 |
---|---|---|
0 | 200 | |
1 | 200 | 操作全部失败 |
2 | 200 | 批量操作部分成功 |
50000 | 400 | POST请求的body不能为空 |
50001 | 503 | 服务暂时不可用,请稍后重试 |
50002 | 400 | JSON 语法错误 |
50004 | 400 | 接口请求超时(不代表请求成功或者失败,请检查请求结果) |
50005 | 410 | 接口已下线或无法使用 |
50006 | 400 | 无效的 Content-Type,请使用“application/JSON”格式 |
50007 | 200 | 用户被冻结 |
50008 | 200 | 用户不存在 |
50009 | 200 | 用户处于爆仓冻结 |
50010 | 200 | 用户ID为空 |
50011 | 200 | 用户请求频率过快,超过该接口允许的限额。请参考 API 文档并限制请求 |
50011 | 429 | 请求频率太高 |
50012 | 200 | 账户状态无效,请检查帐户的状态 |
50013 | 429 | 当前系统繁忙,请稍后重试 |
50014 | 400 | 必填参数{param0}不能为空 |
50015 | 400 | 参数{param0}和{param1}不能同时为空 |
50016 | 400 | 参数{param0}和{param1}不匹配 |
50017 | 200 | 当前仓位处于自动减仓 (ADL) 冻结中,无法进行相关操作,请稍后重试 |
50018 | 200 | {param0} 处于自动减仓 (ADL) 冻结中,无法进行相关操作,请稍后重试 |
50019 | 200 | 当前账户处于自动减仓 (ADL) 冻结中,无法进行相关操作,请稍后重试 |
50020 | 200 | 当前仓位处于强平冻结中,无法进行相关操作,请稍后重试 |
50021 | 200 | {param0} 处于强平冻结中,无法进行相关操作,请稍后重试 |
50022 | 200 | 当前账户处于强平冻结中,无法进行相关操作,请稍后重试 |
50023 | 200 | 资金费冻结,无法进行相关操作,请稍后重试 |
50024 | 200 | 参数{param0}和{param1}不能同时存在 |
50025 | 200 | 参数{param0}传值个数超过最大限制{param1} |
50026 | 500 | 系统错误,请稍后重试 |
50027 | 200 | 当前账户已被限制交易,请联系客服处理 |
50028 | 200 | 账户异常无法下单 |
50029 | 200 | 你的账户已经触发风控体系,禁止交易该标的,请检查您在欧易注册的电子邮件以便我们的客服联系 |
50030 | 200 | 您没有使用此 API 接口的权限 |
50032 | 200 | 您的账户已设置禁止该币种交易,请确认后重试 |
50033 | 200 | 您的账户已设置禁止该业务线交易,请确认后重试 |
50035 | 403 | 该接口要求APIKey必须绑定IP |
50036 | 200 | expTime 不能早于当前系统时间,请调整 expTime 后重试 |
50037 | 200 | 订单已过期 |
50038 | 200 | 模拟交易不支持该功能 |
50039 | 200 | 时间戳分页时,不支持使用before参数 |
50040 | 200 | 操作频繁,请稍后重试 |
50041 | 200 | 用户 ID 未被列入白名单列表,请联系客服 |
50044 | 200 | 必须指定一种broker类型 |
50047 | 200 | {param0} 已经交割,对应的K线请使用{param1}查询 |
50048 | 200 | 切换对冲单元可能导致仓位风险水平升高,引起强制平仓。请调整仓位,使保证金处于安全状态。 |
50049 | 200 | 无仓位档位信息,该币种不支持杠杆交易 |
50050 | 200 | 您已开通期权交易服务,请勿重复开通 |
50051 | 200 | 由于您所在国家或地区的合规限制,您无法使用该功能 |
50052 | 200 | 根据当地的法律法规,您无法交易您选择的币种 |
50053 | 200 | 该功能只支持模拟盘 |
50055 | 200 | 资产重置失败,超过每日设置5次资产上限 |
50056 | 200 | 当前账户有交易挂单或持仓,请完成全部撤单/平仓后进行重置 |
50057 | 200 | 资产重置失败,请稍后重试 |
50058 | 200 | 该币种不支持资产重置 |
50059 | 200 | 继续下一步之前,请按照当地监管机构的要求完成额外步骤。您可以前往欧易网页端或 App 端了解详情。 |
50060 | 200 | 根据当地法律法规,您需要完成身份认证方可继续使用我们的服务。 |
50061 | 200 | 订单请求频率过快,超过账户允许的最高限额 |
50062 | 200 | 该功能暂不可用 |
50063 | 200 | 激活失败,您的体验金可能已过期或已激活 |
50064 | 200 | 借币系统暂不可用,请稍后再试 |
API 类
错误码 | HTTP 状态码 | 错误提示 |
---|---|---|
50100 | 400 | Api 已被冻结,请联系客服处理 |
50101 | 401 | APIKey 与当前环境不匹配 |
50102 | 401 | 请求时间戳过期 |
50103 | 401 | 请求头"OK-ACCESS-KEY"不能为空 |
50104 | 401 | 请求头"OK-ACCESS-PASSPHRASE"不能为空 |
50105 | 401 | 请求头"OK-ACCESS-PASSPHRASE"错误 |
50106 | 401 | 请求头"OK-ACCESS-SIGN"不能为空 |
50107 | 401 | 请求头"OK-ACCESS-TIMESTAMP"不能为空 |
50108 | 401 | 券商ID不存在 |
50109 | 401 | 券商域名不存在 |
50110 | 401 | 您的IP{param0}不在APIKey绑定IP名单中 (您可以将您的IP加入到APIKey绑定白名单中) |
50111 | 401 | 无效的OK-ACCESS-KEY |
50112 | 401 | 无效的OK-ACCESS-TIMESTAMP |
50113 | 401 | 无效的签名 |
50114 | 401 | 无效的授权 |
50115 | 405 | 无效的请求类型 |
50116 | 200 | Fast API 只能创建一个 API key |
50118 | 200 | 如需将 API key 绑定 App,经纪商需要提供 IP 才能加入白名单 |
50119 | 200 | API key 不存在 |
50120 | 200 | API key 权限不足 |
50121 | 200 | 您无权通过该 IP 地址 ({param0}) 访问 |
50122 | 200 | 下单金额必须超过最低金额限制 |
交易类
错误码 | HTTP 状态码 | 错误提示 |
---|---|---|
51000 | 400 | {param0}参数错误 |
51001 | 200 | 交易产品ID不存在 |
51002 | 200 | 交易产品ID不匹配指数 |
51003 | 200 | ordId或clOrdId至少填一个 |
51004 | 200 | 下单失败,您在{instId} 逐仓的开平仓模式下,当前下单张数、同方向持有仓位以及同方向挂单张数之和,不能超过当前杠杆倍数允许的持仓上限{tierLimitQuantity}(张),请调低杠杆或者使用新的子账户重新下单(当前杠杆:{leverage}×,当前下单张数:{size}张,同方向持有仓位:{posNumber}张,同方向挂单张数:{pendingNumber}张)。 |
51004 | 200 | 下单失败,您在{instId}全仓的开平仓模式下,当前下单张数、多空持有仓位以及多空挂单张数之和,不能超过当前杠杆倍数允许的持仓上限{tierLimitQuantity}(张),请调低杠杆或者使用新的子账户重新下单(当前杠杆:{leverage}×,当前下单张数:{size}张,多空持有仓位{posLongShortNumber}张,多空挂单张数:{pendingLongShortNumber}张)。 |
51004 | 200 | 下单失败,您在{businessType}和交易品种{instFamily}的全仓开平仓模式下,当前下单张数、当前合约多空持有仓位、当前合约多空挂单张数以及其他合约占用额度之和,不能超过当前杠杆倍数允许的持仓上限{tierLimitQuantity}(张),请调低杠杆或者使用新的子账户重新下单(当前杠杆:{leverage}×,当前下单张数:{size}张,当前合约多空持有仓位:{posLongShortNumber}张,当前合约多空挂单张数:{pendingLongShortNumber}张,其他合约占用额度:{otherQuote}张)。 |
51004 | 200 | 下单失败,您在{instId}的买卖模式下,当前买入张数、持有仓位、以及买入挂单张数之和,不能超过当前杠杆倍数允许的持仓上限{tierLimitQuantity}(张),请调低杠杆或者使用新的子账户重新下单(当前杠杆:{leverage}×,当前买入张数:{size}张,持有仓位:{posNumber}张,买入挂单张数:{pendingNumber}张)。 |
51004 | 200 | 下单失败,您在{instId}的买卖模式下,当前卖出张数、持有仓位以及卖出挂单张数之和,不能超过当前杠杆倍数允许的持仓上限{tierLimitQuantity}(张),请调低杠杆或者使用新的子账户重新下单(当前杠杆:{leverage}×,当前卖出张数:{size}张,持有仓位:{posNumber}张,卖出挂单张数:{pendingNumber}张)。 |
51004 | 200 | 下单失败,您在{businessType}和交易品种{instFamily}的全仓买卖模式下,当前买入张数、当前合约持有仓位、当前合约买入挂单张数以及其他合约占用额度之和,不能超过当前杠杆倍数允许的持仓上限{tierLimitQuantity}(张),请调低杠杆或者使用新的子账户重新下单(当前杠杆:{leverage}×,当前买入张数:{size}张,当前合约持有仓位:{posNumber}张,当前合约买入挂单张数:{pendingNumber}张,其他合约占用额度:{otherQuota}张)。 |
51004 | 200 | 下单失败,您在{businessType}和交易品种{instFamily}的全仓买卖模式下,当前卖出张数、当前合约持有仓位、当前合约卖出挂单张数以及其他合约占用额度之和,不能超过当前杠杆倍数允许的持仓上限{tierLimitQuantity}(张),请调低杠杆或者使用新的子账户重新下单(当前杠杆:{leverage}×,当前卖出张数:{size}张,当前合约持有仓位:{posNumber}张,当前合约卖出挂单张数:{pendingNumber}张,其他合约占用额度:{otherQuota}张)。 |
51004 | 200 | 修改订单失败,您在{instId} 逐仓的开平仓模式下,当前改单新增张数、同方向持有仓位以及同方向挂单张数之和,不能超过当前杠杆倍数允许的持仓上限{tierLimitQuantity}(张),请调低杠杆或者使用新的子账户重新下单(当前杠杆:{leverage}×,当前改单新增张数:{size}张,同方向持有仓位:{posNumber}张,同方向挂单张数:{pendingNumber}张)。 |
51004 | 200 | 修改订单失败,您在{instId}全仓的开平仓模式下,当前改单新增张数、多空持有仓位以及多空挂单张数之和,不能超过当前杠杆倍数允许的持仓上限{tierLimitQuantity}(张),请调低杠杆或者使用新的子账户重新下单(当前杠杆:{leverage}×,当前改单新增张数:{size}张,多空持有仓位{posLongShortNumber}张,多空挂单张数:{pendingLongShortNumber}张)。 |
51004 | 200 | 修改订单失败,您在{businessType}和交易品种{instFamily}的全仓开平仓模式下,当前改单新增张数、当前合约多空持有仓位、当前合约多空挂单张数以及其他合约占用额度之和,不能超过当前杠杆倍数允许的持仓上限{tierLimitQuantity}(张),请调低杠杆或者使用新的子账户重新下单(当前杠杆:{leverage}×,当前改单新增张数:{size}张,当前合约多空持有仓位:{posLongShortNumber}张,当前合约多空挂单张数:{pendingLongShortNumber}张,其他合约占用额度:{otherQuote}张)。 |
51004 | 200 | 修改订单失败,您在{instId}的买卖模式下,修改当前买单新增张数、持有仓位、以及买入挂单张数之和,不能超过当前杠杆倍数允许的持仓上限{tierLimitQuantity}(张),请调低杠杆或者使用新的子账户重新下单(当前杠杆:{leverage}×,修改当前买单新增张数:{size}张,持有仓位:{posNumber}张,买入挂单张数:{pendingNumber}张)。 |
51004 | 200 | 修改订单失败,您在{instId}的买卖模式下,修改当前卖单新增张数、持有仓位以及卖出挂单张数之和,不能超过当前杠杆倍数允许的持仓上限{tierLimitQuantity}(张),请调低杠杆或者使用新的子账户重新下单(当前杠杆:{leverage}×,修改当前卖单新增张数:{size}张,持有仓位:{posNumber}张,卖出挂单张数:{pendingNumber}张)。 |
51004 | 200 | 修改订单失败,您在{businessType}和交易品种{instFamily}的全仓买卖模式下,修改当前买单新增张数、当前合约持有仓位、当前合约买入挂单张数以及其他合约占用额度之和,不能超过当前杠杆倍数允许的持仓上限{tierLimitQuantity}(张),请调低杠杆或者使用新的子账户重新下单(当前杠杆:{leverage}×,修改当前买单新增张数:{size}张,当前合约持有仓位:{posNumber}张,当前合约买入挂单张数:{pendingNumber}张,其他合约占用额度:{otherQuota}张)。 |
51004 | 200 | 修改订单失败,您在{businessType}和交易品种{instFamily}的全仓买卖模式下,修改当前卖单新增张数、当前合约持有仓位、当前合约卖出挂单张数以及其他合约占用额度之和,不能超过当前杠杆倍数允许的持仓上限{tierLimitQuantity}(张),请调低杠杆或者使用新的子账户重新下单(当前杠杆:{leverage}×,修改当前卖单新增张数:{size}张,当前合约持有仓位:{posNumber}张,当前合约卖出挂单张数:{pendingNumber}张,其他合约占用额度:{otherQuota}张)。 |
51005 | 200 | 委托数量大于单笔上限 |
51006 | 200 | 委托价格不在限价范围内(最高买入价:{param0},最低卖出价:{param1}) |
51007 | 200 | 委托失败,委托数量不可小于 1 张 |
51008 | 200 | 委托失败,账户 {param0} 可用余额不足 |
51008 | 200 | 委托失败,账户 {param0} 可用保证金不足 |
51008 | 200 | 委托失败,账户 {param0} 可用余额不足,且未开启自动借币 |
51008 | 200 | 委托失败,账户 {param0} 可用保证金不足,且未开启自动借币(PM模式也可以尝试IOC订单降低风险) |
51008 | 200 | 委托失败,因为 {param0} 剩余的档位限额不足,导致可借不足(限价挂单以及当前下单需借:{param1}, 剩余额度{param2},限额 {param3},已用额度{param4}) |
51008 | 200 | 委托失败,因为 {param0} 剩余的限额(母账户限额+当前账户锁定的尊享借币额度)不足,导致可借不足(限价挂单以及当前下单需借 {param1},剩余额度 {param2},限额 {param3},已用额度 {param4}) |
51008 | 200 | 委托失败,因为 {param0} 剩余的币对限额不足,导致可借不足 |
51008 | 200 | 委托失败,因为 {param0} 剩余的借贷池限额不足,导致可借不足 |
51008 | 200 | 委托失败,账户资产不足,美金层面有效保证金小于 IMR(PM模式也可以尝试IOC订单降低风险) |
51008 | 200 | 委托失败,delta 校验未通过,因为若成功下单,adjEq 的变化值将小于 IMR 的变化值。建议增加 adjEq 或减少 IMR 占用(PM模式也可以尝试IOC订单降低风险) |
51009 | 200 | 下单功能被冻结,请联系客服进行处理 |
51010 | 200 | 当前账户模式不支持此操作 |
51011 | 200 | ordId重复 |
51012 | 200 | 币种不存在 |
51014 | 200 | 指数不存在 |
51015 | 200 | instId和instType不匹配 |
51016 | 200 | clOrdId重复 |
51017 | 200 | 杠杆委托交易借币超出限额 |
51018 | 200 | 期权交易账户不能有净开空持仓 |
51019 | 200 | 期权全仓不能有净开多持仓 |
51020 | 200 | 委托数量必须超过单笔下限 |
51021 | 200 | 币对或合约待上线 |
51022 | 200 | 合约暂停中 |
51023 | 200 | 仓位不存在 |
51024 | 200 | 交易账户冻结 |
51024 | 200 | 根据服务条款,我们很遗憾地通知您,我们无法为您提供服务。如果您有任何问题,请联系我们的客服。 |
51024 | 200 | 根据您的要求,该账号已被冻结,如有问题请及时联系客服处理。 |
51024 | 200 | 您的账户近期做了相关安全设置变更,为保证您的资金安全,暂无法进行此操作,如有问题请您及时联系客服处理。 |
51024 | 200 | 您的账户已完成全部资产支取,为保证您的信息安全,该账户已永久冻结,若有问题,请您及时联系客服处理。 |
51024 | 200 | 您的认证信息疑似存在安全风险,为保证您的资金安全,暂无法进行此操作,请您及时联系客服处理。 |
51024 | 200 | 您的认证信息不符合年龄规定,为保证您的资金安全,暂无法进行此操作,请您及时联系客服处理。 |
51024 | 200 | 根据合规要求,您的认证国家或地区已禁止交易,您可以平掉所有仓位。如有问题请及时联系客服处理。 |
51024 | 200 | 您的认证信息疑似存在多次认证,为保证您的资金安全,暂无法进行此操作,请您及时联系客服处理。 |
51024 | 200 | 您的账户已被司法冻结,暂无法进行此操作,如有问题请您及时联系客服处理。 |
51024 | 200 | 无法进行此操作。请首先解决您现有的 C2C申诉。 |
51024 | 200 | 您的账户疑似存在合规风险,为保证您的资金安全,暂无法进行此操作,请您及时联系客服处理。 |
51024 | 200 | 根据您的交易需求,暂无法进行此操作,如有问题请及时联系客服处理。 |
51024 | 200 | 由于您的账户触发平台风控,暂无法进行此操作,有疑问请您联系客服。 |
51024 | 200 | 此账户暂无法使用,有任何疑问您可以联系客服。 |
51024 | 200 | 此账户提币功能暂无法使用,有任何疑问您可以联系客服。 |
51024 | 200 | 此账户资金账户划转功能暂无法使用,有任何疑问您可以联系客服。 |
51024 | 200 | 因您进行法币交易时违反了《平台法币交易规则》,故不再为您提供法币交易功能的相关服务,您账户的充币提币以及其他交易功能不受影响。 |
51024 | 200 | 请注意查收邮件内容,回复认证团队发送邮件,有任何问题,请联系认证团队。 |
51024 | 200 | 根据您的要求,该账号已被关闭,如有问题请及时联系客服处理。 |
51024 | 200 | 您的账户疑似存在安全风险,为保证您的资金安全,暂无法进行此操作,请您及时联系客服处理。 |
51024 | 200 | 您的账户疑似存在安全风险,暂无法兑换,请您及时联系客服处理 |
51024 | 200 | 您的账号已冻结,部分功能将被禁用,如您希望解除账号限制,请前往帮助中心联系平台客服。 |
51024 | 200 | 根据合规要求,您的认证国家或地区已禁止交易,您可以撤销已有的订单。如有问题请及时联系客服处理。 |
51024 | 200 | 您的认证国家为交易禁止国,根据合规要求,暂无法进行此操作,如有问题请您及时联系客服处理。 |
51024 | 200 | 根据当地法律法规,您所在的国家或地区无法使用该产品。如果您的常居住地不是本国家或地区,并持有有效身份证件,您可继续使用欧易的交易所产品。 |
51024 | 200 | 请注意您在建立托管交易子账户后的前30分钟内可能无法划转或进行交易,请耐心等待并稍后再试。 |
51024 | 200 | 此功能暂不可用,完成高级身份认证后即可正常使用 |
51024 | 200 | 由于您未能及时更新认证信息,您账户的充币与交易功能已受限。请尽快更新认证,以解除账户限制。 |
51025 | 200 | 委托笔数超限 |
51026 | 200 | 交易产品类型不匹配指数(instType和uly不匹配) |
51027 | 200 | 合约已到期 |
51028 | 200 | 合约交割中 |
51029 | 200 | 合约结算中 |
51030 | 200 | 资金费结算中 |
51031 | 200 | 委托价格不在平仓限价范围内 |
51032 | 200 | 市价全平中 |
51033 | 200 | 币对单笔交易已达限额 |
51034 | 200 | 成交速率超出您所设置的上限,请将做市商保护状态重置为 inactive 以继续交易。 |
51035 | 200 | 用户没有做市订单的下单权限 |
51036 | 200 | 仅 PM 账户的期权业务线支持 MMP 类型订单 |
51411 | 200 | 用户没有执行mass cancel的权限 |
51042 | 200 | PM 账户模式下,期权仅支持持仓模式为全仓的 MMP 类型订单 |
51043 | 200 | 该逐仓仓位不存在 |
59509 | 200 | 用户没有重置做市商保护状态的权限 |
51037 | 200 | 当前账户风险状态,仅支持降低账户风险方向的IOC订单 |
51038 | 200 | 当前风险模块下已经存在降低账户风险方向的IOC类型订单 |
51039 | 200 | PM账户下交割和永续的全仓不能调整杠杆倍数 |
51040 | 200 | 期权逐仓的买方不能调整保证金 |
51041 | 200 | PM账户仅支持买卖模式 |
51044 | 200 | 当前订单类型{param0}, {param1}不支持设置止盈和止损 |
51046 | 200 | 止盈触发价格应该大于委托价格 |
51047 | 200 | 止损触发价格应该小于委托价格 |
51048 | 200 | 止盈触发价格应该小于委托价格 |
51049 | 200 | 止损触发价格应该大于委托价格 |
51050 | 200 | 止盈触发价格应该大于卖一价 |
51051 | 200 | 止损触发价格应该小于卖一价 |
51052 | 200 | 止盈触发价格应该小于买一价 |
51053 | 200 | 止损触发价格应该大于买一价 |
51054 | 500 | 请求超时,请稍候重试 |
51055 | 200 | 组合保证金模式暂不支持合约网格 |
51056 | 200 | 当前策略不支持该操作 |
51057 | 200 | 当前账户模式暂不支持此交易策略,请前往“交易设置 > 账户模式”进行切换 |
51058 | 200 | 该策略无仓位 |
51059 | 200 | 策略当前状态不支持此操作 |
51065 | 200 | algoClOrdId 重复 |
51068 | 200 | {param0} 已经在 algoClOrdId 和 attachAlgoClOrdId 中存在。 |
51069 | 200 | 不存在该{param0}相关的期权合约 |
51070 | 200 | 您当前尚未达到升级至该账户模式的要求,请先在官方网站或APP完成账户模式的升级。 |
51071 | 200 | 当前维护的标签维度倒计时全部撤单达到数量上限 |
51072 | 200 | 您当前身份为现货带单员,设置的带单币对买入时,tdMode 需要使用 spot_isolated |
51073 | 200 | 您当前身份为现货带单员,卖出带单资产需要使用'/copytrading/close-subposition'接口 |
51074 | 200 | 仅现货带单员设置的带单币对支持使用 tdMode:spot_isolated |
51076 | 200 | 分批止盈的每笔止盈止损订单仅支持单向止盈止损,slTriggerPx&slOrdPx 与 tpTriggerPx&tpOrdPx 只能填写一组 |
51077 | 200 | 币币/杠杆不支持开启'开仓价止损' |
51078 | 200 | 您当前身份为带单交易员,不支持分批止盈 |
51079 | 200 | 同一笔订单上附带分批止盈的止盈委托单不能超过 {param0} 笔 |
51080 | 200 | 同一笔订单上附带分批止盈的止盈触发价类型 (tpTriggerPxType) 必须保持一致 |
51081 | 200 | 同一笔订单上附带分批止盈的止盈触发价 (tpTriggerPx) 不能相等 |
51082 | 200 | 同一笔订单上附带分批止盈的止盈委托价 (tpOrdPx) 只能是市价 |
51083 | 200 | 同一笔订单上附带分批止盈的止盈数量之和需要等于订单的委托数量 |
51084 | 200 | 同一笔订单上附带分批止盈的止损委托单不能超过 {param0} 笔 |
51085 | 200 | 附带止盈止损开启'开仓价止损'时 (amendPxOnTriggerType 设置为 1),该笔订单上的止盈委托单必须大于等于 2 笔 |
51086 | 200 | 同一笔订单上附带止盈止损委托单不能超过 {param0} 笔 |
51538 | 200 | 若下单时使用了 attachAlgoOrds 参数,也需要使用 attachAlgoOrds 参数改单;若下单时没有使用 attachAlgoOrds 参数,则不支持使用 attachAlgoOrds 参数改单。 |
51539 | 200 | 修改同一笔订单上分批止盈中的止盈止损订单时,attachAlgoId 或者 attachAlgoClOrdId 的值不能重复 |
51527 | 200 | 改单失败,其中至少有一个附带的止盈止损订单不存在 |
51087 | 200 | 该币种取消上线,当前不支持交易 |
51088 | 200 | 对于同一个仓位,仅支持一笔全部平仓的止盈止损挂单 |
51089 | 200 | 在附带分批止盈时,止盈订单的数量不能为空 |
51090 | 200 | 对于绑定了限价止盈的止损订单,不允许修改其委托数量 |
51091 | 200 | 同一笔订单上附带分批止盈的止盈类型必须保持一致 |
51092 | 200 | 同一笔订单上附带分批止盈的止盈委托价不能相等 |
51093 | 200 | 同一笔订单上附带分批止盈,其中限价止盈的止盈委托价 (tpOrdPx) 不能为 –1 (市价) |
51094 | 200 | 币币、杠杆和期权交易不支持限价止盈 |
51095 | 200 | 该接口下限价止盈订单时,也需要同时下一笔止损订单 |
51096 | 200 | 限价止盈时 cxlOnClosePos 需要为 true |
51098 | 200 | 对于绑定了限价止盈的止损订单,不能添加新的止盈 |
51099 | 200 | 您当前身份为带单交易员,不支持下单限价止盈 |
51178 | 200 | 使用 attachAlgoClOrdId 时,tpTriggerPx&tpOrdPx 或者 slTriggerPx&slOrdPx 不能为空。 |
51100 | 200 | 下单失败,只减仓订单不能附带止盈止损。 |
51101 | 200 | 操作失败,单笔委托数量不能大于{maxSzPerOrder}(张)。 |
51102 | 200 | 操作失败,当前合约的累计挂单数量不能大于{maxNumberPerInstrument}(单)。 |
51103 | 200 | 操作失败,{businessType}的当前交易品种下,所有合约累计挂单数量不能大于{maxNumberPerInstFamily}(单)。 |
51104 | 200 | 操作失败,{businessType}的当前交易品种下,所有合约累计挂单张数不能大于{maxSzPerInstFamily} (张)。 |
51105 | 200 | 操作失败,当前合约的持仓张数和同方向挂单张数之和不能大于{maxPositionSzPerInstrument}(张)。 |
51106 | 200 | 操作失败,{businessType}的当前交易品种下,所有合约累计持仓张数和同方向挂单张数之和不能大于{maxPostionSzPerInstFamily51106}(张)。 |
51107 | 200 | 操作失败,{businessType}的当前交易品种下,所有合约累计持仓张数和双向挂单张数之和不能大于{maxPostionSzPerInstFamily51107}(张)。 |
51108 | 200 | 持仓量超过市价全平最大限制 |
51109 | 200 | 订单深度中无买一卖一价 |
51110 | 200 | 集合竞价开始后方可下限价单 |
51111 | 200 | 批量下单时,超过最大单数{param0} |
51112 | 200 | 平仓张数大于该仓位的可平张数 |
51113 | 429 | 市价全平操作过于频繁 |
51115 | 200 | 市价全平前请先撤销所有平仓单 |
51116 | 200 | 委托价格或触发价格超过{param0} |
51117 | 200 | 平仓单挂单单数超过限制 |
51120 | 200 | 下单数量不足{param0}张 |
51121 | 200 | 下单张数应为一手张数的倍数 |
51122 | 200 | 委托价格小于最小值{param0} |
51124 | 200 | 价格发现期间您只可下限价单 |
51125 | 200 | 当前杠杆存在非只减仓挂单,请撤销所有非只减仓挂单后进行只减仓挂单 |
51126 | 200 | 当前杠杆存在只减仓挂单,请撤销所有只减仓挂单后进行非只减仓挂单 |
51127 | 200 | 仓位可用余额为0 |
51128 | 200 | 跨币种账户无法进行全仓杠杆交易 |
51129 | 200 | 持仓及买入订单价值已达到持仓限额,不允许继续买入 |
51130 | 200 | 逐仓杠杆保证金币种错误 |
51131 | 200 | 仓位可用余额不足 |
51132 | 200 | 仓位正资产小于最小交易单位 |
51133 | 200 | 跨币种全仓币币不支持只减仓功能 |
51134 | 200 | 平仓失败,您当前没有杠杆仓位,请关闭只减仓后继续 |
51135 | 200 | 您的平仓价格已触发限价,最高买入价格为{param0} |
51136 | 200 | 您的平仓价格已触发限价,最低卖出价格为{param0} |
51137 | 200 | 买单最高价为 {param0},请调低价格 |
51138 | 200 | 卖单最低价为 {param0},请调高价格 |
51139 | 200 | 现货模式下币币不支持只减仓功能 |
51142 | 200 | 盘口无有效报价,用USDT模式下单无法成交,请尝试切换到币种模式 |
51143 | 200 | 您的询价失败,请稍后重试 |
51145 | 200 | 逐仓自主划转保证金模式不支持提前挂单 |
51147 | 200 | 交易期权需要在交易账户资产总价值大于2万美元的前提下,开通期权交易服务 |
51148 | 200 | 下单失败,当前订单若下单成功会造成只减仓订单反向开仓,请撤销或修改原有挂单再进行下单 |
51149 | 500 | 下单超时,请稍候重试 |
51150 | 200 | 交易数量或价格的精度超过限制 |
51152 | 200 | 一键借币模式下,不支持自动借币与自动还币和手动类型混合下单。 |
51155 | 200 | 由于您所在国家或地区的合规限制,您无法交易此币对或合约 |
51169 | 200 | 下单失败,当前合约无持仓,请先取消只减仓设置,再尝试下单 |
51170 | 200 | 下单失败,只减仓下单方向不能与持仓方向相同 |
51171 | 200 | 改单失败,当前订单若改单成功会造成只减仓订单反向开仓,请撤销或修改原有挂单再进行改单 |
51174 | 200 | 操作失败,当前 {param0} 的累计挂单数量已达上限 {param1} (单) |
51175 | 200 | 参数 {param0}、{param1} 和 {param2} 不能同时为空 |
51176 | 200 | 参数 {param0}、{param1} 和 {param2} 只能填写一个 |
51177 | 200 | 当前期权订单的价格类型为{param0},不支持修改{param1} |
51179 | 200 | 现货模式下,不支持使用{param0}进行期权下单。 |
51180 | 200 | {param0}的范围应为({param1}, {param2}) |
51181 | 200 | 使用{param0}下单,ordType 只能为限价单 (limit) |
51182 | 200 | 当前账户期权价格类型 pxUsd 和 pxVol 的挂单数量之和,不能超过 {param0} 个 |
51185 | 200 | 单笔订单价值不能超过 {maxOrderValue} USD |
51186 | 200 | 下单失败。在当前保证金模式下,您针对 {param0} 的杠杠倍数设置为 {param1}x,大于平台允许的最大杠杠倍数 {param2}x,请调低杠杆。 |
51187 | 200 | 下单失败,您在 {param0} {param1} 和当前保证金模式下,当前下单张数、持仓及挂单张数之和 {param2},已超过平台上限 {param3} 张,请修改当前订单数量,或撤单、平仓。 |
51201 | 200 | 市价委托单笔价值不能超过 1,000,000 USDT |
51202 | 200 | 市价单下单数量超出最大值 |
51203 | 200 | 普通委托数量超出最大限制{param0} |
51204 | 200 | 限价委托单价格不能为空 |
51205 | 200 | 不支持只减仓操作 |
51206 | 200 | 请先撤销当前下单产品{param0}的只减仓挂单,避免反向开仓 |
51220 | 200 | 分润策略仅支持策略停止时卖币或停止时全部平仓 |
51221 | 200 | 请输入 0-30% 范围内的指定分润比例 |
51222 | 200 | 该策略不支持分润 |
51224 | 200 | 该币对不支持分润 |
51225 | 200 | 分润跟单策略不支持手动立即触发策略 |
51226 | 200 | 分润跟单策略不支持修改策略参数 |
51250 | 200 | 策略委托价格不在正确范围内 |
51251 | 200 | 创建冰山委托时,策略委托类型错误 |
51252 | 200 | 策略委托数量不在正确范围内 |
51253 | 200 | 冰山委托单笔均值超限 |
51254 | 200 | 冰山委托单笔均值错误 |
51255 | 200 | 冰山委托单笔委托超限 |
51256 | 200 | 冰山委托深度错误 |
51257 | 200 | 跟踪委托回调服务错误,回调幅度限制为{min}<x<={max}% |
51258 | 200 | 跟踪委托失败,卖单激活价格需大于最新成交价格 |
51259 | 200 | 跟踪委托失败,买单激活价格需小于最新成交价格 |
51260 | 200 | 每个用户最多可同时持有{param0}笔未成交的跟踪委托 |
51261 | 200 | 每个用户最多可同时持有{param0}笔未成交的止盈止损 |
51262 | 200 | 每个用户最多可同时持有{param0}笔未成交的冰山委托 |
51263 | 200 | 每个用户最多可同时持有{param0}笔未成交的时间加权单 |
51264 | 200 | 时间加权单笔均值超限 |
51265 | 200 | 时间加权单笔上限错误 |
51267 | 200 | 时间加权扫单比例出错 |
51268 | 200 | 时间加权扫单范围出错 |
51269 | 200 | 时间加权委托间隔错误,应为{min}<=x<={max} |
51270 | 200 | 时间加权委托深度限制为 0<x<=1% |
51271 | 200 | 时间加权委托失败,扫单比例应该为 0<x<=100% |
51272 | 200 | 时间加权委托失败,扫单范围应该为 0<x<=1% |
51273 | 200 | 时间加权委托总量应为大于 0 |
51274 | 200 | 时间加权委托总数量需大于单笔上限 |
51275 | 200 | 止盈止损市价单笔委托数量不能超过最大限制 |
51276 | 200 | 止盈止损市价单不能指定价格 |
51277 | 200 | 止盈触发价格不能大于最新成交价 |
51278 | 200 | 止损触发价格不能小于最新成交价 |
51279 | 200 | 止盈触发价格不能小于最新成交价 |
51280 | 200 | 止损触发价格不能大于最新成交价 |
51281 | 200 | 计划委托不支持使用tgtCcy参数 |
51282 | 200 | 吃单价优于盘口的比例范围 |
51283 | 200 | 时间间隔的范围{param0}s~{param1}s |
51284 | 200 | 单笔数量的范围{param0}~{param1} |
51285 | 200 | 委托总量的范围{param0}~{param1} |
51286 | 200 | 下单金额需大于等于{param0} |
51287 | 200 | 当前策略不支持此交易品种 |
51288 | 200 | 策略正在停止中,请勿重复点击 |
51289 | 200 | 策略配置不存在,请稍后再试 |
51290 | 200 | 策略引擎正在升级,请稍后重试 |
51291 | 200 | 策略不存在或已停止 |
51292 | 200 | 策略类型不存在 |
51293 | 200 | 策略不存在 |
51294 | 200 | 该策略暂不能创建,请稍后再试 |
51295 | 200 | PM账户不支持ordType为{param0}的策略委托单 |
51298 | 200 | 交割、永续合约的买卖模式下,不支持计划委托 |
51299 | 200 | 策略委托失败,用户最多可持有{param0}笔该类型委托 |
51300 | 200 | 止盈触发价格不能大于标记价格 |
51302 | 200 | 止损触发价格不能小于标记价格 |
51303 | 200 | 止盈触发价格不能小于标记价格 |
51304 | 200 | 止损触发价格不能大于标记价格 |
51305 | 200 | 止盈触发价格不能大于指数价格 |
51306 | 200 | 止损触发价格不能小于指数价格 |
51307 | 200 | 止盈触发价格不能小于指数价格 |
51308 | 200 | 止损触发价格不能大于指数价格 |
51309 | 200 | 集合竞价期间不能创建策略 |
51310 | 200 | 逐仓自主划转保证金模式不支持ordType为iceberg、twap的策略委托单 |
51311 | 200 | 移动止盈止损委托失败,回调幅度限制为{min}<x<={max} |
51312 | 200 | 移动止盈止损委托失败,委托数量范围{min}<x<={max} |
51313 | 200 | 逐仓自主划转模式不支持策略部分 |
51317 | 200 | 币币杠杆不支持计划委托 |
51327 | 200 | closeFraction 仅适用于交割合约和永续合约 |
51328 | 200 | closeFraction 仅适用于只减仓订单 |
51329 | 200 | closeFraction 仅适用于买卖模式 |
51330 | 200 | closeFraction 仅适用于止盈止损市价订单 |
51331 | 200 | closeFraction仅限于平仓单 |
51332 | 200 | 组合保证金模式不支持closeFraction |
51333 | 200 | 开平模式下的平仓单或买卖模式下的只减仓单无法附带止盈止损 |
51340 | 200 | 投入保证金需大于{0}{1} |
51341 | 200 | 当前策略状态下暂不支持平仓 |
51342 | 200 | 已有平仓单,请稍后重试 |
51343 | 200 | 止盈价格需小于区间最低价格 |
51344 | 200 | 止损价格需大于区间最高价格 |
51345 | 200 | 策略类型不是网格策略 |
51346 | 200 | 最高价格不能低于最低价格 |
51347 | 200 | 暂无可提取利润 |
51348 | 200 | 止损价格需小于区间最低价格 |
51349 | 200 | 止盈价格需大于区间最高价格 |
51350 | 200 | 暂无可推荐参数 |
51351 | 200 | 单格收益必须大于0 |
51352 | 200 | 币对数量范围{pairNum1} - {pairNum2} |
51353 | 200 | 存在重复币对{existingPair} |
51354 | 200 | 币对比例总和需等于100% |
51355 | 200 | 定投日期范围{date1} - {date2} |
51356 | 200 | 定投时间范围{0}~{1} |
51357 | 200 | 时区范围 {timezone1} - {timezone2} |
51358 | 200 | 每个币种的投入金额需大于{amount} |
51359 | 200 | 暂不支持定投该币种{0} |
51370 | 200 | 杠杆倍数范围{0}~{1} |
51380 | 200 | 市场行情不符合策略配置 |
51381 | 200 | 单网格利润率不在区间内 |
51382 | 200 | 策略不支持停止信号触发 |
51383 | 200 | 最小价格必须小于最新成交价 |
51384 | 200 | 信号触发价格必须大于最小价格 |
51385 | 200 | 止盈价必须大于最小价格 |
51386 | 200 | 最小价格必须大于1/2最新成交价 |
51387 | 200 | 止损价格应小于无限网格的区间最低价 |
51388 | 200 | 策略已在运行中 |
51389 | 200 | 触发价格需小于{0} |
51390 | 200 | 触发价格需小于止盈价格 |
51391 | 200 | 触发价格需大于止损价格 |
51392 | 200 | 止盈价格需大于触发价格 |
51393 | 200 | 止损价格需小于触发价格 |
51394 | 200 | 触发价格需大于止盈价格 |
51395 | 200 | 触发价格需小于止损价格 |
51396 | 200 | 止盈价格需小于触发价格 |
51397 | 200 | 止损价格需大于触发价格 |
51398 | 200 | 当前行情满足停止条件,无法创建策略 |
51399 | 200 | 当前杠杆下最大可投入金额为 {amountLimit} {quoteCurrency},请减少投入金额后再试。 |
51400 | 200 | 由于订单已完成、已撤销或不存在,撤单失败 |
51400 | 200 | 撤单失败,订单不存在(仅适用于价差速递) |
51401 | 200 | 撤单失败,订单已撤销(仅适用于价差速递) |
51402 | 200 | 撤单失败,订单已完成(仅适用于价差速递) |
51403 | 200 | 撤单失败,该委托类型无法进行撤单操作 |
51404 | 200 | 价格发现第二阶段您不可撤单 |
51405 | 200 | 撤单失败,您当前没有未成交的订单 |
51406 | 400 | 撤单数量超过最大允许单数{param0} |
51407 | 200 | ordIds 和 clOrdIds 不能同时为空 |
51408 | 200 | 币对 id 或币对名称与订单信息不匹配 |
51409 | 200 | 币对 id 或币对名称不能同时为空 |
51410 | 200 | 撤单失败,订单已处于撤销中 |
51411 | 200 | 用户没有执行mass cancel的权限 |
51412 | 200 | 撤单超时,请稍后重试 |
51416 | 200 | 委托已触发,暂不支持撤单 |
51413 | 200 | 撤单失败,接口不支持该委托类型的撤单 |
51415 | 200 | 下单失败,现货交易仅支持设置最新价为触发价格,请更改触发价格并重试 |
51500 | 200 | 价格、数量、止盈/止损不能同时为空 |
51501 | 400 | 修改订单超过最大允许单数{param0} |
51502 | 200 | 修改订单失败,账户 {param0} 可用余额不足 |
51502 | 200 | 修改订单失败,账户 {param0} 可用保证金不足 |
51502 | 200 | 修改订单失败,账户 {param0} 可用余额不足,且未开启自动借币 |
51502 | 200 | 修改订单失败,账户 {param0} 可用保证金不足,且未开启自动借币(PM模式也可以尝试IOC订单降低风险) |
51502 | 200 | 修改订单失败,因为 {param0} 剩余的档位限额不足,导致可借不足(限价挂单以及当前下单需借:{param1}, 剩余额度{param2},限额 {param3},已用额度{param4}。 |
51502 | 200 | 修改订单失败,因为 {param0} 剩余的档位限额不足,导致可借不足(限价挂单以及当前下单需借:{param1}, 剩余额度{param2},限额 {param3},已用额度{param4}。 |
51502 | 200 | 修改订单失败,因为 {param0} 剩余的限额(主账户限额+当前账户锁定的尊享借币额度)不足,导致可借不足(限价挂单以及当前下单需借 {param1},剩余额度 {param2},限额 {param3},已用额度 {param4}。 |
51502 | 200 | 修改订单失败,因为 {param0} 剩余的币对限额不足,导致可借不足 |
51502 | 200 | 修改订单失败,因为 {param0} 剩余的借贷池限额不足,导致可借不足 |
51502 | 200 | 修改订单失败,账户资产不足,美元层面有效保证金小于 IMR(PM模式也可以尝试IOC订单降低风险) |
51502 | 200 | 修改订单失败,delta 校验未通过,因为若成功下单,adjEq 的变化值将小于 IMR 的变化值。建议增加 adjEq 或减少 IMR 占用(PM模式也可以尝试IOC订单降低风险) |
51503 | 200 | 由于订单已完成、已撤销或不存在,改单失败 |
51503 | 200 | 由于订单不存在,改单失败(仅适用于价差速递) |
51505 | 200 | {instId} 不处于集合竞价阶段 |
51506 | 200 | 订单类型不支持改单 |
51508 | 200 | 集合竞价第一阶段和第二阶段不允许改单 |
51509 | 200 | 修改订单失败,订单已撤销(仅适用于价差速递) |
51510 | 200 | 修改订单失败,订单已完成(仅适用于价差速递) |
51511 | 200 | 操作失败,订单价格不满足Post Only条件 |
51512 | 200 | 批量修改订单失败。同一批量改单请求中不允许包含相同订单。 |
51513 | 200 | 对于正在处理的同一订单,改单请求次数不得超过3次 |
51514 | 200 | 修改订单失败,价格长度不能超过 32 个字符 |
51523 | 200 | 不允许在全部仓位止盈止损单上修改订单委托价格,请修改触发价格 |
51524 | 200 | 不允许在全部仓位止盈止损单上修改委托数量,请修改触发价格 |
51525 | 200 | 一键借币止盈止损单不支持修改 |
51526 | 200 | 改单失败,止盈止损单不支持增加或删除止盈/止损 |
51527 | 200 | 改单失败,止盈止损订单不存在 |
51528 | 200 | 止盈止损不支持修改触发类型 |
51529 | 200 | 改单失败,只有交割、永续合约单可以修改止盈止损 |
51530 | 200 | 改单失败,只减仓订单不能附带止盈止损 |
51531 | 200 | 改单失败,止盈止损单修改必须保留一个方向 |
51536 | 200 | 期权的 pxVol 或者 pxUsd 订单不支持修改订单数量 |
51537 | 200 | 非期权产品不支持使用 pxUsd 或者 pxVol |
51600 | 200 | 查询订单的状态不存在 |
51601 | 200 | 订单状态和订单id不能同时存在 |
51602 | 200 | 订单状态或订单id必须存在一个 |
51603 | 200 | 查询订单不存在 |
51604 | 200 | 若想获取文件链接,请先申请下载文件 |
51605 | 200 | 只允许下载过去两年内的历史成交明细文件 |
51606 | 200 | 无法下载当前季度的历史成交明细 |
51607 | 200 | 您已申请下载文件,当前状态为进行中 |
51608 | 200 | 当前季度无历史成交明细 |
51610 | 200 | 只允许下载 2021 年第一季度以来的历史账单流水 |
51611 | 200 | 无法下载当前季度的账单流水 |
51620 | 200 | 您不是节点用户,没有相关权限 |
51621 | 200 | 该用户不是您的直客 |
51156 | 200 | 您当前身份为带单交易员。在开平仓模式下,对于带单合约标的不支持使用该接口平仓 |
51159 | 200 | 您当前身份为带单交易员,在买卖模式下,如需使用该接口下单,委托的方向必须与现有持仓和挂单保持一致 |
51162 | 200 | 您当前有 {instrument} 挂单,请撤单后重试 |
51163 | 200 | 您当前有 {instrument} 持仓,请平仓后重试 |
51165 | 200 | {instrument}只减仓订单数量已达上限 {upLimit},请撤销部分订单后重新下单。 |
51166 | 200 | 当前产品不支持带单 |
51167 | 200 | 下单失败,因为您存在大宗交易的委托订单,请撤销后重新下单 |
51168 | 200 | 下单失败,因为您存在只减仓类型的委托订单,请撤销后重新下单 |
51320 | 200 | 币种占比范围 {PercentNum1}%-{PercentNum2}% |
51321 | 200 | 您正在带单。暂不支持使用套利、冰山或时间加权 (TWAP) 策略带单 |
51322 | 200 | 您当前身份为带单交易员。您的带单合约持仓已经市价全平,系统已撤销止盈止损委托并进行平仓 |
51323 | 200 | 您当前身份为带单交易员。您的带单合约仓位已设置止盈止损,请先撤销原有止盈止损订单 |
51324 | 200 | 您当前身份为带单交易员,并持有 {instrument} 仓位。平仓委托张数需要与可平张数一致 |
51325 | 200 | 您当前身份为带单交易员。下止盈止损单时,请选择市价作为委托价格 |
51326 | 200 | 您当前身份为带单交易员,下止盈止损单时,委托价格类型必须为市价 |
51326 | 200 | 您当前身份为带单交易员,下止盈止损单时,委托价格类型必须为市价 |
54000 | 200 | 暂不支持币币杠杆业务 |
54001 | 200 | 只有跨币种全仓账户才能设置自动借币 |
54004 | 200 | 下单或改单失败,因为批量订单中的一个订单失败了 |
54005 | 200 | 盘前交割合约请使用逐仓进行交易 |
54006 | 200 | 盘前交易合约用户持仓上限为{posLimit}张 |
54007 | 200 | 不支持该产品 {instId} |
54008 | 200 | 该操作被“撤销 MMP 订单”接口限制。请通过该接口解除限制。 |
54009 | 200 | {param0}的范围应为 [{param1},{param2}] |
54011 | 200 | 盘前交易合约交割前 1 小时内仅允许减少仓位数量,请修改或撤销订单 |
数据类
错误码 | HTTP 状态码 | 错误提示 |
---|---|---|
52000 | 200 | 没有最新行情信息 |
币币/币币杠杆类
Note: 因为码段紧张,需要复用为交易错误码,所以去掉该目录,错误码移到 public 文件中
错误码从 54000 到 54999
错误码 | HTTP 状态码 | 错误提示 |
---|---|---|
54000 | 200 | 暂不支持币币杠杆业务 |
54001 | 200 | 只有跨币种全仓账户才能设置自动借币 |
54004 | 200 | 下单或改单失败,因为批量订单中的一个订单失败了 |
资金类
错误码从 58000 到 58999
错误码 | HTTP 状态码 | 错误提示 |
---|---|---|
58002 | 200 | 请先开通余币宝服务 |
58003 | 200 | 余币宝不支持该币种 |
58004 | 200 | 账户冻结 |
58005 | 200 | 申购/赎回额度不可超过{0} |
58006 | 200 | 币种{0}不支持当前操作 |
58007 | 200 | 资金接口服务异常,请稍后再试。 |
58008 | 200 | 您没有该币种资产 |
58009 | 200 | 币对不存在 |
58010 | 200 | 该链{0}暂不支持 |
58011 | 200 | 抱歉,由于当地法律法规,欧易无法为{region}未认证用户提供服务,请先认证身份以继续使用欧易 |
58012 | 200 | 抱歉,由于当地法律法规,欧易无法为{region}未认证用户提供服务,所以您无法向该用户转账 |
58013 | 200 | 暂不支持提币功能,请咨询客服了解详情 |
58014 | 200 | 暂不支持充值功能,请咨询客服了解详情 |
58015 | 200 | 暂不支持划转功能,请咨询客服了解详情 |
58016 | 200 | 仅交易团队主账户有权限调用此接口 |
58100 | 200 | 行权或结算中,暂无法转入或转出 |
58101 | 200 | 划转冻结 |
58102 | 429 | 已达到速率限制。请参考相应的 API 文档与节流请求 |
58103 | 200 | 该账户划转功能暂不可用,详情请联系客服 |
58104 | 200 | 您在法币区的交易异常,现已被限制划转功能,请您联系在线客服以解除限制 |
58105 | 200 | 您在法币区的交易异常,现已被限制划转功能,请您在网页或APP进行法币划 转操作以完成身份验证 |
58106 | 200 | 美元可转校验未通过 |
58107 | 200 | 币种可转校验未通过 |
58110 | 200 | 您所交易过或者持仓的 {businessType} {instFamily} 产品触发市场风控,平台已暂停您的资金转出功能,请稍后重试。如需进一步的协助,请联系客服。 |
58111 | 200 | 永续合约正在收取资金费,暂时无法做资金划转,请稍后重试 |
58112 | 200 | 资金划转失败,请联系客服进行处理 |
58113 | 200 | 该币种不支持划转 |
58114 | 400 | 转账金额必须大于 0 |
58115 | 200 | 子账户不存在 |
58116 | 200 | 转出数量大于最大可转数量 |
58117 | 200 | 账户划转失败,请先处理负资产后再划转 |
58119 | 200 | {0} 子账户没有转出权限,请先设置 |
58120 | 200 | 划转服务暂不可用,请稍后重试 |
58121 | 200 | 此次划转将导致您的仓位风险水平较高,进而可能引起爆仓。您需要重新调整划转金额,确保仓位处于安全水平后,再进行划转操作。 |
58122 | 200 | 您的一部分现货正用于仓位间的 Delta 对冲,若划转数量超过可用金额,可能会影响现有的现货对冲结构,进而导致维持保证金率增加,请留意您的风险水平。 |
58123 | 200 | 参数from与参数to不可相同 |
58124 | 200 | 资金划转中,划转id:{trId},请通过接口(GET /api/v5/asset/transfer-state)获取最新状态 |
58125 | 200 | 不可交易资产仅支持子账户转主账户 |
58126 | 200 | 不可交易资产划转,只能在资金账户间互转 |
58127 | 200 | 主账户 API key 不支持当前 type 划转类型参数,请参考 API 文档描述 |
58128 | 200 | 子账户 API key 不支持当前 type 划转类型参数,请参考 API 文档描述 |
58129 | 200 | {param}错误或{param}与type不匹配 |
58131 | 200 | 根据当地法律法规,欧易无法为未认证用户提供服务,请先完成身份认证再继续划转 |
58132 | 200 | 根据当地法律法规,我们无法为仅完成基本认证的用户提供服务,请先完成高级认证再继续划转 |
58200 | 200 | 该币种暂不支持从{0}提现至{1},敬请谅解 |
58201 | 200 | 今日提现金额累计超过每日限额 |
58202 | 200 | NEO最小提现数量为1,且提现数量必须为整数 |
58203 | 200 | 请先添加提现地址 |
58204 | 200 | 因您的账户活动触发风控,暂停提现。请联系客户支持寻求帮助。 |
58205 | 200 | 提现金额大于单笔提现最大金额 |
58206 | 200 | 提现金额小于单笔最小提现金额 |
58207 | 200 | 提币地址不在认证地址列表内 (带标签的提币地址格式为 “address:label”) |
58208 | 200 | 提现失败,邮箱未绑定 |
58209 | 200 | 子账户不能充值或提现,请在主账户中进行提现。 |
58210 | 200 | 提现手续费大于最大值(提现接口,提现手续费输入有误) |
58211 | 200 | 提现手续费小于最小值(提现接口,手续费输入有误) |
58212 | 200 | 提现手续费应填写为提币数量的{0}% |
58213 | 200 | 内部转账地址不合法,必须是邮箱、手机号或者账户名 |
58214 | 200 | {chainName}维护中,暂停提币 |
58215 | 200 | 提币申请ID不存在 |
58216 | 200 | 不允许执行该操作 |
58217 | 200 | 您当前的提现地址存在风险,暂时不能提现,详情请联系客服 |
58218 | 200 | 内部提现失败,请检查参数toAddr与areaCode |
58219 | 200 | 为保障您的资金安全,修改手机号/邮箱/谷歌验证后24小时之内将无法提现 |
58220 | 200 | 提币请求已撤销 |
58221 | 200 | toAddr参数格式有误,提币地址需要加上标签,格式应该为“地址:标签” |
58222 | 200 | 无效的提币地址 |
58223 | 200 | 提币到此合约地址需要支付更高的手续费 |
58224 | 200 | 该类型币种暂不支持链上提币到 OKX 地址,请通过内部转账进行提币 |
58225 | 200 | 抱歉,由于当地法律法规,欧易无法为{region}未认证用户提供服务,所以您无法向该用户转账 |
58226 | 200 | {chainName} 已下线,不支持提币 |
58227 | 200 | 不可交易资产提币只能全部提出 |
58228 | 200 | 不可交易资产提币要求 API key 必须绑定 IP |
58229 | 200 | 资金账户手续费不足 {fee} USDT |
58230 | 200 | 根据欧易的合规政策,您需要完成 Lv. 1 身份认证方可继续提币 |
58231 | 200 | 由于您的收款人尚未完成 Lv. 1 身份认证,内部转账暂时无法完成 |
58232 | 200 | 您已超出个人身份验证 (Lv.1) 的提币上限,请完成照片验证 (Lv. 2) ,即可提升提币限额 |
58233 | 200 | 根据当地法律法规,欧易无法为未认证用户提供服务,请先完成身份认证再继续提币 |
58234 | 200 | 根据当地法律法规,收款人必须完成身份认证方可收到您的转账 |
58235 | 200 | 根据当地法律法规,欧易无法为仅完成基本认证的用户提供服务,请先完成高级认证再继续提币 |
58236 | 200 | 根据当地法律法规,仅完成基础认证的收款人无法收取转账,您的收款人必须完成高级认证方可收到您的转账 |
58237 | 200 | 根据当地法律法规,请提供准确的接收方信息 (rcvrInfo)。对于交易所地址,请一并提供交易所信息和接收人的身份信息({recipientParameters})。 |
58238 | 200 | 提币到交易所地址需提供完整的接收方信息,包括交易所信息和接收人的身份信息 |
58240 | 200 | 根据当地法律法规,为保障用户安全,您需要完成身份认证方可继续使用我们的服务。若您不希望进行身份认证,请联系客服团队了解详情。我们致力于为用户提供一个安全的平台,感谢您的理解与支持。 |
58241 | 200 | 根据当地法律法规,内部转账功能暂时无法使用 |
58242 | 200 | 受收款人所在地法律法规限制,本次内部转账无法完成 |
58243 | 200 | 由于您的收款人尚未完成法币入金,对方不能接收本次转账 |
58244 | 200 | 请先完成法币入金,再进行您的操作 |
58248 | 200 | 根据当地法律法规限制,提币API已被暂时禁用。请使用OKX网页或OKX手机APP进行提币操作。 |
58249 | 200 | 该币种暂不支持 API 提币,请于欧易网页端或 App 端进行提币。 |
58300 | 200 | 创建充值地址超过上限 |
58301 | 200 | 充值地址不存在 |
58302 | 200 | 充值地址需要标签 |
58303 | 200 | 该链{chain}充值当前不可用 |
58304 | 200 | 创建invoice失败 |
58305 | 200 | 找不到充币地址,请完成身份认证并生成充币地址 |
58306 | 200 | 根据欧易的合规政策,您需要完成 Lv. 1 身份认证方可继续充币 |
58307 | 200 | 您已超出个人身份验证 (Lv.1) 的充币上限。超出充币上限的资产已被冻结,请完成照片验证 (Lv. 2) ,即可提升充币限额 |
58308 | 200 | 根据当地法律法规,欧易无法为未认证用户提供服务,请先完成身份认证再继续充币 |
58309 | 200 | 根据当地法律法规,欧易无法为仅完成基本认证的用户提供服务,请先完成高级认证再继续充币 |
58310 | 200 | 无法创建新的充币地址,请稍后重试 |
58350 | 200 | 您的余额不足 |
58351 | 200 | invoice已经过期 |
58352 | 200 | invoice无效 |
58353 | 200 | 充币数量需要在限额范围内 |
58354 | 200 | 单日达到生成invoice 10,000 个的上限 |
58355 | 200 | 用户没有使用此API接口的权限,请联系您的客户经理 |
58356 | 200 | 同节点账户不支持闪电网络充币或提币 |
58358 | 200 | 参数fromCcy与参数toCcy不可相同 |
58370 | 200 | 小额兑换功能每日使用次数超限 |
58373 | 200 | {ccy} 最小兑换数量为 {amount} |
58374 | 200 | 小额资产超过最大限制 {exchangeOKBLimitMax} {currency} |
58375 | 200 | 小额资产必须超过最小限制{exchangeOKBLimitMin} {currency} |
账户类
错误码从 59000 到 59999
错误码 | HTTP 状态码 | 错误提示 |
---|---|---|
59000 | 200 | 设置失败,请在设置前关闭任何挂单或持仓 |
59001 | 200 | 当前存在借币,暂不可切换 |
59002 | 200 | 子账户设置失败,请在设置前关闭任何子账户挂单、持仓或策略 |
59004 | 200 | 只支持同一业务线下交易产品ID |
59005 | 200 | 逐仓自主划转保证金模式,初次划入仓位的资产价值需大于 10,000 USDT |
59006 | 200 | 此功能即将下线,无法切换到此模式 |
59101 | 200 | 杠杆倍数无法修改,请撤销所有逐仓挂单后进行杠杆倍数修改 |
59102 | 200 | 杠杆倍数超过最大杠杆倍数,请降低杠杆倍数 |
59103 | 200 | 杠杆倍数过低,账户中没有足够的可用保证金可以追加,请提高杠杆倍数 |
59104 | 200 | 杠杆倍数过高,借币仓位已超过该杠杆倍数的最大仓位,请降低杠杆倍数 |
59105 | 400 | 杠杆倍数设置不能小于{0},请提高杠杆倍数 |
59106 | 200 | 您下单后仓位总张数所处档位的最高可用杠杆为{0},请重新调整 |
59107 | 200 | 杠杆倍数无法修改,请撤销所有全仓挂单后修改杠杆倍数 |
59108 | 200 | 杠杆倍数过低,账户中保证金不足,请提高杠杆倍数 |
59109 | 200 | 调整后,账户权益小于所需保证金,请重新调整杠杆倍数 |
59110 | 200 | 该{0}对应的产品业务线不支持使用tgtCcy参数 |
59111 | 200 | PM账户下衍生品全仓不支持杠杆查询 |
59112 | 200 | 当前存在逐仓/全仓挂单,请撤销所有逐仓挂单后进行杠杆倍数修改 |
59113 | 200 | 根据当地法律法规,您所在的地区无法使用保证金交易相关服务,如果您不是该地区居民,请进行KYC2身份认证 |
59114 | 200 | 根据当地法律法规,您所在的地区无法使用保证金交易相关服务 |
59125 | 200 | {0} 不支持当前操作 |
59200 | 200 | 账户余额不足 |
59201 | 200 | 账户余额是负数 |
59202 | 200 | PM 账户下衍生品全仓不支持最大可开仓数量的查询 |
59300 | 200 | 追加保证金失败,指定仓位不存在 |
59301 | 200 | 调整保证金超过当前最大可调整数量 |
59302 | 200 | 当前仓位存在平仓挂单,请撤销平仓挂单后进行保证金修改 |
59303 | 200 | 可用保证金不足,请尝试增加保证金或减少借币数量 |
59304 | 200 | 借币币种权益不足,请至少留有一天的利息 |
59305 | 200 | 您当前没有进行尊享借币,无法设置尊享借币优先 |
59306 | 200 | 借币数量超过总额度,不可继续借币 |
59307 | 200 | 当前用户不满足尊享借币条件 |
59308 | 200 | 市场化借币额度不足,VIP还币失败 |
59309 | 200 | 还币数量超出已借数量,还币失败 |
59310 | 200 | 当前账户不支持尊享借币 |
59311 | 200 | 存在尊享借币,无法设置 |
59312 | 200 | {币种}不支持尊享借币 |
59313 | 200 | 无法还币。在一键借币模式下,您目前没有 ${ccy} 借币(币对:${ccyPair}) |
59314 | 200 | 当前用户该订单不是借币中,不允许还币 |
59315 | 200 | VIP借币功能正在升级中,稍等10分钟之后再次操作 |
59316 | 200 | 当前用户该币种存在借币申请中的订单,不允许借币 |
59317 | 200 | 您当前币种 VIP 借币中的订单数量不能大于{maxNumber}(单) |
59319 | 200 | 由于您的资金已被占用,您暂时无法偿还借贷,请解除占用状态再进行还币 |
59320 | 200 | 超出借贷限额 |
59321 | 200 | 您所在的地区不支持借币 |
59322 | 200 | 此订单无法执行当前操作 |
59323 | 200 | 借贷金额小于最低限额 |
59324 | 200 | 没有可用的借贷订单 |
59325 | 200 | 借币订单仅支持全部还币 |
59326 | 200 | 出借数量应在 {minLend} ~ {lendQuota} 范围内 |
59327 | 200 | 由于您续借的金额不足以偿还您当前的借贷,您无法自动续借,请手动还款以避免高额逾期利息 |
59328 | 200 | 出借年化应在 {minRate} ~ {maxRate} 范围内 |
51152 | 200 | 一键借币模式下,不支持自动借币与自动还币和手动类型混合下单。 |
59401 | 200 | 持仓价值达到持仓限制 |
59402 | 200 | 查询条件中的instId的交易产品当前不是可交易状态,请填写单个instid逐个查询状态详情 |
59500 | 200 | 仅主账户有操作权限 |
59501 | 200 | 每个账户最多可创建 50 个 API key |
59502 | 200 | 此备注名已存在。 请输入唯一的 API key 备注名称 |
59503 | 200 | 每个 API key 最多可以绑定 20 个 IP 地址 |
59504 | 200 | 子账户不支持提币功能,请在主账户中进行提币 |
59505 | 200 | passphrase 格式不正确,支持6-32位字母和数字组合 (区分大小写,不支持空格符号) |
59506 | 200 | API key 不存在 |
59507 | 200 | 转出账户和转入账户必须是同一个母账户下的2个不同的子账户 |
59508 | 200 | {0}该子账户被冻结 |
59509 | 200 | 用户没有重置做市商保护状态的权限 |
59510 | 200 | 子账户不存在 |
59512 | 200 | 不支持为独立经纪商子账号设置主动转出权限,所有独立经纪商子账户默认有主动转出权限 |
59601 | 200 | 子账户名称已存在 |
59603 | 200 | 创建的子账户数量已达到上限 |
59604 | 200 | 仅母账APIkey有操作此接口的权限 |
59606 | 200 | 删除失败,请将子账户中的余额划转到母账户 |
59608 | 200 | 仅Broker账户有操作此接口的权限 |
59609 | 200 | 经纪商已经存在 |
59610 | 200 | 经纪商不存在 |
59611 | 200 | 经纪商状态是未审核 |
59612 | 200 | 时间参数格式转换失败 |
59613 | 200 | 当前未与子账户建立托管关系 |
59614 | 200 | 托管子账户不支持此操作 |
59615 | 200 | 起始日期和结束日期的时间间隔不能超过180天。 |
59616 | 200 | 起始日期不能大于结束日期 |
59617 | 200 | 子账户创建成功,账户等级设置失败 |
59618 | 200 | 创建子账户失败 |
59619 | 200 | 该接口不支持独立经纪商子账户,请使用为独立经纪商提供的专有接口。 |
59622 | 200 | 您正在创建独立经纪商 2 级子账号。该 1 级子账号不存在或有误,请先创建 1 级子账号或使用正确的 1 级子账号。 |
59623 | 200 | 独立经纪商 1 级子账号下存在 2 级子账号,请删除 2 级子账号后重试。 |
59648 | 200 | 调整后实际现货对冲占用数量不足,有潜在爆仓风险,请调整现货对冲占用数量 |
59649 | 200 | 关闭现货对冲占用模式可能会增加强制平仓的风险。请调整仓位,使保证金率处于安全状态。 |
59650 | 200 | 切换对冲单位可能会增加强制平仓的风险。请调整仓位,使保证金率处于安全状态。 |
59651 | 200 | 未开启现货对冲占用,无法设置现货对冲数量 |
59652 | 200 | 不支持为非杠杆币种设置现货对冲占用数量 |
WebSocket
WebSocket 错误消息均为英文,中文错误消息仅供参考
公共
错误码从 60000 到 64002
通用类
错误码 | 错误消息 |
---|---|
60004 | 无效的 timestamp |
60005 | 无效的 apiKey |
60006 | 请求时间戳过期 |
60007 | 无效的签名 |
60008 | 当前服务不支持订阅{0}频道,请检查WebSocket地址 |
60009 | 登录失败 |
60011 | 用户需要登录 |
60012 | 不合法的请求 |
60013 | 无效的参数 args |
60014 | 用户请求频率过快,超过该接口允许的限额 |
60018 | 错误的 URL 或者 {0} 不存在,请参考 API 文档使用正确的 URL,频道和参数 |
60019 | 无效的op{0} |
60020 | 超出最大允许订阅的APIKey数量{0} |
60021 | 该功能不支持多账户登录使用 |
60022 | 批量登录部分成功 |
60023 | 批量登录请求过于频繁 |
60024 | passphrase不正确 |
60025 | 超出最大允许订阅的token数量{0} |
60026 | 不支持APIKey和token同时登录 |
60027 | 参数{0}不可为空 |
60028 | 当前服务不支持此功能,请检查WebSocket地址 |
60029 | 该频道仅支持手续费等级为 VIP5 及以上的用户订阅使用 |
60030 | books50-l2-tbt 深度频道仅支持手续费等级为 VIP4 及以上的用户订阅使用 |
60031 | WebSocket地址不支持多账户和重复登录 |
60032 | API key 不存在 |
63999 | 由于内部错误,登录失败,请稍后重试。 |
64000 | 订阅参数 uly 已失效,请您尽快将 uly 替换为 instFamily,更多详情可参考: https://www.okx.com/cn/help-center/changes-to-v5-api-websocket-subscription-parameter-and-url. |
64001 | 该频道到已经迁移到了 '/business' URL,请使用新的 URL。更多详情可参考:https://www.okx.com/cn/help-center/changes-to-v5-api-websocket-subscription-parameter-and-url. |
64002 | "/business" URL 不支持该频道. 请使用"/private" URL(对于私有频道), 或者"/public" URL(对于公有频道),更多详情可参考:https://www.okx.com/cn/help-center/changes-to-v5-api-websocket-subscription-parameter-and-url. |
64003 | 用户交易费等级不支持访问该频道 |
关闭帧
状态码 | 文案 |
---|---|
1009 | 用户订阅请求过大 |
4001 | 登录失败 |
4002 | 参数不合法 |
4003 | 登录账户多于100个 |
4004 | 空闲超时30秒 |
4005 | 写缓冲区满 |
4006 | 异常场景关闭 |
4007 | API key已更新或删除,请重新连接 |
4008 | 总订阅频道数量超过最大限制 |
4009 | 该连接订阅频道数超限制 |