Imperative Execution · AsyncAPI Specification

Imperative Execution Iqx Asyncapi

Version

View Spec View on GitHub CompanyFinancial ServicesCapital MarketsTradingMarket DataEquitiesAlternative Trading SystemFIX ProtocolMulticast Market DataFintechAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-04'
method: generated
source: http://iqx.imperativex.com/IntelligentCrossMarketDataFeedSpec.v.1.11.pdf
x-provenance:
  note: 'IntelligentCross does NOT publish an AsyncAPI document. This document is an
    API Evangelist rendering of the provider''s own published IntelligentCross Market
    Data Feed Specification v1.11 (updated July 30, 2020) into AsyncAPI 3.0.0. Every
    channel, address, message type code and payload field below is transcribed from
    that public PDF and from the IntelligentCross FAQ - nothing is invented. It is not
    a provider artifact and must not be presented as one.'
  authored_by: API Evangelist enrichment pipeline
  provider_publishes_asyncapi: false
  spec_documents:
  - name: IntelligentCross Market Data Feed Specification
    version: '1.11'
    updated: '2020-07-30'
    url: http://iqx.imperativex.com/IntelligentCrossMarketDataFeedSpec.v.1.11.pdf
    http_status: 200
  - name: IntelligentCross IQX Market Data Rerequest Specification
    version: '1.08'
    url: https://cdn.prod.website-files.com/5ee92e3bd6214065dc7f2d48/61dc6cb50403bf15350ea647_IntelligentCross%20IQX%20Market%20Data%20Rerequest%20Specification%20v1.08.pdf
    http_status: 200
