# Sources (/market-data/sources)



## Source Types [#source-types]

| Source      | Spot               | Perpetuals | Outcomes |
| ----------- | ------------------ | ---------- | -------- |
| `orderbook` | Yes                | Yes        | Yes      |
| `trades`    | Yes                | Yes        | Yes      |
| `candles`   | Yes                | Yes        | Yes      |
| `volumes`   | Provider-dependent | Yes        | No       |
| `vd`        | Provider-dependent | Yes        | No       |
| `oi`        | No                 | Yes        | No       |
| `funding`   | No                 | Yes        | No       |
| `stats`     | No                 | Yes        | No       |

Provider support can be narrower. Check the relevant provider page.

## Standalone Source [#standalone-source]

```bash
mlab source orderbook \
  --exchange hyperliquidf \
  --symbol xyz:TSLA \
  --depth 20
```

Standalone exchanges omit `--provider`.

## MMT Source [#mmt-source]

```bash
mlab source orderbook \
  --provider mmt \
  --exchange bybitf \
  --symbol BTC \
  --depth 100
```

## Historical Range [#historical-range]

```bash
mlab source candles \
  --exchange binancef \
  --symbol BTC \
  --timeframe 60 \
  --from <UTC_DATETIME> \
  --to <UTC_DATETIME>
```

Range boundaries are UTC. Use `YYYY-MM-DD` or quote `YYYY-MM-DD HH:MM:SS` when you need an exact time.

## Stream [#stream]

```bash
mlab source trades \
  --exchange hyperliquidf \
  --symbol BTC \
  --stream \
  --output jsonl
```

Do not combine `--stream` with `--from` or `--to`.

## Output [#output]

```bash
--output terminal
--output json
--output jsonl
```

Use JSON for one result and JSONL for a stream. See [JSON Output](/json-output).

## Script Selectors [#script-selectors]

Standalone:

```text
btc@candles@binancef:timeframe=60
btc@trades@hyperliquidf
xyz:tsla@candles@hyperliquidf:timeframe=60
```

MMT:

```text
btc@candles@binancef@mmt:timeframe=60
btc@orderbook@okxf@mmt:depth=20
xyz:tsla@candles@hyperliquidf@mmt:timeframe=60
```

For Hyperliquid HIP-3, the exchange remains `hyperliquidf` and the symbol carries the DEX scope. Market Lab maps an MMT selector such as `xyz:tsla@...@hyperliquidf@mmt` to MMT's upstream `hyperliquid-xyz` route.

See [Python sources](/scripting-v2/sources) or [JavaScript sources](/scripting/sources).
