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

# Get exchange snapshot

> Handles `GET /v1/exchange/snapshot` via `get.v1.exchange.snapshot`.



## OpenAPI

````yaml /openapi/phoenix-public-api.json get /v1/exchange/snapshot
openapi: 3.1.0
info:
  title: Phoenix Eternal API
  description: >-
    RESTful API for accessing Phoenix Eternal perpetual trading data. Provides
    real-time orderbook levels, asset information, and market metadata.
  termsOfService: https://www.phoenix.trade/terms-of-service
  contact:
    name: Phoenix Development Team
    url: https://github.com/Ellipsis-Labs/phoenix
  license:
    name: Proprietary
  version: 1.0.0
servers:
  - url: https://perp-api.phoenix.trade
    description: Phoenix Eternal Perp API
security: []
tags:
  - name: Auth
    description: Wallet and session authentication.
  - name: Exchange
    description: Exchange, market, candle, and no-referral register-instruction workflows.
  - name: Invite
    description: Invite validation, referral activation, and wallet allowlist checks.
  - name: Notifications
    description: Trader notification reads and acknowledgement helpers.
  - name: Trader
    description: Trader state, account history, and transaction builders.
externalDocs:
  url: https://docs.phoenix.trade
  description: Phoenix developer documentation
paths:
  /v1/exchange/snapshot:
    get:
      tags:
        - Exchange
      summary: Get exchange snapshot
      description: Handles `GET /v1/exchange/snapshot` via `get.v1.exchange.snapshot`.
      operationId: get.v1.exchange.snapshot
      responses:
        '200':
          description: Exchange snapshot
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExchangeSnapshotView'
      security:
        - PhoenixBearerAuth: []
