---
title: "Get Hedging Flow Sessions"
method: GET
path: "/api/flow/hedging/sessions"
tags: ["Options Flow"]
---

# Get Hedging Flow Sessions

`GET /api/flow/hedging/sessions`

## Request

- Base URL: `https://api.zerogex.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.zerogex.io/api/flow/hedging/sessions`
- Auth: HTTP bearer

Trading days that have a stored Hedging Flow session, newest first.

The index behind ``/api/flow/hedging?date=``. Deliberately a list of days
that HAVE data rather than a date picker over the calendar: a picker
invites a reader onto an empty session and lets them conclude the feature
is broken, which is why ``/api/replay/sessions`` and the scorecard's
equivalent are both shaped this way.

Read from ``hedging_flow_5min`` and nothing else. Listing from the live
tables instead would advertise exactly the days the prune window keeps
and hide every older session that is still perfectly readable -- the list
and the permalinks have to agree about which days exist.

Each entry carries enough to render a card rather than a date: how many
bars the day has, how many of those were real rather than carried
forward, whether a 0DTE scope exists for it, and where the session's
cumulative lean finished.

``has_more`` comes from asking the database for one row more than the
caller wanted and then dropping it. That extra row is what lets the answer
be certain instead of inferred: a caller comparing ``count`` to ``limit``
is wrong exactly when the total is a multiple of the page size, and it
offers the reader a next page that renders as an empty archive.

## Query parameters

- `symbol` string, required
- `limit` integer
- `before` string, nullable: Page backwards: an ET trading day, YYYY-MM-DD, returning only sessions strictly OLDER than it. Pass the previous response's `next_before`; omit for the newest page. This is the one session list that needs paging at all -- hedging_flow_5min is retention-exempt, so it grows by a session a day without end, and a caller that never pages eventually stops seeing the oldest sessions even though their permalinks still work.

## Response `200`

Successful Response

- HedgingFlowSessionList: The index behind the dated Hedging Flow permalinks, newest first. Paged, unlike the other session lists. Those read tables ``db-prune`` empties at DATA_RETENTION_DAYS, so one page holds everything they will ever hold; ``hedging_flow_5min`` is retention-exempt and gains a session every trading day, so this list outgrows any fixed page. ``has_more`` is authoritative: it is answered from a row the server fetched and discarded, not inferred from ``count``. Feed ``next_before`` back as ``before`` to walk backwards; it is null on the last page.
  - `symbol` string, required
  - `count` integer, required
  - `sessions` HedgingFlowSession[], required
    - `date` string, date, required
    - `bar_count` integer, required
    - `real_bar_count` integer, required
    - `had_0dte` boolean, required
    - `cum_net_usd` number, nullable
    - `first_bar` string, date-time, nullable
    - `last_bar` string, date-time, nullable
  - `has_more` boolean
  - `next_before` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/zerogex/apis/zerogex-api.md) · [All operations](https://skmtc.dev/zerogex/apis/zerogex-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zerogex/apis/zerogex-api/revisions/753b26bf0592?raw)
