# Market data

Prices and where volume traded, for any Hyperliquid market. Read only.

## get_candles

Price history for any Hyperliquid market at a chosen interval: open, high, low, close and volume per bar.

Marks: Reads only.

### Inputs

- `symbol`: text (2–40 characters). A market as the exchange names it, like `BTC-PERP`, `HYPE-SPOT` or `xyz:AAPL-PERP`. Default `BTC-PERP`.
- `interval`: text (a number then m, h, d or w, like `15m` or `4h`). Default `1h`.
- `limit`: whole number (1 to 1,000). Default `100`.

What the AI app reads: Price history for a market: symbol like BTC-PERP (perpetual), HYPE-SPOT or xyz:AAPL-PERP (a builder market, its lowercase prefix kept), interval 1m 5m 15m 30m 1h 4h 1d. Returns the most recent `limit` candles as rows [time (unix seconds), open, high, low, close, volume] plus a short summary.

## get_volume_profile

How much traded at each price over a range: the busiest price and the value area, for the whole range or per day or week.

Marks: Reads only.

### Inputs

- `symbol`: text (2–40 characters). The market as the exchange names it: BTC-PERP, HYPE-SPOT, xyz:AAPL-PERP (builder markets keep their lowercase prefix). Default `BTC-PERP`.
- `from`: text (up to 40 characters). Start, as a date or time like 2026-10-01 or 2026-10-01T13:30:00Z. Leave out to count back `days` from `to`.
- `to`: text (up to 40 characters). End, same form as from. Leave out for now.
- `rows`: whole number (1 to 1,000). Price rows per profile (default 24 for volume, 30 for TPO).
- `valueArea`: number (1 to 100). Share of the profile the value area holds, in percent. Default `70`.
- `days`: whole number (1 to 366). How far back from `to`, when `from` is left out. Default `7`.
- `split`: one of `none`, `day`, `week`. Default `none`.

What the AI app reads: Volume profile of a market over a time range: how much traded at each price, the point of control (the busiest price) and the value area high and low. split "day" or "week" gives one profile per UTC day or week (weeks start Monday); "none" (default) gives one for the whole range. Covers at most 366 days. The reply says which bar size it was built from and how many bars were missing.

## get_tpo_profile

The market profile (TPO) of recent sessions: busiest price, value area, first hour’s range, with each price row’s letters.

Marks: Reads only.

### Inputs

- `symbol`: text (2–40 characters). The market as the exchange names it: BTC-PERP, HYPE-SPOT, xyz:AAPL-PERP (builder markets keep their lowercase prefix). Default `BTC-PERP`.
- `from`: text (up to 40 characters). Start, as a date or time like 2026-10-01 or 2026-10-01T13:30:00Z. Leave out to count back `days` from `to`.
- `to`: text (up to 40 characters). End, same form as from. Leave out for now.
- `rows`: whole number (1 to 1,000). Price rows per profile (default 24 for volume, 30 for TPO).
- `valueArea`: number (1 to 100). Share of the profile the value area holds, in percent. Default `70`.
- `days`: whole number (1 to 31). How far back from `to`, when `from` is left out. Default `5`.
- `split`: one of `none`, `day`, `week`. Default `day`.
- `period`: whole number. Minutes per letter: 5, 10, 15, 30, 60, 120, 240. Default `30`.

What the AI app reads: TPO (market profile) of a market: each period of `period` minutes marks every price it traded at, lettered A, B, C… from the session start. Returns the point of control, value area, the initial balance (the first hour's range) and, for the last three sessions, each price row with its letters. split "day" (default) or "week" uses UTC sessions; "none" is one profile for the whole range. Covers at most 31 days.

Updated: 2026-10-20

Web page: https://buildtrade.app/docs/tools/market-data/
