Kraken Spot WebSocket API v2

Real-time market data and private user data over WebSocket v2 using subscribe/unsubscribe semantics. Public channels include ticker (L1), book (L2), trade, ohlc, instrument, and admin frames (status, heartbeat, ping/pong). Authenticated channels include executions and balances. Trading methods include add_order, amend_order, edit_order, cancel_order, cancel_all, cancel_on_disconnect, batch_add, and batch_cancel. The authenticated endpoint requires a token obtained from the Spot REST GetWebSocketsToken operation.

AsyncAPI Specification

kraken-asyncapi.yml Raw ↑
asyncapi: 2.6.0
info:
  title: Kraken Spot WebSocket API v2
  version: '2.0.0'
  description: >
    Public WebSocket API for the Kraken cryptocurrency exchange (Spot v2).
    Provides real-time market data through subscribe/unsubscribe semantics over JSON.
    Channels documented here are restricted to the public surface confirmed by
    https://docs.kraken.com/api/docs/websocket-v2/ (ticker, book, ohlc, trade,
    instrument) plus the connection-level methods (ping/pong, subscribe,
    unsubscribe). Authenticated channels are intentionally out of scope.
  contact:
    name: Kraken API Support
    url: https://support.kraken.com/
  license:
    name: Kraken Terms of Service
    url: https://www.kraken.com/legal
defaultContentType: application/json

servers:
  public:
    url: ws.kraken.com/v2
    protocol: wss
    description: >
      Public market data WebSocket endpoint. No authentication required. Carries
      ticker, book, ohlc, trade, and instrument channels.
  authenticated:
    url: ws-auth.kraken.com/v2
    protocol: wss
    description: >
      Authenticated WebSocket endpoint used for private channels and trading
      methods (out of scope for this document; included here only because it is
      a documented separate host). Connecting requires a token obtained from the
      REST GetWebSocketsToken endpoint.

channels:
  ticker:
    description: >
      Level 1 market data: best bid/ask, last trade, 24h volume/VWAP/high/low,
      and price change metrics for one or more currency pairs.
    subscribe:
      summary: Receive ticker snapshot and updates from the server.
      message:
        oneOf:
          - $ref: '#/components/messages/TickerMessage'
          - $ref: '#/components/messages/SubscriptionStatus'
    publish:
      summary: Subscribe or unsubscribe from the ticker channel.
      message:
        oneOf:
          - $ref: '#/components/messages/SubscribeTicker'
          - $ref: '#/components/messages/UnsubscribeTicker'

  book:
    description: >
      Level 2 order book channel. Emits an initial snapshot of bids/asks
      followed by incremental updates. Includes a CRC32 checksum for the top
      10 levels.
    subscribe:
      summary: Receive book snapshot and update messages.
      message:
        oneOf:
          - $ref: '#/components/messages/BookMessage'
          - $ref: '#/components/messages/SubscriptionStatus'
    publish:
      summary: Subscribe or unsubscribe from the book channel.
      message:
        oneOf:
          - $ref: '#/components/messages/SubscribeBook'
          - $ref: '#/components/messages/UnsubscribeBook'

  ohlc:
    description: >
      Open/High/Low/Close candle data for a configured interval (1, 5, 15, 30,
      60, 240, 1440, 10080, or 21600 minutes). Updates are trade-triggered.
    subscribe:
      summary: Receive OHLC snapshot and update messages.
      message:
        oneOf:
          - $ref: '#/components/messages/OHLCMessage'
          - $ref: '#/components/messages/SubscriptionStatus'
    publish:
      summary: Subscribe or unsubscribe from the ohlc channel.
      message:
        oneOf:
          - $ref: '#/components/messages/SubscribeOHLC'
          - $ref: '#/components/messages/UnsubscribeOHLC'

  trade:
    description: >
      Stream of individual trade executions. Optional initial snapshot returns
      the most recent 50 trades for each subscribed symbol.
    subscribe:
      summary: Receive trade snapshot and update messages.
      message:
        oneOf:
          - $ref: '#/components/messages/TradeMessage'
          - $ref: '#/components/messages/SubscriptionStatus'
    publish:
      summary: Subscribe or unsubscribe from the trade channel.
      message:
        oneOf:
          - $ref: '#/components/messages/SubscribeTrade'
          - $ref: '#/components/messages/UnsubscribeTrade'

  instrument:
    description: >
      Reference data feed for all active assets and tradeable pairs, including
      precisions, trading limits, and margin parameters.
    subscribe:
      summary: Receive instrument snapshot and update messages.
      message:
        oneOf:
          - $ref: '#/components/messages/InstrumentMessage'
          - $ref: '#/components/messages/SubscriptionStatus'
    publish:
      summary: Subscribe or unsubscribe from the instrument channel.
      message:
        oneOf:
          - $ref: '#/components/messages/SubscribeInstrument'
          - $ref: '#/components/messages/UnsubscribeInstrument'

  ping:
    description: >
      Application-level keepalive. Distinct from the WebSocket protocol-level
      ping frames. Server replies with a pong message echoing req_id and
      including time_in/time_out timestamps.
    subscribe:
      summary: Receive pong response from the server.
      message:
        $ref: '#/components/messages/Pong'
    publish:
      summary: Send a ping to the server.
      message:
        $ref: '#/components/messages/Ping'

