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

# Markets

> What you can trade, how markets are named, and the rules every order follows.

A market is a perpetual future on one asset, quoted in US dollars. You can go long or short on it without owning the asset, and without an expiry date.

The catalog includes major crypto assets, such as BTC, ETH and SOL, and real-world assets, such as TSLA. `GET /v1/markets` always has the current list.

## Symbols

Every market has a short symbol, such as `BTC` or `TSLA`. You use it everywhere: in orders, in positions, and in URLs such as `/v1/positions/TSLA`.

* Symbols are case-insensitive when you send them, and upper case when we return them.
* Orders need the exact symbol. `TESLA` is not `TSLA`: the API refuses the order and suggests the right symbol. It never guesses on an order.
* The exchange's own names for markets never appear in the API. We keep the mapping.

## Search

Search is forgiving where orders are strict. `q` matches symbols, names and common aliases, and tolerates typos:

```bash theme={"system"}
curl "https://tradingapi.dev/v1/markets?q=tesla" \
  -H "Authorization: Bearer $TRADINGAPI_KEY"
```

```json theme={"system"}
{
  "object": "list",
  "data": [
    {
      "object": "market",
      "symbol": "TSLA",
      "name": "Tesla",
      "category": "equity",
      "status": "open",
      "size_increment": "0.001",
      "min_value": "10.00",
      "max_value": "25.00",
      "price": "438.12",
      "funding_rate_hourly": "0.0000125"
    }
  ]
}
```

The list is short, so it is never paged. Without `q`, you get every market.

## The market object

<ResponseField name="symbol" type="string">
  The identifier you use everywhere, for example `BTC`.
</ResponseField>

<ResponseField name="name" type="string">
  A readable name, for example `Bitcoin`.
</ResponseField>

<ResponseField name="category" type="string">
  `crypto`, `equity`, `index`, `commodity` or `fx`.
</ResponseField>

<ResponseField name="status" type="string">
  * `open`: all orders are accepted.
  * `reduce_only`: only orders that reduce a position are accepted.
  * `halted`: no orders are accepted.
</ResponseField>

<ResponseField name="size_increment" type="string">
  Order sizes are multiples of this, in the asset's units. An order sized by value is rounded down to it.
</ResponseField>

<ResponseField name="min_value" type="string">
  The smallest order, in USD, after rounding. It is \$10. Closing a whole position is exempt.
</ResponseField>

<ResponseField name="max_value" type="string">
  The largest single order, in USD. Your API key can have a lower limit.
</ResponseField>

<ResponseField name="price" type="string">
  The current mark price. It is the price your positions are valued at, and the one profit and loss are calculated from.
</ResponseField>

<ResponseField name="funding_rate_hourly" type="string">
  The current hourly funding rate, as a fraction.
</ResponseField>

## Funding

A perpetual future stays close to the asset's price because longs and shorts pay each other every hour. The payment is called funding. When `funding_rate_hourly` is positive, longs pay shorts; when it is negative, shorts pay longs.

For example, a rate of `0.0000125` on a $1,000 long costs about $0.0125 an hour, or \$0.30 a day. Funding is applied to your balance and appears on your position as `funding_since_open`.

## Trading hours

Every market trades around the clock, every day, including real-world assets such as TSLA.
