---
title: "Get capital flow intelligence"
method: GET
path: "/agent/capital-flow"
---

# Get capital flow intelligence

`GET /agent/capital-flow`

## Request

- Base URL: `https://app.fahaliai.com`
- URL: `https://app.fahaliai.com/agent/capital-flow`
- Auth: none declared

Returns the latest measured 60-minute candle-derived USD order-flow imbalance for requested symbols, or the strongest available readings when no symbol is supplied. A zero detection score does not erase a measured netFlowUsd value. This is not exchange aggressor tape, fund flow, participant identity, or a forecast.

## Query parameters

- `symbol` string
- `symbols` string
- `limit` integer
- `since` string, date-time

## Response `200`

Capital flow intelligence

- SpectraCapitalFlowResponse
  - `dataState` 'measured' | 'partial' | 'no_data' | 'error', required
  - `headline` string, required
  - `claim` object
  - `scope` object
  - `freshness` object: Freshness over the rows with a write cadence (crypto, in-session equities); last-session rows are excluded and counted in lastSessionRows (2026-10-13).
  - `freshnessByAssetClass` object: crypto and equity freshness blocks; an equity block made only of last-session rows reports the age and stale: null.
  - `lastSessionRows` integer: Rows served from a closed market's last session.
  - `coverage` object: Instruments per asset class this response can speak for; equities are watchlist-only.
  - `source` object: Row source (market_wide_snapshot | snapshot | snapshot+inline | inline), the default lower bound applied, and the refresher's snapshot meta.
  - `resolutions` object[]
  - `symbol` string, nullable
  - `netFlowUsd` number, nullable: Compatibility field for a one-symbol response. Null is no matching observation; zero is a measured balanced window.
  - `direction` 'buy_side' | 'sell_side' | 'balanced' | 'withheld' | 'null', nullable
  - `confidence` number, nullable: Uncalibrated unusualness score; not measurement presence and not a probability.
  - `confidenceMeaning` string
  - `basis` 'latest_measured_60m_imbalance_usd', required
  - `dataOrigin` 'order_flow_imbalance_proxy', required
  - `disclaimer` string, required
  - `trend` 'withheld', required
  - `trendWithheldReason` string
  - `data` object[], required
    - `symbol` string
    - `canonicalInstrumentId` string, nullable
    - `assetClass` string
    - `venue` unknown
    - `observedAt` string, date-time, nullable
    - `ageMinutes` number, nullable
    - `freshness` 'current' | 'stale' | 'last_session' | 'unknown'
    - `windowMinutes` 60
    - `netFlowUsd` number, nullable
    - `direction` 'buy_side' | 'sell_side' | 'balanced' | 'withheld'
    - `detectionScore` number, nullable
    - `isProbability` false
    - `signalConflict` boolean
    - `withheldReason` string, nullable
    - `observation` string
  - `notReturned` object[]
  - `conflicts` object[]
  - `summary` object, required
  - `limitations` object
  - `evidence` object
  - `provenance` SpectraProvenance, required
    - `source` 'predictions' | 'alerts' | 'agent_verdict' | 'derived', required
    - `modelVersion` string, required
    - `engineNames` string[], required
    - `walkForwardValidated` boolean, required
    - `dataAsOf` string, date-time, required
  - `asOf` string, date-time

## Other responses

- `400`: Invalid query parameter

---

[API](https://skmtc.dev/fahaliai/apis/fahali-intelligence-api.md) · [All operations](https://skmtc.dev/fahaliai/apis/fahali-intelligence-api/llms.txt) · [OpenAPI document](https://skmtc.dev/fahaliai/apis/fahali-intelligence-api/revisions/d8115da5453f?raw)