components:
  messages:
    SubscribeTicker:
      name: subscribeTicker
      title: Subscribe to ticker
      payload:
        $ref: '#/components/schemas/SubscribeTickerRequest'

      examples:
        - name: SubscribeTickerDefaultExample
          summary: Default SubscribeTicker example payload
          x-microcks-default: true
          payload:
            method: subscribe
            req_id: OQCLML-BW3P3-BUCMWZ
            params: {}
    UnsubscribeTicker:
      name: unsubscribeTicker
      title: Unsubscribe from ticker
      payload:
        $ref: '#/components/schemas/UnsubscribeTickerRequest'

      examples:
        - name: UnsubscribeTickerDefaultExample
          summary: Default UnsubscribeTicker example payload
          x-microcks-default: true
          payload:
            method: unsubscribe
            req_id: OQCLML-BW3P3-BUCMWZ
            params: {}
    TickerMessage:
      name: tickerMessage
      title: Ticker snapshot or update
      payload:
        $ref: '#/components/schemas/TickerEnvelope'

      examples:
        - name: TickerMessageDefaultExample
          summary: Default TickerMessage example payload
          x-microcks-default: true
          payload:
            channel: ticker
            type: snapshot
            data: []
    SubscribeBook:
      name: subscribeBook
      title: Subscribe to book
      payload:
        $ref: '#/components/schemas/SubscribeBookRequest'

      examples:
        - name: SubscribeBookDefaultExample
          summary: Default SubscribeBook example payload
          x-microcks-default: true
          payload:
            method: subscribe
            req_id: OQCLML-BW3P3-BUCMWZ
            params: {}
    UnsubscribeBook:
      name: unsubscribeBook
      title: Unsubscribe from book
      payload:
        $ref: '#/components/schemas/UnsubscribeBookRequest'

      examples:
        - name: UnsubscribeBookDefaultExample
          summary: Default UnsubscribeBook example payload
          x-microcks-default: true
          payload:
            method: unsubscribe
            req_id: OQCLML-BW3P3-BUCMWZ
            params: {}
    BookMessage:
      name: bookMessage
      title: Book snapshot or update
      payload:
        $ref: '#/components/schemas/BookEnvelope'

      examples:
        - name: BookMessageDefaultExample
          summary: Default BookMessage example payload
          x-microcks-default: true
          payload:
            channel: book
            type: snapshot
            data: []
    SubscribeOHLC:
      name: subscribeOHLC
      title: Subscribe to OHLC
      payload:
        $ref: '#/components/schemas/SubscribeOHLCRequest'

      examples:
        - name: SubscribeOHLCDefaultExample
          summary: Default SubscribeOHLC example payload
          x-microcks-default: true
          payload:
            method: subscribe
            req_id: OQCLML-BW3P3-BUCMWZ
            params: {}
    UnsubscribeOHLC:
      name: unsubscribeOHLC
      title: Unsubscribe from OHLC
      payload:
        $ref: '#/components/schemas/UnsubscribeOHLCRequest'

      examples:
        - name: UnsubscribeOHLCDefaultExample
          summary: Default UnsubscribeOHLC example payload
          x-microcks-default: true
          payload:
            method: unsubscribe
            req_id: OQCLML-BW3P3-BUCMWZ
            params: {}
    OHLCMessage:
      name: ohlcMessage
      title: OHLC snapshot or update
      payload:
        $ref: '#/components/schemas/OHLCEnvelope'

      examples:
        - name: OHLCMessageDefaultExample
          summary: Default OHLCMessage example payload
          x-microcks-default: true
          payload:
            channel: ohlc
            type: snapshot
            data: []
    SubscribeTrade:
      name: subscribeTrade
      title: Subscribe to trade
      payload:
        $ref: '#/components/schemas/SubscribeTradeRequest'

      examples:
        - name: SubscribeTradeDefaultExample
          summary: Default SubscribeTrade example payload
          x-microcks-default: true
          payload:
            method: subscribe
            req_id: OQCLML-BW3P3-BUCMWZ
            params: {}
    UnsubscribeTrade:
      name: unsubscribeTrade
      title: Unsubscribe from trade
      payload:
        $ref: '#/components/schemas/UnsubscribeTradeRequest'

      examples:
        - name: UnsubscribeTradeDefaultExample
          summary: Default UnsubscribeTrade example payload
          x-microcks-default: true
          payload:
            method: unsubscribe
            req_id: OQCLML-BW3P3-BUCMWZ
            params: {}
    TradeMessage:
      name: tradeMessage
      title: Trade snapshot or update
      payload:
        $ref: '#/components/schemas/TradeEnvelope'

      examples:
        - name: TradeMessageDefaultExample
          summary: Default TradeMessage example payload
          x-microcks-default: true
          payload:
            channel: trade
            type: snapshot
            data: []
    SubscribeInstrument:
      name: subscribeInstrument
      title: Subscribe to instrument
      payload:
        $ref: '#/components/schemas/SubscribeInstrumentRequest'

      examples:
        - name: SubscribeInstrumentDefaultExample
          summary: Default SubscribeInstrument example payload
          x-microcks-default: true
          payload:
            method: subscribe
            req_id: OQCLML-BW3P3-BUCMWZ
            params: {}
    UnsubscribeInstrument:
      name: unsubscribeInstrument
      title: Unsubscribe from instrument
      payload:
        $ref: '#/components/schemas/UnsubscribeInstrumentRequest'

      examples:
        - name: UnsubscribeInstrumentDefaultExample
          summary: Default UnsubscribeInstrument example payload
          x-microcks-default: true
          payload:
            method: unsubscribe
            req_id: OQCLML-BW3P3-BUCMWZ
            params: {}
    InstrumentMessage:
      name: instrumentMessage
      title: Instrument snapshot or update
      payload:
        $ref: '#/components/schemas/InstrumentEnvelope'

      examples:
        - name: InstrumentMessageDefaultExample
          summary: Default InstrumentMessage example payload
          x-microcks-default: true
          payload:
            channel: instrument
            type: snapshot
            data: {}
    SubscriptionStatus:
      name: subscriptionStatus
      title: Subscribe/Unsubscribe acknowledgement
      payload:
        $ref: '#/components/schemas/SubscriptionStatusResponse'

      examples:
        - name: SubscriptionStatusDefaultExample
          summary: Default SubscriptionStatus example payload
          x-microcks-default: true
          payload:
            method: subscribe
            req_id: OQCLML-BW3P3-BUCMWZ
            success: true
            result: {}
            error: string
            time_in: string
            time_out: string
            warnings: []
    Ping:
      name: ping
      title: Ping request
      payload:
        $ref: '#/components/schemas/PingRequest'

      examples:
        - name: PingDefaultExample
          summary: Default Ping example payload
          x-microcks-default: true
          payload:
            method: ping
            req_id: OQCLML-BW3P3-BUCMWZ
    Pong:
      name: pong
      title: Pong response
      payload:
        $ref: '#/components/schemas/PongResponse'

      examples:
        - name: PongDefaultExample
          summary: Default Pong example payload
          x-microcks-default: true
          payload:
            method: pong
            req_id: OQCLML-BW3P3-BUCMWZ
            success: true
            time_in: string
            time_out: string
            result: {}
            error: string
            warnings: []
  schemas:

    # ---------- Common envelopes ----------

    SubscribeRequestBase:
      type: object
      required:
        - method
        - params
      properties:
        method:
          type: string
          enum: [subscribe]
          example: subscribe
        req_id:
          type: integer
          description: Optional client-originated request identifier echoed in the response.

          example: OQCLML-BW3P3-BUCMWZ
    UnsubscribeRequestBase:
      type: object
      required:
        - method
        - params
      properties:
        method:
          type: string
          enum: [unsubscribe]
          example: unsubscribe
        req_id:
          type: integer

          example: OQCLML-BW3P3-BUCMWZ
    SubscriptionStatusResponse:
      type: object
      description: Standard server acknowledgement for subscribe/unsubscribe requests.
      properties:
        method:
          type: string
          enum: [subscribe, unsubscribe]
          example: subscribe
        req_id:
          type: integer
          example: OQCLML-BW3P3-BUCMWZ
        success:
          type: boolean
          example: true
        result:
          type: object
          description: Echo of the parameters of a successful subscription.
          example: {}
        error:
          type: string
          description: Error message when success is false.
          example: string
        time_in:
          type: string
          format: date-time
          description: RFC3339 timestamp the request was received on the wire.
          example: string
        time_out:
          type: string
          format: date-time
          description: RFC3339 timestamp the response was sent on the wire.
          example: string
        warnings:
          type: array
          items:
            type: string

    # ---------- Ticker ----------

          example: []
    SubscribeTickerRequest:
      allOf:
        - $ref: '#/components/schemas/SubscribeRequestBase'
        - type: object
          properties:
            params:
              type: object
              required: [channel, symbol]
              properties:
                channel:
                  type: string
                  enum: [ticker]
                  example: ticker
                symbol:
                  type: array
                  items:
                    type: string
                  example: ["BTC/USD", "MATIC/GBP"]
                event_trigger:
                  type: string
                  enum: [bbo, trades]
                  default: trades
                  description: bbo emits on best-bid/offer change; trades emits on trade events.
                  example: bbo
                snapshot:
                  type: boolean
                  default: true

                  example: true
              example: {}
    UnsubscribeTickerRequest:
      allOf:
        - $ref: '#/components/schemas/UnsubscribeRequestBase'
        - type: object
          properties:
            params:
              type: object
              required: [channel, symbol]
              properties:
                channel:
                  type: string
                  enum: [ticker]
                  example: ticker
                symbol:
                  type: array
                  items:
                    type: string

                  example: PI_XBTUSD
              example: {}
    TickerEnvelope:
      type: object
      required: [channel, type, data]
      properties:
        channel:
          type: string
          enum: [ticker]
          example: ticker
        type:
          type: string
          enum: [snapshot, update]
          example: snapshot
        data:
          type: array
          items:
            $ref: '#/components/schemas/Ticker'

          example: []
    Ticker:
      type: object
      properties:
        symbol:
          type: string
          example: PI_XBTUSD
        bid:
          type: number
          format: double
          description: Best bid price.
          example: OQCLML-BW3P3-BUCMWZ
        bid_qty:
          type: number
          format: double
          description: Quantity at best bid.
          example: 0.01
        ask:
          type: number
          format: double
          description: Best ask price.
          example: 0.01
        ask_qty:
          type: number
          format: double
          description: Quantity at best ask.
          example: 0.01
        last:
          type: number
          format: double
          description: Last traded price.
          example: 0.01
        volume:
          type: number
          format: double
          description: 24-hour volume in the base currency.
          example: '0.01'
        vwap:
          type: number
          format: double
          description: 24-hour volume weighted average price.
          example: 0.01
        low:
          type: number
          format: double
          description: 24-hour low price.
          example: 0.01
        high:
          type: number
          format: double
          description: 24-hour high price.
          example: 0.01
        change:
          type: number
          format: double
          description: 24-hour absolute price change.
          example: 0.01
        change_pct:
          type: number
          format: double
          description: 24-hour percentage price change.

    # ---------- Book ----------

          example: 0.01
    SubscribeBookRequest:
      allOf:
        - $ref: '#/components/schemas/SubscribeRequestBase'
        - type: object
          properties:
            params:
              type: object
              required: [channel, symbol]
              properties:
                channel:
                  type: string
                  enum: [book]
                  example: book
                symbol:
                  type: array
                  items:
                    type: string
                  example: PI_XBTUSD
                depth:
                  type: integer
                  enum: [10, 25, 100, 500, 1000]
                  default: 10
                  example: 10
                snapshot:
                  type: boolean
                  default: true

                  example: true
              example: {}
    UnsubscribeBookRequest:
      allOf:
        - $ref: '#/components/schemas/UnsubscribeRequestBase'
        - type: object
          properties:
            params:
              type: object
              required: [channel, symbol]
              properties:
                channel:
                  type: string
                  enum: [book]
                  example: book
                symbol:
                  type: array
                  items:
                    type: string
                  example: PI_XBTUSD
                depth:
                  type: integer
                  enum: [10, 25, 100, 500, 1000]
                  example: 10
              example: {}

    BookEnvelope:
      type: object
      required: [channel, type, data]
      properties:
        channel:
          type: string
          enum: [book]
          example: book
        type:
          type: string
          enum: [snapshot, update]
          example: snapshot
        data:
          type: array
          items:
            $ref: '#/components/schemas/BookData'

          example: []
    BookData:
      type: object
      properties:
        symbol:
          type: string
          example: PI_XBTUSD
        bids:
          type: array
          items:
            $ref: '#/components/schemas/PriceLevel'
          example: []
        asks:
          type: array
          items:
            $ref: '#/components/schemas/PriceLevel'
          example: []
        checksum:
          type: integer
          format: int64
          description: CRC32 checksum of the top 10 bids and asks.
          example: 1
        timestamp:
          type: string
          format: date-time

          example: '2026-05-30T00:00:00Z'
    PriceLevel:
      type: object
      properties:
        price:
          type: number
          format: double
          example: '0.01'
        qty:
          type: number
          format: double

    # ---------- OHLC ----------

          example: 0.01
    SubscribeOHLCRequest:
      allOf:
        - $ref: '#/components/schemas/SubscribeRequestBase'
        - type: object
          properties:
            params:
              type: object
              required: [channel, symbol]
              properties:
                channel:
                  type: string
                  enum: [ohlc]
                  example: ohlc
                symbol:
                  type: array
                  items:
                    type: string
                  example: PI_XBTUSD
                interval:
                  type: integer
                  enum: [1, 5, 15, 30, 60, 240, 1440, 10080, 21600]
                  example: 1
                snapshot:
                  type: boolean
                  default: true

                  example: true
              example: {}
    UnsubscribeOHLCRequest:
      allOf:
        - $ref: '#/components/schemas/UnsubscribeRequestBase'
        - type: object
          properties:
            params:
              type: object
              required: [channel, symbol]
              properties:
                channel:
                  type: string
                  enum: [ohlc]
                  example: ohlc
                symbol:
                  type: array
                  items:
                    type: string
                  example: PI_XBTUSD
                interval:
                  type: integer
                  enum: [1, 5, 15, 30, 60, 240, 1440, 10080, 21600]
                  example: 1
              example: {}

    OHLCEnvelope:
      type: object
      required: [channel, type, data]
      properties:
        channel:
          type: string
          enum: [ohlc]
          example: ohlc
        type:
          type: string
          enum: [snapshot, update]
          example: snapshot
        data:
          type: array
          items:
            $ref: '#/components/schemas/Candle'

          example: []
    Candle:
      type: object
      properties:
        symbol:
          type: string
          example: PI_XBTUSD
        open:
          type: number
          format: double
          example: 0.01
        high:
          type: number
          format: double
          example: 0.01
        low:
          type: number
          format: double
          example: 0.01
        close:
          type: number
          format: double
          example: 0.01
        vwap:
          type: number
          format: double
          example: 0.01
        trades:
          type: integer
          description: Number of trades in the interval.
          example: 1
        volume:
          type: number
          format: double
          description: Total traded volume in the base currency.
          example: '0.01'
        interval_begin:
          type: string
          format: date-time
          description: RFC3339 timestamp of interval start.
          example: string
        interval:
          type: integer
          description: Interval length in minutes.

    # ---------- Trade ----------

          example: 1
    SubscribeTradeRequest:
      allOf:
        - $ref: '#/components/schemas/SubscribeRequestBase'
        - type: object
          properties:
            params:
              type: object
              required: [channel, symbol]
              properties:
                channel:
                  type: string
                  enum: [trade]
                  example: trade
                symbol:
                  type: array
                  items:
                    type: string
                  example: PI_XBTUSD
                snapshot:
                  type: boolean
                  default: false
                  description: When true, returns the most recent 50 trades on subscribe.

                  example: true
              example: {}
    UnsubscribeTradeRequest:
      allOf:
        - $ref: '#/components/schemas/UnsubscribeRequestBase'
        - type: object
          properties:
            params:
              type: object
              required: [channel, symbol]
              properties:
                channel:
                  type: string
                  enum: [trade]
                  example: trade
                symbol:
                  type: array
                  items:
                    type: string

                  example: PI_XBTUSD
              example: {}
    TradeEnvelope:
      type: object
      required: [channel, type, data]
      properties:
        channel:
          type: string
          enum: [trade]
          example: trade
        type:
          type: string
          enum: [snapshot, update]
          example: snapshot
        data:
          type: array
          items:
            $ref: '#/components/schemas/Trade'

          example: []
    Trade:
      type: object
      properties:
        symbol:
          type: string
          example: PI_XBTUSD
        side:
          type: string
          enum: [buy, sell]
          description: Taker order direction.
          example: buy
        qty:
          type: number
          format: double
          example: 0.01
        price:
          type: number
          format: double
          example: '0.01'
        ord_type:
          type: string
          enum: [limit, market]
          description: Taker order type.
          example: limit
        trade_id:
          type: integer
          format: int64
          description: Sequence number unique per trading book.
          example: OQCLML-BW3P3-BUCMWZ
        timestamp:
          type: string
          format: date-time

    # ---------- Instrument ----------

          example: '2026-05-30T00:00:00Z'
    SubscribeInstrumentRequest:
      allOf:
        - $ref: '#/components/schemas/SubscribeRequestBase'
        - type: object
          properties:
            params:
              type: object
              required: [channel]
              properties:
                channel:
                  type: string
                  enum: [instrument]
                  example: instrument
                execution_venue:
                  type: string
                  enum: [international, bitnomial-exchange]
                  default: international
                  example: international
                include_tokenized_assets:
                  type: boolean
                  default: false
                  example: true
                snapshot:
                  type: boolean
                  default: true

                  example: true
              example: {}
    UnsubscribeInstrumentRequest:
      allOf:
        - $ref: '#/components/schemas/UnsubscribeRequestBase'
        - type: object
          properties:
            params:
              type: object
              required: [channel]
              properties:
                channel:
                  type: string
                  enum: [instrument]
                  example: instrument
              example: {}

    InstrumentEnvelope:
      type: object
      required: [channel, type, data]
      properties:
        channel:
          type: string
          enum: [instrument]
          example: instrument
        type:
          type: string
          enum: [snapshot, update]
          example: snapshot
        data:
          type: object
          properties:
            assets:
              type: array
              items:
                $ref: '#/components/schemas/Asset'
              example: []
            pairs:
              type: array
              items:
                $ref: '#/components/schemas/Pair'

              example: XBTUSD
          example: {}
    Asset:
      type: object
      properties:
        id:
          type: string
          example: OQCLML-BW3P3-BUCMWZ
        status:
          type: string
          example: string
        precision:
          type: integer
          example: 1
        precision_display:
          type: integer
          example: 1
        borrowable:
          type: boolean
          example: true
        collateral_value:
          type: number
          format: double
          example: 0.01
        margin_rate:
          type: number
          format: double
          example: '0.01'
        multiplier:
          type: number
          format: double

          example: 0.01
    Pair:
      type: object
      properties:
        symbol:
          type: string
          example: PI_XBTUSD
        base:
          type: string
          example: string
        quote:
          type: string
          example: string
        status:
          type: string
          example: string
        marginable:
          type: boolean
          example: '0.01'
        has_index:
          type: boolean
          example: true
        qty_min:
          type: string
          example: string
        qty_increment:
          type: string
          example: string
        qty_precision:
          type: integer
          example: 1
        price_increment:
          type: string
          example: '0.01'
        price_precision:
          type: integer
          example: '0.01'
        cost_precision:
          type: integer
          example: 1
        cost_min:
          type: string
          example: string
        margin_initial:
          type: number
          format: double
          example: '0.01'
        position_limit_long:
          type: integer
          example: 1
        position_limit_short:
          type: integer

    # ---------- Ping / Pong ----------

          example: 1
    PingRequest:
      type: object
      required: [method]
      properties:
        method:
          type: string
          enum: [ping]
          example: ping
        req_id:
          type: integer

          example: OQCLML-BW3P3-BUCMWZ
    PongResponse:
      type: object
      required: [method]
      properties:
        method:
          type: string
          enum: [pong]
          example: pong
        req_id:
          type: integer
          example: OQCLML-BW3P3-BUCMWZ
        success:
          type: boolean
          example: true
        time_in:
          type: string
          format: date-time
          example: string
        time_out:
          type: string
          format: date-time
          example: string
        result:
          type: object
          example: {}
        error:
          type: string
          example: string
        warnings:
          type: array
          items:
            type: string
          example: []