Ostium Builder API

Public Builder API and TypeScript/Python SDK surface for reading Ostium market data (pairs, prices, OHLC candles), streaming live prices and account/position updates over WebSocket, and building/submitting trades on the Ostium perpetuals protocol via read-only, self-signed, delegated and Safe-based gasless client modes.

Documentation

Specifications

Other Resources

AsyncAPI Specification

ostium-labs-prices-asyncapi.yml Raw ↑
generated: '2026-07-20'
method: generated
source: https://docs.ostium.com/developer/builder-api/ws-prices-stream + SDK streaming reference
spec_type: AsyncAPI
asyncapi: 3.0.0
info:
  title: Ostium Builder API — Streaming
  version: 1.0.0
  description: >-
    Generated by API Evangelist from Ostium's documented WebSocket streaming surface
    (Builder API WS /v1/prices/stream and the SDK streamPrices / streamAccountUpdates /
    streamPositionUpdates methods). Message schemas are intentionally left open where
    the docs do not publish an explicit payload contract; this captures the channels,
    not fabricated field-level shapes.
servers:
  builder:
    host: builder.ostium.io
    protocol: wss
    pathname: /v1/prices/stream
    description: Mainnet Builder API WebSocket price feed (Arbitrum One).
channels:
  prices:
    address: /v1/prices/stream
    description: Live price updates for Ostium pairs.
    messages:
      priceUpdate:
        name: priceUpdate
        summary: A live mid/bid/ask price update for one or more pairs.
        payload:
          type: object
  accountUpdates:
    address: streamAccountUpdates
    description: >-
      Low-latency account confirmations, pending orders, active limits and open
      trades for one or more trader addresses (SDK streamAccountUpdates).
    messages:
      accountUpdate:
        name: accountUpdate
        summary: An account/order/position confirmation snapshot keyed by trader address.
        payload:
          type: object
  positionUpdates:
    address: streamPositionUpdates
    description: Live price-driven changes to an existing open-positions payload (SDK streamPositionUpdates).
    messages:
      positionUpdate:
        name: positionUpdate
        summary: A price-driven update to an open position payload.
        payload:
          type: object
operations:
  receivePrices:
    action: receive
    channel:
      $ref: '#/channels/prices'
  receiveAccountUpdates:
    action: receive
    channel:
      $ref: '#/channels/accountUpdates'
  receivePositionUpdates:
    action: receive
    channel:
      $ref: '#/channels/positionUpdates'