---
title: "List markets"
method: GET
path: "/v1/view/exchange/markets"
tags: ["Exchange"]
---

# List markets

`GET /v1/view/exchange/markets`

Handles `GET /v1/view/exchange/markets` via `get.v1.view.exchange.markets`.

## Response `200`

Exchange market configurations

- ExchangeMarketConfig[]
  - `assetId` integer, required — Numeric asset identifier.
  - `baseLotsDecimals` integer, required — Base-lot decimal exponent.
  - `commodityMetadata` CommodityMetadata — Commodity-specific market metadata.
    - `afterHoursRadius` string, required — Commodity after-hours radius in price units.
    - `executionPriceBand` MarketPriceBand — Inclusive lower/upper price bounds for market-specific execution rules.
      - `max` string, required
      - `min` string, required
    - `isAfterHours` boolean, required — Parsed after-hours flag.
    - `isCommodity` boolean, required — Parsed commodity flag. Always true when this object is present.
    - `isReopen` boolean, required — Parsed reopen flag.
    - `lastIndexExpiryTimestamp` integer, nullable — Unix timestamp when the last known index price expires.
    - `lastKnownIndexPrice` string, nullable — Last index price used for commodity after-hours/reopen behavior.
    - `markPriceBand` MarketPriceBand — Inclusive lower/upper price bounds for market-specific execution rules.
      - `max` string, required
      - `min` string, required
    - `status` 'active' | 'afterHours' | 'reopen', required — Represents the state of a RWA market. This type is shared between on-chain and off-chain components
  - `fundingIntervalSeconds` integer, required — Funding interval length in seconds.
  - `fundingPeriodSeconds` integer, required — Funding period length in seconds.
  - `isolatedOnly` boolean, required — Whether this market only supports isolated margin positions
  - `leverageTiers` ExchangeLeverageTier[], required — Configured leverage tiers.
    - `limitOrderRiskFactor` number, double, required — The limit order risk factor as a percentage (e.g., 60.0 = 60%).
    - `limitOrderRiskFactorBps` integer, nullable — The limit order risk factor in basis points (e.g., 6000 = 60%).
    - `maxLeverage` number, double, required — Maximum leverage for this tier.
    - `maxSizeBaseLots` integer, required — Maximum size in base lots for this tier.
  - `makerFee` number, double, required — Maker fee (percent).
  - `marketPubkey` string, required — The orderbook account pubkey (base58 encoded)
  - `marketStatus` 'uninitialized' | 'active' | 'postOnly' | 'paused' | 'closed' | 'tombstoned', required
  - `maxFundingRatePerInterval` integer, required — Maximum absolute funding rate per interval.
  - `maxFundingRatePerIntervalPercentage` number, double — Maximum absolute funding rate per interval as a percentage of notional at the current mark price.
  - `maxLiquidationSizeBaseLots` integer, required — 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.
  - `metadata` MarketPublicMetadata — Public off-chain metadata for a market.
    - `calendar` MarketCalendar — Public metadata for a market calendar associated with a market.
      - `calendarUri` string, required — URI where the full market calendar can be fetched.
      - `contentSha256` string, required — SHA-256 hash of the calendar content.
      - `description` string, required — Human-readable calendar description.
      - `id` string, required — Market calendar identifier configured off-chain.
      - `nextMarketTransitionUtc` string, date-time, nullable — Next UTC timestamp at which this calendar changes market state.
    - `coinGeckoId` string, nullable — CoinGecko asset identifier.
    - `coinMarketCapId` integer, nullable — CoinMarketCap numeric asset identifier.
    - `description` string, nullable — Human-readable market description.
    - `displayColor` string, nullable — Preferred display color for this market.
    - `logoUri` string, nullable — Logo URI for this market.
    - `name` string, nullable — Human-readable market name.
    - `tokensXyzAssetId` string, nullable — tokens.xyz asset identifier.
  - `openInterestCapBaseLots` integer, required — 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.
  - `riskFactors` ExchangeRiskFactors, required — Risk factors as percentages. Used by the `/exchange` endpoint.
    - `backstop` number, double, required — Backstop liquidation risk factor as a percentage.
    - `backstopBps` integer, nullable — Backstop liquidation risk factor in basis points.
    - `cancelOrder` number, double, required — Cancel order risk factor as a percentage.
    - `cancelOrderBps` integer, nullable — Cancel order risk factor in basis points.
    - `highRisk` number, double, required — High risk threshold as a percentage.
    - `highRiskBps` integer, nullable — High risk threshold in basis points.
    - `maintenance` number, double, required — Maintenance margin risk factor as a percentage (e.g., 50.0 = 50%).
    - `maintenanceBps` integer, nullable — Maintenance margin risk factor in basis points (e.g., 5000 = 50%).
    - `upnl` number, double, required — Risk factor for positive unrealized PnL penalty as a percentage.
    - `upnlBps` integer, nullable — Risk factor for positive unrealized PnL penalty in basis points.
    - `upnlForWithdrawals` number, double, required — Risk factor for positive unrealized PnL penalty during withdrawals as a percentage.
    - `upnlForWithdrawalsBps` integer, nullable — Risk factor for positive unrealized PnL penalty during withdrawals in basis points.
  - `splinePubkey` string, required — The spline collection PDA (derived from market_pubkey)
  - `statsSnapshot` MarketStatsSnapshot — Live market stats captured alongside an exchange market config response.
    - `cumulativeFundingRate` integer, required — Wrapper for signed 64-bit values that need to survive JSON transport without tripping JavaScript's safe-integer limits. When `serde` is enabled, this can deserialize from a string or number to accommodate clients that stringify large values.
    - `fundingStartIntervalTimestamp` integer, required — 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.
    - `openInterestBaseLots` integer, required — 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.
    - `slot` integer, required — Solana slot of the state snapshot used to build these stats.
    - `slotIndex` integer, required — Intra-slot sequence index of the state snapshot used to build these stats.
  - `symbol` string, required — Market symbol (for example, "SOL-PERP").
  - `takerFee` number, double, required — Taker fee (percent).
  - `tickSize` integer, required — Tick size in quote lots per base lot per tick.

---

[API](https://skmtc.net/phoenix/apis/phoenix-eternal-api.md) · [All operations](https://skmtc.net/phoenix/apis/phoenix-eternal-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/phoenix/phoenix-eternal-api/versions/0f598402d680/schema)
