Skip to content

公共数据

公共数据功能模块下的API接口不需要身份验证。

REST API

获取交易产品基础信息

获取所有可交易产品的信息列表。

限速:20次/2s

限速规则:IP + Instrument Type

HTTP请求

GET /api/v5/public/instruments

请求示例

shell
GET /api/v5/public/instruments?instType=SPOT
python
import okx.PublicData as PublicData

flag = "0"  # 实盘:0 , 模拟盘:1

publicDataAPI = PublicData.PublicAPI(flag=flag)

# 获取交易产品基础信息
result = publicDataAPI.get_instruments(
    instType="SPOT"
)
print(result)

请求参数

参数名类型是否必须描述
instTypeString产品类型
SPOT:币币
MARGIN:币币杠杆
SWAP:永续合约
FUTURES:交割合约
OPTION:期权
EVENTS:事件合约
seriesIdString可选系列 ID,如 BTC-ABOVE-DAILY。当 instTypeEVENTS 时必填
instFamilyString交易品种,仅适用于交割/永续/期权
instIdString产品ID

返回结果

json
{
    "code":"0",
    "msg":"",
    "data":[
      {
            "alias": "",
            "auctionEndTime": "",
            "baseCcy": "BTC",
            "category": "1",
            "ctMult": "",
            "ctType": "",
            "ctVal": "",
            "ctValCcy": "",
            "contTdSwTime": "1704876947000",
            "expTime": "",
            "futureSettlement": false,
            "groupId": "1",
            "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": "",
            "openType": "call_auction",
            "preMktSwTime": "",
            "quoteCcy": "USDT",
            "tradeQuoteCcyList": [
                "USDT"
            ],
            "settleCcy": "",
            "state": "live",
            "ruleType": "normal",
            "stk": "",
            "tickSz": "0.1",
            "uly": "",
            "instIdCode": 1000000000,
            "instCategory": "1",
            "initPxLmtPct": "0.05",
            "floatPxLmtPct": "0.03",
            "maxPxLmtPct": "0.15",
            "upcChg": [
                {
                    "param": "tickSz",
                    "newValue": "0.0001",
                    "effTime": "1704876947000"
                }
            ]
        }
    ]
}

返回参数

参数名类型描述
instTypeString产品类型
seriesIdString系列 ID,如 BTC-ABOVE-DAILY。仅适用于 EVENTS
instIdString产品id, 如 BTC-USDT
ulyString标的指数,如 BTC-USD,仅适用于杠杆/交割/永续/期权
groupIdString交易产品手续费分组ID
现货:
3:TRY现货
5:BRL现货
7:AED现货
8:AUD现货
10:SGD现货
11:零手续费现货
12:现货分组一
13:现货分组二
14:现货分组三
15: 现货特别分组
17:现货稳定币分组
22:现货RWA分组二

交割合约:
5:交割合约分组一
6:交割合约分组二
8:XPERP分组二
10:XPERP RWA分组二

永续合约:
4:永续合约分组一
5:永续合约分组二
6:SWAP RWA分组一
7:SWAP RWA分组二

期权:
1:币本位期权

用户需要同时使用instType和groupId来确定一个交易产品的交易手续费分组;用户应该将此接口和获取当前账户交易手续费费率一起使用,以获取特定交易产品的手续费率

