Skip to main content
这篇文档面向与 Owly 进行租户级对接的合作方,说明如何为目标地址创建 API Wallet、启动策略实例、接收 webhook 事件,以及通过外部 API 管理策略生命周期。
所有 B2B 接口都使用租户级凭证鉴权。如果你要了解普通用户如何开始使用 Owly,请先阅读 核心概念 和 快速入门。

接入流程

推荐按下面的顺序完成接入:
  1. 为目标地址创建或获取 API Wallet。
  2. 将返回的 public_key 设置为 Hyperliquid API Agent,并完成有效的 Builder 费用授权。
  3. 跟单前可调用 source-check 预检交易员,再启动 Owly 策略实例。
  4. 保存返回的 Bot 标识,后续用于状态查询和生命周期管理。
  5. 如果配置了 webhook,接收 Owly 主动推送的事件通知。

Base URL

鉴权方式

每个请求都需要携带以下请求头:

通用响应格式

成功响应统一采用以下结构:
错误响应的 detail 可以是字符串、包含 code / message 等字段的对象,或参数校验错误列表。启动失败还可能在顶层返回 bot_name,便于后续查询。不要只按固定英文错误文案判断结果。例如,协议专用账户不能通过普通 B2B 钱包流程添加:
常见 HTTP 状态码:

Step 1:创建或获取 API Wallet

端点

请求体

成功响应示例

API Wallet 的私钥由 Owly 安全保管,不会返回给合作方。
目标账户当前必须使用 unifiedAccount 或 dexAbstraction 模式;无法确认模式时会拒绝继续。此接口不会替目标账户切换模式。 这里还有几个关键行为需要注意:
  • 同一租户重复请求同一个 target 时,Owly 会尽量返回已有的钱包。
  • 如果 target 已被其他租户或其他不兼容流程占用,接口会返回 409。
  • 换新后必须重新授权返回的 public_key,再检查策略状态。生成替换钱包本身不会完成 Hyperliquid 授权。
  • created=true 的同一幂等键重试返回同一次换新的钱包,避免重复生成。响应 created 表示此次调用是否创建了钱包,含义与请求参数不同。
换新请求示例:

Step 2:在 Hyperliquid 设置 API Agent

使用 Step 1 返回的 public_key,在 Hyperliquid 中将其设置为目标地址对应的 API Agent。 这些授权由合作方在 Hyperliquid 侧完成。除 API Agent 外,还需授权实际生效的 Builder 地址及费率;启动时会核对 Builder 授权,不能只完成 Agent 授权。Builder 配置可能来自账户、已有策略或租户配置,应按接入约定确认,不能把某个费率写死为所有租户的要求。

跟单交易员预检

使用相同租户请求头,提交 1–20 个 EVM 地址:
成功响应的 data 示例:
此预检要求交易员使用 unifiedAccount,并在启用订单行为风控时检查历史订单。拒绝原因包括 account_mode_not_unified、high_risk_order_behavior 或校验数据暂不可用;风险指标可能为空。结果不是授权或执行保证,启动时仍会重新校验。

Step 3:启动策略实例

端点

请求体

普通跟单需要 source;grid 需要有效的 grid 配置。永续网格的 grid.total_invest 必填且大于零,服务端据此计算单笔数量,详见网格机器人。不要在请求中提交主钱包或 API 钱包私钥。

Webhook 优先级

仅设置 config.alerts=null 不等于显式设置 config.alerts.webhook=null。通知是否发送还取决于通知开关和事件配置。

成功响应示例

响应里的 name 就是后续接口里使用的 bot_name。请在自己的系统里持久化保存。

Webhook 通知

启用通知并配置有效 webhook 后,Owly 可向合作方的回调地址推送已配置的策略通知。 常见通知类型包括:
  • trade event:策略实例产生的交易相关事件
  • risk event:策略实例产生的风控相关事件
  • status event:策略状态变化事件
对 webhook 接收端的建议:
  • 返回 2xx 表示接收成功
  • 接收逻辑要按幂等方式设计
  • 默认认为可能发生重试和重复投递
  • 只依赖 Owly 对外约定的事件字段和业务语义,不要依赖内部服务名或内部状态机

策略实例管理接口

查询状态

状态响应示例:
data 使用策略状态结构,启动、停止和关闭的成功响应也返回此结构: 应同时核对执行状态、清理状态和错误信息;state=running 本身不能说明策略当前正在正常下单。

停止策略实例

stop 停止策略自动执行,不执行平仓清理。已有持仓和订单应单独检查。下面是已停止状态的示例:

关闭策略实例

close 请求终止策略并执行相应清理,包含尝试平仓及清理相关订单。它不是提现或偿还借款操作。检查 cleanup_state 与 err_msg,并核对实际持仓和订单;超时或清理失败时先查询当前状态再决定后续处理。 以下仅展示清理完成时的响应形状,不代表每次请求都能完成清理:

常见错误

错误可能返回结构化业务码或字符串。不要把超时直接视为没有启动;先用已知的 bot_name 查询状态,避免重复操作。

最小 cURL 示例

获取 API Wallet

启动策略实例

查询状态

接入建议

  • 按 api-wallet -> Hyperliquid Agent + Builder 授权 -> 可选 source-check -> start 顺序执行。
  • 拿到返回的 bot_name 后立刻做持久化保存。
  • webhook 接收端建议实现幂等和重试保护。
  • 把 webhook 事件视为 Owly 的业务通知,不要依赖 Owly 内部实现细节。
  • 默认复用 API Wallet;需要换新时显式传 created=true,同一次换新重试复用幂等键。
  • 如果启动失败,检查租户鉴权、账户模式、Agent 与 Builder 授权、地址归属及策略参数;结合运行和清理状态处理结果。