components:
  schemas:
    ExchangeSnapshotView:
      type: object
      required:
        - version
        - slot
        - slotIndex
        - exchange
        - markets
      properties:
        exchange:
          $ref: '#/components/schemas/ExchangeStateSnapshot'
        markets:
          type: array
          items:
            $ref: '#/components/schemas/ExchangeMarketSnapshot'
        sequenceNumber:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/JsSafeU64'
        slot:
          type: integer
          format: int64
          minimum: 0
        slotIndex:
          type: integer
          format: int32
          minimum: 0
        version:
          type: integer
          format: int32
          minimum: 0
    ExchangeStateSnapshot:
      type: object
      required:
        - programId
        - globalConfig
        - currentAuthorities
        - canonicalMint
        - usdcMint
        - globalVault
        - perpAssetMap
        - globalTraderIndex
        - activeTraderBuffer
        - withdrawQueue
        - exchangeStatusBits
        - exchangeStatusFeatures
        - active
        - gated
      properties:
        active:
          type: boolean
        activeTraderBuffer:
          type: array
          items:
            type: string
        canonicalMint:
          type: string
        currentAuthorities:
          $ref: '#/components/schemas/AuthoritySetView'
        exchangeStatusBits:
          type: integer
          format: int32
          minimum: 0
        exchangeStatusFeatures:
          type: array
          items:
            type: string
        gated:
          type: boolean
        globalConfig:
          type: string
        globalTraderIndex:
          type: array
          items:
            type: string
        globalVault:
          type: string
        perpAssetMap:
          type: string
        programId:
          type: string
        usdcMint:
          type: string
        withdrawQueue:
          type: string
        withdrawalsAvailable:
          type: boolean
    ExchangeMarketSnapshot:
      type: object
      required:
        - symbol
        - assetId
        - marketStatus
        - marketPubkey
        - splinePubkey
        - tickSize
        - baseLotsDecimals
        - takerFee
        - makerFee
        - leverageTiers
        - riskFactors
        - fundingConfig
        - openInterestCapBaseLots
        - maxLiquidationSizeBaseLots
        - isolatedOnly
        - markPriceParameters
      properties:
        assetId:
          type: integer
          format: int32
          minimum: 0
        baseLotsDecimals:
          type: integer
          format: int32
        commodityMetadata:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ExchangeWsCommodityMetadata'
        fundingConfig:
          $ref: '#/components/schemas/ExchangeWsFundingConfig'
        isolatedOnly:
          type: boolean
        leverageTiers:
          type: array
          items:
            $ref: '#/components/schemas/ExchangeWsLeverageTier'
        makerFee:
          type: number
          format: double
        markPriceParameters:
          $ref: '#/components/schemas/ExchangeWsMarkPriceParameters'
        marketPubkey:
          type: string
        marketStatus:
          $ref: '#/components/schemas/MarketStatus'
        maxLiquidationSizeBaseLots:
          $ref: '#/components/schemas/JsSafeU64'
        metadata:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/MarketPublicMetadata'
        openInterestCapBaseLots:
          $ref: '#/components/schemas/JsSafeU64'
        riskFactors:
          $ref: '#/components/schemas/ExchangeWsRiskFactors'
        splinePubkey:
          type: string
        symbol:
          type: string
        takerFee:
          type: number
          format: double
        tickSize:
          type: integer
          format: int64
          minimum: 0
    JsSafeU64:
      type: integer
      format: int64
      description: |-
        Wrapper for unsigned 64-bit values that must be JSON-safe for consumers
        written in JavaScript/TypeScript. Mirrors [`JsSafeI64`] but for unsigned
        Phoenix quantities such as base lots, quote lots, and slots.
      minimum: 0
    AuthoritySetView:
      type: object
      description: View for authority set containing all authority pubkeys
      required:
        - rootAuthority
        - riskAuthority
        - marketAuthority
        - oracleAuthority
        - adlAuthority
        - cancelAuthority
        - backstopAuthority
      properties:
        adlAuthority:
          type: string
          description: ADL authority public key.
        backstopAuthority:
          type: string
          description: Backstop authority public key.
        cancelAuthority:
          type: string
          description: Cancel authority public key.
        marketAuthority:
          type: string
          description: Market authority public key.
        oracleAuthority:
          type: string
          description: Oracle authority public key.
        riskAuthority:
          type: string
          description: Risk authority public key.
        rootAuthority:
          type: string
          description: Root authority public key.
    ExchangeWsCommodityMetadata:
      type: object
      required:
        - isCommodity
        - isReopen
        - isAfterHours
        - status
        - afterHoursRadius
      properties:
        afterHoursRadius:
          type: string
        executionPriceBand:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ExchangeWsMarketPriceBand'
        isAfterHours:
          type: boolean
        isCommodity:
          type: boolean
        isReopen:
          type: boolean
        lastIndexExpiryTimestamp:
          type:
            - integer
            - 'null'
          format: int64
          minimum: 0
        lastKnownIndexPrice:
          type:
            - string
            - 'null'
        markPriceBand:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ExchangeWsMarketPriceBand'
        status:
          $ref: '#/components/schemas/CommodityMarketState'
    ExchangeWsFundingConfig:
      type: object
      required:
        - fundingIntervalSeconds
        - fundingPeriodSeconds
        - maxFundingRatePerInterval
      properties:
        fundingIntervalSeconds:
          type: integer
          format: int64
          minimum: 0
        fundingPeriodSeconds:
          type: integer
          format: int64
          minimum: 0
        maxFundingRatePerInterval:
          type: integer
          format: int64
    ExchangeWsLeverageTier:
      type: object
      required:
        - maxLeverage
        - maxSizeBaseLots
        - limitOrderRiskFactor
      properties:
        limitOrderRiskFactor:
          type: integer
          format: int32
          minimum: 0
        maxLeverage:
          type: integer
          format: int64
          minimum: 0
        maxSizeBaseLots:
          $ref: '#/components/schemas/JsSafeU64'
    ExchangeWsMarkPriceParameters:
      type: object
      required:
        - emaPeriodSlots
        - emaDiffRadius
        - bookPriceRadius
        - commoditiesAfterHoursRadius
        - commoditiesAfterHoursRadiusBps
        - adjustedExchangeSpotPriceWeight
        - bookPriceWeight
        - exchangePerpPriceWeight
        - spotPriceStaleThreshold
        - bookPriceStaleThreshold
        - perpPriceStaleThreshold
        - riskActionPriceValidityRules
        - oracleDivergenceRadius
        - minOracleResponses
      properties:
        adjustedExchangeSpotPriceWeight:
          $ref: '#/components/schemas/JsSafeU64'
        bookHardStaleMultiplier:
          type: integer
          format: int32
          minimum: 0
        bookPriceRadius:
          $ref: '#/components/schemas/JsSafeU64'
        bookPriceStaleThreshold:
          $ref: '#/components/schemas/JsSafeU64'
        bookPriceWeight:
          $ref: '#/components/schemas/JsSafeU64'
        commoditiesAfterHoursRadius:
          $ref: '#/components/schemas/JsSafeU64'
        commoditiesAfterHoursRadiusBps:
          $ref: '#/components/schemas/JsSafeU64'
        emaDiffRadius:
          $ref: '#/components/schemas/JsSafeU64'
        emaPeriodSlots:
          $ref: '#/components/schemas/JsSafeU64'
        exchangePerpPriceWeight:
          $ref: '#/components/schemas/JsSafeU64'
        minOracleResponses:
          type: integer
          format: int32
          minimum: 0
        oracleDivergenceRadius:
          type: integer
          format: int32
          minimum: 0
        oracleHardStaleMultiplier:
          type: integer
          format: int32
          minimum: 0
        perpPriceStaleThreshold:
          $ref: '#/components/schemas/JsSafeU64'
        riskActionPriceValidityRules:
          type: array
          items:
            type: array
            items:
              type: array
              items:
                $ref: '#/components/schemas/ExchangeWsValidationRule'
        spotPriceStaleThreshold:
          $ref: '#/components/schemas/JsSafeU64'
    MarketStatus:
      type: string
      enum:
        - uninitialized
        - active
        - postOnly
        - paused
        - closed
        - tombstoned
    MarketPublicMetadata:
      type: object
      description: Public off-chain metadata for a market.
      properties:
        calendar:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/MarketCalendar'
              description: >-
                Market calendar metadata derived from the configured calendar
                id.
        coinGeckoId:
          type:
            - string
            - 'null'
          description: CoinGecko asset identifier.
        coinMarketCapId:
          type:
            - integer
            - 'null'
          format: int64
          description: CoinMarketCap numeric asset identifier.
        description:
          type:
            - string
            - 'null'
          description: Human-readable market description.
        displayColor:
          type:
            - string
            - 'null'
          description: Preferred display color for this market.
        logoUri:
          type:
            - string
            - 'null'
          description: Logo URI for this market.
        name:
          type:
            - string
            - 'null'
          description: Human-readable market name.
        tokensXyzAssetId:
          type:
            - string
            - 'null'
          description: tokens.xyz asset identifier.
    ExchangeWsRiskFactors:
      type: object
      required:
        - maintenance
        - backstop
        - highRisk
        - upnl
        - upnlForWithdrawals
        - cancelOrder
      properties:
        backstop:
          type: number
          format: double
          description: Backstop liquidation risk factor as a percentage.
        backstopBps:
          type:
            - integer
            - 'null'
          format: int32
          description: Backstop liquidation risk factor in basis points.
          minimum: 0
        cancelOrder:
          type: number
          format: double
          description: Cancel order risk factor as a percentage.
        cancelOrderBps:
          type:
            - integer
            - 'null'
          format: int32
          description: Cancel order risk factor in basis points.
          minimum: 0
        highRisk:
          type: number
          format: double
          description: High-risk threshold as a percentage.
        highRiskBps:
          type:
            - integer
            - 'null'
          format: int32
          description: High-risk threshold in basis points.
          minimum: 0
        maintenance:
          type: number
          format: double
          description: Maintenance margin risk factor as a percentage (e.g., 50.0 = 50%).
        maintenanceBps:
          type:
            - integer
            - 'null'
          format: int32
          description: Maintenance margin risk factor in basis points (e.g., 5000 = 50%).
          minimum: 0
        upnl:
          type: number
          format: double
          description: Risk factor for positive unrealized PnL penalty as a percentage.
        upnlBps:
          type:
            - integer
            - 'null'
          format: int32
          description: Risk factor for positive unrealized PnL penalty in basis points.
          minimum: 0
        upnlForWithdrawals:
          type: number
          format: double
          description: >-
            Risk factor for positive unrealized PnL penalty during withdrawals
            in

            percentage terms.
        upnlForWithdrawalsBps:
          type:
            - integer
            - 'null'
          format: int32
          description: >-
            Risk factor for positive unrealized PnL penalty during withdrawals
            in

            basis points.
          minimum: 0
    ExchangeWsMarketPriceBand:
      type: object
      required:
        - lower
        - upper
      properties:
        lower:
          type: string
        upper:
          type: string
    CommodityMarketState:
      type: string
      description: >-
        Represents the state of a RWA market. This type is shared between
        on-chain

        and off-chain components
      enum:
        - active
        - afterHours
        - reopen
    ExchangeWsValidationRule:
      type: string
      enum:
        - ignore
        - require
        - forbid
    MarketCalendar:
      type: object
      description: Public metadata for a market calendar associated with a market.
      required:
        - id
        - description
        - calendarUri
        - contentSha256
      properties:
        calendarUri:
          type: string
          description: URI where the full market calendar can be fetched.
        contentSha256:
          type: string
          description: SHA-256 hash of the calendar content.
        description:
          type: string
          description: Human-readable calendar description.
        id:
          type: string
          description: Market calendar identifier configured off-chain.
        nextMarketTransitionUtc:
          type:
            - string
            - 'null'
          format: date-time
          description: Next UTC timestamp at which this calendar changes market state.
  securitySchemes:
    PhoenixBearerAuth:
      type: http
      scheme: bearer
      description: Bearer access token issued by `/v1/auth/*` login endpoints.

````