部分枚举值可能不适用于您,以实际返回为准
instFamilyString交易品种,如 BTC-USD,仅适用于杠杆/交割/永续/期权
categoryString币种类别(已废弃)
baseCcyString交易货币币种,如 BTC-USDT 中的 BTC ,仅适用于币币/币币杠杆
quoteCcyString计价货币币种,如 BTC-USDT 中的USDT ,仅适用于币币/币币杠杆
settleCcyString盈亏结算和保证金币种,如 BTC 仅适用于交割/永续/期权
ctValString每张合约的面值。计价货币取决于 ctType:线性合约以标的货币计(如BTC-USDT-SWAP,ctVal=0.01 BTC);反向合约以USD计(如BTC-USD-SWAP,ctVal=100 USD)。名义价值:线性 = 张数 × ctVal × 标记价格(计价货币);反向 = 张数 × ctVal(USD固定)。
仅适用于 FUTURES/SWAP/OPTION
ctMultString合约乘数,仅适用于交割/永续/期权
ctValCcyString合约面值计价币种,仅适用于交割/永续/期权
optTypeString期权类型,CP 仅适用于期权
stkString行权价格,仅适用于期权
listTimeString上线时间
Unix时间戳的毫秒数格式,如 1597026383085
auctionEndTimeString集合竞价结束时间,Unix时间戳的毫秒数格式,如 1597026383085
仅适用于通过集合竞价方式上线的币币,其余情况返回""(已废弃,请使用contTdSwTime)
contTdSwTimeString连续交易开始时间,从集合竞价、提前挂单切换到连续交易的时间,Unix时间戳格式,单位为毫秒。e.g. 1597026383085
仅适用于通过集合竞价或提前挂单上线的SPOT/MARGIN,在其他情况下返回""。
preMktSwTimeString盘前交易产品切换为正常交易的时间,Unix时间戳的毫秒数格式,如 1597026383085
仅适用于盘前SWAP 与盘前 X-Perp FUTURES。当盘前 X-Perp 转换为正常 X-Perp 时填充
openTypeString开盘类型
fix_price: 定价开盘
pre_quote: 提前挂单
call_auction: 集合竞价
只适用于SPOT/MARGIN,其他业务线返回""
expTimeString产品下线时间
适用于币币/杠杆/交割/永续/期权,对于 交割/期权,为交割/行权日期;亦可以为产品下线时间,有变动就会推送。
leverString交易所对该合约设定的最大杠杆上限。账户实际可用杠杆可能因VIP等级和仓位大小而更低。用户当前配置的杠杆请使用 GET /api/v5/account/leverage-info 查询。
不适用于 SPOTOPTION
tickSzString最小价格变动单位,如 0.0001
对于 OPTION/EVENTS,该值为 tick band 中的最小 tickSz。如需获取各价格区间的精确 tickSz,请使用"获取期权价格梯度"接口并传入对应的 instType 参数。
lotSzString合约面值最小变动单位(委托量步长),所有委托量(sz)必须为 lotSz 的整数倍,违反则返回错误51121。下单数量精度
合约的数量单位是,现货的数量单位是交易货币
minSzString最小委托量。委托量必须同时满足:sz ≥ minSz 且 sz 为 lotSz 的整数倍。最小下单数量
合约的数量单位是,现货的数量单位是交易货币
ctTypeString合约类型
linear:正向合约,保证金、盈亏及结算均以计价货币计(如BTC-USDT-SWAP以USDT计)。
inverse:反向合约,保证金、盈亏及结算均以标的货币计(如BTC-USD-SWAP以BTC计)。反向合约的USD盈亏为非线性:固定BTC盈亏的USD价值随BTC价格变化。
仅适用于 FUTURES/SWAP
aliasString合约日期别名(已废弃,将于 2026 年 4 月底下线,请使用 expTime 字段获取交割时间)
this_week:本周
next_week:次周
this_month:本月
next_month:次月
quarter:季度
next_quarter:次季度
third_quarter:第三季度
this_five_years:当期五年合约
next_five_years:次期五年合约
仅适用于交割
stateString产品状态
live:交易中
suspend:暂停中
rebase:合约在变基中,不可交易
post_only:仅接受 post-only 订单;已有 post-only 订单可改单和撤单。其他订单类型(市价单、IOC、FOK、普通限价单)将被拒绝。
preopen:预上线,交割和期权合约轮转生成到开始交易;部分交易产品上线前
test:测试中(测试产品,不可交易)
settling:结算中,仅适用于 EVENTS
ruleTypeString交易规则类型
normal:普通交易
pre_market:盘前交易,含盘前 X-Perp FUTURES
rebase_contract:盘前变基合约
xperp:永续合约风格的交割合约,仅适用于部分 FUTURES 合约。盘前 X-Perp 转换为正常 X-Perp 后,由 pre_market 变为 xperp
maxLmtSzString限价单的单笔最大委托数量
合约的数量单位是,现货的数量单位是交易货币
maxMktSzString市价单的单笔最大委托数量
合约的数量单位是,现货的数量单位是USDT
maxLmtAmtString限价单的单笔最大美元价值
maxMktAmtString市价单的单笔最大美元价值
仅适用于币币/币币杠杆
maxTwapSzString时间加权单的单笔最大委托数量
合约的数量单位是,现货的数量单位是交易货币
单笔最小委托数量为 minSz*2
maxIcebergSzString冰山委托的单笔最大委托数量
合约的数量单位是,现货的数量单位是交易货币
maxTriggerSzString计划委托委托的单笔最大委托数量
合约的数量单位是,现货的数量单位是交易货币
maxStopSzString止盈止损市价委托的单笔最大委托数量
合约的数量单位是,现货的数量单位是USDT
futureSettlementBoolean交割合约是否支持每日结算
适用于全仓``交割
tradeQuoteCcyListArray of strings可用于交易的计价币种列表,如 ["USD", "USDC”].
instIdCodeInteger产品唯一标识代码。
对于简单二进制编码,您必须使用 instIdCode 而不是 instId
对于同一instId,实盘和模拟盘的值可能会不一样。
当值还未生成时,返回 null
instCategoryString标的资产类别(产品ID的第一部分)。例如:对于 BTC-USDT-SWAP,instCategory 表示 BTC 所属的资产类别。
1: 加密货币
3: 股票类资产
4: 大宗商品
5: 外汇
6: 债券
"" 当值不可用时返回空字符串
initPxLmtPctString合约上线后前 10 分钟内的初始价格限制区间,小数百分比,例如 0.05 代表 5%。通过 GET /api/v5/public/price-limit 可获取对应价格限制。
适用于 SPOT/MARGIN/SWAP/FUTURESOPTIONEVENTS 返回 ""
floatPxLmtPctString常规交易期间的浮动价格限制区间,小数百分比,例如 0.03 代表 3%。通过 GET /api/v5/public/price-limit 可获取对应价格限制。
适用于 SPOT/MARGIN/SWAP/FUTURESOPTIONEVENTS 返回 ""
maxPxLmtPctString最大价格限制上限(下单价格相对指数价格偏离的硬性上限),小数百分比,例如 0.15 代表 15%。通过 GET /api/v5/public/price-limit 可获取对应价格限制。
适用于 SPOT/MARGIN/SWAP/FUTURESOPTIONEVENTS 返回 ""
rpiMinLevelStringRPI 买卖间最小间距,以有机订单的价格档位计。
rpiMinPxBandString距对手方有机最优价的最小距离,以基点(bps)计。
upcChgArray of objects即将变更的参数列表。当没有即将变更的参数时,返回空数组 []
> paramString即将变更的参数名称。
tickSz
minSz:若为交割/永续合约(FUTURES/SWAP),lotSz 会同步变更。
maxMktSz
> newValueString即将变更的参数值。
> effTimeString生效时间。Unix 时间戳格式,例如 1597026383085

当合约预上线时,状态变更为预上线(即新生成一个合约,新合约会处于预上线状态);

listTime以及contTdSwTime 对于通过集合竞价/提前挂单方式上线的币币,listTime为集合竞价/提前挂单的开始时间,contTdSwTime为集合竞价/提前挂单的结束时间、连续交易的开始时间;对于其他情况及业务线,listTime即为连续交易开始时间,contTdSwTime将返回""

state 对于币币杠杆永续交割,状态state在时间到达listTime时由preopen转变为live。对于期权合约,由于内部处理原因,状态可能在listTime之后短暂延迟变为live。建议在下单前确认statelive。 当产品下线的时候(如交割合约被交割的时候,期权合约被行权的时候),查询不到该产品

产品下线公告一经发出,接口及频道会更新下线时间(expTime)。 产品上线公告一经发出,接口及频道会更新上线时间:

  1. 对于币币/杠杆/永续, 该事件仅适用于产品类型(instType), 交易产品ID(instId), 上线时间(listTime), 产品状态(state)字段;
  2. 对于交割,该事件仅适用于产品类型(instType), 交易品种(instFamily), 上线时间(listTime), 产品状态(state)字段;
  3. 其他字段暂时为空,会比上线时间至少提前 5 分钟更新完整,然后 WebSocket 才会支持通过对应的交易产品ID/交易品种进行订阅。

获取系列

获取 OKX 预测市场的系列列表。

限速:10次/2s

限速规则:IP

HTTP请求

GET /api/v5/public/event-contract/series

请求示例

shell
GET /api/v5/public/event-contract/series?seriesId=BTC-ABOVE-DAILY

请求参数

参数名类型是否必须描述
seriesIdString系列 ID,如 BTC-ABOVE-DAILY。不传则返回所有系列。

返回示例

json
{
    "code": "0",
    "data": [
        {
            "seriesId": "BTC-ABOVE-DAILY",
            "freq": "daily",
            "title": "BTC price above 15k",
            "category": "Crypto",
            "settlement": {
                "method": "price_above",
                "closeEarly": false,
                "srcName": "okx_index",
                "underlying": "BTC-USDT"
            }
        }
    ],
    "msg": ""
}

返回参数

参数名类型描述
seriesIdString系列 ID,如 BTC-ABOVE-DAILY
freqString系列频率
five_min
fifteen_min
hourly
daily
monthly
titleString系列标题
categoryString所属分类,如 Crypto
settlementObject结算信息
> methodString结算方式。
price_up_down:价格涨跌
price_above:价格高于
hit:触及(价格触达行权价格,立即结算)
between:区间(结算价格在 [floorStrike, capStrike) 范围内)
> closeEarlyBoolean是否可以在到期时间前提前结算。
true
false
> srcNameString结算数据来源名称,如 okx_indexcf_benchmark_index
> underlyingStringOKX 交易对格式的标的价格,如 BTC-USDT。仅适用于价格相关结算方式。

获取事件

获取 OKX 预测市场某系列下的事件列表,包含已到期事件。返回数据按 expTime 和 eventId 降序排列。

限速:10次/2s

限速规则:IP

HTTP请求

GET /api/v5/public/event-contract/events

请求示例

shell
GET /api/v5/public/event-contract/events?seriesId=BTC-ABOVE-DAILY

请求参数

参数名类型是否必须描述
seriesIdString系列 ID,如 BTC-ABOVE-DAILY
eventIdString事件 ID,如 BTC-ABOVE-DAILY-260224-1600
stateString事件状态过滤。
preopen
live
settling
expired
limitString返回结果数量,最大 100,默认 100
beforeString分页,返回早于请求 expTime 的更新记录,不包含该时间戳
afterString分页,返回晚于请求 expTime 的更旧记录,不包含该时间戳

返回示例

json
{
    "code": "0",
    "data": [
        {
            "seriesId": "BTC-ABOVE-DAILY",
            "eventId": "BTC-ABOVE-DAILY-260224-1600",
            "expTime": "1769697132335",
            "state": "live"
        }
    ],
    "msg": ""
}

返回参数

参数名类型描述
seriesIdString系列 ID,如 BTC-ABOVE-DAILY
eventIdString事件 ID,如 BTC-ABOVE-DAILY-260224-1600
fixTimeString执行价格确定时间。Unix时间戳的毫秒数格式,如 1597026383085。仅适用于 price_up_down 结算方式。
expTimeString该事件的行权时间。Unix时间戳的毫秒数格式,如 1597026383085
stateString事件状态。
preopen
live
settling
expired

获取市场

获取 OKX 预测市场某事件下的市场列表。返回数据按 expTime 和 floorStrike 降序排列。

限速:10次/2s

限速规则:IP

HTTP请求

GET /api/v5/public/event-contract/markets

请求示例

shell
GET /api/v5/public/event-contract/markets?seriesId=BTC-ABOVE-DAILY

请求参数

参数名类型是否必须描述
seriesIdString系列 ID,如 BTC-ABOVE-DAILY
eventIdString事件 ID,如 BTC-ABOVE-DAILY-260224-1600
instIdString产品 ID,如 BTC-ABOVE-DAILY-260224-1600-65000
stateString市场状态过滤。
preopen
live
settling
expired
limitString返回结果数量,最大 100,默认 100
beforeString分页,返回早于请求 expTime 的更新记录,不包含该时间戳
afterString分页,返回晚于请求 expTime 的更旧记录,不包含该时间戳

返回示例

json
{
    "code": "0",
    "data": [
        {
            "seriesId": "BTC-ABOVE-DAILY",
            "eventId": "BTC-ABOVE-DAILY-260224-1600",
            "instId": "BTC-ABOVE-DAILY-260224-1600-65000",
            "listTime": "1769697132335",
            "expTime": "1769697132335",
            "state": "live",
            "fixTime": "",
            "outcome": "0",
            "floorStrike": "120000",
            "capStrike": "",
            "settleValue": "",
            "disputed": false,
            "hitDir": ""
        }
    ],
    "msg": ""
}

返回参数

参数名类型描述
seriesIdString系列 ID,如 BTC-ABOVE-DAILY
eventIdString事件 ID,如 BTC-ABOVE-DAILY-260224-1600
instIdString产品 ID,如 BTC-ABOVE-DAILY-260224-1600-65000
listTimeString上线时间。Unix时间戳的毫秒数格式,如 1597026383085
fixTimeString行权价格确定时间。Unix时间戳的毫秒数格式,如 1597026383085。仅适用于 price_up_down 结算方式。
expTimeString该事件的行权时间。Unix时间戳的毫秒数格式,如 1597026383085。结算后更新。
stateString市场状态。
preopen
live
settling
expired
disputedBoolean是否存在争议。
true
false
outcomeString市场结果。
0:未确定
1:YES
2:NO。
1/2 仅在 state 为 expired 时适用
floorStrikeString导致 YES 结果的最低到期价格
capStrikeStringbetween 结算方式中导致 YES 结果的最大到期值。"INF" 表示无上限(最高区间)。
between 方式返回 ""
settleValueString结算价格。
仅在 state 为 expired 时返回
hitDirString触及方向。仅在结算方式为 hit 时适用。
up:价格从下方触及
dn:价格从上方触及
"":不适用(非 hit 方式)

获取预估交割/行权价格

获取交割合约和期权预估交割/行权价。交割/行权预估价只有交割/行权前30分钟才有返回值

限速:10次/2s

限速规则:IP + Instrument ID

HTTP请求

GET /api/v5/public/estimated-price

请求示例

shell
GET /api/v5/public/estimated-price?instId=BTC-USD-200214
python
import okx.PublicData as PublicData

flag = "0"  # 实盘:0 , 模拟盘:1

publicDataAPI = PublicData.PublicAPI(flag=flag)

# 获取预估交割/行权价格
result = publicDataAPI.get_estimated_price(
    instId="BTC-USD-200214",
)
print(result)

请求参数

参数名类型是否必须描述
instIdString产品ID,如 BTC-USD-200214
仅适用于交割/期权/事件合约

返回结果

json
{
    "code":"0",
    "msg":"",
    "data":[
    {
        "instType":"FUTURES",
        "instId":"BTC-USDT-201227",
        "settlePx":"200",
        "ts":"1597026383085"
    }
  ]
}

返回参数

参数名类型描述
instTypeString产品类型
FUTURES:交割合约
OPTION:期权
instIdString产品ID, 如 BTC-USD-200214
settlePxString预估交割/行权价格
tsString数据返回时间,Unix时间戳的毫秒数格式,如 1597026383085

获取交割和行权记录

获取3个月内的交割合约的交割记录和期权的行权记录

限速:40次/2s

限速规则:IP + (Instrument Type + instFamily)

HTTP请求

GET /api/v5/public/delivery-exercise-history

请求示例

shell
GET /api/v5/public/delivery-exercise-history?instType=OPTION&uly=BTC-USD
python
import okx.PublicData as PublicData

flag = "0"  # 实盘:0 , 模拟盘:1

publicDataAPI = PublicData.PublicAPI(flag=flag)

# 获取交割和行权记录
result = publicDataAPI.get_delivery_exercise_history(
    instType="FUTURES",
    uly="BTC-USD"
)
print(result)

请求参数

参数名类型是否必须描述
instTypeString产品类型
FUTURES:交割合约
OPTION:期权
instFamilyString交易品种
afterString请求此时间戳之前(更旧的数据)的分页内容,传的值为对应接口的ts
beforeString请求此时间戳之后(更新的数据)的分页内容,传的值为对应接口的ts
limitString分页返回的结果集数量,最大为100,不填默认返回100条

返回结果

json
{
    "code":"0",
    "msg":"",
    "data":[
        {
            "ts":"1597026383085",
            "details":[
                {
                    "type":"delivery",
                    "insId":"BTC-USD-190927",
                    "px":"0.016"
                }
            ]
        },
        {
            "ts":"1597026383085",
            "details":[
                {
                    "insId":"BTC-USD-200529-6000-C",
                    "type":"exercised",
                    "px":"0.016"
                },
                {
                    "insId":"BTC-USD-200529-8000-C",
                    "type":"exercised",
                    "px":"0.016"
                }
            ]
        }
    ]
}

返回参数

参数名类型描述
tsString交割/行权日期,Unix时间戳的毫秒数格式,如 1597026383085
detailsArray of objects详细数据
> insIdString交割/行权的合约ID
> pxString交割/行权的价格
> typeString类型
delivery:交割
exercised:实值已行权
expired_otm:虚值已过期

获取交割预估结算价格

获取交割合约预估结算价。只有结算前30分钟才有返回值。

限速:10次/2s

限速规则:IP + Instrument ID

HTTP请求

GET /api/v5/public/estimated-settlement-info

请求示例

shell
GET /api/v5/public/estimated-settlement-info?instId=XRP-USDT-250307

请求参数

参数名类型是否必须描述
instIdString产品ID,如 XRP-USDT-250307
仅适用于交割

返回结果

json
{
    "code": "0",
    "data": [
        {
            "estSettlePx": "2.5666068562369959",
            "instId": "XRP-USDT-250307",
            "nextSettleTime": "1741248000000",
            "ts": "1741246429748"
        }
    ],
    "msg": ""
}

返回参数

参数名类型描述
instIdString产品ID, 如 XRP-USDT-250307
nextSettleTimeString下一次结算时间,Unix时间戳的毫秒数格式,如 1597026383085
estSettlePxString预估结算价格
tsString数据返回时间,Unix时间戳的毫秒数格式,如 1597026383085

获取交割结算记录

获取3个月内的交割合约的结算记录

限速:40次/2s

限速规则:IP + (Instrument Family)

HTTP请求

GET /api/v5/public/settlement-history

请求示例

shell
GET /api/v5/public/settlement-history?instFamily=XRP-USDT

请求参数

参数名类型是否必须描述
instFamilyString交易品种
afterString请求此时间戳之前(不包含)的分页内容,传的值为对应接口的ts
beforeString请求此时间戳之后(不包含)的分页内容,传的值为对应接口的ts
limitString分页返回的结果集数量,最大为100,不填默认返回100

返回结果

json
{
    "code": "0",
    "data": [
        {
            "details": [
                {
                    "instId": "XRP-USDT-250307",
                    "settlePx": "2.5192078615298715"
                }
            ],
            "ts": "1741161600000"
        },
        {
            "details": [
                {
                    "instId": "XRP-USDT-250307",
                    "settlePx": "2.5551316341327384"
                }
            ],
            "ts": "1741075200000"
        }
    ],
    "msg": ""
}

返回参数

参数名类型描述
tsString结算日期,Unix时间戳的毫秒数格式,如 1597026383085
detailsArray of objects详细数据
> instIdString产品ID
> settlePxString结算价格

获取合约当前资金费率

获取合约当前资金费率

限速:10次/2s

限速规则:IP + Instrument ID

HTTP请求

GET /api/v5/public/funding-rate

请求示例

shell
GET /api/v5/public/funding-rate?instId=BTC-USD-SWAP
python
import okx.PublicData as PublicData

flag = "0"  # 实盘:0 , 模拟盘:1

publicDataAPI = PublicData.PublicAPI(flag=flag)

# 获取合约当前资金费率
result = publicDataAPI.get_funding_rate(
    instId="BTC-USD-SWAP",
)
print(result)

请求参数

参数名类型是否必须描述
instIdString产品ID,如 BTC-USD-SWAP 或 X-Perps 交割合约 instId,传入 ANY 时返回所有 X-Perps 交割合约及永续合约的资金费率信息
适用于永续及 X-Perps 交割

返回结果

json
{
    "code": "0",
    "data": [
        {
            "formulaType": "noRate",
            "fundingRate": "0.0000182221218054",
            "fundingTime": "1743609600000",
            "impactValue": "",
            "instId": "BTC-USDT-SWAP",
            "instType": "SWAP",
            "interestRate": "",
            "maxFundingRate": "0.00375",
            "method": "current_period",
            "minFundingRate": "-0.00375",
            "nextFundingRate": "",
            "nextFundingTime": "1743638400000",
            "premium": "0.0000910113652644",
            "settFundingRate": "0.0000145824401745",
            "settState": "settled",
            "ts": "1743588686291"
        }
    ],
    "msg": ""
}

返回参数

参数名类型描述
instTypeString产品类型
SWAP:永续合约
FUTURES:X-Perps 交割合约
instIdString产品ID,如BTC-USD-SWAPANY
methodString资金费收取逻辑
current_period:当期收
next_period:跨期收(不再支持跨期收合约)
formulaTypeString公式类型
noRate:旧资金费率计算公式
withRate:新资金费率计算公式
fundingRateString下一结算周期的预测资金费率。正数表示多头向空头支付资金费;负数表示空头向多头支付资金费。此为预测值,最终结算费率可能有所不同,请参阅 settFundingRate 查看上次实际结算费率。注意:结算周期通常为8小时,但可能调整;实际周期请通过 fundingTimenextFundingTime 之差确定。
nextFundingRateString下一期预测资金费率
当收取逻辑为current_period时,nextFundingRate字段将返回""(不再支持跨期收合约)
fundingTimeString资金费时间 ,Unix时间戳的毫秒数格式,如 1597026383085
nextFundingTimeString下一期资金费时间 ,Unix时间戳的毫秒数格式,如 1622851200000
minFundingRateString资金费率下限
maxFundingRateString资金费率上限
interestRateString利率
impactValueString深度加权金额(计价币数量)
settStateString资金费率结算状态
processing:结算中
settled:已结算
settFundingRateString若 settState = processing,该字段代表用于本轮结算的资金费率;若 settState = settled,该字段代表用于上轮结算的资金费率
premiumString溢价指数
公式:[max (0,深度加权买价 - 指数价格) – max (0,指数价格 – 深度加权卖价)] / 指数价格
tsString数据更新时间,Unix时间戳的毫秒数格式,如 1597026383085

针对一些资金费率波动较大的小币种,OKX也将实时关注行情变化,在必要时候,将资金费率收取频率从8小时收付,改成频率较高的6小时/4小时/2小时/1小时收付。因此,用户应关注fundingTimenextFundingTime字段以确定合约的资金费收取频率。

获取合约历史资金费率

获取合约历史资金费率,最多返回近三个月数据

限速:10次/2s

限速规则:IP + Instrument ID

HTTP请求

GET /api/v5/public/funding-rate-history

请求示例

shell
GET /api/v5/public/funding-rate-history?instId=BTC-USD-SWAP
python
import okx.PublicData as PublicData

flag = "0"  # 实盘:0 , 模拟盘:1

publicDataAPI = PublicData.PublicAPI(flag=flag)

# 获取合约历史资金费率
result = publicDataAPI.funding_rate_history(
    instId="BTC-USD-SWAP",
)
print(result)

请求参数

参数名类型是否必须描述
instIdString产品ID,如 BTC-USD-SWAP 或 X-Perps 交割合约 instId
适用于永续及 X-Perps 交割
beforeString请求此时间戳之后(更新的数据)的分页内容,传的值为对应接口的fundingTime
afterString请求此时间戳之前(更旧的数据)的分页内容,传的值为对应接口的fundingTime
limitString分页返回的结果集数量,最大为400,不填默认返回400条

返回结果

json
{
    "code":"0",
    "msg":"",
    "data":[
        {
            "formulaType": "noRate",
            "fundingRate": "0.0000746604960499",
            "fundingTime": "1703059200000",
            "instId": "BTC-USD-SWAP",
            "instType": "SWAP",
            "method": "next_period",
            "realizedRate": "0.0000746572360545"
        },
        {
            "formulaType": "noRate",
            "fundingRate": "0.000227985782722",
            "fundingTime": "1703030400000",
            "instId": "BTC-USD-SWAP",
            "instType": "SWAP",
            "method": "next_period",
            "realizedRate": "0.0002279755647389"
        }
  ]
}

返回参数

参数名类型描述
instTypeString产品类型
SWAP:永续合约
FUTURES:X-Perps 交割合约
instIdString产品ID,如 BTC-USD-SWAP
formulaTypeString公式类型
noRate:旧资金费率计算公式
withRate:新资金费率计算公式
fundingRateString预计资金费率
realizedRateString实际资金费率
fundingTimeString资金费时间,Unix时间戳的毫秒数格式,如 1597026383085
methodString资金费收取逻辑
current_period:当期收
next_period:跨期收

针对一些资金费率波动较大的小币种,OKX也将实时关注行情变化,在必要时候,将资金费率收取频率从8小时收付,改成频率较高的6小时/4小时/2小时/1小时收付。因此,用户应关注fundingTimenextFundingTime字段以确定合约的资金费收取频率。

获取持仓总量

查询单个交易产品的市场的持仓总量

限速:20次/2s

限速规则:IP + Instrument ID

HTTP请求

GET /api/v5/public/open-interest

请求示例

shell
GET /api/v5/public/open-interest?instType=SWAP
python
import okx.PublicData as PublicData

flag = "0"  # 实盘:0 , 模拟盘:1

publicDataAPI = PublicData.PublicAPI(flag=flag)

# 获取持仓总量
result = publicDataAPI.get_open_interest(
    instType="FUTURES",
)
print(result)

请求参数

参数名类型是否必须描述
instTypeString产品类型
SWAP:永续合约
FUTURES:交割合约
OPTION:期权
EVENTS:事件合约
instFamilyString可选交易品种
适用于交割/永续/期权
期权下必传
instIdString产品ID,如 BTC-USDT-SWAP
仅适用于交割/永续/期权/事件合约

返回结果

json
{
    "code":"0",
    "msg":"",
    "data":[
    {
        "instType":"SWAP",
        "instId":"BTC-USDT-SWAP",
        "oi":"5000",
        "oiCcy":"555.55",
        "oiUsd": "50000",
        "ts":"1597026383085"
    }
  ]
}

返回参数

参数名类型描述
instTypeString产品类型
instIdString产品ID
oiString持仓量(按折算)
oiCcyString持仓量(按折算)
oiUsdString持仓量(按USD折算)
tsString数据返回时间,Unix时间戳的毫秒数格式 ,如 1597026383085

获取限价

查询单个交易产品的最高买价和最低卖价

限速:20次/2s

限速规则:IP

HTTP请求

GET /api/v5/public/price-limit

请求示例

shell
GET /api/v5/public/price-limit?instId=BTC-USDT-SWAP
python
import okx.PublicData as PublicData

flag = "0"  # 实盘:0 , 模拟盘:1

publicDataAPI = PublicData.PublicAPI(flag=flag)

# 获取限价
result = publicDataAPI.get_price_limit(
    instId="BTC-USD-SWAP",
)
print(result)

请求参数

参数名类型是否必须描述
instIdString产品ID,如 BTC-USDT-SWAP

返回结果

json
{
    "code":"0",
    "msg":"",
    "data":[
    {
        "instType":"SWAP",
        "instId":"BTC-USDT-SWAP",
        "buyLmt":"17057.9",
        "sellLmt":"16388.9",
        "ts":"1597026383085",
        "enabled": true
    }
  ]
}

返回参数

参数名类型描述
instTypeString产品类型
SPOT:币币
MARGIN:杠杆
SWAP:永续合约
FUTURES:交割合约
OPTION:期权
若产品ID支持杠杆交易,则返回MARGIN;否则,返回SPOT
instIdString产品ID ,如 BTC-USDT-SWAP
buyLmtString最高买价
当enabled为false时,返回""
sellLmtString最低卖价
当enabled为false时,返回""
tsString限价数据更新时间 ,Unix时间戳的毫秒数格式,如 1597026383085
enabledBoolean限价是否生效
true:限价生效
false:限价不生效

获取期权定价

查询期权详细信息

限速:20次/2s

限速规则:IP + instFamily

HTTP请求

GET /api/v5/public/opt-summary

请求示例

shell
GET /api/v5/public/opt-summary?uly=BTC-USD
python
import okx.PublicData as PublicData

flag = "0"  # 实盘:0 , 模拟盘:1

publicDataAPI = PublicData.PublicAPI(flag=flag)

# 获取期权定价
result = publicDataAPI.get_opt_summary(
    uly="BTC-USD",
)
print(result)

请求参数

参数名类型是否必须描述
instFamilyString交易品种,仅适用于期权
expTimeString合约到期日,格式为"YYMMDD",如 "200527"

注意:本接口返回的数据可能不包含 /api/v5/public/instruments 中所有的期权合约。以下两种情况可能导致数据缺失:

  1. 期权已上架但尚未开始交易(例如,补充期权默认在特定时间开始交易,在开始交易之前可能无法获取对应数据)。
  2. 因市场报价不足导致隐含波动率曲面拟合失败。此情况在模拟盘中较易发生;实盘中由于做市商会提供报价,通常可保证拟合成功。

返回结果

json
{
    "code":"0",
    "msg":"",
    "data":[
      {
            "askVol": "3.7207056835937498",
            "bidVol": "0",
            "delta": "0.8310206676289528",
            "deltaBS": "0.9857332101544538",
            "fwdPx": "39016.8143629068452065",
            "gamma": "-1.1965483553276135",
            "gammaBS": "0.000011933182397798109",
            "instId": "BTC-USD-220309-33000-C",
            "instType": "OPTION",
            "lever": "0",
            "markVol": "1.5551965233045728",
            "realVol": "0",
            "volLv": "0",
            "theta": "-0.0014131955002093717",
            "thetaBS": "-66.03526900575946",
            "ts": "1646733631242",
            "uly": "BTC-USD",
            "vega": "0.000018173851073258973",
            "vegaBS": "0.7089307622132419"
        },
        {
            "askVol": "1.7968814062499998",
            "bidVol": "0",
            "delta": "-0.014668822072611904",
            "deltaBS": "-0.01426678984554619",
            "fwdPx": "39016.8143629068452065",
            "gamma": "0.49483062407551576",
            "gammaBS": "0.000011933182397798109",
            "instId": "BTC-USD-220309-33000-P",
            "instType": "OPTION",
            "lever": "0",
            "markVol": "1.5551965233045728",
            "realVol": "0",
            "volLv": "0",
            "theta": "-0.0014131955002093717",
            "thetaBS": "-54.93377294845015",
            "ts": "1646733631242",
            "uly": "BTC-USD",
            "vega": "0.000018173851073258973",
            "vegaBS": "0.7089307622132419"
        }
  ]
}

返回参数

参数名类型描述
instTypeString产品类型
OPTION:期权
instIdString产品ID,如 BTC-USD-200103-5500-C
ulyString标的指数
deltaString期权价格对uly价格的敏感度
gammaStringdelta对uly价格的敏感度
vegaString期权价格对隐含波动率的敏感度
thetaString期权价格对剩余期限的敏感度
deltaBSStringBS模式下期权价格对uly价格的敏感度
gammaBSStringBS模式下delta对uly价格的敏感度
vegaBSStringBS模式下期权价格对隐含波动率的敏感度
thetaBSStringBS模式下期权价格对剩余期限的敏感度
leverString杠杆倍数
markVolString标记波动率
bidVolStringbid波动率
askVolStringask波动率
realVolString已实现波动率(目前该字段暂未启用)
volLvString平价期权的隐含波动率
fwdPxString远期价格
tsString数据更新时间,Unix时间戳的毫秒数格式,如 1597026383085

获取免息额度和币种折算率等级

获取免息额度和币种折算率等级

限速:2 次/2s

限速规则:IP

HTTP 请求

GET /api/v5/public/discount-rate-interest-free-quota

请求示例

shell
GET /api/v5/public/discount-rate-interest-free-quota?ccy=BTC
python
import okx.PublicData as PublicData

flag = "0"  # 实盘:0 , 模拟盘:1

publicDataAPI = PublicData.PublicAPI(flag=flag)

# 获取免息额度和币种折算率等级
result = publicDataAPI.discount_interest_free_quota()
print(result)

请求参数

参数名类型是否必须描述
ccyString币种
discountLvString折算率等级(已废弃)

返回结果

json
{
    "code": "0",
    "data": [
        {
            "amt": "0",
            "ccy": "BTC",
            "collateralRestrict": false,
            "details": [
                {
                    "discountRate": "0.98",
                    "liqPenaltyRate": "0.02",
                    "maxAmt": "20",
                    "minAmt": "0",
                    "tier": "1",
                    "disCcyEq": "1000"
                },
                {
                    "discountRate": "0.9775",
                    "liqPenaltyRate": "0.0225",
                    "maxAmt": "25",
                    "minAmt": "20",
                    "tier": "2",
                    "disCcyEq": "2000"
                }
            ],
            "discountLv": "1",
            "minDiscountRate": "0"
        }
    ],
    "msg": ""
}

返回参数

参数名类型描述
ccyString币种
colResString平台维度质押限制状态
0:限制未触发
1:限制未触发,但该币种接近平台质押上限
2:限制已触发。该币种不可用作新订单的保证金,这可能会导致下单失败。但它仍会被计入账户有效保证金,保证金率不会收到影响。
更多详情,请参阅平台总质押借币上限说明
collateralRestrictBoolean平台维度的质押借币限制
true
false(已弃用,请使用colRes)
amtString免息金额
discountLvString折算率等级(已废弃)
minDiscountRateString最小折算率,针对数量超过最后一档的最大值时
detailsArray of objects新的币种折算率详情
> discountRateString折算率
> maxAmtString梯度区间上限,单位为币种,如 BTC,"" 表示正无穷
> minAmtString梯度区间下限,单位为币种,如 BTC,最小值是0
> tierString档位
> liqPenaltyRateString强平罚金费率
> disCcyEqString折扣后的币种权益(取当前梯度区间上限),便于快速计算

获取系统时间

获取系统时间

限速:10次/2s

限速规则:IP

HTTP请求

GET /api/v5/public/time

请求示例

shell
GET /api/v5/public/time
python
import okx.PublicData as PublicData

flag = "0"  # 实盘:0 , 模拟盘:1

publicDataAPI = PublicData.PublicAPI(flag=flag)

# 获取系统时间
result = publicDataAPI.get_system_time()
print(result)

返回结果

json
{
    "code":"0",
    "msg":"",
    "data":[
    {
        "ts":"1597026383085"
    }
  ]
}

返回参数

参数名类型描述
tsString系统时间,Unix时间戳的毫秒数格式,如 1597026383085

获取标记价格

为了防止个别用户恶意操控市场导致合约价格波动剧烈,我们根据现货指数和合理基差设定标记价格。

限速:10次/2s

限速规则:IP + Instrument ID

HTTP请求

GET /api/v5/public/mark-price

请求示例

shell
GET /api/v5/public/mark-price?instType=SWAP
python
import okx.PublicData as PublicData

flag = "0"  # 实盘:0 , 模拟盘:1

publicDataAPI = PublicData.PublicAPI(flag=flag)

# 获取标记价格
result = publicDataAPI.get_mark_price(
    instType="SWAP",
)
print(result)

请求参数

参数名类型是否必须描述
instTypeString产品类型
MARGIN:币币杠杆
SWAP:永续合约
FUTURES:交割合约
OPTION:期权
EVENTS:事件合约
instFamilyString交易品种
适用于交割/永续/期权
instIdString产品ID,如 BTC-USD-SWAP

返回结果

json
{
    "code":"0",
    "msg":"",
    "data":[
    {
        "instType":"SWAP",
        "instId":"BTC-USDT-SWAP",
        "markPx":"200",
        "ts":"1597026383085"
    }
  ]
}

返回参数

参数名类型描述
instTypeString产品类型
MARGIN:币币杠杆
SWAP:永续合约
FUTURES:交割合约
OPTION:期权
EVENTS:事件合约
instIdString产品ID,如 BTC-USD-200214
markPxString标记价格
tsString接口数据返回时间,Unix时间戳的毫秒数格式,如1597026383085

获取衍生品仓位档位

全部仓位档位对应信息,当前最高可开杠杆倍数由您的借币持仓和维持保证金率决定。

限速:10次/2s

限速规则:IP

HTTP请求

GET /api/v5/public/position-tiers

请求示例

shell
GET /api/v5/public/position-tiers?tdMode=cross&instType=SWAP&instFamily=BTC-USDT
python
import okx.PublicData as PublicData

flag = "0"  # 实盘:0 , 模拟盘:1

publicDataAPI = PublicData.PublicAPI(flag=flag)

# 获取衍生品仓位档位
result = publicDataAPI.get_position_tiers(
    instType="SWAP",
    tdMode="cross",
    uly="BTC-USD"
)
print(result)

请求参数

参数名类型是否必须描述
instTypeString产品类型
MARGIN:币币杠杆
SWAP:永续合约
FUTURES:交割合约
OPTION:期权
tdModeString保证金模式
isolated:逐仓 ;cross:全仓
instFamilyString可选交易品种,支持多instFamily,半角逗号分隔,最大不超过5个
当产品类型是永续/交割/期权 之一时,instFamily 必填
instIdString可选产品ID,支持多instId,半角逗号分隔,最大不超过5个
仅适用币币杠杆instIdccy必须传一个,若传两个,以instId为主
ccyString可选保证金币种
仅适用杠杆全仓,该值生效时,返回的是跨币种保证金模式组合保证金模式下的借币量
tierString查指定档位

返回结果

json
{
    "code":"0",
    "msg":"",
    "data":[
    {
            "baseMaxLoan": "50",
            "imr": "0.1",
            "instId": "BTC-USDT",
            "instFamily": "",
            "maxLever": "10",
            "maxSz": "50",
            "minSz": "0",
            "mmr": "0.03",
            "optMgnFactor": "0",
            "quoteMaxLoan": "500000",
            "tier": "1",
            "uly": ""
        }
  ]
}

返回参数

参数名类型描述
ulyString标的指数
适用于交割/永续/期权
instFamilyString交易品种
适用于交割/永续/期权
instIdString币对
tierString仓位档位
minSzString该档位最少借币量或者持仓数量 杠杆/期权/永续/交割 最小持仓量 默认0
ccy 参数生效时,返回 ccy 的最小借币量
maxSzString该档位最多借币量或者持仓数量 杠杆/期权/永续/交割
ccy 参数生效时,返回 ccy 的最大借币量
mmrString仓位维持保证金率
imrString最低初始维持保证金率
maxLeverString最高可用杠杆倍数
optMgnFactorString期权保证金系数 (仅适用于期权)
quoteMaxLoanString计价货币 最大借币量(仅适用于杠杆,且instId参数生效时),如 BTC-USDT 里的 USDT最大借币量
baseMaxLoanString交易货币 最大借币量(仅适用于杠杆,且instId参数生效时),如 BTC-USDT 里的 BTC最大借币量

获取市场借币杠杆利率和借币限额

限速:2次/2s

限速规则:IP

HTTP请求

GET /api/v5/public/interest-rate-loan-quota

请求示例

shell
GET /api/v5/public/interest-rate-loan-quota
python
import okx.PublicData as PublicData

flag = "0"  # 实盘:0 , 模拟盘:1

publicDataAPI = PublicData.PublicAPI(flag=flag)

# 获取市场借币杠杆利率和借币限额
result = publicDataAPI.get_interest_rate_loan_quota()
print(result)

返回结果

json
{
    "code": "0",
    "data": [
        {
            "configCcyList": [
                {
                    "ccy": "USDT",
                    "rate": "0.00043728",
                }
            ],
            "basic": [
                {
                    "ccy": "USDT",
                    "quota": "500000",
                    "rate": "0.00043728"
                },
                {
                    "ccy": "BTC",
                    "quota": "10",
                    "rate": "0.00019992"
                }
            ],
            "vip": [
                {
                    "irDiscount": "",
                    "loanQuotaCoef": "6",
                    "level": "VIP1"
                },
                {
                    "irDiscount": "",
                    "loanQuotaCoef": "7",
                    "level": "VIP2"
                }
            ],
            "config": [
                {
                    "ccy": "USDT",
                    "stgyType": "0",    // normal
                    "quota": "xxxxxx",
                    "level": "VIP 8"
                },
                ......
                {
                    "ccy": "USDT",
                    "stgyType": "1",    // delta neutral
                    "quota": "xxxxx",
                    "level": "VIP 1"
                },
                ......
            ],
            "regular": [
                {
                    "irDiscount": "",
                    "loanQuotaCoef": "1",
                    "level": "Lv1"
                }
            ]
        }
    ],
    "msg": ""
}

返回参数

参数名类型描述
basicArray of objects基础利率和借币限额
> ccyString币种
> rateString日借币利率
> quotaString基础借币限额
vipArray of objects专业用户
> levelString账户交易手续费等级,如 VIP1
> loanQuotaCoefString借币限额系数,借币限额 = 基础借币限额 * 该系数
> irDiscountString利率的折扣率(已废弃)
regularArray of objects普通用户
> levelString账户交易手续费等级,如 Lv1
> loanQuotaCoefString借币限额系数,借币限额 = 基础借币限额 * 该系数
> irDiscountString利率的折扣率(已废弃)
configCcyListArray of strings由自定义绝对值方式配置借币限额的币种
当币种在configCcyList中时,用户应该参考config以获取相应限额,而非使用basic/vip/regular
> ccyString币种
> rateString基础杠杆日利率
configArray of objects由自定义绝对值方式配置借币限额的币种详情
> ccyString币种
> stgyTypeString策略类型
0:普通策略模式
1:delta 中性策略模式
如果某个币种仅返回0,则表示该借贷额度由普通策略模式的账户和 delta 中性策略模式的账户共享;如果某个币种同时返回0/1,则表示 delta 中性策略模式的账户拥有单独的借贷额度。
> quotaString借币限额
> levelString账户交易手续费等级,如 VIP1

获取衍生品标的指数

限速:20次/2s

限速规则:IP

HTTP请求

GET /api/v5/public/underlying

请求示例

shell
GET /api/v5/public/underlying?instType=FUTURES
python
import okx.PublicData as PublicData

flag = "0"  # 实盘:0 , 模拟盘:1

publicDataAPI = PublicData.PublicAPI(flag=flag)

# 获取衍生品标的指数
result = publicDataAPI.get_underlying(
    instType="FUTURES"
)
print(result)

请求参数

参数名类型是否必须描述
instTypeString产品类型
SWAP:永续合约
FUTURES:交割合约
OPTION:期权

返回结果

json
{
    "code":"0",
    "msg":"",
    "data":[
        [
            "LTC-USDT",
            "BTC-USDT",
            "ETC-USDT"
        ]
    ]
}

返回参数

参数名类型描述
ulyArray of strings标的指数 如:BTC-USDT

获取风险保证金余额

通过该接口获取系统风险保证金余额信息

限速:10次/2s

限速规则:IP

HTTP请求

GET /api/v5/public/insurance-fund

请求示例

shell
GET /api/v5/public/insurance-fund?instType=SWAP&uly=BTC-USD
python
import okx.PublicData as PublicData

flag = "0"  # 实盘:0 , 模拟盘:1

publicDataAPI = PublicData.PublicAPI(flag=flag)

# 获取风险保证金余额
result = publicDataAPI.get_insurance_fund(
    instType="SWAP",
    uly="BTC-USD"
)
print(result)

请求参数

参数名类型是否必须描述
instTypeString产品类型
MARGIN:币币杠杆
SWAP:永续合约
FUTURES:交割合约
OPTION:期权
typeString风险保证金类型
liquidation_balance_deposit:强平注入
bankruptcy_loss:穿仓亏损
platform_revenue:平台收入注入(已弃用,返回空值。将在后续更新中删除)
adl:自动减仓历史数据(已弃用,返回空值。将在后续更新中删除)
默认返回全部类型
instFamilyString可选交易品种
交割/永续/期权情况下,instFamily必传
ccyString可选币种, 仅适用币币杠杆,且必填写
beforeString请求此时间戳之后(更新的数据)的分页内容,传的值为对应接口的ts
afterString请求此时间戳之前(更旧的数据)的分页内容,传的值为对应接口的ts
limitString分页返回的结果集数量,最大为100,不填默认返回100条

返回结果

json
{
    "code": "0",
    "data": [
        {
            "details": [
                {
                    "adlType": "",
                    "amt": "1343.1308",
                    "balance": "1369179138.7489",
                    "ccy": "ETH",
                    "maxBal": "",
                    "maxBalTs": "",
                    "ts": "1704883083000",
                    "type": "liquidation_balance_deposit"
                }
            ],
            "instFamily": "ETH-USD",
            "instType": "OPTION",
            "total": "1369179138.7489"
        }
    ],
    "msg": ""
}

返回参数

参数名类型描述
totalString平台风险保证金总计,单位为USD
instFamilyString交易品种
适用于交割/永续/期权
instTypeString产品类型
detailsArray of objects风险保证金详情
> balanceString风险保证金总量
> amtString风险保证金更新数量
在type为liquidation_balance_depositbankruptcy_loss时适用
> ccyString风险保证金总量对应的币种
> typeString风险保证金类型
liquidation_balance_deposit:强平注入
bankruptcy_loss:穿仓亏损
platform_revenue:平台收入注入(已弃用,返回空值)
adl:自动减仓历史数据(已弃用,返回空值)
> maxBalString过去八小时内的风险保证金余额最大值
仅在type为adl时适用(已弃用,返回空值)
> maxBalTsString过去八小时内风险保证金余额最大值对应的时间戳,Unix时间戳的毫秒数格式,如 1597026383085
仅在type为adl时适用(已弃用,返回空值)
> decRateString风险保证金实时下降率(balance与maxBal相比较)
仅在type为adl时适用(已弃用)
> adlTypeString关于自动减仓的事件
rate_adl_start:由于风险保证金下降率过高造成的自动减仓开始
bal_adl_start:由于风险保证金余额下降过高造成的自动减仓开始
pos_adl_start:由于强平单的规模积累到一定程度的自动减仓开始(仅适用于盘前交易市场)
adl_end:自动减仓结束
仅在type为adl时适用(已弃用,返回空值)
> tsString风险保证金更新时间,Unix时间戳的毫秒数格式,如 1597026383085

regular_update 类型已被删除。adlplatform_revenue 类型已弃用,当前返回空值;将在后续更新中删除。amt 字段用于展示 type 为 liquidation_balance_depositbankruptcy_loss 时的风险保证金余额差值,数据一天产生一次,每天下午4点左右(UTC 8)更新。

张币转换

由币转换为张,或者张转换为币。

限速:10次/2s

限速规则:IP

HTTP请求

GET /api/v5/public/convert-contract-coin

请求示例

shell
GET /api/v5/public/convert-contract-coin?instId=BTC-USD-SWAP&px=35000&sz=0.888
python
import okx.PublicData as PublicData

flag = "0"  # 实盘:0 , 模拟盘:1

publicDataAPI = PublicData.PublicAPI(flag=flag)

# 张币转换
result = publicDataAPI.get_convert_contract_coin(
    instId="BTC-USD-SWAP",
    px="35000",
    sz="0.888"
)
print(result)

请求参数

参数名类型是否必须描述
typeString转换类型
1:币转张
2:张转币
默认为1
instIdString产品ID,仅适用于交割/永续/期权
szString数量,币转张时,为币的数量,张转币时,为张的数量。
pxString可选委托价格
币本位合约的张币转换时必填
U本位合约,usdt 与张的转换时,必填;coin 与张的转换时,可不填
期权的张币转换时,可不填。
unitString币的单位
coin:币
usds:usdt/usdc
默认为 coin,仅适用于交割/永续的U本位合约
opTypeString将要下单的类型
open:开仓时将sz舍位
close:平仓时将sz四舍五入
默认值为close
适用于交割/永续

返回结果

json
{
    "code": "0",
    "data": [
        {
            "instId": "BTC-USD-SWAP",
            "px": "35000",
            "sz": "311",
            "type": "1",
            "unit": "coin"
        }
    ],
    "msg": ""
}

返回参数

参数名类型描述
typeString转换类型
1:币转张
2:张转币
instIdString产品ID
pxString委托价格
szString数量
张转币时,为币的数量;币转张时,为张的数量。
unitString币的单位
coin:币
usds:usdt/usdc

获取期权价格梯度

获取产品价格梯度信息

限速:5次/2s

限速规则:IP

HTTP请求

GET /api/v5/public/instrument-tick-bands

请求示例

shell
GET /api/v5/public/instrument-tick-bands?instType=OPTION
shell
GET /api/v5/public/instrument-tick-bands?instType=EVENTS

请求参数

参数名类型是否必须描述
instTypeString产品类型
OPTION:期权
EVENTS:事件合约
instFamilyString交易品种,仅适用于 OPTION

返回结果

json
{
    "code": "0",
    "msg": "",
    "data": [
        {
            "instType": "OPTION",
            "instFamily": "BTC-USD",
            "tickBand": [
                {
                    "minPx": "0",
                    "maxPx": "100",
                    "tickSz": "0.1"
                },
                {
                    "minPx": "100",
                    "maxPx": "10000",
                    "tickSz": "1"
                }
            ]
        },
        {
            "instType": "OPTION",
            "instFamily": "ETH-USD",
            "tickBand": [
                {
                    "minPx": "0",
                    "maxPx": "100",
                    "tickSz": "0.1"
                },
                {
                    "minPx": "100",
                    "maxPx": "10000",
                    "tickSz": "1"
                }
            ]
        }
    ]
}

返回结果:EVENTS

json
{
    "code": "0",
    "msg": "",
    "data": [
        {
            "instType": "EVENTS",
            "instFamily": "",
            "tickBand": [
                {
                    "minPx": "0.001",
                    "maxPx": "0.04",
                    "tickSz": "0.001"
                },
                {
                    "minPx": "0.04",
                    "maxPx": "0.96",
                    "tickSz": "0.01"
                },
                {
                    "minPx": "0.96",
                    "maxPx": "0.999",
                    "tickSz": "0.001"
                }
            ]
        }
    ]
}

返回参数

参数名类型描述
instTypeString产品类型
instFamilyString交易品种。仅适用于 OPTION
tickBandArray of objects价格梯度。对于 EVENTS,返回适用于所有事件合约的统一价格梯度配置。
> minPxString下单最低价格
> maxPxString下单最高价格
> tickSzString下单价格精度,如 0.0001

获取溢价历史数据

获取最近6个月的溢价历史数据

限速:20次/2s

限速规则:IP

HTTP请求

GET /api/v5/public/premium-history

请求示例

shell
GET /api/v5/public/premium-history?instId=BTC-USDT-SWAP

请求参数

参数名类型是否必须描述
instIdString产品ID,如 BTC-USDT-SWAP
适用于永续
afterString请求此时间戳(不包含)之前的分页内容,传的值为对应接口的ts
beforeString请求此时间戳(不包含)之后的分页内容,传的值为对应接口的ts
limitString分页返回的结果集数量,最大为100。默认返回100条。

返回结果

json
{
    "code": "0",
    "data": [
        {
            "instId": "BTC-USDT-SWAP",
            "premium": "0.0000578896878167",
            "ts": "1713925924000"
        }
    ],
    "msg": ""
}

返回参数

参数名类型描述
instIdString产品ID ,如 BTC-USDT-SWAP
premiumString溢价指数
公式:[max (0,深度加权买价 - 指数价格) – max (0,指数价格 – 深度加权卖价)] / 指数价格
tsString数据产生的时间,Unix时间戳的毫秒数格式,如 1597026383085

获取指数行情

获取指数行情数据

限速:20次/2s

限速规则:IP

HTTP请求

GET /api/v5/market/index-tickers

请求示例

shell
GET /api/v5/market/index-tickers?instId=BTC-USDT
python
import okx.MarketData as MarketData

flag = "0"  # 实盘:0 , 模拟盘:1

marketDataAPI =  MarketData.MarketAPI(flag=flag)

# 获取指数行情
result = marketDataAPI.get_index_tickers(
    instId="BTC-USD"
)
print(result)

请求参数

参数名类型是否必须描述
quoteCcyString可选指数计价单位, 目前只有 USD/USDT/BTC/USDC为计价单位的指数,quoteCcyinstId必须填写一个
instIdString可选指数,如 BTC-USD
uly 含义相同。

返回结果

json
{
    "code": "0",
    "msg": "",
    "data": [
        {
            "instId": "BTC-USDT",
            "idxPx": "43350",
            "high24h": "43649.7",
            "sodUtc0": "43444.1",
            "open24h": "43640.8",
            "low24h": "43261.9",
            "sodUtc8": "43328.7",
            "ts": "1649419644492"
        }
    ]
}

返回参数

参数名类型描述
instIdString指数
idxPxString最新指数价格
high24hString24小时指数最高价格
low24hString24小时指数最低价格
open24hString24小时指数开盘价格
sodUtc0StringUTC 0 时开盘价
sodUtc8StringUTC+8 时开盘价
tsString指数价格更新时间,Unix时间戳的毫秒数格式,如1597026383085

获取指数K线数据

指数K线数据每个粒度最多可获取最近1,440条。

限速:20次/2s

限速规则:IP

HTTP请求

GET /api/v5/market/index-candles

请求示例

shell
GET /api/v5/market/index-candles?instId=BTC-USD
python
import okx.MarketData as MarketData

flag = "0"  # 实盘:0 , 模拟盘:1

marketDataAPI =  MarketData.MarketAPI(flag=flag)

# 获取指数K线数据
result = marketDataAPI.get_index_candlesticks(
    instId="BTC-USD"
)
print(result)

请求参数

参数名类型是否必须描述
instIdString现货指数,如 BTC-USD
uly 含义相同。
afterString请求此时间戳之前(更旧的数据)的分页内容,传的值为对应接口的ts
beforeString请求此时间戳之后(更新的数据)的分页内容,传的值为对应接口的ts, 单独使用时,会返回最新的数据。
barString时间粒度,默认值1m
如 [1m/3m/5m/15m/30m/1H/2H/4H]
UTC+8开盘价k线:[6H/12H/1D/1W/1M/3M]
UTC+0开盘价k线:[6Hutc/12Hutc/1Dutc/1Wutc/1Mutc/3Mutc]
limitString分页返回的结果集数量,最大为100,不填默认返回100

返回结果

json
{
    "code":"0",
    "msg":"",
    "data":[
     [
        "1597026383085",
        "3.721",
        "3.743",
        "3.677",
        "3.708",
        "0"
    ],
    [
        "1597026383085",
        "3.731",
        "3.799",
        "3.494",
        "3.72",
        "1"
    ]
    ]
}

返回参数

参数名类型描述
tsString开始时间,Unix时间戳的毫秒数格式,如 1597026383085
oString开盘价格
hString最高价格
lString最低价格
cString收盘价格
confirmStringK线状态
0 代表 K 线未完结,1 代表 K 线已完结。

返回的第一条K线数据可能不是完整周期k线,返回值数组顺序分别为是:[ts,o,h,l,c,confirm]

获取指数历史K线数据

获取最近几年的指数K线数据

限速:10次/2s

限速规则:IP

HTTP请求

GET /api/v5/market/history-index-candles

请求示例

shell
GET /api/v5/market/history-index-candles?instId=BTC-USD

请求参数

参数名类型是否必须描述
instIdString现货指数,如BTC-USD
uly 含义相同。
afterString请求此时间戳之前(更旧的数据)的分页内容,传的值为对应接口的ts
beforeString请求此时间戳之后(更新的数据)的分页内容,传的值为对应接口的ts, 单独使用时,会返回最新的数据。
barString时间粒度,默认值1m
如 [1m/3m/5m/15m/30m/1H/2H/4H]
UTC+8开盘价k线:[6H/12H/1D/1W/1M]
UTC+0开盘价k线:[/6Hutc/12Hutc/1Dutc/1Wutc/1Mutc]
limitString分页返回的结果集数量,最大为100,不填默认返回100条

返回结果

json
{
    "code":"0",
    "msg":"",
    "data":[
     [
        "1597026383085",
        "3.721",
        "3.743",
        "3.677",
        "3.708",
        "1"
    ],
    [
        "1597026383085",
        "3.731",
        "3.799",
        "3.494",
        "3.72",
        "1"
    ]
    ]
}

返回参数

参数名类型描述
tsString开始时间,Unix时间戳的毫秒数格式,如 1597026383085
oString开盘价格
hString最高价格
lString最低价格
cString收盘价格
confirmStringK线状态
0 代表 K 线未完结,1 代表 K 线已完结。

返回值数组顺序分别为是:[ts,o,h,l,c,confirm]

获取标记价格K线数据

标记价格K线数据每个粒度最多可获取最近1,440条。

限速:20次/2s

限速规则:IP

HTTP请求

GET /api/v5/market/mark-price-candles

请求示例

shell
GET /api/v5/market/mark-price-candles?instId=BTC-USD-SWAP
python
import okx.MarketData as MarketData

flag = "0"  # 实盘:0 , 模拟盘:1

marketDataAPI =  MarketData.MarketAPI(flag=flag)

# 获取标记价格K线数据
result = marketDataAPI.get_mark_price_candlesticks(
    instId="BTC-USD-SWAP"
)
print(result)

请求参数

参数名类型是否必须描述
instIdString产品ID,如BTC-USD-SWAP
afterString请求此时间戳之前(更旧的数据)的分页内容,传的值为对应接口的ts
beforeString请求此时间戳之后(更新的数据)的分页内容,传的值为对应接口的ts, 单独使用时,会返回最新的数据。
barString时间粒度,默认值1m
如 [1m/3m/5m/15m/30m/1H/2H/4H]
UTC+8开盘价k线:[6H/12H/1D/1W/1M/3M]
UTC+0开盘价k线:[6Hutc/12Hutc/1Dutc/1Wutc/1Mutc/3Mutc]
limitString分页返回的结果集数量,最大为100,不填默认返回100条

返回结果

json
{
    "code":"0",
    "msg":"",
    "data":[
     [
        "1597026383085",
        "3.721",
        "3.743",
        "3.677",
        "3.708",
        "0"
    ],
    [
        "1597026383085",
        "3.731",
        "3.799",
        "3.494",
        "3.72",
        "1"
    ]
    ]
}

返回参数

参数名类型描述
tsString开始时间,Unix时间戳的毫秒数格式,如 1597026383085
oString开盘价格
hString最高价格
lString最低价格
cString收盘价格
confirmStringK线状态
0 代表 K 线未完结,1 代表 K 线已完结。

返回的第一条K线数据可能不是完整周期k线,返回值数组顺序分别为是:[ts,o,h,l,c,confirm]

获取标记价格历史K线数据

获取最近几年的标记价格K线数据

限速:20次/2s

限速规则:IP

HTTP请求

GET /api/v5/market/history-mark-price-candles

请求示例

shell
GET /api/v5/market/history-mark-price-candles?instId=BTC-USD-SWAP

请求参数

参数名类型是否必须描述
instIdString产品ID,如BTC-USD-SWAP
afterString请求此时间戳之前(更旧的数据)的分页内容,传的值为对应接口的ts
beforeString请求此时间戳之后(更新的数据)的分页内容,传的值为对应接口的ts, 单独使用时,会返回最新的数据。
barString时间粒度,默认值1m
如 [1m/3m/5m/15m/30m/1H/2H/4H]
UTC+8开盘价k线:[6H/12H/1D/1W/1M]
UTC+0开盘价k线:[6Hutc/12Hutc/1Dutc/1Wutc/1Mutc]
limitString分页返回的结果集数量,最大为100,不填默认返回100条

返回结果

json
{
    "code":"0",
    "msg":"",
    "data":[
     [
        "1597026383085",
        "3.721",
        "3.743",
        "3.677",
        "3.708",
        "1"
    ],
    [
        "1597026383085",
        "3.731",
        "3.799",
        "3.494",
        "3.72",
        "1"
    ]
    ]
}

返回参数

参数名类型描述
tsString开始时间,Unix时间戳的毫秒数格式,如 1597026383085
oString开盘价格
hString最高价格
lString最低价格
cString收盘价格
confirmStringK线状态
0 代表 K 线未完结,1 代表 K 线已完结。

返回值数组顺序分别为是:[ts,o,h,l,c,confirm]

获取法币汇率

该接口提供的是2周的平均汇率数据

限速:1次/2s

限速规则:IP

HTTP请求

GET /api/v5/market/exchange-rate

请求示例

shell
GET /api/v5/market/exchange-rate
python
import okx.MarketData as MarketData

flag = "0"  # 实盘:0 , 模拟盘:1

marketDataAPI =  MarketData.MarketAPI(flag=flag)

# 获取法币汇率
result = marketDataAPI.get_exchange_rate(
)
print(result)

返回结果

json
{
    "code": "0",
    "msg": "",
    "data": [
        {
            "usdCny": "7.162"
        }
    ]
}

返回参数

参数名类型描述
usdCnyString人民币兑美元汇率

获取指数成分数据

查询市场上的指数成分信息数据

限速:20次/2s

限速规则:IP

HTTP请求

GET /api/v5/market/index-components

请求示例

shell
GET /api/v5/market/index-components?index=BTC-USD
python
import okx.MarketData as MarketData

flag = "0"  # 实盘:0 , 模拟盘:1

marketDataAPI =  MarketData.MarketAPI(flag=flag)

# 获取指数成分数据
result = marketDataAPI.get_index_components(
    index="BTC-USD"
)
print(result)

请求参数

参数名类型是否必须描述
indexString指数,如 BTC-USDT
uly 含义相同。

返回结果

json
{
    "code": "0",
    "msg": "",
    "data": {
        "components": [
            {
                "symbol": "BTC/USDT",
                "symPx": "52733.2",
                "wgt": "0.25",
                "cnvPx": "52733.2",
                "exch": "OKEx"
            },
            {
                "symbol": "BTC/USDT",
                "symPx": "52739.87000000",
                "wgt": "0.25",
                "cnvPx": "52739.87000000",
                "exch": "Binance"
            },
            {
                "symbol": "BTC/USDT",
                "symPx": "52729.1",
                "wgt": "0.25",
                "cnvPx": "52729.1",
                "exch": "Huobi"
            },
            {
                "symbol": "BTC/USDT",
                "symPx": "52739.47929397",
                "wgt": "0.25",
                "cnvPx": "52739.47929397",
                "exch": "Poloniex"
            }
        ],
        "last": "52735.4123234925",
        "index": "BTC-USDT",
        "ts": "1630985335599"
    }
}

返回参数

参数名类型描述
indexString指数名称
lastString最新指数价格
tsString数据产生时间,Unix时间戳的毫秒数格式, 如1597026383085
componentsString成分
> exchString交易所名称
> symbolString采集的币对名称
> symPxString采集的币对价格
> wgtString权重
> cnvPxString参与指数计算的成分价格,由 symPx 经配置处理后得出,处理可能包括报价单位换算、倍数调整(如 ×10 或 ×0.1)或 EMA 平滑,因此可能与 symPx 不同

获取经济日历数据

该接口需验证后使用。仅支持实盘服务。

获取过去三个月的宏观经济日历数据。三个月前的历史数据仅开放给交易费等级VIP1及以上的用户。

限速:1次/5s

限速规则:IP

HTTP请求

GET /api/v5/public/economic-calendar

请求示例

shell
GET /api/v5/public/economic-calendar

请求参数

参数名类型是否必须描述
regionstring国家,地区或实体
afghanistan, albania, algeria, andorra, angola, antigua_and_barbuda, argentina, armenia, aruba, australia, austria, azerbaijan, bahamas, bahrain, bangladesh, barbados, belarus, belgium, belize, benin, bermuda, bhutan, bolivia, bosnia_and_herzegovina, botswana, brazil, brunei, bulgaria, burkina_faso, burundi, cambodia, cameroon, canada, cape_verde, cayman_islands, central_african_republic, chad, chile, china, colombia, comoros, congo, costa_rica, croatia, cuba, cyprus, czech_republic, denmark, djibouti, dominica, dominican_republic, east_timor, ecuador, egypt, el_salvador, equatorial_guinea, eritrea, estonia, ethiopia, euro_area, european_union, faroe_islands, fiji, finland, france, g20, g7, gabon, gambia, georgia, germany, ghana, greece, greenland, grenada, guatemala, guinea, guinea_bissau, guyana, hungary, haiti, honduras, hong_kong, hungary, imf, indonesia, iceland, india, indonesia, iran, iraq, ireland, isle_of_man, israel, italy, ivory_coast, jamaica, japan, jordan, kazakhstan, kenya, kiribati, kosovo, kuwait, kyrgyzstan, laos, latvia, lebanon, lesotho, liberia, libya, liechtenstein, lithuania, luxembourg, macau, macedonia, madagascar, malawi, malaysia, maldives, mali, malta, mauritania, mauritius, mexico, micronesia, moldova, monaco, mongolia, montenegro, morocco, mozambique, myanmar, namibia, nepal, netherlands, new_caledonia, new_zealand, nicaragua, niger, nigeria, north_korea, northern_mariana_islands, norway, opec, oman, pakistan, palau, palestine, panama, papua_new_guinea, paraguay, peru, philippines, poland, portugal, puerto_rico, qatar, russia, republic_of_the_congo, romania, russia, rwanda, slovakia, samoa, san_marino, sao_tome_and_principe, saudi_arabia, senegal, serbia, seychelles, sierra_leone, singapore, slovakia, slovenia, solomon_islands, somalia, south_africa, south_korea, south_sudan, spain, sri_lanka, st_kitts_and_nevis, st_lucia, sudan, suriname, swaziland, sweden, switzerland, syria, taiwan, tajikistan, tanzania, thailand, togo, tonga, trinidad_and_tobago, tunisia, turkey, turkmenistan, uganda, ukraine, united_arab_emirates, united_kingdom, united_states, uruguay, uzbekistan, vanuatu, venezuela, vietnam, world, yemen, zambia, zimbabwe
importancestring重要性
1: 低
2: 中等
3: 高
beforeString查询发布日期(date)之后的内容,值为时间戳,Unix 时间戳为毫秒数格式,如 1597026383085
afterString查询发布日期(date)之前的内容,值为时间戳,Unix 时间戳为毫秒数格式,如 1597026383085
默认值为请求时刻的时间戳
limitString分页返回结果的数量,最大为100,默认100条

返回结果

json
{
    "code": "0",
    "data": [
        {
            "actual": "7.8%",
            "calendarId": "330631",
            "category": "Harmonised Inflation Rate YoY",
            "ccy": "",
            "date": "1700121600000",
            "dateSpan": "0",
            "event": "Harmonised Inflation Rate YoY",
            "forecast": "7.8%",
            "importance": "1",
            "prevInitial": "",
            "previous": "9%",
            "refDate": "1698710400000",
            "region": "Slovakia",
            "uTime": "1700121605007",
            "unit": "%"
        }
    ],
    "msg": ""
}

返回参数

参数名类型描述
calendarIdstring经济日历ID
datestringactual字段值的预期发布时间,Unix时间戳的毫秒数格式,如 1597026383085
regionstring国家,地区或实体
categorystring类别名
eventstring事件名
refDatestring当前事件指向的日期
actualstring事件实际值
previousstring当前事件上个周期的最新实际值。
若发生数据修正,该字段存储上个周期修正后的实际值。
forecaststring由权威经济学家共同得出的预测值
dateSpanstring0:事件的具体发生时间已知
1:事件的具体发生日期已知,但时间未知
importancestring重要性
1: 低
2: 中等
3: 高
uTimestring当前事件的最新更新时间,Unix时间戳的毫秒数格式,如 1597026383085
prevInitialstring该事件上一周期的初始值
仅在修正发生时有值
ccystring事件实际值对应的货币
unitstring事件实际值对应的单位

获取历史市场数据

数据覆盖范围 历史数据回填正在进行中,不同模块、产品和时间段的数据覆盖范围可能有所差异。数据集将持续扩展,以提供更全面的历史数据覆盖。

旧数据格式注意 对于模块1(交易历史),一些旧的历史文件可能包含同时带有中文字符和英文列名的列标题。数据回填完成后,所有中文字符将被移除。请在解析数据时考虑到这一点。

数据发布安排 模块 1、2、3、11 的数据通常在 T+2 可用;订单簿数据通常在 T+3 可用。

获取OKX历史市场数据。

限速:2次/5s

限速规则:IP

HTTP请求

GET /api/v5/public/market-data-history

请求示例

shell
GET /api/v5/public/market-data-history?module=1&instType=SWAP&instFamilyList=BTC-USDT&dateAggrType=daily&begin=1756604295000&end=1756777095000

请求参数

参数名称类型是否必须描述
moduleString数据模块类型
1: 逐笔成交历史
2: 1分钟K线
3: 资金费率
4: 400档位深度
5: 5000档位深度(自2025年11月1日起支持)
6: 50档位深度 (将逐步弃用,请使用 module = 4,5 代替)
11: 借币利率
instTypeString产品类型
SPOT
FUTURES
SWAP
OPTION
instIdListString可选产品ID列表,例如 BTC-USDTANY 表示所有产品(ANY 仅支持 module = 1, 2, 3, 11 & dateAggrType = daily
多个产品请用英文逗号分隔,如 BTC-USDT,ETH-USDT
最大长度 = 10
仅适用于instType = SPOT
instFamilyListString可选交易品种列表,例如 BTC-USDTANY 表示所有产品(ANY 仅支持 module = 1, 2, 3, 11 & dateAggrType = daily
多个品种请用英文逗号分隔,如 BTC-USDT,ETH-USDT
最大长度 = 10 (当module = 6 & instType = OPTION时为1)
仅适用于instType ≠ SPOT
dateAggrTypeString日期聚合类型
daily (不支持 module = 3 & instFamilyList ≠ ANY)
monthly (不支持module = 6
beginString开始时间戳,Unix时间戳格式为毫秒数(包含该时间)
日度最大范围:10天,月度最大范围:10个月
endString结束时间戳,Unix时间戳格式为毫秒数(包含该时间)
当module = 6 & instType = OPTION时,仅返回end指定日期的数据

返回示例

json
{
  "code": "0",
  "data": [{
    "dateAggrType": "daily",
    "details": [{
      "dateRangeEnd": "1756656000000",
      "dateRangeStart": "1756569600000",
      "groupDetails": [{
        "dateTs": "1756656000000",
        "filename": "BTC-USDT-SWAP-trades-2025-09-01.zip",
        "sizeMB": "10.82",
        "url": "https://static.okx.com/cdn/okex/traderecords/trades/daily/20250901/BTC-USDT-SWAP-trades-2025-09-01.zip"
      },
      {
        "dateTs": "1756569600000",
        "filename": "BTC-USDT-SWAP-trades-2025-08-31.zip",
        "sizeMB": "4.82",
        "url": "https://static.okx.com/cdn/okex/traderecords/trades/daily/20250831/BTC-USDT-SWAP-trades-2025-08-31.zip"
      }],
      "groupSizeMB": "15.64",
      "instFamily": "BTC-USDT",
      "instId": "",
      "instType": "SWAP"
    }],
    "totalSizeMB": "15.64",
    "ts": "1756882260390"
  }],
  "msg": ""
}

返回示例,当没有数据文件时

json
{
    "code": "0",
    "data": [
        {
            "dateAggrType": "monthly",
            "details": [],
            "totalSizeMB": "0",
            "ts": "1756889595507"
        }
    ],
    "msg": ""
}

返回参数

参数名称类型描述
tsString响应时间戳,Unix时间戳格式为毫秒数
totalSizeMBString所有数据文件总大小,单位MB
dateAggrTypeString日期聚合类型
daily
monthly
detailsArray
> instIdString产品ID
> instFamilyString交易品种
> dateRangeStartString数据范围开始日期,Unix时间戳格式为毫秒数(包含该时间)
> dateRangeEndString数据范围结束日期,Unix时间戳格式为毫秒数(包含该时间)
> groupSizeMBString数据组大小,单位MB
> groupDetailsArray
>> filenameString数据文件名,例如 BTC-USDT-SWAP-trades-2025-05-15.zip
>> dataTsString数据日期时间戳,Unix时间戳格式为毫秒数
>> sizeMBString文件大小,单位MB
>> urlString下载链接

数据查询规则 • 仅使用时间戳的日期部分(yyyy-mm-dd),忽略时间部分 • begin和end时间戳均为包含该时间 • 数据按倒序时间顺序返回(越接近end的数据越靠前) • 如果查询超出记录限制,返回最接近end时间戳的数据 • 例外: 当 module = 6 且 instType = OPTION 时,仅返回 end 指定日期的数据

时间戳解析的时区规范 将Unix时间戳转换为日期时,以下时区约定适用于所有时间戳字段(begin, end, dateRangeStart, dateRangeEnd, dataTs): • 深度数据 (模块4、5、6):UTC+0 • 其他数据模块 (模块1、2、3、11):UTC+8

获取 MM 币对分类类型

获取当前做市商(MM)计划 SPOT 和 SWAP 产品的币对分类类型列表。

限速:每2秒5次请求

限速规则:IP

HTTP请求

GET /api/v5/public/mm-instrument-types

请求示例

shell
GET /api/v5/public/mm-instrument-types?instType=SWAP
python
import okx.PublicData as PublicData

flag = "0"  # 实盘:0 , 模拟盘:1

publicDataAPI = PublicData.PublicAPI(flag=flag)

# 获取 MM 币对分类类型
result = publicDataAPI.get_mm_instrument_types(
    instType="SWAP"
)
print(result)

请求参数

参数名类型是否必须描述
instTypeString产品类型
SPOT
SWAP
未指定时返回全部类型
instIdString产品ID,如 BTC-USDTBTC-USDT-SWAP
指定时返回至多一条记录

返回结果

json
{
    "code": "0",
    "msg": "",
    "data": [
        {
            "instId": "BTC-USDT-SWAP",
            "instType": "SWAP",
            "pairType": "A"
        },
        {
            "instId": "ETH-USDT-SWAP",
            "instType": "SWAP",
            "pairType": "A"
        },
        {
            "instId": "XAU-USDT-SWAP",
            "instType": "SWAP",
            "pairType": "B-TradFi"
        }
    ]
}

返回参数

参数名类型描述
instIdString产品ID,如 BTC-USDT-SWAP
instTypeString产品类型
SPOT
SWAP
pairTypeStringMM 计划分类类型
A:高流动性品种
B-Crypto:中低流动性加密资产
B-TradFi:传统金融品种(仅 SWAP)

获取 Delta 对冲币种

获取具有相同标的资产、可构成 Delta 对冲关系的币种,如 ETHBETHAAPLXAAPL

限速:每2秒20次请求

限速规则:IP

HTTP请求

GET /api/v5/public/delta-hedge-currencies

请求示例

shell
GET /api/v5/public/delta-hedge-currencies

GET /api/v5/public/delta-hedge-currencies?ccy=ETH
python
import okx.PublicData as PublicData

flag = "0"  # 实盘:0 , 模拟盘:1

publicDataAPI = PublicData.PublicAPI(flag=flag)

# 获取 Delta 对冲币种
result = publicDataAPI.get_delta_hedge_currencies(
    ccy="ETH"
)
print(result)

请求参数

参数名类型是否必须描述
ccyString币种,如 ETH
指定时仅返回该币种的对应关系
未指定时返回全部对应关系

返回结果

json
{
    "code": "0",
    "msg": "",
    "data": [
        {
            "ccy": "ETH",
            "hedgeCcy": ["BETH"]
        },
        {
            "ccy": "XAU",
            "hedgeCcy": ["XAUT"]
        },
        {
            "ccy": "AAPL",
            "hedgeCcy": ["XAAPL"]
        }
    ]
}

返回参数

参数名类型描述
ccyString币种,如 AAPLETH
hedgeCcyArray of stringsccy 具有相同标的资产、可与其构成 Delta 对冲关系的币种,如 ccyAAPL 时返回 ["XAAPL"]。该关系是双向的。

WebSocket

产品频道

增量数据的触发场景有:

  1. 当有产品状态 state 变化时(如期货交割、期权行权、新合约/币对上线、人工暂停/恢复交易等)

  2. 当交易参数变更(tickSz,minSz,maxMktSz)时

  3. 当上线时间或者下线时间(expTime, listTime)变更时

URL Path

/ws/v5/public

请求示例

shell
{ 
  "id": "1512",
  "op": "subscribe",  
  "args":   [    
    {     
      "channel": "instruments",
      "instType": "SPOT"
    }
  ] 
}
python
import asyncio
from okx.websocket.WsPublicAsync import WsPublicAsync

def callbackFunc(message):
    print(message)

async def main():
    ws = WsPublicAsync(url="wss://wspap.okx.com:8443/ws/v5/public")
    await ws.start()
    args = [
        {
          "channel": "instruments",
          "instType": "SPOT"
        }
    ]

    await ws.subscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

    await ws.unsubscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

asyncio.run(main())

请求参数

参数类型是否必须描述
idString消息的唯一标识。
用户提供,返回参数中会返回以便于找到相应的请求。
字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度必须要在1-32位之间。
opString操作
subscribe
unsubscribe
argsArray of objects请求订阅的频道列表
> channelString频道名
instruments
> instTypeString产品类型
SPOT:币币
MARGIN:币币杠杆
SWAP:永续合约
FUTURES:交割合约
OPTION:期权
EVENTS:事件合约

成功返回示例

json
{
  "id": "1512",
    "event": "subscribe",
    "arg": {
        "channel": "instruments",
        "instType": "SPOT"
    },
    "connId": "a4d3ae55"
}

失败返回示例

json
{
  "id": "1512",
    "event": "error",
    "code": "60012",
    "msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{ \"channel\" : \"instruments\", \"instType\" : \"FUTURES\"}]}",
    "connId": "a4d3ae55"
}

返回参数

参数类型是否必须描述
idString消息的唯一标识
eventString事件
subscribe
unsubscribe
error
argObject订阅的频道
> channelString频道名
> instTypeString产品类型
SPOT:币币
MARGIN:币币杠杆
SWAP:永续合约
FUTURES:交割合约
OPTION:期权
EVENTS:事件合约
codeString错误码
msgString错误消息
connIdStringWebSocket连接ID

推送示例

json
{
  "arg": {
    "channel": "instruments",
    "instType": "SPOT"
  },
  "data": [
    {
        "alias": "",
        "auctionEndTime": "",
        "baseCcy": "BTC",
        "category": "1",
        "ctMult": "",
        "ctType": "",
        "ctVal": "",
        "ctValCcy": "",
        "contTdSwTime": "1704876947000",
        "expTime": "",
        "futureSettlement": false,
        "groupId": "1",
        "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": "",
        "openType": "call_auction",
        "preMktSwTime": "",
        "quoteCcy": "USDT",
        "settleCcy": "",
        "state": "live",
        "ruleType": "normal",
        "stk": "",
        "tickSz": "0.1",
        "uly": "",
        "instIdCode": 1000000000
        "instCategory": "1",
        "upcChg": [
            {
                "param": "tickSz",
                "newValue": "0.0001",
                "effTime": "1704876947000"
            }
        ]
    }
  ]
}

推送数据参数

参数名类型描述
argObject订阅的频道
> channelString频道名
> instTypeString产品类型
dataArray of objects订阅的数据
> instTypeString产品类型
> seriesIdString系列 ID,如 BTC-ABOVE-DAILY。仅适用于 EVENTS
> instIdString产品ID,如 BTC-USDT
> categoryString币种类别(已废弃)
> ulyString标的指数,如 BTC-USD,仅适用于交割/永续/期权
> groupIdString交易产品手续费分组ID
现货:
3:TRY现货
5:BRL现货
7:AED现货
8:AUD现货
10:SGD现货
11:零手续费现货
12:现货分组一
13:现货分组二
14:现货分组三
15: 现货特别分组
17:现货稳定币分组
22:现货RWA分组二

交割合约:
5:交割合约分组一
6:交割合约分组二
8:XPERP分组二
10:XPERP RWA分组二

永续合约:
4:永续合约分组一
5:永续合约分组二
6:SWAP RWA分组一
7:SWAP RWA分组二

期权:
1:币本位期权

用户需要同时使用instType和groupId来确定一个交易产品的交易手续费分组;用户应该将此接口和获取当前账户交易手续费费率一起使用,以获取特定交易产品的手续费率

部分枚举值可能不适用于您,以实际返回为准
> instFamilyString交易品种,如 BTC-USD,仅适用于交割/永续/期权
> baseCcyString交易货币币种,如 BTC-USDTBTC,仅适用于币币/币币杠杆
> quoteCcyString计价货币币种,如 BTC-USDTUSDT,仅适用于币币/币币杠杆
> settleCcyString盈亏结算和保证金币种,如 BTC,仅适用于 交割/永续/期权
> ctValString合约面值
> ctMultString合约乘数
> ctValCcyString合约面值计价币种
> optTypeString期权类型
C:看涨期权
P:看跌期权
仅适用于期权
> stkString行权价格,仅适用于 期权
> listTimeString上线时间
> auctionEndTimeString集合竞价结束时间,Unix时间戳的毫秒数格式,如 1597026383085
仅适用于通过集合竞价方式上线的币币,其余情况返回""(已废弃,请使用contTdSwTime)
> contTdSwTimeString连续交易开始时间,从集合竞价、提前挂单切换到连续交易的时间,Unix时间戳格式,单位为毫秒。e.g. 1597026383085
仅适用于通过集合竞价或提前挂单上线的SPOT/MARGIN,在其他情况下返回""。
> preMktSwTimeString盘前交易产品切换为正常交易的时间,Unix时间戳的毫秒数格式,如 1597026383085
仅适用于盘前SWAP 与盘前 X-Perp FUTURES。当盘前 X-Perp 转换为正常 X-Perp 时填充
> openTypeString开盘类型
fix_price: 定价开盘
pre_quote: 提前挂单
call_auction: 集合竞价
只适用于SPOT/MARGIN,其他业务线返回""
> expTimeString产品下线时间
适用于币币/杠杆/交割/永续/期权,对于 交割/期权,为自然的交割/行权时间;如果币币/杠杆/交割/永续产品人工下线,为产品下线时间,有变动就会推送。
> leverString该产品支持的最大杠杆倍数
不适用于币币/期权。可用来区分币币杠杆币币
> tickSzString下单价格精度,如 0.0001
对于 OPTION/EVENTS,该值为 tick band 中的最小下单价格精度。
> lotSzString下单数量精度
合约的数量单位是,现货的数量单位是交易货币
> minSzString最小下单数
合约的数量单位是,现货的数量单位是交易货币
> ctTypeString合约类型
linear:正向合约
inverse:反向合约
仅适用于交割/永续
> aliasString合约日期别名(已废弃,将于 2026 年 4 月底下线,请使用 expTime 字段获取交割时间)
this_week:本周
next_week:次周
this_month:本月
next_month:次月
quarter:季度
next_quarter:次季度
this_five_years:当期五年合约
next_five_years:次期五年合约
仅适用于交割
> stateString产品状态
live:交易中
suspend:暂停中
expired:已过期
rebase:合约在变基中,不可交易
post_only:仅接受 post-only 订单;已有 post-only 订单可改单和撤单。其他订单类型(市价单、IOC、FOK、普通限价单)将被拒绝。
preopen:预上线,交割和期权合约轮转生成到开始交易;部分交易产品上线前
test:测试中(测试产品,不可交易)
settling:结算中,仅适用于 EVENTS
> ruleTypeString交易规则类型
normal:普通交易
pre_market:盘前交易,含盘前 X-Perp FUTURES
rebase_contract:盘前变基合约
xperp:永续合约风格的交割合约,仅适用于部分 FUTURES 合约。盘前 X-Perp 转换为正常 X-Perp 后,由 pre_market 变为 xperp
> maxLmtSzString限价单的单笔最大委托数量
合约的数量单位是,现货的数量单位是交易货币
> maxMktSzString市价单的单笔最大委托数量
合约的数量单位是,现货的数量单位是USDT
> maxTwapSzString时间加权单的单笔最大委托数量
合约的数量单位是,现货的数量单位是交易货币
> maxIcebergSzString冰山委托的单笔最大委托数量
合约的数量单位是,现货的数量单位是交易货币
> maxTriggerSzString计划委托委托的单笔最大委托数量
合约的数量单位是,现货的数量单位是交易货币
> maxStopSzString止盈止损市价委托的单笔最大委托数量
合约的数量单位是,现货的数量单位是USDT
> futureSettlementBoolean交割合约是否支持每日结算
适用于全仓``交割
> instIdCodeInteger产品唯一标识代码。
对于简单二进制编码,您必须使用 instIdCode 而不是 instId
对于同一instId,实盘和模拟盘的值可能会不一样。
当值还未生成时,返回 null
> instCategoryString标的资产类别(产品ID的第一部分)。例如:对于 BTC-USDT-SWAP,instCategory 表示 BTC 所属的资产类别。
1: 加密货币
3: 股票类资产
4: 大宗商品
5: 外汇
6: 债券
"" 当值不可用时返回空字符串
> upcChgArray of objects即将变更的参数列表。当没有即将变更的参数时,返回空数组 []
>> paramString即将变更的参数名称。
tickSz
minSz:若为交割/永续合约(FUTURES/SWAP),lotSz 会同步变更。
maxMktSz
>> newValueString即将变更的参数值。
>> effTimeString生效时间。Unix 时间戳格式,例如 1597026383085

产品状态变更,是触发instrument接口推送条件: 当合约预上线时,状态变更为预上线(即新生成一个合约,新合约会处于预上线状态); 当产品下线的时候(如交割合约被交割的时候,期权合约被行权的时候),状态变更为已过期

listTime以及contTdSwTime 对于通过集合竞价/提前挂单方式上线的币币,listTime为集合竞价/提前挂单的开始时间,contTdSwTime为集合竞价/提前挂单的结束时间、连续交易的开始时间;对于其他情况及业务线,listTime即为连续交易开始时间,contTdSwTime将返回""

state 对于币币杠杆永续交割,状态state在时间到达listTime时由preopen转变为live。对于期权合约,由于内部处理原因,状态可能在listTime之后短暂延迟变为live。建议在下单前确认statelive。上线前,交易产品频道将推送预上线产品,状态为state:preopen;若上线被取消,频道将全量推送数据,其中不包括被取消的预上线产品,不做额外通知。交易产品上线时(期权合约可能在listTime之后短暂时间内),频道将推送状态为交易中state:live。用户亦可以通过REST接口查询到相应数据。 当产品下线的时候(如交割合约被交割的时候,期权合约被行权的时候),查询不到该产品

事件合约市场频道

推送事件合约市场状态更新及 floorStrike 生成。不推送初始快照。

URL Path

/ws/v5/public

请求示例

shell
{
    "op": "subscribe",
    "args": [
        {
            "channel": "event-contract-markets",
            "instType": "EVENTS"
        }
    ]
}

请求参数

参数名类型是否必须描述
idString消息的唯一标识。用户提供,返回参数中会返回以便于找到相应的请求。字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度必须要在1-32位之间。
opString操作。
subscribe
unsubscribe
argsArray of objects订阅频道列表
> channelString频道名。
event-contract-markets
> instTypeString产品类型。
EVENTS

成功返回示例

json
{
    "id": "1512",
    "event": "subscribe",
    "arg": {
        "channel": "event-contract-markets",
        "instType": "EVENTS"
    },
    "connId": "a4d3ae55"
}

失败返回示例

json
{
    "id": "1512",
    "event": "error",
    "code": "60012",
    "msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{\"channel\": \"event-contract-markets\", \"instType\": \"EVENTS\"}]}",
    "connId": "a4d3ae55"
}

返回参数

参数名类型描述
idString消息的唯一标识
eventString事件。
subscribe
unsubscribe
error
argObject订阅的频道
> channelString频道名
> instTypeString产品类型
codeString错误码
msgString错误消息
connIdStringWebSocket 连接 ID

推送数据示例

json
{
    "arg": {
        "channel": "event-contract-markets"
    },
    "data": [
        {
            "seriesId": "BTC-ABOVE-DAILY",
            "eventId": "BTC-ABOVE-DAILY-260224-1600",
            "instId": "BTC-ABOVE-DAILY-260224-1600-65000",
            "listTime": "1769697132335",
            "fixTime": "",
            "expTime": "1769697132335",
            "state": "live",
            "outcome": "0",
            "floorStrike": "120000",
            "capStrike": "",
            "settleValue": "",
            "disputed": false,
            "hitDir": ""
        }
    ]
}

推送数据参数

参数名类型描述
argObject订阅的频道
> channelString频道名
dataArray of objects订阅数据
> seriesIdString系列 ID,如 BTC-ABOVE-DAILY
> eventIdString事件 ID,如 BTC-ABOVE-DAILY-260224-1600
> instIdString产品 ID,如 BTC-ABOVE-DAILY-260224-1600-65000
> listTimeString上线时间。Unix时间戳的毫秒数格式,如 1597026383085
> fixTimeString行权价格确定时间。Unix时间戳的毫秒数格式,如 1597026383085。仅适用于 price_up_down 结算方式。
> expTimeString行权时间。Unix时间戳的毫秒数格式,如 1597026383085。结算后更新。
> stateString市场状态。
preopen
live
settling
expired
> outcomeString市场结果。
0:未确定
1:YES
2:NO。
1/2 仅在 state 为 expired 时适用
> floorStrikeString导致 YES 结果的最低到期价格
> capStrikeStringbetween 结算方式中导致 YES 结果的最大到期值。"INF" 表示无上限(最高区间)。
between 方式返回 ""
> settleValueString结算价格。
仅在 state 为 expired 时返回
> disputedBoolean是否存在争议。
true
false
> hitDirString触及方向。仅在结算方式为 hit 时适用。
up:价格从下方触及
dn:价格从上方触及
"":不适用(非 hit 方式)

持仓总量频道

获取持仓总量,每3s有数据更新推送一次数据

URL Path

/ws/v5/public

请求示例

shell
{
    "id": "1512",
    "op": "subscribe",
    "args": [{
        "channel": "open-interest",
        "instId": "LTC-USD-SWAP"
    }]
}
python
import asyncio
from okx.websocket.WsPublicAsync import WsPublicAsync

def callbackFunc(message):
    print(message)

async def main():
    ws = WsPublicAsync(url="wss://wspap.okx.com:8443/ws/v5/public")
    await ws.start()
    args = [
        {
          "channel": "open-interest",
          "instId": "LTC-USD-SWAP"
        }
    ]

    await ws.subscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

    await ws.unsubscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

asyncio.run(main())

请求参数

参数类型是否必须描述
idString消息的唯一标识。
用户提供,返回参数中会返回以便于找到相应的请求。
字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度必须要在1-32位之间。
opString操作
subscribe
unsubscribe
argsArray of objects请求订阅的频道列表
> channelString频道名
open-interest
> instIdString产品ID

成功返回示例

json
{
    "id": "1512",
    "event": "subscribe",
    "arg": {
        "channel": "open-interest",
        "instId": "LTC-USD-SWAP"
    },
    "connId": "a4d3ae55"
}

失败返回示例

json
{
    "id": "1512",
    "event": "error",
    "code": "60012",
    "msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{ \"channel\" : \"open-interest\", \"instId\" : \"LTC-USD-SWAP\"}]}",
    "connId": "a4d3ae55"
}

返回参数

参数类型是否必须描述
idString消息的唯一标识
eventString事件
subscribe
unsubscribe
error
argObject订阅的频道
> channelString频道名
> instIdString产品ID
codeString错误码
msgString错误消息
connIdStringWebSocket连接ID

推送示例

json
{
    "arg": {
        "channel": "open-interest",
        "instId": "BTC-USDT-SWAP"
    },
    "data": [
        {
            "instId": "BTC-USDT-SWAP",
            "instType": "SWAP",
            "oi": "2216113.01000000309",
            "oiCcy": "22161.1301000000309",
            "oiUsd": "1939251795.54769270396321",
            "ts": "1743041250440"
        }
    ]
}

推送数据参数

参数名类型描述
argObject订阅成功的频道
> channelString频道名
> instIdString产品ID
dataArray of objects订阅的数据
> instTypeString产品类型
> instIdString产品ID,如 BTC-USDT-SWAP
> oiString持仓量,按张为单位
> oiCcyString持仓量,按币为单位,如 BTC
> oiUsdString持仓量(按USD折算)
> tsString数据更新的时间,Unix时间戳的毫秒数格式,如 1597026383085

资金费率频道

获取合约资金费率,30秒到90秒内推送一次数据

URL Path

/ws/v5/public

请求示例

shell
{
   "id": "1512",
    "op": "subscribe",
    "args": [{
        "channel": "funding-rate",
        "instId": "BTC-USD-SWAP"
    }]
}
python
import asyncio
from okx.websocket.WsPublicAsync import WsPublicAsync

def callbackFunc(message):
    print(message)

async def main():
    ws = WsPublicAsync(url="wss://wspap.okx.com:8443/ws/v5/public")
    await ws.start()
    args = [
        {
          "channel": "funding-rate",
          "instId": "BTC-USD-SWAP"
        }
    ]

    await ws.subscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

    await ws.unsubscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

asyncio.run(main())

请求参数

参数类型是否必须描述
idString消息的唯一标识。
用户提供,返回参数中会返回以便于找到相应的请求。
字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度必须要在1-32位之间。
opString操作
subscribe
unsubscribe
argsArray of objects请求订阅的频道列表
> channelString频道名
funding-rate
> instIdString产品ID

成功返回示例

json
{
   "id": "1512",
    "event": "subscribe",
    "arg": {
        "channel": "funding-rate",
        "instId": "BTC-USD-SWAP"
    },
    "connId": "a4d3ae55"
}

失败返回示例

json
{
   "id": "1512",
    "event": "error",
    "code": "60012",
    "msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{ \"channel\" : \"funding-rate\"\"instId\" : \"BTC-USD-SWAP\"}]}",
    "connId": "a4d3ae55"
}

返回参数

参数类型是否必须描述
idString消息的唯一标识
eventString事件
subscribe
unsubscribe
error
argObject订阅的频道
> channelString频道名
> instIdString产品ID
codeString错误码
msgString错误消息
connIdStringWebSocket连接ID

推送示例

json
{
   "arg":{
      "channel":"funding-rate",
      "instId":"BTC-USD-SWAP"
   },
   "data":[
      {
         "fundingRate":"0.0001875391284828",
         "fundingTime":"1700726400000",
         "instId":"BTC-USD-SWAP",
         "instType":"SWAP",
         "method": "current_period",
         "maxFundingRate":"0.00375",
         "minFundingRate":"-0.00375",
         "nextFundingRate":"",
         "nextFundingTime":"1700755200000",
         "premium": "0.0001233824646391",
         "settFundingRate":"0.0001699799259033",
         "settState":"settled",
         "ts":"1700724675402"
      }
   ]
}

推送数据参数

参数名类型描述
argObject订阅成功的频道
> channelString频道名
> instIdString产品ID
dataArray of objects订阅的数据
> instTypeString产品类型
SWAP:永续合约
FUTURES:X-Perps 交割合约
> instIdString产品ID,如 BTC-USD-SWAP
> methodString资金费收取逻辑
current_period:当期收
next_period:跨期收(不再支持跨期收合约)
> formulaTypeString公式类型
noRate:旧资金费率计算公式
withRate:新资金费率计算公式
> fundingRateString资金费率
> fundingTimeString最新的到期结算的资金费时间,Unix时间戳的毫秒数格式,如 1597026383085
> nextFundingRateString下一期预测资金费率(不再支持跨期收合约)
> nextFundingTimeString下一期资金费时间,Unix时间戳的毫秒数格式,如 1622851200000
> minFundingRateString下一期的预测资金费率下限
> maxFundingRateString下一期的预测资金费率上限
> interestRateString利率
> impactValueString深度加权金额(计价币数量)
> settStateString资金费率结算状态
processing:结算中
settled:已结算
> settFundingRateString若 settState = processing,该字段代表用于本轮结算的资金费率;若 settState = settled,该字段代表用于上轮结算的资金费率
> premiumString溢价指数
公式:[max (0,深度加权买价 - 指数价格) – max (0,指数价格 – 深度加权卖价)] / 指数价格
> tsString数据更新时间,Unix时间戳的毫秒数格式,如 1597026383085

针对一些资金费率波动较大的小币种,OKX也将实时关注行情变化,在必要时候,将资金费率收取频率从8小时收付,改成频率较高的6小时/4小时/2小时/1小时收付。因此,用户应关注fundingTimenextFundingTime字段以确定合约的资金费收取频率。

限价频道

获取交易产品的最高买价和最低卖价。限价有变化时,每 200 毫秒推送一次数据,限价没变化时,不推送数据

URL Path

/ws/v5/public

请求示例

shell
{
    "id": "1512",
    "op": "subscribe",
    "args": [{
        "channel": "price-limit",
        "instId": "LTC-USD-190628"
    }]
}
python
import asyncio
from okx.websocket.WsPublicAsync import WsPublicAsync

def callbackFunc(message):
    print(message)

async def main():
    ws = WsPublicAsync(url="wss://wspap.okx.com:8443/ws/v5/public")
    await ws.start()
    args = [
        {
          "channel": "price-limit",
          "instId": "LTC-USD-190628"
        }
    ]

    await ws.subscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

    await ws.unsubscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

asyncio.run(main())

请求参数

参数类型是否必须描述
idString消息的唯一标识。
用户提供,返回参数中会返回以便于找到相应的请求。
字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度必须要在1-32位之间。
opString操作
subscribe
unsubscribe
argsArray of objects请求订阅的频道列表
> channelString频道名
price-limit
> instIdString产品ID

成功返回示例

json
{
    "id": "1512",
    "event": "subscribe",
    "arg": {
        "channel": "price-limit",
        "instId": "LTC-USD-190628"
    },
    "connId": "a4d3ae55"
}

失败返回示例

json
{
    "id": "1512",
    "event": "error",
    "code": "60012",
    "msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{ \"channel\" : \"price-limit\"\"instId\" : \"LTC-USD-190628\"}]}",
    "connId": "a4d3ae55"
}

返回参数

参数类型是否必须描述
idString消息的唯一标识
eventString事件
subscribe
unsubscribe
error
argObject订阅的频道
> channelString频道名
> instIdString产品ID
codeString错误码
msgString错误消息
connIdStringWebSocket连接ID

推送示例

json
{
    "arg": {
        "channel": "price-limit",
        "instId": "LTC-USD-190628"
    },
    "data": [{
        "instId": "LTC-USD-190628",
        "buyLmt": "200",
        "sellLmt": "300",
        "ts": "1597026383085",
        "enabled": true
    }]
}

推送数据参数

参数名类型描述
argObject订阅成功的频道
> channelString频道名
> instIdString产品ID
dataArray of objects订阅的数据
> instTypeString产品类型
> instIdString产品ID,如 BTC-USD-SWAP
> buyLmtString最高买价
当enabled为false时,返回""
> sellLmtString最低卖价
当enabled为false时,返回""
> tsString限价数据更新时间 ,Unix时间戳的毫秒数格式,如 1597026383085
> enabledBoolean限价是否生效
true:限价生效
false:限价不生效

期权定价频道

获取所有期权合约详细定价信息,一次性推送所有

URL Path

/ws/v5/public

请求示例

shell
{
    "id": "1512",
    "op": "subscribe",
    "args": [{
        "channel": "opt-summary",
        "instFamily": "BTC-USD"
    }]
}
python
import asyncio
from okx.websocket.WsPublicAsync import WsPublicAsync

def callbackFunc(message):
    print(message)

async def main():
    ws = WsPublicAsync(url="wss://wspap.okx.com:8443/ws/v5/public")
    await ws.start()
    args = [
        {
          "channel": "opt-summary",
          "instFamily": "BTC-USD"
        }
    ]

    await ws.subscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

    await ws.unsubscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

asyncio.run(main())

请求参数

参数类型是否必须描述
idString消息的唯一标识。
用户提供,返回参数中会返回以便于找到相应的请求。
字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度必须要在1-32位之间。
opString操作
subscribe
unsubscribe
argsArray of objects请求订阅的频道列表
> channelString频道名
opt-summary
> instFamilyString交易品种

返回示例

json
{
    "id": "1512",
    "event": "subscribe",
    "arg": {
        "channel": "opt-summary",
        "instFamily": "BTC-USD"
    },
    "connId": "a4d3ae55"
}

失败示例

json
{
    "id": "1512",
    "event": "error",
    "code": "60012",
    "msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{ \"channel\" : \"opt-summary\"\"instFamily\" : \"BTC-USD\"}]}",
    "connId": "a4d3ae55"
}

返回参数

参数类型是否必须描述
idString消息的唯一标识
eventString事件
subscribe
unsubscribe
error
argObject订阅的频道
> channelString频道名
> instFamilyString交易品种
codeString错误码
msgString错误消息
connIdStringWebSocket连接ID

推送示例

json
{
    "arg": {
        "channel": "opt-summary",
        "instFamily": "BTC-USD"
    },
    "data": [
        {
            "instType": "OPTION",
            "instId": "BTC-USD-241013-70000-P",
            "uly": "BTC-USD",
            "delta": "-1.1180902625",
            "gamma": "2.2361957091",
            "vega": "0.0000000001",
            "theta": "0.0000032334",
            "lever": "8.465747567",
            "markVol": "0.3675503331",
            "bidVol": "0",
            "askVol": "1.1669998535",
            "realVol": "",
            "deltaBS": "-0.9999672034",
            "gammaBS": "0.0000000002",
            "thetaBS": "28.2649858387",
            "vegaBS": "0.0000114332",
            "ts": "1728703155650",
            "fwdPx": "62604.6993093463",
            "volLv": "0.2044711229"
        }
    ]
}

推送数据参数

参数名类型描述
argObject订阅成功的频道
> channelString频道名
> instFamilyString交易品种
dataArray of objects订阅的数据
> instTypeString产品类型, OPTION
> instIdString产品ID
> ulyString标的指数
> deltaString期权价格对uly价格的敏感度
> gammaStringdelta对uly价格的敏感度
> vegaString期权价格对隐含波动率的敏感度
> thetaString期权价格对剩余期限的敏感度
> deltaBSStringBS模式下期权价格对uly价格的敏感度
> gammaBSStringBS模式下delta对uly价格的敏感度
> vegaBSStringBS模式下期权价格对隐含波动率的敏感度
> thetaBSStringBS模式下期权价格对剩余期限的敏感度
> leverString杠杆倍数
> markVolString标记波动率
> bidVolStringbid波动率
> askVolStringask波动率
> realVolString已实现波动率,目前该字段暂未启用
> volLvString平价期权的隐含波动率
> fwdPxString远期价格
> tsString数据更新时间,Unix时间戳的毫秒数格式,如 1597026383085

预估永续/交割/行权/结算价格频道

在永续/交割/行权/结算前30分钟内,将基于指数价格计算并推送预估价,更新频率约为每 200 毫秒一次。

URL Path

/ws/v5/public

请求示例

shell
{
    "id": "1512",
    "op": "subscribe",
    "args": [{
        "channel": "estimated-price",
        "instType": "FUTURES",
        "instFamily": "BTC-USD"
    }]
}
python
import asyncio
from okx.websocket.WsPublicAsync import WsPublicAsync

def callbackFunc(message):
    print(message)

async def main():
    ws = WsPublicAsync(url="wss://wspap.okx.com:8443/ws/v5/public")
    await ws.start()
    args = [
        {
          "channel": "estimated-price",
          "instType": "FUTURES",
          "instFamily": "BTC-USD"
        }
    ]

    await ws.subscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

    await ws.unsubscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

asyncio.run(main())

请求参数

参数类型是否必须描述
idString消息的唯一标识。
用户提供,返回参数中会返回以便于找到相应的请求。
字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度必须要在1-32位之间。
opString操作
subscribe
unsubscribe
argsArray of objects请求订阅的频道列表
> channelString频道名
estimated-price
> instTypeString产品类型
FUTURES:交割
OPTION:期权
SWAP:永续
EVENTS:事件合约
> instFamilyString可选交易品种
instFamilyinstId必须指定一个
> instIdString可选产品ID
instFamilyinstId必须指定一个

成功返回示例

json
{
    "id": "1512",
    "event": "subscribe",
    "arg": {
        "channel": "estimated-price",
        "instType": "FUTURES",
        "instFamily": "BTC-USD"
    },
    "connId": "a4d3ae55"
}

失败返回示例

json
{
    "id": "1512",
    "event": "error",
    "code": "60012",
    "msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{ \"channel\" : \"estimated-price\"\"instId\" : \"FUTURES\",\"instFamily\" :\"BTC-USD\"}]}",
    "connId": "a4d3ae55"
}

返回参数

参数类型是否必须描述
idString消息的唯一标识
eventString事件
subscribe
unsubscribe
error
argObject订阅的频道
> channelString频道名
> instTypeString产品类型
FUTURES:交割
OPTION:期权
SWAP:永续
EVENTS:事件合约
> instFamilyString交易品种
> instIdString产品ID
codeString错误码
msgString错误消息
connIdStringWebSocket连接ID

推送示例

json
{
    "arg": {
        "channel": "estimated-price",
        "instType": "FUTURES",
        "instFamily": "XRP-USDT"
    },
    "data": [{
        "instId": "XRP-USDT-250307",
        "instType": "FUTURES",
        "settlePx": "2.4230631578947368",
        "settleType": "settlement",
        "ts": "1741244598708"
    }]
}

推送数据参数

参数名类型描述
argObject订阅成功的频道
> channelString频道名
> instTypeString产品类型
FUTURES:交割
OPTION:期权
SWAP:永续
EVENTS:事件合约
> instFamilyString交易品种
> instIdString产品ID
dataArray of objects订阅的数据
> instTypeString产品类型
> instIdString产品ID,如 BTC-USD-170310
> settleTypeString类型
settlement:结算
delivery:交割
exercise:行权
> settlePxString预估价
> tsString数据更新时间,Unix时间戳的毫秒数格式,如 1597026383085

标记价格频道

获取标记价格,标记价格有变化时,每200ms推送一次数据,标记价格没变化时,每10s推送一次数据

URL Path

/ws/v5/public

请求示例

shell
{
  "id": "1512",
    "op": "subscribe",
    "args": [{
        "channel": "mark-price",
        "instId": "BTC-USDT"
    }]
}
python
import asyncio
from okx.websocket.WsPublicAsync import WsPublicAsync

def callbackFunc(message):
    print(message)

async def main():
    ws = WsPublicAsync(url="wss://wspap.okx.com:8443/ws/v5/public")
    await ws.start()
    args = [{
        "channel": "mark-price",
        "instId": "BTC-USDT"
    }]

    await ws.subscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

    await ws.unsubscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

asyncio.run(main())

请求参数

参数类型是否必须描述
idString消息的唯一标识。
用户提供,返回参数中会返回以便于找到相应的请求。
字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度必须要在1-32位之间。
opString操作
subscribe
unsubscribe
argsArray of objects请求订阅的频道列表
> channelString频道名
mark-price
> instIdString产品ID

成功返回示例

json
{
  "id": "1512",
    "event": "subscribe",
    "arg": {
        "channel": "mark-price",
        "instId": "BTC-USDT"
    },
    "connId": "a4d3ae55"
}

失败返回示例

json
{
  "id": "1512",
    "event": "error",
    "code": "60012",
    "msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{ \"channel\" : \"mark-price\"\"instId\" : \"LTC-USD-190628\"}]}",
    "connId": "a4d3ae55"
}

返回参数

参数类型是否必须描述
idString消息的唯一标识
eventString事件
subscribe
unsubscribe
error
argObject订阅的频道
> channelString频道名
> instIdString产品ID
codeString错误码
msgString错误消息
connIdStringWebSocket连接ID

推送示例

json
{
  "arg": {
    "channel": "mark-price",
    "instId": "BTC-USDT"
  },
  "data": [
    {
      "instType": "MARGIN",
      "instId": "BTC-USDT",
      "markPx": "42310.6",
      "ts": "1630049139746"
    }
  ]
}

推送数据参数

参数名类型描述
argObject订阅成功的频道
> channelString频道名
> instIdString产品ID
dataArray of objects订阅的数据
> instTypeString交易品种
> instIdString产品ID
> markPxString标记价格
> tsString标记价格数据更新时间 ,Unix时间戳的毫秒数格式,如 1597026383085

在极少数情况下,客户端可能在短时间内收到两条时间戳相同的标记价格消息。这可能发生在系统维护或服务发布期间,且不会持续出现。当出现此情况时,客户端应以后收到的消息作为权威值。两条消息的差值可忽略不计,不会对交易策略产生实质性影响。

指数行情频道

获取指数的行情数据。每100ms有变化就推送一次数据,否则一分钟推一次。

URL Path

/ws/v5/public

请求示例

shell
{
    "id": "1512",
    "op": "subscribe",
    "args": [{
        "channel": "index-tickers",
        "instId": "BTC-USDT"
    }]
}
python
import asyncio
from okx.websocket.WsPublicAsync import WsPublicAsync

def callbackFunc(message):
    print(message)

async def main():
    ws = WsPublicAsync(url="wss://wspap.okx.com:8443/ws/v5/public")
    await ws.start()
    args = [
        {
          "channel": "index-tickers",
          "instId": "BTC-USDT"
        }
    ]

    await ws.subscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

    await ws.unsubscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

asyncio.run(main())

请求参数

参数类型是否必须描述
idString消息的唯一标识。
用户提供,返回参数中会返回以便于找到相应的请求。
字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度必须要在1-32位之间。
opStringsubscribe unsubscribe
argsArray of objects请求订阅的频道列表
> channelString频道名
index-tickers
> instIdString指数,以USD、USDT、BTC、USDC 为计价货币的指数,如 BTC-USDT
uly 含义相同。

成功返回示例

json
{
    "id": "1512",
    "event": "subscribe",
    "arg": {
        "channel": "index-tickers",
        "instId": "BTC-USDT"
    },
    "connId": "a4d3ae55"
}

失败返回示例

json
{
    "id": "1512",
    "event": "error",
    "code": "60012",
    "msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{ \"channel\" : \"index-tickers\"\"instId\" : \"BTC-USDT\"}]}",
    "connId": "a4d3ae55"
}

返回参数

参数类型是否必须描述
idString消息的唯一标识
eventStringsubscribe unsubscribe error
argObject订阅的频道
> channelString频道名
index-tickers
> instIdString指数,以USD、USDT、BTC、USDC 为计价货币的指数,如 BTC-USDT
codeString错误码
msgString错误消息
connIdStringWebSocket连接ID

推送示例

json
{
    "arg": {
        "channel": "index-tickers",
        "instId": "BTC-USDT"
    },
    "data": [{
        "instId": "BTC-USDT",
        "idxPx": "0.1",
        "high24h": "0.5",
        "low24h": "0.1",
        "open24h": "0.1",
        "sodUtc0": "0.1",
        "sodUtc8": "0.1",
        "ts": "1597026383085"
    }]
}

推送数据参数

参数名类型描述
argObject订阅成功的频道
> channelString频道名
> instIdString指数
dataArray of objects订阅的数据
> instIdString指数,以USD、USDT、BTC 为计价货币的指数,如 BTC-USDT
> idxPxString最新指数价格
> open24hString24小时开盘价
> high24hString24小时指数最高价格
> low24hString24小时指数最低价格
> sodUtc0StringUTC 0 时开盘价
> sodUtc8StringUTC+8 时开盘价
> tsString指数价格更新时间,Unix时间戳的毫秒数格式,如 1597026383085

标记价格K线频道

获取标记价格的K线数据,推送频率最快是间隔1秒推送一次数据。

URL Path

/ws/v5/business

请求示例

shell
{
    "id": "1512",
    "op": "subscribe",
    "args": [{
        "channel": "mark-price-candle1D",
        "instId": "BTC-USD-190628"
    }]
}
python
import asyncio
from okx.websocket.WsPublicAsync import WsPublicAsync

def callbackFunc(message):
    print(message)

async def main():
    ws = WsPublicAsync(url="wss://wspap.okx.com:8443/ws/v5/business")
    await ws.start()
    args = [
        {
          "channel": "mark-price-candle1D",
          "instId": "BTC-USD-190628"
        }
    ]

    await ws.subscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

    await ws.unsubscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

asyncio.run(main())

请求参数

参数类型是否必须描述
idString消息的唯一标识。
用户提供,返回参数中会返回以便于找到相应的请求。
字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度必须要在1-32位之间。
opString操作
subscribe
unsubscribe
argsArray of objects请求订阅的频道列表
> channelString频道名
mark-price-candle3M
mark-price-candle1M
mark-price-candle1W
mark-price-candle1D
mark-price-candle2D
mark-price-candle3D
mark-price-candle5D
mark-price-candle12H
mark-price-candle6H
mark-price-candle4H
mark-price-candle2H
mark-price-candle1H
mark-price-candle30m
mark-price-candle15m
mark-price-candle5m
mark-price-candle3m
mark-price-candle1m
mark-price-candle3Mutc
mark-price-candle1Mutc
mark-price-candle1Wutc
mark-price-candle1Dutc
mark-price-candle2Dutc
mark-price-candle3Dutc
mark-price-candle5Dutc
mark-price-candle12Hutc
mark-price-candle6Hutc
> instIdString产品ID

成功返回示例

json
{
    "id": "1512",
    "event": "subscribe",
    "arg": {
        "channel": "mark-price-candle1D",
        "instId": "BTC-USD-190628"
    },
    "connId": "a4d3ae55"
}

失败返回示例

json
{
    "id": "1512",
    "event": "error",
    "code": "60012",
    "msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{ \"channel\" : \"mark-price-candle1D\"\"instId\" : \"BTC-USD-190628\"}]}",
    "connId": "a4d3ae55"
}

返回参数

参数类型是否必须描述
idString消息的唯一标识
eventString事件
subscribe
unsubscribe
error
argObject订阅的频道
> channelString频道名
> instIdString产品ID
codeString错误码
msgString错误消息
connIdStringWebSocket连接ID

推送示例

json
{
    "arg": {
        "channel": "mark-price-candle1D",
        "instId": "BTC-USD-190628"
    },
    "data": [
        ["1597026383085", "3.721", "3.743", "3.677", "3.708", "0"],
        ["1597026383085", "3.731", "3.799", "3.494", "3.72", "1"]
    ]
}

推送数据参数

参数名类型描述
argObject订阅成功的频道
> channelString频道名
> instIdString产品ID
dataArray of Arrays订阅的数据
> tsString开始时间,Unix时间戳的毫秒数格式,如 1597026383085
> oString开盘价格
> hString最高价格
> lString最低价格
> cString收盘价格
> confirmStringK线状态
0 代表 K 线未完结,1 代表 K 线已完结。

指数K线频道

获取指数的K线数据,推送频率最快是间隔1秒推送一次数据。

URL Path

/ws/v5/business

请求示例

shell
{
    "id": "1512",
    "op": "subscribe",
    "args": [{
        "channel": "index-candle30m",
        "instId": "BTC-USD"
    }]
}
python
import asyncio
from okx.websocket.WsPublicAsync import WsPublicAsync

def callbackFunc(message):
    print(message)

async def main():
    ws = WsPublicAsync(url="wss://wspap.okx.com:8443/ws/v5/business")
    await ws.start()
    args = [
        {
          "channel": "index-candle30m",
          "instId": "BTC-USD"
        }
    ]

    await ws.subscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

    await ws.unsubscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

asyncio.run(main())

请求参数

参数类型是否必须描述
idString消息的唯一标识。
用户提供,返回参数中会返回以便于找到相应的请求。
字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度必须要在1-32位之间。
opString操作
subscribe
unsubscribe
argsArray of objects请求订阅的频道列表
> channelString频道名
index-candle3M
index-candle1M
index-candle1W
index-candle1D
index-candle2D
index-candle3D
index-candle5D
index-candle12H
index-candle6H
index-candle4H
index -candle2H
index-candle1H
index-candle30m
index-candle15m
index-candle5m
index-candle3m
index-candle1m
index-candle3Mutc
index-candle1Mutc
index-candle1Wutc
index-candle1Dutc
index-candle2Dutc
index-candle3Dutc
index-candle5Dutc
index-candle12Hutc
index-candle6Hutc
> instIdString现货指数,如 BTC-USD
uly 含义相同。

成功返回示例

json
{
    "id": "1512",
    "event": "subscribe",
    "arg": {
        "channel": "index-candle30m",
        "instId": "BTC-USD"
    },
    "connId": "a4d3ae55"
}

失败返回示例

json
{
    "id": "1512",
    "event": "error",
    "code": "60012",
    "msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{ \"channel\" : \"index-candle30m\"\"instId\" : \"BTC-USD\"}]}",
    "connId": "a4d3ae55"
}

返回参数

参数类型是否必须描述
idString消息的唯一标识
eventStringsubscribe unsubscribe
argObject订阅的频道
> channelString频道名
> instIdString现货指数
codeString错误码
msgString错误消息
connIdStringWebSocket连接ID

推送示例

json
{
    "arg": {
        "channel": "index-candle30m",
        "instId": "BTC-USD"
    },
    "data": [
        ["1597026383085", "3811.31", "3811.31", "3811.31", "3811.31","0"]
    ]
}

推送数据参数

参数名类型描述
argObject订阅成功的频道
> channelString频道名
> instIdString现货指数
dataArray of Arrays订阅的数据
> tsString开始时间,Unix时间戳的毫秒数格式,如 1597026383085
> oString开盘价格
> hString最高价格
> lString最低价格
> cString收盘价格
> confirmStringK线状态
0 代表 K 线未完结,1 代表 K 线已完结。

返回值数组顺分别为是:[ts,o,h,l,c,confirm]

平台公共爆仓单频道

获取爆仓单信息。显示的强平数据并不准确代表欧易的总强平量,亦不应被当做总强平量使用。

URL Path

/ws/v5/public

请求示例

shell
{
  "id": "1512",
  "op": "subscribe",
  "args": [
    {
      "channel": "liquidation-orders",
      "instType": "SWAP"
    }
  ]
}
python
import asyncio
from okx.websocket.WsPublicAsync import WsPublicAsync

def callbackFunc(message):
    print(message)

async def main():
    ws = WsPublicAsync(url="wss://wspap.okx.com:8443/ws/v5/public")
    await ws.start()
    args = [
        {
          "channel": "liquidation-orders",
          "instType": "SWAP"
        }
    ]

    await ws.subscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

    await ws.unsubscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

asyncio.run(main())

请求参数

参数类型是否必须描述
idString消息的唯一标识。
用户提供,返回参数中会返回以便于找到相应的请求。
字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度必须要在1-32位之间。
opString操作
subscribe
unsubscribe
argsArray of objects请求订阅的频道
> channelString频道名
liquidation-orders
> instTypeString产品类型
MARGIN:币币杠杆
SWAP:永续合约
FUTURES:交割合约
OPTION:期权

返回结果

json
{
  "id": "1512",
    "arg": {
        "channel": "liquidation-orders",
        "instType": "SWAP"
    },
    "data": [
        {
            "details": [
                {
                    "bkLoss": "0",
                    "bkPx": "0.007831",
                    "ccy": "",
                    "posSide": "short",
                    "side": "buy",
                    "sz": "13",
                    "ts": "1692266434010"
                }
            ],
            "instFamily": "IOST-USDT",
            "instId": "IOST-USDT-SWAP",
            "instType": "SWAP",
            "uly": "IOST-USDT"
        }
    ]
}

返回参数

参数名类型描述
idString消息的唯一标识
argObject订阅成功的频道
> channelString频道名
> instTypeString产品类型
dataArray of objects订阅的数据
> instTypeString产品类型
> instIdString产品ID,如 BTC-USD-SWAP
> ulyString标的指数
适用于交割/永续/期权
> detailsArray of objects详细内容
>> sideString订单方向
buy:买
sell:卖
仅适用于交割/永续
>> posSideString持仓模式方向
long:开平仓模式开多
short:开平仓模式开空
net:买卖模式
>> bkPxString强平标记价格,与系统爆仓账号委托成交的价格,仅适用于交割/永续
>> szString强平数量
适用于杠杆/交割/永续
对于杠杆,单位为交易货币。
对于交割/永续,单位为张。
>> bkLossString穿仓亏损数量
>> ccyString强平币种
适用于币币杠杆
>> tsString强平发生的时间,Unix时间戳的毫秒数格式,如 1597026383085 /

爆仓数据来自不同的数据源,因此推送的数据在时间上不一定是顺序的。

自动减仓预警频道

自动减仓预警。

仅在 warningadl 状态下推送数据,每1秒推送一次,展示风险保证金余额及相关风险信息。normal 状态下不再推送数据。

更多自动减仓细节,请见自动减仓机制介绍

服务地址

/ws/v5/public

请求示例

shell
{
   "id": "1512",
    "op": "subscribe",
    "args": [{
        "channel": "adl-warning",
        "instType": "FUTURES",
        "instFamily": "BTC-USDT"
    }]
}
python
import asyncio
from okx.websocket.WsPublicAsync import WsPublicAsync

def callbackFunc(message):
    print(message)

async def main():
    ws = WsPublicAsync(url="wss://wspap.okx.com:8443/ws/v5/public")
    await ws.start()
    args = [{
        "channel": "adl-warning",
        "instType": "FUTURES",
        "instFamily": "BTC-USDT"
    }]

    await ws.subscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

    await ws.unsubscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

asyncio.run(main())

请求参数

参数类型是否必须描述
idString消息的唯一标识。
用户提供,返回参数中会返回以便于找到相应的请求。
字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度必须要在1-32位之间。
opString操作
subscribe
unsubscribe
argsArray of objects请求订阅的频道列表
> channelString频道名
adl-warning
> instTypeString产品类型
FUTURES:交割合约
SWAP:永续合约
OPTION:期权
> instFamilyString交易品种

成功返回示例

json
{
   "id": "1512",
   "event":"subscribe",
   "arg":{
      "channel":"adl-warning",
      "instType":"FUTURES",
      "instFamily":"BTC-USDT"
   },
   "connId":"48d8960a"
}

失败返回示例

json
{
   "id": "1512",
   "event":"error",
   "msg":"Illegal request: { \"event\": \"subscribe\", \"arg\": { \"channel\": \"adl-warning\", \"instType\": \"FUTURES\", \"instFamily\": \"BTC-USDT\" } }",
   "code":"60012",
   "connId":"48d8960a"
}

返回参数

参数类型是否必须描述
idString消息的唯一标识
eventString事件
subscribe
unsubscribe
error
argObject订阅的频道
> channelString频道名
adl-warning
> instTypeString产品类型
> instFamilyString交易品种
codeString错误码
msgString错误消息
connIdStringWebSocket连接ID

推送示例

json
{
   "arg":{
      "channel":"adl-warning",
      "instType":"FUTURES",
      "instFamily":"BTC-USDT"
   },
   "data":[
      {
         "instType":"FUTURES",
         "instFamily":"BTC-USDT",
         "state":"warning",
         "bal":"280784384.9564228289548144",
         "ccy":"",
         "maxBal":"",
         "maxBalTs":"",
         "adlType":"",
         "adlBal":"",
         "adlRecBal":"",
         "ts":"1700210763001",
         "decRate":"",
         "adlRate":"",
         "adlRecRate":""
      }
   ]
}

推送数据参数

参数名类型描述
argObject请求订阅的频道
> channelString频道名
adl-warning
> instTypeString产品类型
> instFamilyString交易品种
dataArray of objects订阅的数据
> instTypeString产品类型
> instFamilyString交易品种
> stateString状态
warning:预警状态
adl:已开启自动减仓
> balString实时风险保证金余额
> ccyString风险保证金余额对应币种(已弃用,返回 ""。将在后续更新中删除)
> maxBalString过去八小时内的风险保证金余额最大值
仅在状态为warningadl时推送,状态为normal时推送空字符串""(已弃用,返回 ""。将在后续更新中删除)
> maxBalTsString过去八小时内风险保证金余额最大值对应的时间戳,Unix时间戳的毫秒数格式,如 1597026383085(已弃用,返回 ""。将在后续更新中删除)
> adlTypeString关于自动减仓的事件
rate_adl_start:由于风险保证金下降率过高造成的自动减仓开始
bal_adl_start:由于风险保证金余额下降过高造成的自动减仓开始
pos_adl_start:由于强平单的规模积累到一定程度的自动减仓开始(仅适用于盘前交易市场)
adl_end:自动减仓结束(已弃用,返回 ""。将在后续更新中删除)
> adlBalString触发自动减仓的风险保证金余额(已弃用,返回 ""。将在后续更新中删除)
> adlRecBalString自动减仓结束的风险保证金余额(已弃用,返回 ""。将在后续更新中删除)
> tsString数据更新时间,Unix时间戳的毫秒数格式,如 1597026383085
> decRateString风险保证金实时下降率(bal与maxBal相比较)
仅在状态为warningadl时推送,状态为normal时推送空字符串""(已弃用)
> adlRateString触发自动减仓的风险保证金下降率(已弃用)
> adlRecRateString自动减仓结束的风险保证金下降率(已弃用)

经济日历频道

仅支持实盘服务

获取最新经济日历数据。 该频道仅开放给交易费等级VIP1及以上的用户。

服务地址

/ws/v5/business (需要登录)

请求示例

shell
{
    "id": "1512"  
    "op": "subscribe",
    "args": [
      {
          "channel": "economic-calendar"
      }
    ]
}
python
import asyncio
from okx.websocket.WsPrivateAsync import WsPrivateAsync

def callbackFunc(message):
    print(message)

async def main():
    ws = WsPrivateAsync(
        apiKey = "YOUR_API_KEY",
        passphrase = "YOUR_PASSPHRASE",
        secretKey = "YOUR_SECRET_KEY",
        url = "wss://ws.okx.com:8443/ws/v5/business",
        useServerTime=False
    )
    await ws.start()
    args = [
      {
          "channel": "economic-calendar"
      }
    ]

    await ws.subscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

    await ws.unsubscribe(args, callback=callbackFunc)
    await asyncio.sleep(10)

asyncio.run(main())

请求参数

参数名类型是否必填描述
idString消息的唯一标识。
用户提供,返回参数中会返回以便于找到相应的请求。
字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度必须要在1-32位之间。
opString操作
subscribe
unsubscribe
argsArray of objects请求订阅的频道列表
> channelString频道名
economic-calendar

成功返回示例

json
{
    "id": "1512",
    "event": "subscribe",
    "arg": {
        "channel": "economic-calendar"
    },
    "connId": "a4d3ae55"
}

失败返回示例

json
{
  "id": "1512",
  "event": "error",
  "code": "60012",
  "msg": "Invalid request: {\"op\": \"subscribe\", \"argss\":[{ \"channel\" : \"economic-calendar\", \"instId\" : \"LTC-USD-190628\"}]}",
  "connId": "a4d3ae55"
}

返回参数

参数名类型是否必填描述
idString消息的唯一标识
eventString操作
subscribe
unsubscribe
error
argObject订阅的频道
> channelString频道名
economic-calendar
codeString错误码
msgString错误消息
connIdStringWebSocket连接ID

推送示例

json
{
    "arg": {
        "channel": "economic-calendar"
    },
    "data": [
        {
            "calendarId": "319275",
            "date": "1597026383085",
            "region": "United States",
            "category": "Manufacturing PMI",
            "event": "S&P Global Manufacturing PMI Final",
            "refDate": "1597026383085",
            "actual": "49.2",
            "previous": "47.3",
            "forecast": "49.3",
            "importance": "2",
            "prevInitial": "",
            "ccy": "",
            "unit": "",
            "ts": "1698648096590"
        }
    ]
}

推送数据参数

参数名类型描述
argObject订阅成功的频道
> channelString频道名
dataArray of objects订阅的数据
> eventstring事件名
> regionstring国家,地区或实体
> categorystring类别名
> actualstring事件实际值
> previousstring当前事件上个周期的最新实际值
若发生数据修正,该字段存储上个周期修正后的实际值
> forecaststring由权威经济学家共同得出的预测值
> prevInitialstring该事件上一周期的初始值
仅在修正发生时有值
> datestringactual字段值的预期发布时间,Unix时间戳的毫秒数格式,如 1597026383085
> refDatestring当前事件指向的日期
> calendarIdstring经济日历ID
> unitstring事件实际值对应的单位
> ccystring事件实际值对应的货币
> importancestring重要性
1: 低
2: 中等
3: 高
> tsstring推送时间