Skip to main content
Turn what a trader types into a symbol, and learn how that instrument is priced and when it trades. Use this page when you’re building a symbol search, a chart or an order ticket. Four reads take you from a search box to a correctly written price, and each answers one question: what can I ask for, what exists, how is this instrument written and when does it trade, and what is a futures contract worth. By the end you can search the catalog, resolve one symbol, and format its prices from the API rather than from rules you wrote yourself.

Before you start

All four reads take your Trading API key and change nothing. The examples use TRDRS_API_BASE_URL and TRDRS_TRADING_API_KEY from the programmatic quickstart. The TypeScript SDK isn’t published, so call the routes over HTTP, as the curl examples do. The TypeScript examples show the same calls through the SDK’s client.
1

Read the limits once

Get market-data limits says which timeframes you can ask for and how big a request can be. Read it once when your app starts, and keep it.
The response settles what the other routes take for granted:Check a timeframe against units before you send it and you reach the same answer the engine would, without a failed request. Each unit also has nominalSeconds, its rough length, which is exact for fixed units and only approximate for t and mo. Use it to size ranges, never to predict bar spacing.
2

Search the catalog

Search the symbol catalog matches your text anywhere in a symbol or its name. class narrows it to one kind of instrument, as each row’s type writes it: future for futures, crypto for the crypto perpetuals you can trade, or the class of a builder-deployed Hyperliquid market, such as equity or commodity. Leave q empty to get a default list.
Each row has the symbol, its name, exchange and type, and provider, the provider whose data serves the row to you. A futures row names the provider of your futures login, and a symbol more than one provider serves you lists once for each. A perpetual names no provider, because its exchange’s own feed charts it, and carries currencyCode, the asset it’s quoted in, such as USDC.A builder-deployed Hyperliquid market lists under Hyperliquid as its exchange, with the class Hyperliquid files it under and the ticker, name and exchange its instrument goes by in its own market. HYPERLIQUID:XYZ:TSLA has the type equity, the name Tesla, Inc., the displaySymbol TSLA, the displayExchange NASDAQ and the dex XYZ, the perp dex that lists it; HYPERLIQUID:XYZ:CL reads as CL, WTI Crude Oil, on NYMEX. Show displaySymbol, name and displayExchange to a trader, with dex beside them, since two dexes can list the same stock, and name the market by symbol in every call. A market whose instrument lists on no exchange, such as an exchange rate, has no displayExchange.Futures prices are licensed to each trader, so futures list only in a signed-in trader’s own session at trdrs, and only when that trader has connected a login that carries futures prices under their own market data subscription (Providers says which). A Trading API key reads no futures data, so its search lists none. A signed-in trader sees each futures product in this order:A continuous symbol always stands for the contract its position names at the moment you use it, so a chart of ES1! moves to the next contract at the roll with nothing for you to change. The continuous rows appear only for a product whose roll trdrs models, and the dated rows only for contracts it registers.Use the returned symbol exactly as it comes in every other market data call. limit is 50 when you leave it out, and a limit above 100 is reduced to 100 rather than refused. To page, raise offset by limit while hasMore is true. hasMore is exact, so paging stops cleanly.
3

Resolve one symbol

Get symbol details is the read a chart and an order ticket both need. Read it once per instrument and keep it for the session.
It answers for any known symbol, even one nothing feeds for you right now, such as a futures symbol read with a Trading API key. An unknown symbol answers 404, which is an answer about the symbol, not a failure. A futures root, a continuous symbol such as ES1! and a dated contract such as ESZ6 share their product’s details, and each is named for what it is. What symbol details carry explains each field.
4

Read the futures catalog once

Get the futures catalog returns one row per futures product. It’s the same for every caller and doesn’t change during the day, so read it when your app starts and keep it.
Each row has the product root, such as ES, its name and exchange, tickSize and tickValue, the dollar multiplier, and the roll cycle. These are the figures an order ticket needs to size an order and snap a price to the tick. Two kinds of row carry more:
  • A product whose contract months the engine doesn’t work out from a quarterly cycle carries months, the calendar months that list contracts, so a ticket can offer a month picker.
  • A product quoted in thirty-seconds, the Treasury bond and note futures ZB and ZN, carries priceFraction: the denominator and subFraction its prices are written in. Use it instead of working one out from the tick.
Crypto instruments aren’t in this catalog. Their price grid comes from each provider through symbol details.

What symbol details carry

A spread expression, such as HYPERLIQUID:BTC/HYPERLIQUID:ETH, resolves here too, with type set to spread, no tick and no quotes. A string that exactly matches a catalog symbol is always that symbol, never arithmetic, even when it contains a / or a -. Backfill history covers spreads.

Keep your clock in step

Get server time returns the engine’s clock as time, in epoch seconds, and timeMs, in milliseconds. Read it once when your app starts, work out the difference from your own clock, and apply that difference locally. Session countdowns and bar boundaries then match the engine without asking again.

When a read is refused

Next steps

Backfill history

Load bars for the symbol you resolved, and scroll back through older ones.

Stream live data

Keep the chart live once the history is on screen.

Get quote snapshots

Read quotes for up to 50 symbols in one call, in the order you asked.