# TypeScript SDK — Predictions: Volume & Metrics

Query historical volume data and trading metrics for prediction markets. All methods are on `client.predictions`. See the [API specifications](/api-specifications) for full response schemas.

### getPredictionMarketDailyVolume

`GET /v1/prediction-markets/volume/{date}` · Public

Get the aggregate daily trading volume for prediction markets on a specific date. Returns a bare array of `PredictionMarketVolumeCategory` objects (not wrapped in an object).

```ts
const categories = await client.predictions.getPredictionMarketDailyVolume({
  date: "2026-06-15",
});

for (const cat of categories) {
  console.log(cat.categoryPath, cat.volume); // volume is a decimal string
}
```

> **Auto-retry** — This GET endpoint automatically retries on 429/502/503/504 status codes.

### getPredictionMarketHourlyVolume

`GET /v1/prediction-markets/volume/{date}/hourly` · Public

Get hourly volume breakdowns for prediction markets on a specific date. Returns a bare array of `PredictionMarketHourlyVolumeCategory` objects.

```ts
const hourly = await client.predictions.getPredictionMarketHourlyVolume({
  date: "2026-06-15",
});

for (const entry of hourly) {
  console.log(entry.periodStart, entry.categoryPath, entry.volume);
}
```

> **Auto-retry** — This GET endpoint automatically retries on transient failures.

### getVolumeMetrics

`POST /v1/prediction-markets/metrics/volume` · Authenticated

Get per-contract share volume metrics for an event. This is a POST mutation — never automatically retried. The `eventTicker` field is **required**. Returns a `VolumeMetricsResponse` with `eventTicker` and a `contracts` array of per-contract volume data.

```ts
const metrics = await client.predictions.getVolumeMetrics({
  eventTicker: "FED260318",
  startTime: 1700000000000n,
  endTime: 1700086400000n,
});

console.log(metrics.eventTicker);

for (const contract of metrics.contracts ?? []) {
  console.log(contract.symbol, contract.totalQty);
  console.log("  user aggressor:", contract.userAggressorQty);
  console.log("  user resting:", contract.userRestingQty);
}
```

> **Tip** — `startTime` and `endTime` accept both `bigint` and `number` values. Both are optional — omit to get all-time volume. See [Data Types](/tools/typescript-sdk/deep-dives/data-types) for int64 handling.

## What's next

- [Events & Discovery](/tools/typescript-sdk/reference/predictions/events-and-discovery) — browse and search prediction market events
- [Order Management](/tools/typescript-sdk/reference/predictions/order-management) — place, cancel, and query orders
- [Rewards & Rebates](/tools/typescript-sdk/reference/predictions/rewards-and-rebates) — liquidity rewards and maker rebate programs
- [Data Types](/tools/typescript-sdk/deep-dives/data-types) — why prices are strings and timestamps may be `bigint`
