你的API信息

 :2026-02-24 14:51    点击:1  

OKX接口全攻略:从零开始掌握API交易与数据获取**


OKX(原OKEx)作为全球领先的数字资产交易平台之一,为用户提供了强大的应用程序接口(API),通过OKX接口,用户可以实现自动化交易、程序化策略、账户信息查询以及实时市场数据获取等功能,极大地提升了交易效率和灵活性,本文将为你提供一份详尽的OKX接口教程,助你快速上手。

什么是OKX API

OKX API是一套允许用户通过编程方式与OKX服务器进行通信的协议,它就像一座桥梁,连接着你的交易程序(如Python脚本、EA机器人等)和OKX的交易系统,让你能够无需手动操作,即可完成复杂的交易任务和数据监控。

为什么使用OKX API

  1. 自动化交易:执行预设的交易策略,如网格交易、定投、套利等,实现7x24小时不间断交易。
  2. 程序化策略:回测和实盘复杂的量化交易模型,捕捉市场瞬息万变的机会。
  3. 高效管理:批量管理订单、查询账户资产、获取交易历史等,节省时间和精力。
  4. 实时数据获取:订阅K线数据、市场深度、交易量等,为分析提供及时信息。
  5. 定制化开发:根据自己的需求开发专属的交易工具或分析界面。

准备工作:开启你的API之旅

在开始之前,你需要完成以下准备工作:

  1. 注册并登录OKX账户:确保你已经拥有一个有效的OKX账户并完成身份验证(KYC)。
  2. 创建API Key
    • 登录OKX官网,进入【账户】->【API管理】。
    • 点击【创建API Key】。
    • 重要:仔细阅读并设置API权限,根据你的需求勾选权限,常见的有:
      • 现货交易:用于现货买卖。
      • 合约交易:用于合约交易(U本位、币本位)。
      • 读取权限:用于查询账户信息、市场数据等。
      • 提币权限极其敏感,请谨慎开启! 通常自动化交易不建议开启,除非有特殊且安全的需求。
    • 设置IP白名单(强烈推荐!):为了安全,你可以限制API Key只能在指定的IP地址范围内使用,避免密钥泄露被滥用。
    • 完成创建后,系统会显示你的API KeySecret KeyPassphrase(口令)。请务必妥善保管这三者,尤其是Secret Key和Passphrase,一旦泄露,账户资产将面临巨大风险! 建议使用密码管理工具保存。

OKX API接口类型详解

OKX API主要分为两大类:账户API公共API

公共API (Public API)

无需API Key即可调用,主要用于获取公开的市场数据。

  • 常见公共接口示例
    • 获取K线数据/api/v5/market/candles (获取指定币对、时间周期的K线)
    • 获取市场深度/api/v5/market/books (获取指定币对的盘口数据)
    • 获取交易 ticker/api/v5/market/ticker (获取指定币对的最新价格信息)
    • 获取所有币种信息/api/v5/market/tokens

账户API (Private API)

需要有效的API Key(并具备相应权限)才能调用,涉及账户操作和私密信息。

  • 常见账户接口示例
    • 获取账户资产/api/v5/account/balance
    • 下限价单/api/v5/trade/order
    • 下市价单/api/v5/trade/order
    • 取消订单/api/v5/trade/cancel-order
    • 查询订单信息/api/v5/trade/order-info
    • 查询当前委托列表/api/v5/trade/pending-orders
    • 查询成交历史/api/v5/trade/fills

API请求与响应核心要素

请求方法

OKX API主要使用 GETPOST 方法:

  • GET:通常用于查询数据,如获取K线、账户余额等。
  • POST:通常用于提交操作,如下单、取消订单等。

请求头 (Headers)

进行账户API请求时,必须在请求头中包含以下信息用于身份验证:

  • OK-ACCESS-KEY: 你的API Key
  • OK-ACCESS-SIGN: 签名 (详见下文签名生成)
  • OK-ACCESS-TIMESTAMP: ISO 8601标准格式的时间戳,2023-01-01T00:00:00.000Z
  • OK-ACCESS-PASSPHRASE: 你的API Passphrase
  • Content-Type: 通常为 application/json

签名生成 (Signature) - 关键步骤!

签名是保证API请求安全性的核心,OKX使用HMAC-SHA256算法生成签名。

签名生成步骤(以Python为例):

  1. 创建待签名字符串 (Sign String)

    • 对于GET请求:timestamp + method + request_path + query_string
    • 对于POST请求:timestamp + method + request_path + body (body为JSON字符串,且需要按字典序排序键值对)
    • method: HTTP方法,如 GET, POST (大写)
    • request_path: API路径,如 /api/v5/account/balance
    • query_string: GET请求的参数部分 (需要URL编码,并按字典序排序)
    • body: POST请求的请求体 (JSON格式,需要将键按字典序排序后序列化)
  2. 使用Secret Key进行HMAC-SHA256加密

    • 将上一步得到的待签名字符串,使用你的Secret Key作为密钥,进行HMAC-SHA256哈希运算。
    • 将得到的哈希值进行Base64编码,得到的字符串就是OK-ACCESS-SIGN

Python示例代码片段(签名生成):

import hmac
import base64
import json
import urllib.parse
from datetime import datetime
API_KEY = "你的API_KEY"
S
随机配图
ECRET_KEY = "你的SECRET_KEY".encode('utf-8') PASSPHRASE = "你的PASSPHRASE".encode('utf-8') # 示例:获取账户余额 timestamp = datetime.utcnow().isoformat(timespec='milliseconds') + 'Z' method = 'GET' request_path = '/api/v5/account/balance' query_string = '' # 此示例无查询参数 # 1. 构建待签名字符串 sign_string = f"{timestamp}{method}{request_path}{query_string}" # 2. HMAC-SHA256加密 + Base64编码 signature = base64.b64encode( hmac.new(SECRET_KEY, sign_string.encode('utf-8'), digestmod='sha256').digest() ).decode() print(f"Timestamp: {timestamp}") print(f"Sign String: {sign_string}") print(f"Signature: {signature}")

响应格式

OKX API的响应通常为JSON格式,包含以下字段:

  • code: 响应状态码,0表示成功,非0表示失败。
  • msg: 响应消息,成功时通常为"success",失败时为错误描述。
  • data: 响应数据主体,通常是一个数组或对象,包含具体的请求结果。

实战示例:使用Python获取账户资产

假设你已经创建了API Key并赋予了读取权限。

import requests
import json
import hmac
import base64
from datetime import datetime
# 替换为你的API信息
API_KEY = "你的API_KEY"
SECRET_KEY = "你的SECRET_KEY".encode('utf-8')
PASSPHRASE = "你的PASSPHRASE".encode('utf-8')
# OKX API Base URL
BASE_URL = "https://www.okx.com"
def get_account_balance():
    endpoint = '/api/v5/account/balance'
    url = BASE_URL + endpoint
    timestamp = datetime.utcnow().isoformat(timespec='milliseconds') + 'Z'
    method = 'GET'
    request_path = endpoint
    query_string = ''
    # 生成签名
    sign_string = f"{timestamp}{method}{request_path}{query_string}"
    signature = base64.b64encode(
        hmac.new(SECRET_KEY, sign_string.encode('utf-8'), digestmod='sha256').digest()
    ).decode()
    # 请求头
    headers = {
        'OK-ACCESS-KEY': API_KEY,
        'OK-ACCESS

本文由用户投稿上传,若侵权请提供版权资料并联系删除!