---
title: "List Markets"
method: GET
path: "/trades/markets"
tags: ["Trades"]
---

# List Markets

`GET /trades/markets`

## Request

- Base URL: `https://api.whop.com/api/v1`
- URL: `https://api.whop.com/api/v1/trades/markets`
- Auth: none required

Returns every market you can trade on Whop.

- **Spot:** listed by symbol: `BTC`, `ETH`, `SOL` and `XAUT` (gold).
- **Perpetuals:** such as `BTC`. Send the `id` as `market` when you create a trade.

The same symbol can appear twice, once as a perpetual and once as spot, so use `id` together with `instrument_type` to tell them apart. Results are sorted by `id`, then `instrument_type`.

This endpoint is public: no API key is needed, and each IP address can make up to 60 requests a minute.

## Query parameters

- `instrument_type` 'perpetual' | 'spot'
- `first` integer
- `after` string
- `last` integer
- `before` string

## Response `200`

markets listed

- object
  - `data` Market[], required
    - `id` string, required: The market's name: a perpetual's Hyperliquid name such as `BTC`, which you send as `market` when you create a trade, or a spot asset's symbol such as `BTC` or `XAUT`. A perpetual and a spot market can share an `id`, so `id` and `instrument_type` together identify a market.
    - `instrument_type` 'perpetual' | 'spot', required: Whether this is a perpetual or a spot market. With `id`, it identifies the market.
    - `max_leverage` integer, nullable, required: The highest cross leverage an order on this perpetual can use. `null` for a spot market, which trades without leverage.
    - `price` Money, required
      - `amount` string, required: The amount in major units, as an exact decimal string — `"10.00"` is ten dollars. A string so no float rounds it in transit.
      - `currency` string, required: Three-letter ISO 4217 currency code, lowercase.
      - `decimals` integer, required: How many decimal places the amount CARRIES — the precision the charge itself runs at.
      - `display_decimals` integer, required: How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
    - `size_decimals` integer, required: The most decimals an order's `size` can have on this market.
  - `page_info` object, required
    - `end_cursor` string, nullable, required
    - `has_next_page` boolean, required
    - `has_previous_page` boolean, required
    - `start_cursor` string, nullable, required

## Other responses

- `400`: Invalid Parameters
- `503`: market data is not available

## Changes

> 203 revisions in range; 1 not diffed.

- **2026-10-26** `0ce880b970bf`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/whop/apis/whop-api/changes/trades/markets/get.md)

---

[API](https://skmtc.dev/whop/apis/whop-api.md) - [All operations](https://skmtc.dev/whop/apis/whop-api/llms.txt) - [OpenAPI document](https://skmtc.dev/whop/apis/whop-api/revisions/9993d9eaebc8?raw)