spec_type: AsyncAPI
spec_version: 3.0.0
document:
  asyncapi: 3.0.0
  info:
    title: IntelligentCross IQX Market Data Feed
    version: '1.11'
    description: |
      The IntelligentCross Market Data Feed (IQX) disseminates all visible ASPEN resting
      orders, cancels for ASPEN visible orders, and all ASPEN executions. It additionally
      provides information for each symbol that may be traded, market state, and individual
      symbol trading states (halts).

      The feed is disseminated over multicast UDP. Each UDP packet transports a variable
      number of messages (zero for heartbeats), limited to a 1500 byte MTU. Packets carry a
      header identifying the market day, the feed, the sequence of the first message in the
      packet and the message count, so a consumer can detect gaps: the next packet's expected
      Sequence is the previous packet's Sequence plus its Count.

      Each ASPEN book is disseminated on its own multicast address. Primary (A) and secondary
      (B) groups are published for every feed, and a separate UAT (test) environment is
      published alongside production.
    contact:
      name: IntelligentCross Operations
      email: ops@intelligentcross.com
      url: https://www.imperativex.com/market-data
    externalDocs:
      description: IntelligentCross Market Data Feed Specification v1.11
      url: http://iqx.imperativex.com/IntelligentCrossMarketDataFeedSpec.v.1.11.pdf
  defaultContentType: application/octet-stream
  servers:
    prod-primary:
      host: 233.203.108.4
      protocol: udp
      description: PROD primary (A) multicast group. Source IP 46.255.0.74, RP 185.136.106.2.
      tags:
      - name: env:production
      - name: feed:A
    prod-secondary:
      host: 233.203.108.6
      protocol: udp
      description: PROD secondary (B) multicast group. Source IP 46.255.0.90, RP 185.136.106.130.
      tags:
      - name: env:production
      - name: feed:B
    uat-primary:
      host: 233.203.108.5
      protocol: udp
      description: UAT primary (A) multicast group. Source IP 46.255.0.82, RP 185.136.106.2.
      tags:
      - name: env:uat
      - name: feed:A
    uat-secondary:
      host: 233.203.108.7
      protocol: udp
      description: UAT secondary (B) multicast group. Source IP 46.255.0.98, RP 185.136.106.130.
      tags:
      - name: env:uat
      - name: feed:B
  channels:
    aspenFeeFeeProd:
      address: 'udp://233.203.108.4:29049'
      title: ASPEN Fee/Fee (PROD)
      description: Production ASPEN Fee/Fee book. Feed identifier 'P'. Secondary (B)
        group 233.203.108.6, same port.
      servers:
      - $ref: '#/servers/prod-primary'
      - $ref: '#/servers/prod-secondary'
      messages:
        marketEvent:
          $ref: '#/components/messages/MarketEvent'
        symbolInformation:
          $ref: '#/components/messages/SymbolInformation'
        symbolState:
          $ref: '#/components/messages/SymbolState'
        newOrderAdd:
          $ref: '#/components/messages/NewOrderAdd'
        orderPartialCancel:
          $ref: '#/components/messages/OrderPartialCancel'
        orderCancelAll:
          $ref: '#/components/messages/OrderCancelAll'
        orderUpdated:
          $ref: '#/components/messages/OrderUpdated'
        orderExecuted:
          $ref: '#/components/messages/OrderExecuted'
        trade:
          $ref: '#/components/messages/Trade'
        tradeBreak:
          $ref: '#/components/messages/TradeBreak'
    aspenMakerTakerProd:
      address: 'udp://233.203.108.4:29050'
      title: ASPEN Maker/Taker (PROD)
      description: Production ASPEN Maker/Taker book. Feed identifier 'A'. Secondary
        (B) group 233.203.108.6, same port.
      servers:
      - $ref: '#/servers/prod-primary'
      - $ref: '#/servers/prod-secondary'
      messages:
        marketEvent:
          $ref: '#/components/messages/MarketEvent'
        symbolInformation:
          $ref: '#/components/messages/SymbolInformation'
        symbolState:
          $ref: '#/components/messages/SymbolState'
        newOrderAdd:
          $ref: '#/components/messages/NewOrderAdd'
        orderPartialCancel:
          $ref: '#/components/messages/OrderPartialCancel'
        orderCancelAll:
          $ref: '#/components/messages/OrderCancelAll'
        orderExecuted:
          $ref: '#/components/messages/OrderExecuted'
        trade:
          $ref: '#/components/messages/Trade'
    aspenTakerMakerProd:
      address: 'udp://233.203.108.4:29051'
      title: ASPEN Taker/Maker (PROD)
      description: Production ASPEN Taker/Maker book. Feed identifier 'Z'. Secondary
        (B) group 233.203.108.6, same port.
      servers:
      - $ref: '#/servers/prod-primary'
      - $ref: '#/servers/prod-secondary'
      messages:
        marketEvent:
          $ref: '#/components/messages/MarketEvent'
        symbolInformation:
          $ref: '#/components/messages/SymbolInformation'
        symbolState:
          $ref: '#/components/messages/SymbolState'
        newOrderAdd:
          $ref: '#/components/messages/NewOrderAdd'
        orderPartialCancel:
          $ref: '#/components/messages/OrderPartialCancel'
        orderCancelAll:
          $ref: '#/components/messages/OrderCancelAll'
        orderExecuted:
          $ref: '#/components/messages/OrderExecuted'
        trade:
          $ref: '#/components/messages/Trade'
    aspenFeeFeeUat:
      address: 'udp://233.203.108.5:18505'
      title: ASPEN Fee/Fee (UAT)
      description: UAT ASPEN Fee/Fee book. Feed identifier 'T'. Secondary (B) group
        233.203.108.7, same port.
      servers:
      - $ref: '#/servers/uat-primary'
      - $ref: '#/servers/uat-secondary'
      messages:
        marketEvent:
          $ref: '#/components/messages/MarketEvent'
        symbolInformation:
          $ref: '#/components/messages/SymbolInformation'
        symbolState:
          $ref: '#/components/messages/SymbolState'
        newOrderAdd:
          $ref: '#/components/messages/NewOrderAdd'
        orderExecuted:
          $ref: '#/components/messages/OrderExecuted'
        trade:
          $ref: '#/components/messages/Trade'
    aspenMakerTakerUat:
      address: 'udp://233.203.108.5:18506'
      title: ASPEN Maker/Taker (UAT)
      description: UAT ASPEN Maker/Taker book. Feed identifier 'B'. Secondary (B) group
        233.203.108.7, same port.
      servers:
      - $ref: '#/servers/uat-primary'
      - $ref: '#/servers/uat-secondary'
      messages:
        marketEvent:
          $ref: '#/components/messages/MarketEvent'
        newOrderAdd:
          $ref: '#/components/messages/NewOrderAdd'
        orderExecuted:
          $ref: '#/components/messages/OrderExecuted'
    aspenTakerMakerUat:
      address: 'udp://233.203.108.5:18507'
      title: ASPEN Taker/Maker (UAT)
      description: UAT ASPEN Taker/Maker book. Feed identifier 'Y'. Secondary (B) group
        233.203.108.7, same port.
      servers:
      - $ref: '#/servers/uat-primary'
      - $ref: '#/servers/uat-secondary'
      messages:
        marketEvent:
          $ref: '#/components/messages/MarketEvent'
        newOrderAdd:
          $ref: '#/components/messages/NewOrderAdd'
        orderExecuted:
          $ref: '#/components/messages/OrderExecuted'
  operations:
    receiveAspenFeeFeeProd:
      action: receive
      channel:
        $ref: '#/channels/aspenFeeFeeProd'
      summary: Subscribe to the production ASPEN Fee/Fee multicast feed.
    receiveAspenMakerTakerProd:
      action: receive
      channel:
        $ref: '#/channels/aspenMakerTakerProd'
      summary: Subscribe to the production ASPEN Maker/Taker multicast feed.
    receiveAspenTakerMakerProd:
      action: receive
      channel:
        $ref: '#/channels/aspenTakerMakerProd'
      summary: Subscribe to the production ASPEN Taker/Maker multicast feed.
    receiveAspenFeeFeeUat:
      action: receive
      channel:
        $ref: '#/channels/aspenFeeFeeUat'
      summary: Subscribe to the UAT ASPEN Fee/Fee multicast feed.
    receiveAspenMakerTakerUat:
      action: receive
      channel:
        $ref: '#/channels/aspenMakerTakerUat'
      summary: Subscribe to the UAT ASPEN Maker/Taker multicast feed.
    receiveAspenTakerMakerUat:
      action: receive
      channel:
        $ref: '#/channels/aspenTakerMakerUat'
      summary: Subscribe to the UAT ASPEN Taker/Maker multicast feed.
  components:
    messages:
      MarketEvent:
        name: MarketEvent
        title: Market Event
        summary: Session and market-wide state transitions.
        contentType: application/octet-stream
        payload:
          $ref: '#/components/schemas/MarketEvent'
      SymbolInformation:
        name: SymbolInformation
        title: Symbol Information
        summary: Per-symbol reference data, including the Symbol ID to Symbol mapping
          for the day.
        contentType: application/octet-stream
        payload:
          $ref: '#/components/schemas/SymbolInformation'
      SymbolState:
        name: SymbolState
        title: Symbol State
        summary: Per-symbol trading state transitions (matching active/inactive, enabled/disabled).
        contentType: application/octet-stream
        payload:
          $ref: '#/components/schemas/SymbolState'
      NewOrderAdd:
        name: NewOrderAdd
        title: New Order Add
        summary: A new visible ASPEN resting order was added to the book.
        contentType: application/octet-stream
        payload:
          $ref: '#/components/schemas/NewOrderAdd'
      OrderPartialCancel:
        name: OrderPartialCancel
        title: Order Partial Cancel
        summary: Shares were cancelled from a resting visible order.
        contentType: application/octet-stream
        payload:
          $ref: '#/components/schemas/OrderPartialCancel'
      OrderCancelAll:
        name: OrderCancelAll
        title: Order Cancel All
        summary: A resting visible order was fully cancelled.
        contentType: application/octet-stream
        payload:
          $ref: '#/components/schemas/OrderCancelAll'
      OrderUpdated:
        name: OrderUpdated
        title: Order Updated
        summary: Reserved for future use - Order Updated messages are not currently
          sent. Customer initiated order changes result in either Order Partial Cancel,
          or Order Cancel All followed by New Order Add and/or potentially Order Executed.
        contentType: application/octet-stream
        payload:
          $ref: '#/components/schemas/OrderUpdated'
      OrderExecuted:
        name: OrderExecuted
        title: Order Executed
        summary: Sent when a visible order is executed.
        contentType: application/octet-stream
        payload:
          $ref: '#/components/schemas/OrderExecuted'
      Trade:
        name: Trade
        title: Trade
        summary: Sent when a hidden order is executed.
        contentType: application/octet-stream
        payload:
          $ref: '#/components/schemas/Trade'
      TradeBreak:
        name: TradeBreak
        title: Trade Break
        summary: Reserved for future use - Trade Break messages are not currently sent.
        contentType: application/octet-stream
        payload:
          $ref: '#/components/schemas/TradeBreak'
    schemas:
      UdpPacketHeader:
        type: object
        description: Fixed 20-byte packet header preceding the message blocks.
        properties:
          marketDayIdentifier:
            type: string
            description: 'Unique identifier for trading day. Offset 0, length 9, ASCII
              number.'
          feedIdentifier:
            type: string
            description: 'Unique code for feed. Offset 9, length 1, alpha.'
          sequence:
            type: integer
            description: 'Sequence number for next message. Offset 10, length 8, little-endian
              binary.'
          count:
            type: integer
            description: 'Number of messages in packet. Offset 18, length 2, little-endian
              binary.'
      UdpMessageBlockHeader:
        type: object
        description: Simple block header preceding each message within a packet.
        properties:
          length:
            type: integer
            description: 'Length of the message. Offset 0, length 2, little-endian binary.'
      MarketEvent:
        type: object
        x-message-type: A
        properties:
          messageType:
            type: string
            const: A
            description: 'Offset 0, length 1, alpha.'
          reserved:
            type: string
            description: 'Reserved for future use. Offset 1, length 2, alpha.'
          timestamp:
            type: integer
            description: 'Nanoseconds since epoch (UTC). Offset 3, length 8.'
          event:
            type: string
            description: 'Offset 11, length 1, alpha.'
            enum: [O, S, Q, E, C]
            x-enum-descriptions:
              O: Start of Session
              S: Market accepting orders
              Q: Market open for trading
              E: Market trading ended for day
              C: End of Session
      SymbolInformation:
        type: object
        x-message-type: B
        properties:
          messageType:
            type: string
            const: B
            description: 'Offset 0, length 1, alpha.'
          symbolId:
            type: integer
            description: 'Symbol Index. Offset 1, length 2.'
          timestamp:
            type: integer
            description: 'Nanoseconds since epoch (UTC). Offset 3, length 8.'
          symbol:
            type: string
            description: 'Stock Symbol. Offset 11, length 11, alpha.'
          listingMarket:
            type: string
            description: 'Code identifying the primary listing market. Offset 22, length
              1, alpha.'
            enum: [N, Q, P, Z, A, V]
            x-enum-descriptions:
              N: NYSE
              Q: NASDAQ
              P: ARCA
              Z: BATS Z
              A: AMEX
              V: IEX
          reserved:
            type: string
            description: 'Reserved for future use. Offset 23, length 1, alpha.'
          roundLotSize:
            type: integer
            description: 'Size of one round lot. Offset 24, length 4.'
      SymbolState:
        type: object
        x-message-type: C
        properties:
          messageType:
            type: string
            const: C
            description: 'Offset 0, length 1, alpha.'
          symbolId:
            type: integer
            description: 'Symbol Index. Offset 1, length 2.'
          timestamp:
            type: integer
            description: 'Nanoseconds since epoch (UTC). Offset 3, length 8.'
          symbol:
            type: string
            description: 'Stock Symbol. Offset 11, length 11, alpha.'
          state:
            type: string
            description: 'Offset 22, length 1, alpha.'
            enum: [I, A, D, E]
            x-enum-descriptions:
              I: Matching Inactive - orders may be accepted, but will not currently
                match
              A: Matching Active - orders may be accepted and may currently match
              D: Disabled - orders will not be accepted and are not eligible for matching
              E: Enabled - orders will be accepted and are eligible for matching
          reserved:
            type: string
            description: 'Reserved for future use. Offset 23, length 1, alpha.'
          info:
            type: string
            description: 'Optional text. Offset 24, length 4, alpha.'
      NewOrderAdd:
        type: object
        x-message-type: D
        properties:
          messageType:
            type: string
            const: D
            description: 'Offset 0, length 1, alpha.'
          symbolId:
            type: integer
            description: 'Symbol Index. Offset 1, length 2.'
          timestamp:
            type: integer
            description: 'Nanoseconds since epoch (UTC). Offset 3, length 8.'
          orderId:
            type: integer
            description: 'Market Issued Unique Order ID. Offset 11, length 8. This is
              the same Order ID returned by the FIX order gateway order acknowledgment
              message (38=8, 150=0) in the FIX OrderID field (tag 37).'
          side:
            type: string
            description: 'Offset 19, length 1, alpha.'
            enum: [B, S]
          shares:
            type: integer
            description: 'Qty. Offset 20, length 4.'
          symbol:
            type: string
            description: 'Stock Symbol. Offset 24, length 11, alpha.'
          price:
            type: integer
            description: 'Price with 6 implied decimals. Offset 35, length 8, signed
              positive integer. $543.21 is represented as 543210000.'
          reserved:
            type: string
            description: 'Reserved for future use. Offset 43, length 4, alpha.'
      OrderPartialCancel:
        type: object
        x-message-type: F
        properties:
          messageType:
            type: string
            const: F
            description: 'Offset 0, length 1, alpha.'
          symbolId:
            type: integer
            description: 'Symbol Index. Offset 1, length 2.'
          timestamp:
            type: integer
            description: 'Nanoseconds since epoch (UTC). Offset 3, length 8.'
          orderId:
            type: integer
            description: 'Market Issued Unique Order ID. Offset 11, length 8.'
          sharesCanceled:
            type: integer
            description: 'Number of shares cancelled. Offset 19, length 4.'
      OrderCancelAll:
        type: object
        x-message-type: G
        properties:
          messageType:
            type: string
            const: G
            description: 'Offset 0, length 1, alpha.'
          symbolId:
            type: integer
            description: 'Symbol Index. Offset 1, length 2.'
          timestamp:
            type: integer
            description: 'Nanoseconds since epoch (UTC). Offset 3, length 8.'
          orderId:
            type: integer
            description: 'Market Issued Unique Order ID. Offset 11, length 8.'
      OrderUpdated:
        type: object
        x-message-type: H
        x-status: reserved-for-future-use
        properties:
          messageType:
            type: string
            const: H
            description: 'Offset 0, length 1, alpha.'
          symbolId:
            type: integer
            description: 'Symbol Index. Offset 1, length 2.'
          timestamp:
            type: integer
            description: 'Nanoseconds since epoch (UTC). Offset 3, length 8.'
          orderId:
            type: integer
            description: 'Market Issued Unique Order ID. Offset 11, length 8. Order
              ID remains unchanged as a result of an Order Updated message.'
          shares:
            type: integer
            description: 'Number of shares. Offset 19, length 4.'
          price:
            type: integer
            description: 'Price with 6 implied decimals. Offset 23, length 8.'
      OrderExecuted:
        type: object
        x-message-type: J
        properties:
          messageType:
            type: string
            const: J
            description: 'Offset 0, length 1, alpha.'
          symbolId:
            type: integer
            description: 'Symbol Index. Offset 1, length 2.'
          timestamp:
            type: integer
            description: 'Nanoseconds since epoch (UTC). Offset 3, length 8.'
          orderId:
            type: integer
            description: 'Market Issued Unique Order ID. Offset 11, length 8.'
          shares:
            type: integer
            description: 'Qty Executed. Offset 19, length 4.'
          executionId:
            type: integer
            description: 'Market Issued Unique Execution ID. Offset 23, length 8.'
          reserved:
            type: string
            description: 'Reserved for future use. Offset 31, length 1, alpha.'
          price:
            type: integer
            description: 'Price with 6 implied decimals. Offset 32, length 8.'
      Trade:
        type: object
        x-message-type: K
        properties:
          messageType:
            type: string
            const: K
            description: 'Offset 0, length 1, alpha.'
          symbolId:
            type: integer
            description: 'Symbol Index. Offset 1, length 2.'
          timestamp:
            type: integer
            description: 'Nanoseconds since epoch (UTC). Offset 3, length 8.'
          reservedInteger:
            type: integer
            description: 'Reserved for future use. Offset 11, length 8.'
          reservedAlpha:
            type: string
            description: 'Reserved for future use. Offset 19, length 1, alpha.'
          shares:
            type: integer
            description: 'Qty Executed. Offset 20, length 4.'
          symbol:
            type: string
            description: 'Stock Symbol. Offset 24, length 11, alpha.'
          price:
            type: integer
            description: 'Price with 6 implied decimals. Offset 35, length 8.'
          executionId:
            type: integer
            description: 'Market Issued Unique Execution ID. Offset 43, length 8.'
      TradeBreak:
        type: object
        x-message-type: M
        x-status: reserved-for-future-use
        properties:
          messageType:
            type: string
            const: M
            description: 'Offset 0, length 1, alpha.'
          symbolId:
            type: integer
            description: 'Symbol Index. Offset 1, length 2.'
          timestamp:
            type: integer
            description: 'Nanoseconds since epoch (UTC). Offset 3, length 8.'
          executionId:
            type: integer
            description: 'Market Issued Unique Execution ID. Offset 11, length 8.'