---
title: "Get market"
method: GET
path: "/v1/view/exchange/market/{symbol}"
tags: ["Exchange"]
---

# Get market

`GET /v1/view/exchange/market/{symbol}`

## Request

- Base URL: `https://perp-api.phoenix.trade`
- URL: `https://perp-api.phoenix.trade/v1/view/exchange/market/{symbol}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/phoenix/apis/phoenix-eternal-api/docs/v1/view/exchange/market/:symbol/get.ts> (a function with typed inputs; its response is checked against the schema)

Handles `GET /v1/view/exchange/market/{symbol}` via `get.v1.view.exchange.market.by_symbol`.

## Path parameters

- `symbol` string, required

## Response `200`

Market configuration

- ExchangeMarketConfig: Static market configuration without live data like prices or open interest. Used by the `/exchange` endpoint to return market parameters.
  - `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.

## Other responses

- `404`: Standard JSON error payload.
- `500`: Standard JSON error payload.

---

[API](https://skmtc.dev/phoenix/apis/phoenix-eternal-api.md) - [All operations](https://skmtc.dev/phoenix/apis/phoenix-eternal-api/llms.txt) - [OpenAPI document](https://skmtc.dev/phoenix/apis/phoenix-eternal-api/revisions/542796fe0648?raw)
