# TypeScript SDK — Market Data: Symbols & Pricing

Symbol discovery and real-time pricing endpoints. All methods are on `client.marketData`. All methods in this group are public (no authentication required) and backed by `GET` requests, so they auto-retry on transient failures (429, 502, 503, 504).

All prices and quantities are **decimal strings**, not floating-point numbers. See [Data Types](/tools/typescript-sdk/deep-dives/data-types) for why this matters and how to handle arithmetic safely.

### listSymbols

`GET /v1/symbols` · Public

Returns an array of all available trading pair symbols as lowercase strings (e.g. `"btcusd"`, `"ethusd"`). Use this to discover what you can pass to other market data methods.

```ts
const symbols = await client.marketData.listSymbols();
// ["aaveusd", "btcusd", "ethusd", ...]
```

> **Tip:** The list can be large (200+ symbols). Consider caching the result and refreshing periodically rather than calling on every request.

### getSymbolDetails

`GET /v1/symbols/details/{symbol}` · Public

Returns detailed trading rules for a symbol: minimum order size, tick size, quote increment, and more.

```ts
const details = await client.marketData.getSymbolDetails({ symbol: "BTCUSD" });
console.log(details.min_order_size);  // e.g. "0.00001" (string)
console.log(details.tick_size);       // e.g. 1e-8 (number)
console.log(details.quote_increment); // e.g. 0.01 (number)
```

> **Tip:** Use these values to validate order parameters before submitting. The `min_order_size` field is a decimal string, while `tick_size` and `quote_increment` are numbers.

### getTicker

`GET /v1/pubticker/{symbol}` · Public

Returns recent trading activity for a symbol: best bid/ask, last trade price, and 24h volume.

```ts
const ticker = await client.marketData.getTicker({ symbol: "BTCUSD" });
console.log(ticker.bid);    // "50123.45"
console.log(ticker.ask);    // "50125.00"
console.log(ticker.last);   // "50124.50"
console.log(ticker.volume); // { timestamp: 1483018200000, price_symbol: "USD", quantity_symbol: "BTC" }
```

> **Note:** Gemini recommends using [getTickerV2](#gettickerv2) for new integrations. This v1 endpoint is maintained for backward compatibility.

### getTickerV2

`GET /v2/ticker/{symbol}` · Public

Returns enriched ticker data including open/high/low/close prices, hourly price change snapshots, and the current best bid/ask.

```ts
const ticker = await client.marketData.getTickerV2({ symbol: "BTCUSD" });
console.log(ticker.open);    // "49800.00"
console.log(ticker.high);    // "50500.00"
console.log(ticker.low);     // "49600.00"
console.log(ticker.close);   // "50347.66"
console.log(ticker.bid);     // "50345.70"
console.log(ticker.ask);     // "50347.67"
console.log(ticker.changes); // array of 24 hourly price snapshots (strings)
```

> **Tip:** The `changes` array contains 24 decimal-string entries representing hourly closing prices over the last 24 hours, newest first.

### listPrices

`GET /v1/pricefeed` · Public

Returns a snapshot of the latest price and 24h percentage change for every trading pair. Useful for building dashboards or price tickers.

```ts
const prices = await client.marketData.listPrices();
for (const entry of prices) {
  console.log(entry.pair, entry.price, entry.percentChange24h);
  // "BTCUSD" "50123.00" "5.23"
}
```

> **Tip:** All values in the response are strings. The `percentChange24h` field is a decimal string representing the percentage (e.g. `"5.23"` means +5.23%).

### listFeePromos

`GET /v1/feepromos` · Public

Returns the list of symbols that currently have active fee promotions.

```ts
const promos = await client.marketData.listFeePromos();
console.log(promos);
// { symbols: ["BTCGUSD", "ETHGUSD", ...] }
```

> **Tip:** Fee promos change over time. Check this endpoint periodically if your strategy factors in trading fees.

## What's next

- [Books, Trades & Candles](/tools/typescript-sdk/reference/market-data/books-trades-candles) — order book snapshots, trade history, and OHLCV candles
- [Networks & Derivatives](/tools/typescript-sdk/reference/market-data/networks-and-derivatives) — network/token discovery, FX rates, and funding data
- [Data Types](/tools/typescript-sdk/deep-dives/data-types) — why prices are strings and timestamps may be `bigint`
- [Error Handling](/tools/typescript-sdk/errors) — how the SDK surfaces API errors
- [Full API Specifications](/api-specifications) — complete request/response schemas
