---
title: WGO ETF Endpoints
description: Reference for BTC and ETH US spot ETF overview, daily aggregate, and per-fund flow endpoints.
---

# ETF endpoints

WGO exposes US spot ETF data at aggregate and fund-ticker granularity. All monetary
fields are currently denominated in US dollars unless a field explicitly states
otherwise. Decimal values are JSON strings to preserve precision.

## ETF overview

```http
GET /api/wgo/v1/etf/{symbol}/overview
```

Use this endpoint for a daily report. It considers only settled ETF observations.

| Parameter | Type | Default | Constraint |
| --- | --- | --- | --- |
| `symbol` | path string | — | `BTC` or `ETH` |
| `window` | query integer | `30` | 2–365 latest settled observations |

```bash
curl --fail --silent --show-error \
  -H "Authorization: Bearer ${MOBIUSQUANT_TOKEN}" \
  "https://api.mobiusquant.ai/api/wgo/v1/etf/ETH/overview?window=30"
```

### Overview fields

| Field | Meaning |
| --- | --- |
| `as_of` | Latest settled US ETF trading date, or `null` when no data exists |
| `window_requested` | Requested maximum number of observations |
| `observations` | Settled observations actually available |
| `latest.net_inflow` | Aggregate net flow on `as_of` |
| `latest.direction` | `inflow`, `outflow`, or `flat` |
| `flow_streak.direction` | Direction of the latest observation |
| `flow_streak.days` | Consecutive observations with that direction; zero when latest is flat |
| `period.net_inflow` | Sum of daily net flows across returned observations |
| `period.inflow_days` | Number of positive-flow observations |
| `period.outflow_days` | Number of negative-flow observations |
| `period.flat_days` | Number of zero-flow observations |
| `long_term_capital_proxy.direction` | `increased`, `decreased`, or `flat` |
| `long_term_capital_proxy.cumulative_net_inflow_change` | Latest cumulative flow minus oldest cumulative flow in the window |
| `long_term_capital_proxy.total_net_assets_change` | AUM change over the same observations; includes price effects |

If there is no settled data, `latest`, `period`, and `long_term_capital_proxy` are
`null`, while `flow_streak.direction` is `none`.

## Daily aggregate history

```http
GET /api/wgo/v1/etf/{symbol}/daily
```

| Parameter | Type | Default | Constraint |
| --- | --- | --- | --- |
| `symbol` | path string | — | `BTC` or `ETH` |
| `start` | query date | omitted | Inclusive `YYYY-MM-DD` |
| `end` | query date | omitted | Inclusive `YYYY-MM-DD` |
| `limit` | query integer | `90` | 1–1000 |

Rows are ordered by `trade_date` descending. This endpoint may contain a `pending`
row; filter on `settlement_status` when a report requires final data.

```json
{
  "symbol": "BTC",
  "count": 1,
  "data": [
    {
      "country_code": "US",
      "symbol": "BTC",
      "trade_date": "2026-08-21",
      "total_net_inflow": "307453306.12",
      "total_value_traded": "6371116431",
      "total_net_assets": "96069419933.81248",
      "cum_net_inflow": "53706123160.808",
      "settlement_status": "settled",
      "synced_at": "2026-08-23T14:46:53.392330+00:00"
    }
  ]
}
```

## Per-fund breakdown

```http
GET /api/wgo/v1/etf/{symbol}/funds
```

| Parameter | Type | Default | Constraint |
| --- | --- | --- | --- |
| `symbol` | path string | — | `BTC` or `ETH` |
| `trade_date` | query date | latest settled date | `YYYY-MM-DD` |

Rows are sorted by `net_inflow` descending, with missing values last. Supplying an
explicit date can return pending records; omitting it selects the latest date with
settled per-fund data.

```json
{
  "symbol": "BTC",
  "trade_date": "2026-08-21",
  "count": 1,
  "data": [
    {
      "country_code": "US",
      "symbol": "BTC",
      "ticker": "IBIT",
      "name": "iShares Bitcoin Trust",
      "exchange": "NASDAQ",
      "trade_date": "2026-08-21",
      "net_inflow": "239278720",
      "cum_inflow": "62426677463.659996",
      "net_assets": "59014515840",
      "currency_share": "43.664",
      "prem_dsc": "0.0003664345914253797",
      "value_traded": "5206871551",
      "settlement_status": "settled",
      "synced_at": "2026-08-23T14:47:00.581971+00:00"
    }
  ]
}
```

`prem_dsc` is a ratio: `0.001` means approximately `0.1%`. `currency_share` is a
fund-share value; it is not a US-dollar flow field.

## Analytical boundary

Per-fund records can show which listed ETF received or lost capital on a trading
day. They cannot reveal intraday transfers, individual orders, beneficial owners,
or whether the same investor moved capital between two funds.
