OSL GLOBAL API介绍

接入准备

本文档为合作方对接OSL GLOBAL API提供指导,在对接前,请先登陆 网页端,完成API key的申请和权限配置,再据此文档详情进行开发和交易。

您可以点击 API Key管理 创建 API Key。

每个子帐号可创建10组Api Key,每个Api Key可对应设置读取、交易两种权限。权限说明如下:

  • Read-Only:读取权限,用于对数据的查询,例如:行情数据。
  • Spot Trading:现货交易权限,用于现货的下单、撤单等接口。
  • Futures Trading:合约交易权限,用于合约的下单、撤单等接口。 创建成功后请务必记住以下信息:

创建Api Key系统会自动生成APIKey、Secretkey,Api Key信息介绍如下:

  • APIKey:API交易的身份标识,随机算法生成。
  • Secretkey:私钥,由系统随机生成,用于签名的生成。
  • Passphrase 口令,由用户自己设定,需要注意的是,Passphrase忘记之后是无法找回的,需要重新创建APIKey。
  • 出于安全考虑,在创建API Key时强烈建议您绑定 IP 地址。

⚠️风险提示:这三个密钥与账号安全密切相关,请牢记Passphrase,无论何时都请勿向他人透露。 这三个密钥任意一个泄露可能会造成您的资产损失,若发现APIKey泄露请尽快删除该APIKey。

环境信息

为了保障双方对接的顺利进行,我们提供了独立的测试环境以支持前期联调。待联调完成并确认功能正常后,即可切换至生产环境进行正式使用。具体环境信息如下:

  • 测试环境:
    • HTTP接口域名:https://mm-api-glb.osltest.com
    • Websocket接口域名:wss:/mm-stream-glb.osltest.com
  • 生产环境:
    • HTTP接口域名:https://mm-api.coloc-glb.osl.com
    • Websocket接口域名:wss://mm-api.coloc-glb.osl.com

接口类型

本章节主要为接口类型分以下两个方面:

  • 公共接口
  • 私有接口

公共接口

公共接口可用于获取配置信息和行情数据。公共请求无需认证即可调用。

私有接口

私有接口可用于订单管理和账户管理。每个私有请求必须使用规范的验证形式进行签名。

私有接口需要使用您的APIKey进行验证。

Websocket接口

WebSocket是HTML5一种新的协议(Protocol)。它实现了客户端与服务器全双工通信, 使得数据可以快速地双向传播。通过一次简单的握手就 可以建立客户端和服务器连接, 服务器根据业务规则可以主动推送信息给客户端。其优点如下:

  • 客户端和服务器进行数据传输时,请求头信息比较小,大概2个字节。
  • 客户端和服务器皆可以主动地发送数据给对方。
  • 不需要多次创建TCP请求和销毁,节约宽带和服务器的资源。
  • 强烈建议开发者使用WebSocket API获取市场行情和买卖深度等信息。
域名WebSocket API建议使用
websocket 公共频道wss://mm-api.coloc-glb.osl.com/v2/ws/publicwebsocket主域名, 公共频道
websocket 私有频道wss://mm-api.coloc-glb.osl.com/v2/ws/privatewebsocket主域名, 私有频道

连接说明:

连接限制: 300次连接请求/IP/5分钟,单个IP最多可以创建100个连接

订阅限制: 240次/小时/连接,单个连接最多可以订阅1000个频道

为了保持连接有效且稳定,建议您进行以下操作:

  • 用户设置一个定时器,每30秒发送字符串"ping", 并期待一个字符串"pong"作为回应。如果未收到字符串"pong"响应,请重新连接;
  • 如果2分钟内服务端没收到"ping",会自动断开连接;
  • Websocket服务器每秒每连接最多接受10个消息。消息包括:
    • 字符串"ping";
    • JSON格式的消息,比如订阅,断开订阅。
  • 如果用户发送的消息超过限制,连接会被断开连接。反复被断开连接的IP有可能被服务器屏蔽;
  • 为了保持连接的稳定性,强烈建议单个连接不要订阅超过50个频道。订阅频道数越少的连接,稳定性会更高。

以订阅公共频道的ticker为例,分以下两步:

  • 连接地址:wss://mm-api.coloc-glb.osl.com/v2/ws/public
  • 发起订阅频道请求:
{"op":"subscribe","args":[{"channel":"ticker","instType":"sp","instId":"btcusdt"}]}