---
title: "Get Hyperliquid order flow"
method: GET
path: "/v1/hyperliquid/orders/{symbol}/flow"
tags: ["Hyperliquid - Orders"]
---

# Get Hyperliquid order flow

`GET /v1/hyperliquid/orders/{symbol}/flow`

## Request

- Base URL: `https://api.0xarchive.io`
- URL: `https://api.0xarchive.io/v1/hyperliquid/orders/{symbol}/flow`
- Auth: API key in header `X-API-Key`

Get order flow aggregation for a symbol, in buckets of `interval` (1m by default). Shows order placement and cancellation rates over time.

**Buckets:** each bucket is labelled by its open time in UTC, and buckets open on multiples of the bucket width since the Unix epoch. A bucket with no order events is omitted. A bucket counts only the events inside `[start, end)`, so when `start` or `end` falls inside a bucket, that first or last bucket is partial; `start` and `end` on bucket opens give whole buckets.

**Pagination:** results are oldest first. When `meta.has_more` is `true`, pass the string `meta.next_cursor` unchanged as `cursor` with the same filters to get the next page. Stop when `meta.has_more` is `false`.

## Path parameters

- `symbol` string, required

## Query parameters

- `start` union: An instant: Unix milliseconds, or an RFC 3339 string such as `2026-01-01T00:00:00Z` (encode a `+` offset as `%2B`). An unparsable value answers 400 `invalid_time_range`.
  - integer: Unix milliseconds.
  - string, date-time: RFC 3339 instant.
- `end` union: An instant: Unix milliseconds, or an RFC 3339 string such as `2026-01-01T00:00:00Z` (encode a `+` offset as `%2B`). An unparsable value answers 400 `invalid_time_range`.
  - integer: Unix milliseconds.
  - string, date-time: RFC 3339 instant.
- `cursor` string
- `limit` integer
- `interval` '1m' | '5m' | '15m' | '1h'
- `granularity` '1m' | '5m' | '15m' | '1h'

## Response `200`

Order flow aggregation data

- object
  - `success` boolean
  - `data` object[]
  - `meta` object
    - `count` integer
    - `next_cursor` string
    - `request_id` string, uuid

## Other responses

- `400`: Invalid request: a parameter, symbol, interval, cursor or time range failed validation. See `error_code`.
- `401`: Authentication required: the API key is missing or invalid.
- `403`: The request is outside the plan's history window or per-request span, or the key is not allowed to make it.
- `429`: Rate limit, concurrency limit or monthly credits exceeded. See `error_code`.
- `default`: Any other error. The body is an `ErrorResponse`; branch on `error_code`. A 503 (`upstream_unavailable`) carries `Retry-After`.

---

[API](https://skmtc.dev/0xarchive/apis/0xarchive-api-2.md) · [All operations](https://skmtc.dev/0xarchive/apis/0xarchive-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/0xarchive/apis/0xarchive-api-2/revisions/27076f55595f?raw)
