> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hyperprop.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Discover ready continuous futures for the caller's licensed

> markets. Aliases are history-only. Subscribe to underlyingSymbol for live
prices and compare revision with history's seriesRevision to reject races.
supportedAdjustments lists accepted history modes; defaultAdjustment is the
recommended chart mode. The adjustment field remains none for compatibility;
request adjustment=backward-difference explicitly to use the new default.
pendingRoll is optional awareness only: it never changes the active underlying,
stream, or history revision. Refresh discovery to confirm an applied rollover.



## OpenAPI

````yaml /api-reference/md-openapi.json get /md/continuous
openapi: 3.0.3
info:
  contact:
    name: Hyperprop
    url: https://hyperprop.com
  description: >-
    # Hyperprop Market Data API


    Real-time futures market data streaming.


    ## Overview


    - **REST endpoints** for current ticker prices, OHLC, order books

    - **WebSocket** for real-time streaming with channel subscriptions

    - **JWT authentication** + CME entitlements


    ## Price Format


    Prices are **raw fixed-point integer values** (i64):

    ```text

    displayPrice = rawPrice / 1_000_000_000

    // 6010250000000 → $6010.25

    ```


    ## Authentication


    All WebSocket connections require a JWT token:

    ```http

    wss://api.hyperprop.com/md/ws/stream?token=YOUR_JWT_TOKEN

    ```


    ## CME Entitlements


    Access requires an accepted CME market data agreement and an active
    entitlement for the requested product.


    | Exchange | Symbols |

    |----------|---------|

    | CME | ES, NQ, RTY |

    | CBOT | ZC, ZS, ZW, ZB, ZN |

    | NYMEX | CL, NG, RB |

    | COMEX | GC, SI, HG |


    ## WebSocket Usage


    Connect to `/md/ws/stream` and subscribe to channels:


    ```javascript

    const ws = new
    WebSocket('wss://api.hyperprop.com/md/ws/stream?token=JWT_TOKEN');


    ws.onopen = () => {
      // Subscribe to ticker channel
      ws.send(JSON.stringify({
        action: 'subscribe',
        channel: 'ticker',
        symbols: ['ES', 'NQ']
      }));
    };


    ws.onmessage = (e) => {
      const msg = JSON.parse(e.data);
      if (msg.type === 'Price') {
        console.log(`${msg.data.symbol}: $${(msg.data.price / 1e9).toFixed(2)}`);
      }
    };

    ```
  license:
    name: Proprietary
  title: Hyperprop Market Data API
  version: 0.1.0
servers:
  - url: https://api.hyperprop.com
    description: Production
security: []
tags:
  - description: Health checks and server information
    name: System
  - description: Current ticker prices
    name: Tickers
  - description: OHLC candlestick data
    name: OHLC
  - description: Best bid/ask prices (top of book)
    name: Order Book
  - description: Historical market data (OHLC bars)
    name: Historical
  - description: Real-time streaming via WebSocket
    name: WebSocket
paths:
  /md/continuous:
    get:
      tags:
        - Historical
      summary: Discover ready continuous futures for the caller's licensed
      description: >-
        markets. Aliases are history-only. Subscribe to underlyingSymbol for
        live

        prices and compare revision with history's seriesRevision to reject
        races.

        supportedAdjustments lists accepted history modes; defaultAdjustment is
        the

        recommended chart mode. The adjustment field remains none for
        compatibility;

        request adjustment=backward-difference explicitly to use the new
        default.

        pendingRoll is optional awareness only: it never changes the active
        underlying,

        stream, or history revision. Refresh discovery to confirm an applied
        rollover.
      operationId: getContinuousContracts
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContinuousResponse'
          description: Ready continuous contracts (an empty list means none are ready)
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
          description: Missing or invalid token
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
          description: CME access required
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalErrorResponse'
          description: Continuous metadata unavailable
      security:
        - bearer_auth: []
components:
  schemas:
    ContinuousResponse:
      properties:
        data:
          $ref: '#/components/schemas/ContinuousData'
        success:
          type: boolean
      required:
        - success
        - data
      type: object
    HistoricalErrorResponse:
      description: Error response
      properties:
        code:
          type: string
        error:
          type: string
        success:
          type: boolean
      required:
        - success
        - error
        - code
      type: object
    ContinuousData:
      properties:
        contracts:
          items:
            $ref: '#/components/schemas/ContinuousContract'
          type: array
      required:
        - contracts
      type: object
    ContinuousContract:
      properties:
        adjustment:
          type: string
        defaultAdjustment:
          type: string
        historyStart:
          description: >-
            Earliest verified history, Unix seconds. Fine intervals may have
            shorter retention.
          format: int64
          minimum: 0
          type: integer
        pendingRoll:
          allOf:
            - $ref: '#/components/schemas/PendingRoll'
          nullable: true
        revision:
          description: >-
            Opaque series revision; changes on rolls and historical ledger
            corrections.
          type: string
        rollPolicy:
          type: string
        root:
          type: string
        supportedAdjustments:
          description: |-
            Supported history modes. Omitted history parameters retain none for
            existing clients; new chart clients should select defaultAdjustment.
          items:
            type: string
          type: array
        symbol:
          type: string
        underlyingSince:
          description: >-
            Start of the current underlying segment in Unix seconds, collapsing

            consecutive same-contract observations. Native live candles
            beginning

            here or later can be remapped after checking the underlying and
            revision.
          format: int64
          minimum: 0
          type: integer
        underlyingSymbol:
          description: Current dated contract to subscribe to on the raw WebSocket feed.
          type: string
      required:
        - symbol
        - root
        - underlyingSymbol
        - underlyingSince
        - rollPolicy
        - adjustment
        - supportedAdjustments
        - defaultAdjustment
        - historyStart
        - revision
      type: object
    PendingRoll:
      properties:
        applyAfter:
          description: >-
            Planned application during the CME closure, Unix seconds. Timing
            alone

            does not confirm that a rollover has happened.
          format: int64
          minimum: 0
          type: integer
        reason:
          description: >-
            Selection reason, such as equity-calendar, session-volume, or
            intraday-volume.
          type: string
        reopensAt:
          description: >-
            Next CME session open, Unix seconds; an unapplied plan expires by
            this time.
          format: int64
          minimum: 0
          type: integer
        underlyingSymbol:
          description: >-
            Proposed dated target; this is not the active or tradable alias
            underlying.
          type: string
      required:
        - underlyingSymbol
        - reason
        - applyAfter
        - reopensAt
      type: object

````

## Related topics

- [Continuous futures](/guides/continuous-futures.md)
- [GET /depth/history — rolling order-book depth history.](/market-data-api/historical/get-depthhistory-—-rolling-order-book-depth-history.md)
- [GET /historical - Fetch historical OHLC bars](/market-data-api/historical/get-historical--fetch-historical-ohlc-bars.md)
- [Changelog](/changelog.md)
- [Consistency status for one of the caller's accounts](/trade-api/accounts/consistency-status-for-one-of-the-callers-accounts.md)
