---
title: "Bitcoin exchange flow summary"
method: GET
path: "/v1/exchange/flows/summary"
tags: ["market"]
---

# Bitcoin exchange flow summary

`GET /v1/exchange/flows/summary`

## Request

- Base URL: `https://satoshidata.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://satoshidata.ai/v1/exchange/flows/summary`
- Auth: none declared

Free teaser endpoint returning aggregate exchange inflow, outflow, and net flow from satoshidata.ai's tracked exchange history over the requested trailing daily block-window range.

## Query parameters

- `range` '1d' | '24h' | '7d' | '30d'
- `breakdown` 'per_exchange'

## Response `200`

Bitcoin exchange flow summary

- ExchangeFlowsSummaryResponse
  - `range` string, required
  - `window` string, nullable
  - `data_as_of` string, nullable
  - `data_through` string, nullable
  - `tip_block` integer, nullable
  - `days` integer, required
  - `requested_days` integer, required
  - `date_range` string[]
  - `coverage` string, nullable
  - `tracked_exchanges` integer, nullable
  - `tracked_entities` integer, nullable
  - `exchange_address_count` integer, nullable
  - `series` ExchangeFlowSeriesPoint[]
    - `inflow_btc` number, nullable
    - `outflow_btc` number, nullable
    - `net_btc` number, nullable
    - `tx_count` integer, nullable
    - `date` string, required
    - `tracked_addresses` integer, nullable
  - `summary` ExchangeFlowTotal
    - `inflow_btc` number, nullable
    - `outflow_btc` number, nullable
    - `net_btc` number, nullable
    - `tx_count` integer, nullable
  - `source_window` ExchangeFlowSourceWindow
    - `aggregation` string, nullable
    - `selected_rows` integer, nullable
    - `requested_days` integer, nullable
    - `row_window_blocks_target` integer, nullable
    - `latest_row_window_blocks` integer, nullable
    - `latest_block_range` integer[], nullable
    - `latest_block_time_range` string[], nullable
  - `per_exchange` ExchangeFlowEntityTotal[]
    - `inflow_btc` number, nullable
    - `outflow_btc` number, nullable
    - `net_btc` number, nullable
    - `tx_count` integer, nullable
    - `exchange_name` string, nullable
    - `entity` string, nullable
    - `category` string, nullable
    - `entity_id` string, nullable
    - `entity_role` string, nullable
    - `tracked_addresses` integer, nullable
    - `series` ExchangeFlowSeriesPoint[]
      - `inflow_btc` number, nullable
      - `outflow_btc` number, nullable
      - `net_btc` number, nullable
      - `tx_count` integer, nullable
      - `date` string, required
      - `tracked_addresses` integer, nullable
    - `summary` ExchangeFlowTotal
      - `inflow_btc` number, nullable
      - `outflow_btc` number, nullable
      - `net_btc` number, nullable
      - `tx_count` integer, nullable
  - `_meta` ResponseMeta, required
    - `endpoint` string, required
    - `freshness` string, nullable
    - `freshness_semantics` 'internal_refresh' | 'source_poll' | 'claim_made', nullable
    - `source` string, required
    - `price_sats` integer, nullable
    - `price_usd` string, nullable
    - `docs` string, nullable
    - `warnings` ResponseWarning[]
      - `code` string, required
      - `message` string, required
    - `pagination` ResponsePagination
      - `offset` integer, required
      - `limit` integer, required
      - `total_alerts` integer, required
      - `next_offset` integer, nullable, required
      - `has_more` boolean, required
    - `view` 'compact', nullable
    - `bitcoin_backend` string, nullable
    - `beta` boolean, nullable
    - `cache_seconds` integer, nullable
    - `cache_ttl_seconds` integer, nullable
    - `cache_status` string, nullable
    - `cache_age_seconds` number, nullable
    - `cache_cached_at` string, nullable
    - `cached` boolean, nullable
    - `cache_policy` string, nullable
    - `compute_ms` integer, nullable
    - `warning` string, nullable
    - `refresh_warning` string, nullable
    - `last_refresh_started_at` string, nullable
    - `last_refresh_completed_at` string, nullable
    - `last_refresh_status` string, nullable
    - `last_refresh_error` string, nullable
    - `last_refresh_duration_ms` integer, nullable
    - `feature_flag` string, nullable
    - `rollout_state` string, nullable
    - `schema_version` string, nullable
    - `methodology_version` string, nullable
    - `materialized_source` string, nullable
    - `max_hops` integer, nullable
    - `retention` string, nullable
    - `not_compliance_advice` boolean, nullable
    - `future_native_price_mode` string, nullable
    - `future_native_price_note` string, nullable
    - `future_native_quote_endpoint` string, nullable
    - `overview_activity_cache` object, nullable
    - `attribution_confidence` string, nullable
    - `generated_at` string, nullable
    - `last_computed` string, nullable
    - `snapshot_generated_at` string, nullable
    - `snapshot_age_seconds` number, nullable
    - `snapshot_stale_after_seconds` integer, nullable
    - `snapshot_status` string, nullable
    - `history_window_basis` string, nullable
    - `total_blocks_last_24h` integer, nullable
    - `field_semantics` object, nullable
    - `semantic_completeness` object, nullable
  - `beta` boolean, required

## Other responses

- `400`: Bad request.
- `404`: Resource not found.
- `405`: Method not allowed.
- `422`: Request validation failed.

---

[API](https://skmtc.dev/satoshidata/apis/satoshidata-agent-api.md) · [All operations](https://skmtc.dev/satoshidata/apis/satoshidata-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/satoshidata/apis/satoshidata-agent-api/revisions/9fc9edc41ac4?raw)
